56
Часть I. Теория баз данных
ратором COMMIT. Транзакция 1 повторно читает объект
S и видит его измененное состояние. Чтобы избежать не-
повторяющихся чтений, до завершения транзакции 1 ни-
какая другая транзакция не должна изменять объект S.
Как уже было сказано выше, существует возможность обеспе-
чения разных уровней изолированности для той или иной тран-
закции путем введения блокировки. Кроме того, может использо-
ваться сериализация транзакций. Способ выполнения набора
транзакций называется сериальным, если результат совместного
выполнения транзакций эквивалентен результату некоторого по-
следовательного выполнения этих же транзакций.
Сериализация транзакций - это такой механизм их выполнения
по некоторому сериальному плану, который обеспечивается на
уровне основных функций СУБД, ответственных за управление
транзакциями. Система, в которой поддерживается сериализация
транзакций, обеспечивает реальную изолированность пользователей.
Основная проблема в реализации состоит в выборе метода се-
риализации набора транзакций, который не слишком ограничивал
бы их параллельность. Простейшим решением является действи-
тельно последовательное выполнение транзакций. Но существу-
ют ситуации, в которых можно выполнять операторы разных
транзакций в любом порядке с сохранением сериальности. При-
мерами могут служить только читающие транзакции, а также
транзакции, не конфликтующие по объектам БД.
Обычно ограничения целостности применяют для описания
базовых отношений - последние содержат данные, отражающие
реальную действительность, поэтому их обрабатывают таким
образом, чтобы данные были корректными.
В общем случае ограничение целостности должно содержать
три основные части:
• имя ограничения - представляет собой структуру, по ко-
торой это ограничение идентифицируется системой;
• собственно ограничения -набор директив и команд, со-
ставляющих способ и возможность контроля, и представ-
ляющий в конечном итоге логическое выражение. Огра-
ничение удовлетворяется, если оно истинно, и нарушает-
ся - если оно ложно;
• действие при нарушении ограничения - здесь предписы-
вается действие системы при нарушении ограничения.
Например, ограничение целостности для отношения SP.
приведенного на рис. 1.11. можно сформулировать следующим
образом:
Глава 1.4. Функции защиты базы данных
57
СОЗДАТЬ ОГРАНИЧЕНИЕ ЦЕЛОСТНОСТИ RULE4
ДЛЯ ВСЕХ SP(SP.OCENKA>0 И SP.OCENKA<6)
НЕ ВЫПОЛНЯТЬ ПРИ НАРУШЕНИИ ПРАВИЛА
В данном примере ограничение целостности накладывается на
атрибут OCENKA отношения SP таким образом, что игнориру-
ются все попытки установить оценку менее 1 и более 5. Точнее
говоря, в ограничении оговорен допустимый интервал оценок
(больше 0 и меньше 6).
При создании ограничения целостности система сначала про-
веряет, удовлетворяет ли текущее состояние БД новому ограни-
чению. Если это условие не выполняется, то создаваемое ограни-
чение может быть отвергнуто. В противном случае оно
принимается и в дальнейшем используется системой.
Различают четыре типа ограничений целостности:
• ограничение целостности домена - им определяется
множество значений, из которых состоит домен. Особен-
ности ограничения такого рода заключаются в том. что
его имя должно совпадать с именем домена. Кроме того,
поскольку домены сами по себе не обновляются, то отпа;
дает необходимость предусматривать реакцию на нару-
шение ограничения. Более того, эти ограничения можно
устранить только за счет устранения самого домена;
• ограничение целостности атрибута - это фактически
определение домена, из которого берутся значения для
данного атрибута. Имя такого ограничения должно сов-
падать с именем соответствующего ограничения домена,
то есть с именем домена. Проверка осуществляется не-
медленно, и попытка выполнить действие, нарушающее
ограничение, будет отвергнута сразу же. Наконец, огра-
ничения целостности атрибута снимаются только с по-
мощью устранения самого атрибута;
• ограничение целостности отношения - правило, задаваемое
только для данного отношения БД. Ограничение целостно-
сти отношения всегда проверяется немедленно, то есть при
любой попытке модификации отношения осуществляется
контроль всех заданных условий. Действие такого ограни-
чения происходит в том случае, когда ограничение (задан-
ное логическим выражением) становится ложным;
• ограничение целостности БД - задается для двух или бо-
лее связанных между собой отношений. В отличие от
других ограничений, эта их разновидность помимо тра-
диционных частей обязательно должно содержать, по