double arrow

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

Первичный ключ (Primary Key, PK) – уникальный идентификатор для некоторого отношения.

Потенциальный ключ К (Candidate Key, CK) – это подмножество множества атрибутов отношения R, обладающих следующими свойствами:

o cвойство уникальности: нет двух различных кортежей в отношении R с одинаковым значением K;

o свойство неизбыточности: никакое из подмножеств К не обладает свойством уникальности.

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

Пример: на рис. 9.1 представлено отношение Students, которое имеет следующие атрибуты: код студента, фамилия, имя, отчество, пол, дата рождения.

A1 A2 A3 A4 A5 A6
student_ID surname name lastname sex birthday
  Иванов Иван Иванович М 01.01.1990
  Петров Пётр Петрович М 01.10.1990
  Сидоров Сидор Сидорович М 01.03.1991
  Иванов Глеб Иванович М 01.01.1990
  Иванов Иван Иванович М 01.03.1991

Рис.9.1. Отношение Students.

Проанализировав данные, представленные на рис. 9.1, мы видим, что одинаковые значения могут принимать атрибуты A2 («Иванов»), A3 («Иван»), A4 («Иванович»), A5 («М»), A6 («01.01.1990»). Только значения атрибута A1 (student_ID) не повторяются, причем это не зависит от конкретного набора данных: код студента уникален. Таким образом, данное отношение имеет один потенциальный ключ - student_ID.

B1 B2 B3
student_ID subject mark
  История  
  Математический анализ  
  Философия  
  История  
  Философия  
  Информатика  
  Философия  
  Информатика  
  Математический анализ  
  Информатика  

Рис. 9.2. Отношение Marks, имеющее составной первичный ключ (атрибуты B1 и B2).

Пояснения к определению «потенциальный ключ»:

o на практике отношения, как правило, имеют только один потенциальный ключ;

o потенциальные ключи определены как множество атрибутов.

На рис. 9.2 приведен пример отношения, в котором первичный ключ является составным. Введем некоторые ограничения предметной области для упрощения учебной модели. Предположим, что студенты получают оценки по предметам, при этом, по каждому предмету студент получает оценку только 1 раз. Тогда отношение Marks будет состоять из трех атрибутов: код студента, предмет, оценка. Каждый из атрибутов, взятый отдельно от других, имеет повторяющиеся значения. Заметим, что пара атрибутов {student_ID, subject} не могут иметь повторяющихся значений. В противном случае будет нарушено ограничение предметной области: по каждому предмету студент получает оценку только 1 раз.

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

Следствия:

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

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


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



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