WikiDer > Суперключ

Superkey

А суперключ или же супер-ключ определяется в реляционная модель из база данных организация как набор атрибутов переменной отношения, для которых он утверждает, что во всех отношениях, назначенных этой переменной, нет двух различных кортежи (строки) с одинаковыми значениями атрибутов в этом наборе.[1] Его можно определить как набор атрибутов схема отношений на котором все атрибуты схемы функционально зависимый.

Набор все атрибуты - тривиальный суперключ, потому что в реляционная алгебра повторяющиеся строки не допускаются: строки представляют собой набор (без дубликатов), а не мультимножество (дубликаты разрешены). Супер-ключ также известен как супер-ключ.

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

Суперключ - это набор атрибутов в таблице, значения которых могут использоваться для однозначной идентификации кортежа. А кандидат ключ - минимальный набор атрибутов, необходимых для идентификации кортежа; это также называется минимальным суперключом. Учитывая схему сотрудника, состоящую из атрибутов employeeID, name, job, и DepartmentID, где никакое значение в атрибуте employeeID никогда не повторяется, мы могли бы использовать идентификатор employeeID в сочетании с любыми или всеми другими атрибутами этой таблицы, чтобы однозначно идентифицировать кортеж в стол. Примеры суперключей в этой схеме: {employeeID, Name}, {employeeID, Name, job} и {employeeID, Name, job, departmentID}. Последний пример известен как тривиальный суперключ, потому что он использует все атрибуты этой таблицы для идентификации кортежа.

В реальной базе данных нам не нужны значения для всех этих атрибутов для идентификации кортежа. В нашем примере нам нужен только набор {employeeID}. Это минимальный суперключ- то есть минимальный набор атрибутов, который можно использовать для идентификации одного кортежа. employeeID - это кандидат ключ.

Пример

Английские монархи
Имя монархаЧисло монархаКоролевский дом
ЭдвардIIПлантагенет
ЭдвардIIIПлантагенет
РичардIIIПлантагенет
ГенриIVЛанкастер

Сначала перечислите все наборы атрибутов:

• {}  
• {Имя монарха}
• {Число монарха}
• {Королевский дом}
• {Имя монарха, Номер монарха}
• {Имя монарха, Королевский дом}
• {Номер монарха, Королевский дом}
• {Имя монарха, Номер монарха, Королевский дом}

Во-вторых, удалите все наборы, которые не соответствовать требованиям суперключа. Например, {Имя монарха, Королевский дом} не может быть суперключом, потому что для одних и тех же значений атрибутов (Эдвард, Плантагенет) существует два разных кортежа:

  • (Эдвард, II, Плантагенет)
  • (Эдвард, III, Плантагенет)

Наконец, после исключения оставшиеся наборы атрибутов являются единственными возможными суперключами в этом примере:

  • {Имя монарха, номер монарха} (Ключ кандидата)
  • {Имя монарха, номер монарха, Королевский дом}

В действительности суперключи не могут быть определены просто путем изучения одного набора кортежей в отношении. Суперключ - это свойство переменной отношения, которое должно сохраняться для всех возможных значений и может быть определено только из функциональные зависимости которые применяются к этой переменной отношения.

Если отношение содержит n атрибутов, то максимальное возможное количество суперключей равно 2п.

Отношение степени n имеет 2п суперключей, когда ∅ кандидат ключ для этого отношения. Например:

Президент
ИмяПредполагаемый офис
Дональд Трамп2017-01-20

где ∅ → {Имя, Предполагаемая должность} - означает, что президентом может быть только один человек. У президента есть четыре суперклавиша:

• {}
• {Имя}
• {Предполагаемый офис}
• {Имя, Предполагаемый офис}

Смотрите также

Рекомендации

  • Зильбершатц, Абрахам (2011). Концепции системы баз данных (6-е изд.). Макгроу-Хилл. С. 45–46. ISBN 978-0-07-352332-3.
  1. ^ Введение в системы управления базами данных. Тата МакГроу-Хилл. 2005. с. 77. ISBN 9780070591196. нет двух кортежей в каких-либо правоотношениях

внешняя ссылка