logo search
Учебник ИСПиУ

Активные базы данных

В отличие от обычных систем управления базами данных системы управления активными базами данных могут выполнять определенные операции при возникновении определенного события. Формально такие системы содержат наборы правил вида Событие-Условие-Действие. В том случае, если произошло данное событие и соответствующее условие истинно, то должно быть выполнено заданное действие.

Примерами событий могут быть COMMIT или ABORT транзакции, операции доступа к данным или внешние события. Условие обычно представляет собой некоторый предикат от текущего состояние базы данных. Действие − это транзакция, которая выполняется в ответ на определенную ситуацию, где ситуация − это комбинация события и условия.

Транзакция, которая вызывает срабатывание правила, называется порождающей транзакцией, а транзакция, которая выполняется согласно этому правилу, называется порожденной. Понятия породившей и порожденной транзакций не являются взаимно исключающимися, т.е. порожденная транзакция может в свою очередь породить новую транзакцию. Транзакция, которая породила хотя бы одну транзакцию, называется активной или отцовской. Активная транзакция ассоциируется с множеством ею порожденных транзакций.

Возможны разные типы связей между породившей и порожденной транзакциями. Наиболее часто по типу связи порожденные транзакции делятся: на непосредственные, отложенные, независимые. Непосредственная и отложенная транзакции выполняются как часть активной транзакции, т.е. для успешного завершения транзакции необходимо, чтобы успешно завершились все ею порожденные непосредственные и отложенные транзакции. Независимая же транзакция выполняется совершенно независимо, и даже если она завершится неудачно, то это никак не отражается на завершении породившей ее транзакции. Непосредственная транзакция начинает выполняться немедленно после порождения, а отложенная только после того, как породившая ее транзакция выполнит свою работу, но до момента фиксации сделанных ею изменений.