Базы данных. Вводный курс


Целостность в реляционной модели данных - часть 2


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

На для хранения информации о служащих и отделах использовалось два файла, в одном из которых хранились данные, индивидуальные для каждого служащего, а во втором – данные об отделах. Для возможности получения полной информации о служащих и отделах, в которых они работают, в файле СЛУЖАЩИЕ

содержалось поле СЛУ_ОТД_НОМЕР, содержащее для каждого служащего его уникальный номер отдела. В то же время, в файле ОТДЕЛЫ

имелось поле ОТД_НОМЕР, являющееся уникальным ключом этого файла. На самом деле, введя файлы СЛУЖАЩИЕ

и ОТДЕЛЫ, а также обеспечив связь между ними с помощью полей СЛУ_ОТД_НОМЕР

и ОТД_НОМЕР, мы смогли обеспечить табличное представление иерархии ОТДЕЛ-СЛУЖАЩИЕ. Если говорить в терминах реляционной модели данных, то в отношении ОТДЕЛЫ

поле ОТД_НОМЕР

является первичным ключом, а в отношении СЛУЖАЩИЕ

поле СЛУ_ОТД_НОМЕР

является внешним ключом, ссылающимся на отношение ОТДЕЛЫ.

Более точно, внешним ключом отношения R1, ссылающимся на отношение

R2, называется подмножество заголовка HR1, которое совпадает с первичным ключом отношения R2

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

значения внешнего ключа, ссылающегося на отношение R2, в любом кортеже этого тела должен найтись кортеж в теле отношения R2, которое содержится в базе данных, с совпадающим значением первичного ключа. Легко заметить, что это почти то же самое ограничение, о котором говорилось в подразделе :

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

Обозначение s

S

означает, что элемент s

принадлежит множеству S.

Обозначение s

S

означает, что элемент s

не принадлежит множеству S.

Понятие «пустого», или неопределенного значения мы уточним в лекции 3.




- Начало -  - Назад -  - Вперед -