Первичный ключ (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 система, не использующая потенциальные ключи, ограничена в возможностях отображения состояния, которое не является реляционным.