2015-04-26 1 views
0

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

Consider the relation R(A,B,C,D,E,F) with FD's: 
CDE -> B 
ACD -> F 
BEF -> C 
B -> D 
Which combination of attributes can form a key for R? 

Я не знаю, как даже начать. Из учебника, он сказал мне, чтобы сделать таблицу, как это:

Left | Middle | Right 
---------------------- 
AE | BCDF | 

Где «левый» относится только появляется на левой стороне зависимости и «средний» относится к появлению на левой и Правая сторона.

Оттуда я должен был найти замыкание A, E или AE, чтобы увидеть, закрытие которых бы заставить меня ABCDEF. Однако такого закрытия я не мог найти.

У кого-нибудь есть какие-либо советы по использованию этой проблемы или какие-либо лучшие идеи о том, как подойти к ее решению?

+0

Каждый учебник по реляционным базам данных содержит по крайней мере один алгоритм для определения каждого ключа-кандидата для отношения R. Что говорит ваш учебник? –

ответ

0

«Левые» атрибуты должны быть в любой клавише. Однако, поскольку вы указываете, что закрытие AE - это AE, вам нужно добавить дополнительные атрибуты для расширения AE и сделать его ключом.

Начнем с добавления B, то есть путем рассмотрения ABE. Закрытие ABE составляет ABDE за счет B -> D. Поскольку все еще есть атрибуты, которые мы не могли покрыть (C и F), нам нужно продолжить добавлять дополнительные атрибуты. Добавим C и рассмотрим ABCE. Затем замыкание ABCE составляет ABCDEF с B->D и ACD->F. Следовательно, ABCE является суперключем. Обратите внимание, что этот аргумент не означает, что ABCE является ключом-кандидатом (который, случается, в этом случае), поскольку он все еще может содержать избыточный атрибут.

Кроме того, это не означает, что ABCE уникален. Например, вместо добавления C мы могли бы добавить F и получить ABEF, который также является суперключем. Альтернативно вместо того, чтобы добавлять B, мы могли бы выбрать другой атрибут. Рассмотрим приведенную ниже диаграмму.

AE (AE)+ is not equal to (ABCDEF) hence add attributes: 
Option 1: Add B. (ABE)+ = (ABDE), not equal to (ABCDEF) hence add attributes: 
     Option 1.1 Add C. (ABCE)+ = (ABCDEF), report (ABCE) as a superkey 
     Option 1.2 Add F. (ABEF)+ = (ABCDEF), report (ABEF) as a superkey 
Option 2: Add C. (ACE)+ = (ACE), not equal to (ABCDEF) hence add attributes: 
     Option 2.1 Add B. This step is not needed since we have already discussed (ABCE) in 1.1 
     Option 2.2 Add D. (ACDE)+ = (ABCDEF), report (ACDE) as a superkey 
     Option 2.3 Add F. (ACEF)+ = (ACEF), not equal to (ABCDEF) hence add attributes: 
      Option 2.3.1. Add B. (ABCEF) contains (ABCE) already considered in 1.1, hence is a superkey. 
      Option 2.3.2. Add D. (ACDEF) contains (ACDE) already considered in 2.2, hence is a superkey. 
Option 3. Add D. 
     ... 
Option 4. Add F. 
     ... 
Смежные вопросы