Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Первичные, альтернативные и внешние ключи




Обобщим материал приведенных примеров. Рассмотрим, например, связь между таблицами Клиенты и Контактные телефоны. В таблице Клиенты столбец «код» является уникальной характеристикой каждого клиента, такой столбец называется первичным ключом (Primary Key - PK). Прилагательное «первичный» добавляется в связи с тем, что уникальных столбцов или уникальных сочетаний нескольких столбцов в реальных таблицах может быть несколько. Например, в таблицу Клиенты можно было бы добавить столбец серия и номер паспорта (или два столбца – серия и номер отдельно) и это был бы альтернативный ключ таблицы (если уникальный ключ состоит из нескольких столбцов, то он называется составным). Заметим, что сочетание фамилии, имени и отчества нельзя считать альтернативным ключом ввиду наличия полных однофамильцев. Сочетания двух столбцов «код» и «фамилия» или «код» и «имя», конечно, обладают свойством уникальности, но это явно избыточные сочетания (фамилию или имя можно отбросить без потери уникальности). Таким образом, ключ таблицы должен удовлетворять двум признакам — уникальности и безизбыточности.

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

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

В примере с клиентами и телефонами подчиненная таблица имеет составной первичный ключ «код» и «номер телефона» - вместе они образуют уникальное и безизбыточное сочетание. Связь между таблицами Клиенты и Контактные телефоны называют связью «один ко многим» (тут прямая аналогия с иерархической и сетевой базами данных).

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

NULL-значения

NULL-значения — это неопределенные или пустые значения данных, которые в реляционной теории трактуются как отсутствие информации (правило Кодда №3). Их нельзя рассматривать как нулевые значения числовых полей или пустые строки в текстовых полях. Допустимость пустых значений в том или ином столбце необходимо указывать при определении таблиц.

В отношении ключевых столбцов справедливы следующие правила:

· в первичном и альтернативном ключах NULL-значения не допускаются;

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

Существуют определенные правила обработки NULL-значений. Два NULL-значения никогда не равны друг другу.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...