Первичный ключ
Перви́чный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».
С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. Однако в качестве первичного обычно выбирается тот из потенциальных ключей, который наиболее удобен для тех или иных практических целей, например для создания внешних ключей в других отношениях либо для создания кластерного индекса. Поэтому в качестве первичного ключа, как правило, выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.
Исторически термин «первичный ключ» появился и стал использоваться существенно ранее термина «потенциальный ключ». Вследствие этого множество определений в реляционной теории были изначально сформулированы с упоминанием первичного (а не потенциального) ключа, например, определения нормальных форм. Так же термин «первичный ключ» вошёл в формулировку 12 правил Кодда как основной способ адресации любого значения отношения (таблицы) наряду с именем отношения (таблицы) и именем атрибута (столбца).
Содержание |
[править] Классификация
[править] Простые и составные ключи
Если первичный ключ состоит из единственного атрибута, его называют простым ключом.
Если первичный ключ состоит из двух и более атрибутов, его называют составным ключом. Так, номер паспорта и серия паспорта не могут быть первичными ключами по отдельности, так как могут оказаться одинаковыми у двух и более людей. Но не бывает двух личных документов одного типа с одинаковыми серией и номером. Поэтому в отношении, содержащем данные о людях, первичным ключом может быть подмножество атрибутов, состоящее из типа личного документа, его серии и номера.
[править] Естественные и суррогатные ключи
| Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его. |
Первичный ключ может состоять из информационных полей таблицы (то есть полей, содержащих полезную информацию об описываемых объектах). Такой первичный ключ называют естественным ключом. Теоретически, естественный ключ всегда можно сформировать, в этом случае мы получим т. н. интеллектуальный ключ.
[править] Интересные факты
- В узелковой письменности Инков — кипу в I—II тысячелетии н. э., применялись в том числе аналоги первичных ключей[1].
[править] Примечания
- ↑ Ordish George, Hyams, Edward. The last of the Incas: the rise and fall of an American empire — New York: Barnes & Noble, 1996. — С. 80. — ISBN 0-88029-595-3.
[править] См. также
[править] Ссылки
- Первичный ключ — составной или суррогатный? (Ответ Тома Кайта) (рус.)
- Автоинкрементные первичные ключи (суррогатные ключи) = зло? (рус.) - Взгляд Джоша Беркуса, CEO компании PostgreSQL Experts Inc.
Для улучшения этой статьи желательно?:
|
|
|
|
|---|---|
| Концепции |
Модель данных • Реляционная (модель • алгебра • нормальная форма • ссылочная целостность • БД • СУБД) • Иерархическая (модель • БД) • Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование |
| Объекты | |
| Ключи |
Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ |
| SQL | |
| СУБД |
IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server • Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite • Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB |
| Компоненты | |