Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Блок 1 Программирование.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
295.81 Кб
Скачать

3.3.2. Целостность сущностей

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

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

По определению, первичный ключ — это минимальный идентификатор, который используется для уникальной идентификации кортежей. Это значит, что никакое подмножество первичного ключа не может быть достаточным для уникальной идентификации кортежей. Если допустить присутствие определителя NULL в любой части первичного ключа, это равноценно утверждению, что не все его атрибуты необходимы для уникальной идентификации кортежей, что противоречит определению первичного ключа. Например, поскольку Впо является первичным ключом отношения Branch, то нельзя допустить вставку в отношение Branch кортежа с определителем NULL в атрибуте Впо.

Если рассмотреть это правило более внимательно, то можно заметить несколько его необычных свойств. Во-первых, почему оно применяется к первичным ключам, но не используется в отношении альтернативных ключей? Во-вторых, почему оно ограничивается только базовыми отношениями? Например, используя данные отношения Staff (см, табл. 3.4), рассмотрим выполнение следующего запроса: "Создать список номеров телефонов всех сотрудников организации". Результатом этого запроса является унарное отношение из единственного атрибута Tel No, По определению, этот атрибут должен быть первичным ключом, но среди его значений содержится определитель NULL (соответствующий номеру телефона сотрудника с личным номером 'SA9'). Поскольку это отношение не является базовым, реляционная модель допускает присутствие определителя NULL в его первичном ключе. Недавно было предпринято несколько попыток переопределения этого правила (Codd, 1988; Date, 1990).

3.3.3. Ссылочная целостность

Второе ограничение целостности касается внешних ключей.

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

Например, атрибут Впо в отношении Staff является внешним ключом, который ссылается на атрибут Впо базового отношения Branch. Система должна предотвращать любые попытки создать запись с информацией о сотруднике отделения с номером 'В25' до тех пор, пока в отношении Branch не будет создана запись, содержащая сведения об отделении компании с номером 'В25'. Однако считается допустимым создание записи с информацией о новом сотруднике с указанием определителя NULL вместо номера отделения, в котором этот сотрудник работает. Такая ситуация может иметь место в том случае, когда сотрудник зачислен в штат компании, но еще не приписан к какому-то конкретному отделению.