КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Механизм проверки ограничений целостности
Действия по обеспечению ссылочной целостности Ссылочная целостность гарантирует, что для каждого значения внешнего ключа всегда установлено его соответствие значению родительского ключа. Для обеспечения ссылочной целостности РСУБД всегда должна иметь возможность использовать операции, управляющие родительскими ключами. Действия, по обеспечению ссылочной целостности (referential actions) — это шаги, необходимые в тех ситуациях, когда приложение обновляет или удаляет родительский ключ, имеющий зависимые дочерние записи. В модели реляционной базы данных предусмотрено несколько таких действий: - Update/Delete Restrict (ограничение обновления/удаления). СУБД не позволяет приложению обновлягь родительский ключ или удалять родительскую строку, если ключ или строка имеет зависимые дочерние записи. Например, нельзя удалить из таблицы заказ на продажу, если с ним связаны пункты заказа в другой таблице - Delete Cascade (каскадное удаление). Когда приложение удаляет строку родительской таблицы, РСУБД каскадно удаляет все зависимые записи в дочерней таблице. Например, при удалении заказа из одной таблицы РСУБД автоматически удаляет все соответствующие пункты этого заказа из другой таблицы. - Update/Cascade (каскадное обновление). Когда приложение обновляет родительский ключ, РСУБД каскадно обновляет зависимые внешние ключи. Например, при изменении идентификатора заказа в таблице Заказов РСУБД автоматически обновит идентификаторы заказа всех соответствующих записей о пунктах этого заказа в других таблицах. Действие по обеспечению ссылочной целостности крайне полезно, так как обычно в приложениях пользователям, не разрешается обновлять значения ключей. - Update/Delete Set NULL (установление null-значений при обновлении/удалении). Когда приложение обновляет или удаляет родительский ключ, значения всех зависимых ключей сгановятся null-значениями. - Update/Delete Set Default (установление значений по умолчанию при обновлении/удалении). Когда приложение обновляет или удаляет родительский ключ, значениями всех зависимых ключей становятся осмысленные значения по умолчанию. По умолчанию для всех ограничений ссылочной целостности в Oracle используется действие Update/Delete Restrict. Кроме того, для ограничения ссылочной целостности Oracle может выполнять действие Delete Cascade.
Oracle может проверять ограничения целостности в двух ситуациях: • Сразу после того, как приложение инициирует SQL-оператор ввода, обновления или удаления строк. Если оператор вызывает нарушение целостности данных, Oracle автоматически отменяет результаты выполнения этого оператора. • Oracle может отложить проверку ограничения целостности для SQL-оператора транзакции до ее завершения. Если любой оператор транзакции вызывает нарушение целостности данных, Oracle автоматически совершает откат всей транзакции (т.е. отменяет результаты выполнения всех операторов транзакции). При объявлении конкретного ограничения целостности можно указать время его проверки — немедленно или через определенней интервал времени. Выбор зависит от требований, предъявляемых конкретным приложением. Для обычных приложений баз данных следует выбирать значение, установленное по умолчанию, т.е. проверять целостность данных сразу после выполнения каждого SQL-оператора. Однако в некоторых приложениях, например, в задачах, использующих большие последовательности действий, требуется обновлять много таблиц, и поэтому до окончания транзакции правила целостности временно нарушаются.
Дата добавления: 2014-01-07; Просмотров: 415; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |