Разложение в третью нормальную форму (3NF) - PullRequest
12 голосов
/ 06 декабря 2010
Scheme (R) = (A,B,C,D,E,F,G,H)

Function Dependencies (F) = {A->CGH, AD->C, DE->F, G->H}

Как бы я выполнил декомпозицию схемы R без потерь в соединении в третью нормальную форму?

Любая помощь будет оценена.

Ответы [ 2 ]

19 голосов
/ 06 декабря 2010

Поскольку A → CGH и Ax → C для любой буквы x, мы можем игнорировать вторую из функциональных зависимостей (AD → C), поскольку она ничего не говорит нам о том, что A → CGH также не говорит нам.

Нет ничего, что определяет B; нет ничего, что определяет D.

Поскольку G определяет H, а A определяет и G, и H, мы можем разделить G → H на отношение (существует транзитивная зависимость A → G и G → H).

R1 = { G, H }       : PK = { G }

Это оставляет F '= {A → CG, DE → F} и R' = (A, B, C, D, E, F, G).

Две оставшиеся функциональные зависимости могут образовывать еще два отношения:

R2 = { A, C, G }    : PK = { A }
R3 = { D, E, F }    : PK = { D, E }

То есть R '' = {A, B, D, E}

R4 = { A, B, D, E } : PK = { A, B, D, E }

Соединение R1, R2, R3 и R4 должно оставить вас с R, с которого вы начали, для любого начального значения R (которое удовлетворяет ограничениям данных функциональных зависимостей).

0 голосов
/ 11 ноября 2017

В общем, сначала вы должны получить минимальную обложку, а затем добавить ключ ABDE

...