В реляционной модели данных суперключе является набором атрибутов, который однозначно идентифицирует каждый кортеж из в отношении. Поскольку значения суперключа уникальны, кортежи с одинаковым значением суперключа должны также иметь одинаковые значения неключевых атрибутов. То есть неключевые атрибуты функционально зависят от суперключа.
Набор всех атрибутов всегда является суперключом ( тривиальным суперключом). Кортежи в отношении по определению уникальны, дубликаты удаляются после каждой операции, поэтому набор всех атрибутов всегда имеет уникальное значение для каждого кортежа. Ключ - кандидат (или минимальное суперключ) является суперключ, которая не может быть сведена к простому суперключ путем удаления атрибута.
Например, в схеме сотрудника с атрибутами employeeID, name, job и departmentID, если значения employeeID уникальны, то employeeID в сочетании с любым или всеми другими атрибутами может однозначно идентифицировать кортежи в таблице. Каждая комбинация {employeeID}, {employeeID, name}, {employeeID, name, job} и т. Д. Является суперключом. {employeeID} - это ключ-кандидат, ни одно из его атрибутов не является суперключом. {employeeID, name, job, departmentID} - это простой суперключ.
Если набор атрибутов К являются суперключи из соотношения R, то в любой момент времени это тот случай, когда проекция из R над K имеет ту же мощность, как R сами.
Имя монарха | Число монарха | Королевский дом |
---|---|---|
Эдвард | II | Плантагенет |
Эдвард | III | Плантагенет |
Ричард | III | Плантагенет |
Генри | IV | Ланкастер |
Сначала перечислите все наборы атрибутов:
Во-вторых, удалите все наборы, которые не соответствуют требованиям суперключа. Например, {Имя монарха, Королевский дом} не может быть суперключом, потому что для одних и тех же значений атрибутов (Эдвард, Плантагенет) существуют два разных кортежа:
Наконец, после исключения оставшиеся наборы атрибутов являются единственными возможными суперключами в этом примере:
В действительности суперключи не могут быть определены просто путем изучения одного набора кортежей в отношении. Суперключ определяет ограничение функциональной зависимости схемы отношения, которое должно выполняться для всех возможных отношений экземпляра этой схемы отношения.