23.2. Активные базы данных
По определению БД называется
активной, если СУБД по отношению к
ней выполняет не только те
действия, которые явно указывает
пользователь, но и дополнительные
действия в соответствии с
правилами, заложенными в саму БД.
Легко видеть, что основа этой идеи
содержалась в языке SQL времени System R.
На самом деле, что есть определение
триггера или условного
воздействия, как не введение в БД
правила, в соответствии с которым
СУБД должна производить
дополнительные действия? Плохо
лишь то, что на самом деле триггеры
не были полностью реализованы ни в
одной из известных систем, даже и в
System R. И это не случайно, потому что
реализация такого аппарата в СУБД
очень сложна, накладна и не
полностью понятна.
Среди вопросов, ответы на которые
до сих пор не получены, следующие.
Как эффективно определить набор
вспомогательных действий,
вызываемых прямым действием
пользователя? Каким образом
распознавать циклы в цепочке
"действие-условие-действие-..."
и что делать при возникновении
таких циклов? В рамках какой
транзакции выполнять
дополнительные условные действия и
к бюджету какого пользователя
относить возникающие накладные
расходы?
Масса проблем не решена даже для
сравнительно простого случая
реализации триггеров SQL, а задача
ставится уже гораздо шире. По
существу, предлагается иметь в
составе СУБД продукционную систему
общего вида, условия и действия
которой не ограничиваются
содержимым БД или прямыми
действиями над ней со стороны
пользователя. Например, в условие
может входить время суток, а
действие может быть внешним,
например, вывод информации на экран
оператора. Практически все
современные работы по активным БД
связаны с проблемой эффективной
реализации такой продукционной
системы.
Вместе с тем, по нашему мнению,
гораздо важнее в практических
целях реализовать в реляционных
СУБД аппарат триггеров. Заметим,
что в проекте стандарта SQL3
предусматривается существование
языковых средств определения
условных воздействий. Их
реализация и будет первым
практическим шагом к активным БД
(уже появились соответствующие
коммерческие реализации).
Предыдущая
глава || Оглавление
|| Следующая глава
|