русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Целостность ссылок (ссылочная целостность)


Дата добавления: 2015-07-09; просмотров: 636; Нарушение авторских прав


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

Требование целостности по ссылкам состоит в следующем:

все значения внешних ключей должны быть согласованы.

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

Правила поддержки ссылочной целостности зависят от выполняемой операции манипулирования данными.

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

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

1. Запретить удаление кортежей в родительском отношении при наличии хотя бы одного ссылающегося кортежа (restrict - ограничить удаления)

2. При удалении кортежа родительского отношения каскадом удалять все ссылающиеся на него кортежи дочернего отношения (cascade – каскадное удаление)

3. При удалении кортежа родительского отношения установить во всех ссылающихся кортежах NULL-значения во внешних ключах (set null). Этот способ можно применять только в случае, если NULL-значения в соответствующем внешнем ключе разрешены.



4. При удалении кортежа родительского отношения установить во всех ссылающихся кортежах значения по умолчанию во внешних ключах (set default). Значения по умолчанию задаются при создании базы данных.

Из предложенных способов наиболее безопасным является первый – запрет удаления, он применяется чаще всего. Способ каскадного удаления следует применять очень осторожно.

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



<== предыдущая лекция | следующая лекция ==>
Целостная часть реляционной модели | Манипуляционная часть реляционной модели


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.