Aller au contenu
Normalisation

FNBC (forme normale de Boyce-Codd)

Une table est en FNBC si toute dépendance fonctionnelle part d'une clé candidate. Plus stricte que la 3FN, elle n'en diffère qu'avec plusieurs clés candidates composées qui se chevauchent.

  • FNBC
  • BCNF
  • Boyce-Codd
  • clé candidate
  • dépendance

Syntaxe

Modèle
Pour toute dépendance X → Y (Y non inclus dans X) :X contient une clé candidate de la table

Exemple

Exemple concret
Règles : un moniteur n'enseigne qu'un sport ;un élève a un seul moniteur par sport.seance(eleve, sport, moniteur)  (eleve, sport) → moniteur    clés candidates : (eleve, sport)  moniteur → sport                                et (eleve, moniteur)→ en 3FN (sport appartient à une clé), mais pas en FNBC :  moniteur n'est pas une clé. Le sport de chaque moniteur  est répété pour chacun de ses élèves.Décomposition en FNBC :  moniteur(nom_moniteur PK, sport)  suivre(eleve, nom_moniteur FK → moniteur)    clé primaire = (eleve, nom_moniteur)

À retenir

  1. En pratique, une table en 3FN dont la seule clé candidate est la clé primaire est déjà en FNBC.
  2. Cherchez les cas suspects : plusieurs clés candidates composées qui partagent une colonne.
  3. La décomposition peut perdre une règle : ici, « un seul moniteur par sport pour un élève » ne se vérifie plus par une clé et demande un déclencheur ou un contrôle applicatif.
  4. Piège : décomposer à tout prix. Si la redondance est faible et la règle perdue importante, rester en 3FN est un choix défendable, à documenter.

Voir aussi