Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа / bd / базы данных2222.rtf
Скачиваний:
241
Добавлен:
17.02.2014
Размер:
19.41 Mб
Скачать

1.7. Целостность реляционных данных

Большинство БД подчиняются очень многим правилам целостности. Например, для поставщиков и деталей можно установить следующие правила:

  • все номера поставщиков должны быть в форме четырех десятичных цифр (Snnnn);

  • значение статуса поставщика должно быть в диапазоне 1 - 100;

  • все детали должны быть больше нуля

и т.д.

Любое правило целостности является специфическим для рассматриваемой БД. Однако, в дополнение к специфическим правилам, в реляционной модели есть два особых общих правила целостности. Эти два особых правила относятся к потенциальным ключам и к внешним ключам.

1.7.1. Потенциальные ключи

Пусть R – некоторое отношение. Тогда потенциальный ключ, скажем, K, для R – это подмножество множества атрибутов R, обладающее следующими свойствами:

1. Свойством уникальности.

Нет двух различных кортежей в отношении R с одинаковыми значениями K.

2. Свойством не избыточности.

Никакие из подмножеств K не обладают свойством уникальности.

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

1. либо эта комбинация обладает свойством не избыточности, а значит, будет потенциальным ключом,

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

Рассмотрим базу данных, содержащую отношения Поставщики, Товары и Поставки и представленную на Рис. 1.4.

Если мы говорим, что комбинация атрибутов {Код_поставщика, Код_товара} – это потенциальный ключ базового отношения ПТ (Поставки), мы имеем в виду, что для всех возможных отношений R, которые являются значениями ПТ (Поставки), нет двух различных кортежей отношения R с одинаковыми значениями этой комбинации.

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

Рис. 1.4. База данных Поставщиков и Деталей

1.7.2. Первичные и альтернативные ключи

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

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

1.7.3. Внешние ключи

Атрибут Код_поставщика в отношении Поставки допустим для БД лишь в том случае, если значение Код_поставщика существует в качестве первичного ключа отношения Поставщики. Аналогично, атрибут Код_товара в отношении Поставки допустим для БД лишь в том случае, если значение Код_товара существует в качестве первичного ключа отношения Товар (в противном случае БД не может рассматриваться как целостная).

Атрибуты Код_поставщика и Код_товара отношения Поставки, представленные в данном контексте, называем внешними ключами.

Дадим формальное определение внешнего ключа.

Пусть R2 базовое отношение. Тогда внешний ключ, скажем, FK, в отношении R2 это подмножество множества атрибутов R2 такое, что:

  • существует базовое отношение R1 (R1 и R2 необязательно различны) с потенциальным ключом CK;

  • каждое значение FK в текущем значении R2 всегда совпадает со значением CK некоторого кортежа в текущем значении R1.

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

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

Соседние файлы в папке bd