О SQL (вычисления / базы данных):
Когда у нас есть два или более полей в таблице, которые вместе идентифицируют ее записи однозначно, как правильно их вызывать? Композитные или составные ключи?
Я видел в Интернете оба варианта использования, поэтому я не совсем уверен.
database-design
terminology
igordcard
источник
источник
Ответы:
Как составной ключ, так и составной ключ описывают ключ-кандидат с более чем одним атрибутом. Согласно Словарю реляционной базы данных (CJDate) они означают одно и то же.
В моделировании ER термин «составной ключ» также имеет более конкретное значение. Это означает ключ, составляющие атрибуты которого являются ссылками на ключи в других объектах, то есть составной ключ образует идентифицирующую связь. Для большинства целей это не особенно полезная или важная концепция, поэтому термины составной / составной часто рассматриваются как взаимозаменяемые. Вероятно, лучше придерживаться «составного ключа», если вы не обращаетесь конкретно к концепции ER-моделирования составного ключа.
источник
Я все еще не уверен, почему http://en.wikipedia.org/wiki/Compound_key не консультировались. Это очень ясно заявляет (и правильно):
Составной ключ состоит из элементов, которые могут быть или не быть внешними ключами. Пример: в таблице сведений о транзакции ключ (TransactionId, ItemNumber). Деталь транзакции - это сущность транзакции. TransactionId - это внешний ключ, ссылающийся на таблицу транзакций. ItemNumber не является ключом сам по себе. Он только однозначно идентифицирует элемент в контексте одной транзакции.
Составной ключ - это ключ, в котором любая часть ключа является внешним ключом. Пример: в системе бронирования отелей бронирование имеет составной ключ (GuestId, HotelId, ArrivalDate). GuestId идентифицирует гостя и ссылается на таблицу гостей. HotelId идентифицирует отель и ссылается на таблицу отелей. ArrivalDate идентифицирует дату. Может существовать или не быть таблица дат, на которую она ссылается, но она идентифицирует сущность (дату) в любом случае.
Также следует отметить этот фактоид: простой ключ - это ключ, состоящий из одного столбца, тогда как составной ключ состоит из двух или более столбцов.
источник
На английском это «составные ключи». Например, посмотрите на сайт MSDN (подойдет любой поиск, содержащий «составной ключ sql»).
http://www.google.com/search?q=sql+composite+key+site:msdn.microsoft.com
Предполагая, что вопрос касается реляционных баз данных, я искал «нейтральное» определение в Википедии :
источник
Составной ключ состоит из более чем одного атрибута для уникальной идентификации вхождения объекта. Это отличается от составного ключа тем, что один или несколько атрибутов, которые составляют ключ, сами по себе не являются простыми ключами.
Например, у вас есть база данных, содержащая вашу коллекцию CD. Одна из сущностей называется дорожками, которая содержит подробности дорожек на компакт-диске. У этого есть составной ключ названия компакт-диска, номера дорожки.
источник
Мне кажется, что составной ключ - это расширенный набор, который включает составные ключи. Если мы примем, что составной ключ состоит из более чем одного атрибута (любого типа), а составной ключ состоит из более чем одного простого ключа. Составной ключ - это тип составного ключа с более конкретным значением, но термин «составной» ключ всегда уместно использовать.
источник