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

Потенциальные ключи. Первичный ключ. Внешний ключ.

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

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

1. Уникальность (не существует двух одинаковых значений);

2. Безизбыточность (никакое подмножество потенциального ключа не является потенциальным ключом).

Различают простые и составные потенциальные ключи (например, серия и номер паспорта - составной потенциальный ключ, а ИНН - простой).

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

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

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

Все потенциальные ключи отношения, которые не являются первичным ключом, называются альтернативными ключами.

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

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

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

Ни в одном из потенциальных ключей недопустимы пустые ячейки (NULL-значения).

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

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

С помощью внешних ключей устанавливаются связи между отношениями.

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

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

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

Ключ обеспечивает:

· однозначную идентификацию записей таблицы;

· исключение повторения значений ключа (остальные атрибуты в расчет не принимаются);

· упорядочения кортежей. Возможно упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним — возрастание, а по другим — убывание);

· ускорение выполнения запросов к БД;

· организацию связи между отдельными таблицами БД;

· использование ограничений ссылочной целостности.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: