ЦЕЛОСТНОСТЬ РЕЛЯЦИОННЫХ ДАННЫХ
Важным следствием определений, сделанных выше, является то, что каждое отношение имеет первичный ключ, идентифицирующий это отношение. Поскольку отношение - это множество, а множества, по определению, не содержат совпадающих элементов, никакие два кортежа отношения не могут в произвольный заданный момент времени быть дубликатами друг друга.
Пусть R — отношение с атрибутами А\.А2,.-..А„. Говорят, что множество атрибутов К - (А,-, А/....,Аа-) отношения R является возможным ключом R тогда и только тогда, когда удовлетворяются два независимых от времени условия: уникальность и минимальность.Первое условие указывает на то, что в произвольный заданный момент времени никакие два различных кортежа отношения R не имеют одного и того же значения (Ai,Aj,...,Au).
Второе условие свидетельствует о том, что ни один из атрибутов (Ац Aj,...,Ak) не может быть исключен из множества К без нарушения условий уникальности.
Каждое отношение обладает по крайней мере одним возможным ключом, поскольку комбинация всех его атрибутов удовлетворяет условиям уникальности. Один произвольно выбранный возможный ключ для данного отношения принимается за его первичный ключ, а остальные возможные ключи называются альтернативными.
Помимо первичных и альтернативных ключей, идентифицирующих данное отношение, есть еще внешний ключ. В общем случае внешний ключ — это атрибут или комбинация атрибутов одного отношения R”, значение которого обязательно должно совпадать со значением первичного ключа некоторого другого отношения R', причем внешний и первичный ключи должны быть определены на одних и тех же доменах. Внешние ключи в неявном виде связывают отношения. Примером внешнего ключа является атрибут "Номер поставщика" в отношении Ri (см. рис. 5.6), поскольку этот атрибут может быть первичным ключом отношения i?l.
Целостность реляционной модели данных определяется двумя общими правилами.
- Целостность по сущностям. Не допускается, чтобы какой- либо атрибут, участвующий в первичном ключе базового отношения, принимал неопределенные значения. Базовым отношением называют независимое именованное отношение (для БД поставщиков и товаров — это отношения R\ и R2) . Мотивировка этого правила определяется тем, что базовые отношения соответствуют сущностям в реальном мире, а следовательно, отличимы друг от друга, т.е. имеют уникальную идентификацию. В реальной же модели функцию уникальной идентификации выполняют первичные ключи, и, таким образом, ситуация, когда первичный ключ принимает неопределенное значение, является противоречивой и говорит о том, что некоторая сущность не обладает индивидуальностью, а значит, не существует. Отсюда и название — целостность по сущностям.
- Целостность по ссылкам. Если базовое отношение R” включает некоторый внешний ключ FK, соответствующий некоторо-
му первичному ключу РК какого-либо базового отношения R', то каждое значение FKв R” должно быть либо равным значению РК в некотором кортеже R”, либо полностью неопределенным. Неопределенность внешнего ключа может возникнуть в ситуации, когда, например, имеется вакансия на должность в некоторый отдел. Для такой должности атрибут "Фамилия служащего", являющийся внешним ключом, имеет неопределенное значение в кортеже, представляющем эту штатную должность отдела.