Formas Normais de Relações

1ª Forma Normal:

Uma relação em 1ª FN não possui relações aninhadas nem atributos multivalorados.


Def: Dado X → A, A é dependente funcional parcial de X se existe um subconjunto Y de X, menor que X, tal que Y → A

Def: A é um "Atributo Não Primo (ANP)" de uma relação R se A não está contido em nenhuma chave de R

2ª Forma Normal:

Uma relação R está em 2ª FN se nenhum ANP de R é dependente funcional parcial de alguma chave de R

Fornecimentos ( numf, numat, preço, end_fornec )

onde:  (numf, numat) → preço,    numf → end_fornec

A relação Fornecimentos, acima, não está em 2ª FN.


Def: Se X → Y, Y -/->X, e Y → Z, dizemos que Z é "dependente transitivo forte" de X

3ª Forma Normal:

Numa relação R em 3ª FN nenhum ANP de R é "dependente transitivo forte" de qq chave de R

Na definição acima, Y -/->X (Y não determina X) é importante, porque se X e Y forem chaves de R, não haveria violação da 3ª FN.

A relação Funcionários, a seguir, não está em 3ª FN:

Funcionários ( numf, RG, nome, depto, nome_depto)

pois,   depto → nome_depto


Def: Se X contém Y então se diz que X → Y é uma "dependencia funcional trivial"

Forma Normal de Boyce-Codd (FNBC):

Uma relação está em FNBC se para toda df não trivial válida para R, X → Y, então X é uma chave de R (ou contém uma chave de R)

Corolário: Numa relação em FNBC as únicas dependências funcionais não triviais provêm de chaves de R