L3 Info : SGBD
 
◃  Ch. 4 Le Modèle Relationnel : df et formes normales  ▹
 

Forme normale de Boyce-Codd (BCNF)

  • Relations en BCNF : 3NF et tout attribut non clé n'est pas source de df vers une partie de la clé.
  • Un schéma en 3NF qui n'admet qu'une clé minimale est en BCNF
  • Un schéma R muni d'une seule df de la forme X→Y, avec X∪Y=R est en BCNF
  • Une relation est en BCNF si et seulement si tous les membres gauches de ses df sont des clés.
  • Exemple :
    • Soit R(A, B, C) un schéma de relation muni de F = {AB→C ; C→A}
    • AB et BC sont les 2 clés minimales de R
    • R est 2NF car toutes les df sont élémentaires
    • R est 3NF car aucun attribut non clé ne dépend d'un autre attribut non clé
    • R n'est pas en BCNF à cause de C→A : C non clé source d'une df vers A partie de la clé
    • Illustre une redondance potentielle :
      ABC
      a1b1c1
      a1b2c1
    • La décomposition de R(A, B, C) et S(A,B) et T(C,A) résoud le problème :
      AB
      a1b1
      a1b2
      AC
      a1c1
  • Exemple :Soit une relation Recolte(vigneron, année, quantité, vin)
    muni de FRecolte = { (vigneron, année)→quantité ; (vigneron, année)→vin ; vin→vigneron }
  • Forme normale de Récolte
    • (vigneron, année) est une clé minimale (trivial)
    • Recolte est en 2NF car aucune df ne dépend d'une partie de la clé
    • Recolte est en 3NF car vigneron est une partie de la clé
    • vin→vigneron avec vin non clé et vigneron partie de la clé (attribut premier) donc la relation n'est pas BCNF
  • En décomposant Recolte(vigneron,annee,quantite) et Vin(vin,vigneron) on obtient des relations en BCNF.