Классика баз данных - статьи

       

Если он включит слово IMMEDIATE


Если он включит слово IMMEDIATE в префикс утверждения, проверка всегда будет осуществляться при выполнении каждого оператора SEQUEL. Так как утверждения переходов (в которых сравниваются значения OLD и NEW) основываются на покортежном принципе, они всегда должны проверяться немедленно, а не в конце транзакции.

В System R размещение нескольких операторов в транзакции имеет дополнительное значение, определяя, что система должна выполнять эти операторы как атомарное действие, не допуская вмешательства (например, модификации соответствующих данных) со стороны других пользователей во время выполнения транзакции. Настолько, насколько возможно, System R пытается защитить каждого пользователя от восприятия наличия других пользователей, работающих одновременно с ним. Поэтому SEQUEL не требует от пользователя выполнения операторов блокировки или специальных операторов, выражающих намерение модификации. Установкой и сбросом блокировок, обнаружением и разрешением тупиковых ситуаций занимается основная система. Эти аспекты и их реализация в System R более подробно обсуждаются в [8].

В любой момент в пределах транзакции пользователь может объявить "точку сохранения" с помощью оператора SAVE <имя-точки сохранения>. В одной транзакции можно объявить много точек сохранения. В любой момент пользователь может аннулировать все изменения, сделанные им в базе данных с момента объявления определенной точки сохранения, с помощью оператора RESTORE <имя-точки сохранения>. Если в операторе RESTORE имя точки сохранения опущено, аннулирование изменений производится с начала текущей транзакции. Ни один оператор RESTORE не может производить аннулирование изменений до точки сохранения, установленной до начала текущей транзакции. Оператор RESTORE не влияет на изменения, которые сделаны другими пользователями.

Чтобы помочь поддерживать целостность базы данных, пользователь может определить триггер (trigger), который будет выполняться при появлении определенного действия: READ, INSERTION, DELETE или UPDATE над кортежем в некоторой заданной таблице.

Содержание  Назад  Вперед