Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 19]

программах одни и те же места, перекомпилировать все приложения и распространять по рабочим местам новые версии.
1.1.6.
Классификация ограничений целостности по времени проверки
По времени проверки ограничения делятся на:
• немедленно проверяемые ограничения; • ограничения с отложенной проверкой.
Немедленно проверяемые ограничения проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение.
Например, проверка уникальности потенциального ключа проверяется в момент вставки записи в таблицу.
Если ограничение нарушается, то такая операция отвергается.
Транзакция, внутри которой произошло нарушение немедленно проверяемого утверждения целостности, обычно откатывается
[39, 41].
Ограничения с отложенной проверкой проверяется в момент фиксации транзакции оператором COMMIT WORK.
Внутри транзакции ограничение может не выполняться.
Если в момент фиксации транзакции обнаруживается нарушение ограничения с отложенной проверкой, то транзакция откатывается.
Примером ограничения, которое не может быть
проверено немедленно является ограничение из примера 1.
Это происходит оттого, что транзакция, заключающаяся во вставке нового сотрудника в таблицу PERSON, состоит не менее чем из двух операций вставки строки в таблицу PERSON и обновления строки в таблице DEPART.
Ограничение, безусловно, неверно после первой операции и становится верным после второй операции.

1.1.7.
Классификация ограничений целостности по области действия
По области действия ограничения делятся на:
• ограничения домена; • ограничения атрибута; • ограничения кортежа; • ограничения отношения; • ограничения базы данных.
19
[стр. 4]

Корректность процедуры нормализации декомпозиция без потерь.
Теорема Хеза Выводы ГЛАВА 7.
НОРМАЛЬНЫЕ ФОРМЫ БОЛЕЕ ВЫСОКИХ ПОРЯДКОВ НФБК (Нормальная Форма Бойса-Кодда) 4НФ (Четвертая Нормальная Форма) 5НФ (Пятая Нормальная Форма) Продолжение алгоритма нормализации (приведение к 5НФ) Выводы ГЛАВА 8.
ЭЛЕМЕНТЫ МОДЕЛИ "СУЩНОСТЬ-СВЯЗЬ" Основные понятия ER-диаграмм Пример разработки простой ER-модели Концептуальные и физические ER-модели Выводы ГЛАВА 9.
ТРАНЗАКЦИИ И ЦЕЛОСТНОСТЬ БАЗ ДАННЫХ Пример нарушения целостности базы Понятие транзакции Ограничения целостности Классификация ограничений целостности Классификация ограничений целостности по способам реализации Классификация ограничений целостности по времени проверки Классификация ограничений целостности по области действия Ограничения домена Ограничения атрибута Ограничения кортежа Ограничения отношения Ограничения базы данных Реализация декларативных ограничений целостности средствами SQL Общие принципы реализации ограничений средствами SQL Синтаксис ограничений стандарта SQL Синтаксис операторов SQL, использующих ограничения Выводы ГЛАВА 10.
ТРАНЗАКЦИИ И ПАРАЛЛЕЛИЗМ Работа транзакций в смеси Проблемы параллельной работы транзакций Проблема потери результатов обновления Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание) Проблема несовместимого анализа Неповторяемое считывание Фиктивные элементы (фантомы) Собственно несовместимый анализ Конфликты между транзакциями Блокировки Решение проблем параллелизма при помощи блокировок Проблема потери результатов обновления Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное

[стр.,135]

Если ограничение целостности реализовано в виде триггеров, то этот программный код является просто телом триггера.
Если используется декларативное ограничение целостности, то возможны два подхода: 1.
При декларировании (объявлении) ограничения текст ограничения хранится в виде некоторого объекта СУБД, а для реализации ограничения используются встроенные в СУБД функции, и тогда этот код представляет собой внутренние функции ядра СУБД.
2.
При декларировании ограничения СУБД автоматически генерирует триггеры, выполняющие необходимые действия по проверке ограничений.
Примером использования функций ядра для проверки декларативных ограничений является автоматическая проверка уникальности индексов, соответствующих потенциальным ключам отношений.
В качестве другого примера можно привести поддержку ссылочной целостности средствами СУБД ORACLE.
Ограничение ссылочной целостности является в ORACLE объектом базы данных, хранящим формулировку этого ограничения.
Проверка ограничения выполняется функциями ядра ORACLE со ссылкой на этот объект.
Ограничение целостности в этом случае нельзя модифицировать иначе, как используя декларативные операторы создания и модификации ограничений.
Примером генерации новых триггеров для реализации декларативных ограничений, может служить система Visual FoxPro.
Триггеры, автоматически сгенерированные Visual FoxPro при объявлении ограничений ссылочной целостности можно посмотреть и даже внести в них изменения, так чтобы они могли выполнять некоторые дополнительные действия.
Если система не поддерживает ни декларативную поддержку ссылочной целостности, ни триггеры (как, например, FoxPro 2.5), то программный код, следящий за корректностью базы данных, приходится размещать в пользовательском приложении (такой ведь код все равно необходим!).
Это сильно затрудняет разработку программ и не защищает от попыток пользователей напрямую внести некорректные данные в базу данных.
Особенно сложно становится в том случае, когда имеется сложная база данных и множество различных приложений, работающих с ней (например, к базе данных торгового предприятия может обращаться несколько приложений, таких как "Складской учет", "Прием заказов", "Главный бухгалтер" и т.п.).
Каждое из таких приложений должно содержать один и тот же код, отвечающий за поддержание целостности базы данных.
Особенно весело становится разработчику, когда необходимо внести изменения в логику поддержания целостности.
Приходится заменять во всех программах одни и те же места, перекомпилировать все приложения и распространять по рабочим местам новые версии.
Классификация ограничений целостности по времени проверки По времени проверки ограничения делятся на:
 Немедленно проверяемые ограничения.
 Ограничения с отложенной проверкой.
Определение 6.
Немедленно проверяемые ограничения проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение.
Например, проверка уникальности потенциального ключа проверяется в момент вставки записи в таблицу.
Если ограничение нарушается, то такая операция отвергается.
Транзакция, внутри которой произошло нарушение немедленно проверяемого утверждения целостности, обычно откатывается.

Определение 7.
Ограничения с отложенной проверкой проверяется в момент фиксации транзакции оператором COMMIT WORK.
Внутри транзакции ограничение может не выполняться.
Если в момент фиксации транзакции обнаруживается нарушение ограничения с отложенной проверкой, то транзакция откатывается.
Примером ограничения, которое не может быть


[стр.,136]

проверено немедленно является ограничение из примера 1.
Это происходит оттого, что транзакция, заключающаяся во вставке нового сотрудника в таблицу PERSON, состоит не менее чем из двух операций вставки строки в таблицу PERSON и обновления строки в таблице DEPART.
Ограничение, безусловно, неверно после первой операции и становится верным после второй операции.

Классификация ограничений целостности по области действия По области действия ограничения делятся на:
 Ограничения домена  Ограничения атрибута  Ограничения кортежа  Ограничения отношения  Ограничения базы данных Ограничения домена Определение 8.
Ограничения целостности домена представляют собой ограничения, накладываемые только на допустимые значения домена.
Фактически, ограничения домена обязаны являться частью определения домена (см.
определение домена в гл.
2).
Например, ограничением домена "Возраст сотрудника" может быть условие "Возраст сотрудника не менее 18 и не более 65".
Проверка ограничения.
Ограничения домена сами по себе не проверяются.
Если на каком-либо домене основан атрибут, то ограничение соответствующего домена становится ограничением этого атрибута.
Ограничения атрибута Определение 9.
Ограничение целостности атрибута представляют собой ограничения, накладываемые на допустимые значения атрибута вследствие того, что атрибут основан на какомлибо домене.
Ограничение атрибута в точности совпадают с ограничениями соответствующего домена.
Отличие ограничений атрибута от ограничений домена в том, что ограничения атрибута проверяются.
Если логика предметной области такова, что на значения атрибута необходимо наложить дополнительные ограничения, помимо ограничений домена, то такие ограничения переходят в следующую категорию.
Проверка ограничения.
Ограничение атрибута является немедленно проверяемым ограничением.
Действительно, ограничение атрибута не зависит ни от каких других объектов базы данных, кроме домена, на котором основан атрибут.
Поэтому никакие изменения в других объектах не могут повлиять на истинность ограничения.
Ограничения кортежа Определение 10.
Ограничения целостности кортежа представляют собой ограничения, накладываемые на допустимые значения отдельного кортежа отношения, и не являющиеся ограничением целостности атрибута.
Требование, что ограничение относится к отдельному кортежу отношения, означает, что для его проверки не требуется никакой информации о других кортежах отношения.

[Back]