Поиск замыкания атрибута и ключей-кандидатов с помощью функциональных зависимостей

Опубликовано: 19 Августа, 2021

Что такое функциональная зависимость?

Функциональная зависимость X-> Y в отношении сохраняется, если два кортежа, имеющие одинаковое значение для X, также имеют одинаковое значение для Y, т.е. X однозначно определяет Y.

В отношении СОТРУДНИК, приведенном в таблице 1,

  • FD E-ID-> E-NAME сохраняется, потому что для каждого E-ID существует уникальное значение E-NAME.
  • Также действуют FD E-ID-> E-CITY и E-CITY-> E-STATE .
  • FD E-NAME-> E-ID не сохраняется, потому что E-NAME 'John' не определяет E-ID однозначно. Джону соответствуют 2 E-ID (E001 и E003).

РАБОТНИК

E-ID E-NAME E-CITY ИМУЩЕСТВО
E001 Джон Дели Дели
E002 Мэри Дели Дели
E003 Джон Нойда ВВЕРХ

Таблица 1

Набор FD для отношения EMPLOYEE, приведенный в таблице 1:

{E-ID-> E-NAME, E-ID-> E-CITY, E-ID-> E-STATE, E-CITY-> E-STATE}

Тривиальная и нетривиальная функциональная зависимость: тривиальная функциональная зависимость - это та, которая всегда будет сохраняться в отношении.

 X-> Y всегда будет выполняться, если X ⊇ Y

В приведенном выше примере E-ID, E-NAME-> E-ID - это тривиальная функциональная зависимость, которая всегда будет выполняться, потому что {E-ID, E-NAME} ⊃ {E-ID}. Из таблицы также видно, что для каждого значения {E-ID, E-NAME} значение E-ID уникально, поэтому {E-ID, E-NAME} функционально определяет E-ID.

Если функциональная зависимость нетривиальна, она называется нетривиальной функциональной зависимостью . Нетривиальная функциональная зависимость может иметь место в отношении, а может и не сохраняться. например; E-ID-> E-NAME - это нетривиальная функциональная зависимость, которая сохраняется в указанном выше отношении.

Свойства функциональных зависимостей

Пусть X , Y и Z - наборы атрибутов в отношении R. Есть несколько свойств функциональных зависимостей, которые всегда выполняются в R, также известные как аксиомы Армстронга.

  1. Рефлексивность : если Y является подмножеством X , то XY. например; Пусть X представляет {E-ID, E-NAME}, а Y представляет {E-ID}. {E-ID, E-NAME} -> E-ID верен для отношения.
  2. Увеличение : если XY , то XZYZ. например; Пусть X представляет {E-ID}, Y представляет {E-NAME}, а Z представляет {E-CITY}. Поскольку {E-ID} -> E-NAME истинно для отношения, поэтому {E-ID, E-CITY} -> {E-NAME, E-CITY} также будет истинным.
  3. Транзитивность : если XY и YZ , то XZ. например; Пусть X представляет {E-ID}, Y представляет {E-CITY}, а Z представляет {E-STATE}. Поскольку {E-ID} -> {E-CITY} и {E-CITY} -> {E-STATE} истинны для отношения, поэтому {E-ID} -> {E-STATE} также будет истинным.
  4. Замыкание атрибута: набор атрибутов, которые функционально зависят от атрибута A, называется закрытием атрибута A и может быть представлен как A + .

Шаги, чтобы найти закрытие атрибута A

Q. Для данного набора FD отношения R набор закрытия атрибута S будет набором A

  1. Добавьте A к S.
  2. Рекурсивно добавлять атрибуты, которые могут быть функционально определены из атрибутов набора S, пока не будет выполнено.

Из Таблицы 1 ФД

Учитывая R ( E-ID , E-NAME, E-CITY, E-STATE)

 FDs = {E-ID-> E-NAME, E-ID-> E-CITY, E-ID-> E-STATE, E-CITY-> E-STATE}

Закрытие атрибута E-ID можно рассчитать как:

  1. Добавьте E-ID в набор {E-ID}
  2. Добавьте атрибуты, которые могут быть производными от любого атрибута набора. В этом случае E-NAME и E-CITY, E-STATE могут быть получены из E-ID. Так что это тоже часть закрытия.
  3. Поскольку остается еще один атрибут, который должен быть получен из E-ID. Итак, результат:
 (E-ID) + = {E-ID, E-NAME, E-CITY, E-STATE}

По аналогии,

 (E-NAME) + = {E-NAME}
(E-CITY) + = {E-CITY, E_STATE}

Q. Найдите закрытие атрибутов данных FD R (ABCDE) = {AB-> C, B-> D, C-> E, D-> A} Чтобы найти (B) + , мы добавим атрибут в набор, используя различные FD, который показан в таблице ниже. 

Атрибуты, добавленные при закрытии FD используется
{B} Мелочь
{B, D} B-> D
{B, D, A} D-> А
{B, D, A, C} AB-> C
{B, D, A, C, E} C-> E
      • Мы можем найти (C, D) + , добавив C и D в набор (тривиальность), а затем E, используя (C-> E), а затем A, используя (D-> A), и set станет.
         (C, D) + = {C, D, E, A}
      • Точно так же мы можем найти (B, C) + , добавив B и C в набор (тривиальность), а затем D, используя (B-> D), а затем E, используя (C-> E), а затем A, используя (D-> A ) и набор становится
         (B, C) + = {B, C, D, E, A}

Ключ кандидата

Ключ кандидата - это минимальный набор атрибутов отношения, который можно использовать для однозначной идентификации кортежа. Например, каждый кортеж отношения EMPLOYEE, приведенный в таблице 1, можно однозначно идентифицировать по E-ID, и он также минимален. Так что это будет Кандидатский ключ отношения.

Ключ кандидата может быть или не быть первичным ключом.

Супер ключ

Супер ключ - это набор атрибутов отношения, которые можно использовать для однозначной идентификации кортежа. Например, каждый кортеж отношения EMPLOYEE, приведенный в таблице 1, может быть однозначно идентифицирован по E-ID или (E-ID, E-NAME) или (E-ID, E-CITY) или (E-ID, E-STATE) или (E_ID, E-NAME, E-STATE) и т. Д. Итак, все это суперключи отношения EMPLOYEE.

 Примечание: ключ-кандидат всегда является суперключом, но наоборот, неверно.

В. Нахождение ключей-кандидатов и суперключей отношения с использованием набора FD Набор атрибутов , закрытие атрибута которого установлено для всех атрибутов отношения, называется суперключом отношения. Например, отношение EMPLOYEE, показанное в таблице 1, имеет следующий набор FD. {E-ID-> E-NAME, E-ID-> E-CITY, E-ID-> E-STATE, E-CITY-> E-STATE} Рассчитаем закрытие атрибутов для различных наборов атрибутов:

 (E-ID) + = {E-ID, E-NAME, E-CITY, E-STATE}
(E-ID, E-NAME) + = {E-ID, E-NAME, E-CITY, E-STATE}
(E-ID, E-CITY) + = {E-ID, E-NAME, E-CITY, E-STATE}
(E-ID, E-STATE) + = {E-ID, E-NAME, E-CITY, E-STATE}
(E-ID, E-CITY, E-STATE) + = {E-ID, E-NAME, E-CITY, E-STATE}
(E-NAME) + = {E-NAME}
(E-CITY) + = {E-CITY, E-STATE}

Как (E-ID) + , (E-ID, E-NAME) + , (E-ID, E-CITY) + , (E-ID, E-STATE) + , (E-ID, E-CITY, E-STATE) + укажите набор всех атрибутов отношения EMPLOYEE. Итак, все это суперключи отношений.

Минимальный набор атрибутов , закрытие атрибута которого является набором всех атрибутов отношения, называется кандидатным ключом отношения. Как показано выше, (E-ID) + - это набор всех атрибутов отношения, и он минимален. Таким образом, E-ID будет ключом кандидата. С другой стороны (E-ID, E-NAME) + также является набором всех атрибутов, но не минимальным, потому что его подмножество (E-ID) + равно набору всех атрибутов. Таким образом, (E-ID, E-NAME) не является возможным ключом.


Статья предоставлена Sonal Tuteja. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.