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 :
- La décomposition de R(A, B, C) et S(A,B) et T(C,A) résoud le problème :
- 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.