3NF contre BCNF
La normalisation est un processus qui est effectué pour minimiser les redondances présentes dans les données des bases de données relationnelles. Ce processus divisera principalement les grandes tables en tables plus petites avec moins de redondances. Ces petites tables seront liées les unes aux autres par des relations bien définies. Dans une base de données bien normalisée, toute altération ou modification des données nécessitera la modification d'une seule table. La troisième forme normale (3NF) a été introduite en 1971 par Edgar F. Codd, qui est également l'inventeur du modèle relationnel et du concept de normalisation. La forme normale de Boyce-Codd (BCNF) a été introduite en 1974 par Codd et Raymond F. Boyce.
Qu'est-ce que 3NF ?
3NF est la troisième forme normale utilisée dans la normalisation des bases de données relationnelles. Selon la définition de Codd, une table est dite en 3NF, si et seulement si, cette table est dans la deuxième forme normale (2NF), et chaque attribut de la table qui n'appartient pas à une clé candidate doit dépendre directement de chaque clé candidate de cette table. En 1982, Carlo Zaniolo a produit une définition exprimée différemment pour 3NF. Les tables conformes au 3NF ne contiennent généralement pas d'anomalies qui se produisent lors de l'insertion, de la suppression ou de la mise à jour d'enregistrements dans la table.
Qu'est-ce que le BCNF ?
BCNF (également connu sous le nom de 3.5NF) est une autre forme normale utilisée dans la normalisation des bases de données relationnelles. Il a été introduit pour capturer certaines anomalies qui ne sont pas traitées par le 3NF. Une table est dite en BCNF, si et seulement si, pour chacune des dépendances de la forme A → B non triviales, A est une super-clé. Décomposer une table qui n'est pas sous la forme normale BCNF ne garantit pas la production de tables sous la forme BCNF (tout en conservant les dépendances qui étaient présentes dans la table d'origine).
Quelle est la différence entre 3NF et BCNF ?
3NF et BCNF sont des formes normales utilisées dans les bases de données relationnelles pour minimiser les redondances dans les tables. Dans une table qui est dans la forme normale BCNF, pour chaque dépendance fonctionnelle non triviale de la forme A → B, A est une super-clé alors qu'une table conforme à 3NF devrait être dans la 2NF, et chaque non premier L'attribut doit dépendre directement de chaque clé candidate de cette table. Le BCNF est considéré comme une forme normale plus forte que le 3NF et il a été développé pour capturer certaines des anomalies qui ne pouvaient pas être capturées par le 3NF. L'obtention d'une table conforme au formulaire BCNF nécessitera de décomposer une table qui se trouve dans le 3NF. Cette décomposition entraînera des opérations de jointure supplémentaires (ou produits cartésiens) lors de l'exécution des requêtes. Cela augmentera le temps de calcul. En revanche, les tables conformes à BCNF auraient moins de redondances que les tables conformes uniquement à 3NF. De plus, la plupart du temps, il est possible d'obtenir une table conforme à 3NF sans entraver la préservation des dépendances et la jointure sans perte. Mais ce n'est pas toujours possible avec BCNF.