русс | укр

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

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

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

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


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

Правила ссылочной целостности


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


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

Ссылочная целостность должна жестко контролироваться при выполнении любых операций с данными таблиц (правило Кодда №12).

Правило Кодда №7 устанавливает 4 таких операции – извлечение, вставка новых строк, удаление строк и изменение (обновление) существующих строк (операции select, insert, delete, update). Операция извлечения не может нарушить целостности, т.к. не изменяет данные. Рассмотрим основные стратегии поддержки ссылочной целостности для остальных операций.

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

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

· запрет удаления таких строк (ограничение удаления - restrict)

· каскадное удаление строки главной таблицы вместе со всеми связанными строками подчиненной таблицы (удаление каскадом - cascade).

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



Изменение (обновление) значений внешнего, а особенно первичного ключа заполненной базы данных обычно не происходит, однако стратегия каскадного обновления некоторыми СУБД поддерживается.

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




<== предыдущая лекция | следующая лекция ==>
Метаданные. Схема базы данных | Структурная часть


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


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

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

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


 


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

 
 

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

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