Составной ключ
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2024 г. ) |
В проектировании базы данных составной ключ — это потенциальный ключ , состоящий из двух или более атрибутов. [1] [2] [3] (столбцы таблицы), которые вместе однозначно идентифицируют вхождение объекта (строку таблицы).
Составной ключ — это составной ключ, для которого каждый атрибут, составляющий ключ, является внешним ключом. сам по себе [ нужна ссылка ]
Преимущества
[ редактировать ]Составные ключи имеют преимущества, аналогичные преимуществам естественного ключа , поскольку они часто состоят из нескольких атрибутов естественного ключа.
Хранилище
[ редактировать ]Составные ключи занимают меньше места на диске по сравнению с определением столбца суррогатного ключа . Это связано с тем, что составной ключ уже существует в виде атрибутов в таблице, и его не нужно определять в таблице только с целью уникальной идентификации. Это упрощает таблицу, а также экономит место.
Легче внедрить и использовать
[ редактировать ]Составные ключи легко реализовать в схеме базы данных , поскольку их составные части уже называются элементами в базе данных. Когда они также являются естественными ключами, они часто интуитивно понятны в реальных сценариях. Они часто используются, когда несоставной ключ не всегда однозначно идентифицирует запись. Например, личное имя часто, но не всегда, может быть уникальным в данной базе данных, и могут быть добавлены некоторые другие поля, такие как дата рождения, чтобы сделать уникальность более вероятной.
Недостатки
[ редактировать ]Изменения требований
[ редактировать ]Бизнес-требования и правила могут измениться, что может изменить формат некоторых объектов реального мира. Составные ключи состоят из множества естественных ключей, которые связаны с реальным миром, и с изменением их формата в реальном мире их формат в базе данных также будет изменен. Это неудобно, поскольку количество атрибутов составного ключа изменится и все внешние ключи необходимо будет обновить.
Сложность и хранение
[ редактировать ]Составной ключ состоит из нескольких атрибутов, и составной ключ будет упоминаться в нескольких таблицах как внешний ключ. Это требует много дискового пространства, поскольку в качестве внешнего ключа хранится несколько столбцов, а не только один. Это усложняет схему, а запросы становятся более ресурсоемкими, поскольку для каждого соединения СУБД придется сравнивать три атрибута вместо, возможно, одного в случае одного естественного ключа.
Пример
[ редактировать ]Примером может служить сущность, которая представляет модули, которые каждый студент посещает в университете. Сущность имеет StudentID и ModuleCode в качестве первичного ключа. Каждый из атрибутов, составляющих первичный ключ, является простым ключом, поскольку каждый представляет собой уникальную ссылку при идентификации учащегося в одном случае и модуля в другом, поэтому этот ключ является составным ключом.
Напротив, представьте, что, используя тот же пример, мы определили ученика по его имени + фамилии (при условии, что у людей должны быть разные имена). В таблице, представляющей студентов, нашим первичным ключом теперь будет firstName + LastName . Поскольку учащиеся могут иметь одно и то же имя или фамилию, эти атрибуты не являются простыми ключами. Первичный ключ firstName + LastName для учащихся является составным ключом.
См. также
[ редактировать ]- Реляционная база данных
- Альтернативный ключ
- Кандидатский ключ
- Внешний ключ
- Первичный ключ
- Уникальный ключ
- Суперключ
Ссылки
[ редактировать ]- ^ Коннолли, Томас М.; Бегг, Кэролайн Э. (2015). «12.3.4 Ключи». Системы баз данных: практический подход к проектированию, внедрению и управлению (6., глобальное изд.). Бостон Колумбус Индианаполис: Пирсон. п. 416. ИСБН 978-1-292-06118-4 .
- ^ Эльмасри, Рамез; Навате, Шам (2017). «17.4 Индексы на нескольких ключах». Основы систем баз данных (Седьмое, глобальное изд.). Бостон Колумбус Индианаполис Нью-Йорк Сан-Франциско Хобокен Амстердам Кейптаун Дубай Лондон Мадрид Милан Мюнхен Париж Монреаль Торонто Дели Мехико Сан-Паулу Сидней Гонконг Сеул Сингапур Тайбэй Токио: Пирсон. п. 661. ИСБН 978-1-292-09761-9 .
- ^ Коронель, Карлос; Моррис, Стивен (2015). «Глоссарий». Системы баз данных: проектирование, реализация и управление (12-е изд.). Cengage Обучение. п. 770. ИСБН 978-1-305-62748-2 .
Внешние ссылки
[ редактировать ]- Составные обратные функциональные свойства : эквивалентное понятие в семантической сети.
- Техническое задание реляционной базы данных, Ключи : обзор различных типов ключей в СУБД.
- Различные типы ключей в базе данных : обзор всех типов ключей, используемых в СУБД.