Рубрики

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

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

Функциональная зависимость 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. Есть два E-ID, соответствующих Джону (E001 и E003).

СОТРУДНИК

E-IDE-NAMEE-CITYE-STATE
E001JohnDelhiDelhi
E002MaryDelhiDelhi
E003JohnNoidaU.P.

Таблица 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 FDs

Данные 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, который был показан в таблице ниже.  

Attributes Added in ClosureFD used
{B}Triviality
{B,D}B->D
{B,D,A}D->A
{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, и он также минимален. Так что это будет ключ-кандидат в отношениях.

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

Супер Ключ

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

Note: A candidate key is always a super key but vice versa is not true.

Q. Поиск ключей-кандидатов и супер-ключей отношения с использованием набора 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. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

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

0.00 (0%) 0 votes