Algorithme de Bernstein
- X, Y, ... et A, B, C ensembles d'attributs.
- Données : R=(A1, A2, ... An) un schéma de relation et F un ensemble de df sur R.
- Résultat : une décomposition de R muni de F en schémas de relations 3NF SPI SPD
- Algorithme :
- On remplace F par sa couverture minimale. On cherche les clés minimales de R et on teste si R est en 3NF. Si oui on s'arrete sinon on continue.
- On regroupe les df X→Ai (1<=i<=p) ayant un même membre gauche. Pour chaque membre gauche X, on définit un schéma de relation contenant tous les attributs des df, soit RX=(X, A1, A2, ... Ap). Le schéma RX est muni de l'ensemble de df X→Ai
- Si aucun des schémas RX définis à l'étape 2 ne contient de clé de R, alors on ajoute un schéma RK=(K), où K est une clé minimale muni d'aucune df.
- Tous les Ri obtenus en (2.) sont bien en 3NF
- Le schéma RK assure une décomposition SPI
- La décomposition est trivialement SPD car la réunion des df des nouveaux schémas est F