Forme normale de Boyce-Codd

Introduction

La forme normale de Boyce-Codd permet d'éliminer les dépendances entre les attributs n'appartenant pas à une clé vers les parties de clé.

DéfinitionBCNF

Une relation est en BCNF[1] si elle est en 3NF[2] et si tout attribut qui n'appartient pas à une clé n'est pas source d'une DF[3] vers une partie d'une clé. C'est à dire que les seules DFE[4] existantes sont celles dans lesquelles une clé détermine un attribut.

ExempleEmployés

Soit la relation Personne :

Lire le code
1
Personne(#N°SS, #Pays, Nom, Région) 

Soit les DF suivantes sur cette relation :

  • N°SS,Pays→Nom

    N°SS,Pays→Région

    Région→Pays

Il existe une DFE qui n'est pas issue d'une clé et qui détermine un attribut appartenant à une clé. Cette relation est en 3NF, mais pas en BCNF (car en BCNF toutes les DFE sont issues d'une clé).

Pour avoir un schéma relationnel en BCNF, il faut décomposer Personne :

Lire le code
1
Personne(#N°SS, #Region=>Region, Nom) 
2
Region(#Region, Pays)

Remarquons que les DF n'ont pas été préservées par la décomposition puisque N°SS et Pays ne déterminent plus Région.

RemarqueSimplicité

La BCNF est la forme normale la plus facile à appréhender intuitivement et formellement, puisque les seules DFE existantes sont de la forme K→A où K est une clé.

AttentionNon préservation des DF

Une décomposition en BCNF ne préserve pas toujours les DF.