Разложение в третью нормальную форму (3NF)

Scheme (R) = (A,B,C,D,E,F,G,H)

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

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

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

вопрос задан 5.12.2010
Chris
61 репутация

2 ответов


  • 19 рейтинг

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

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

    Так как 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 (которое удовлетворяет ограничениям данных функциональных зависимостей).

    ответ дан Jonathan Leffler, с репутацией 546469, 5.12.2010
  • 1 рейтинг

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

    ответ дан overloading, с репутацией 69, 11.11.2017