3NF vs BCNF
La normalisation est un processus qui est effectué pour minimiser les redondances qui sont présentes dans les données dans les bases de données relationnelles. Ce processus divisera principalement les grandes tables dans des tables plus petites avec moins de redondances. Ces tables plus petites seront liées les unes aux autres à travers des relations bien définies. Dans une base de données bien normalisée, toute modification ou modification des données nécessitera de modifier un seul tableau. 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 le 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 de la base de données relationnelle. Selon la définition du CODD, un tableau est dit en 3NF, si et seulement si, ce tableau est dans la deuxième forme normale (2NF), et chaque attribut du tableau qui n'appartient pas à une clé candidate devrait dépendre directement de Chaque clé candidate de ce tableau. En 1982, Carlo Zaniolo a produit une définition exprimée différemment pour 3NF. Les tableaux 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 des enregistrements dans le tableau.
Qu'est-ce que BCNF?
BCNF (également connu sous le nom de 3.5nf) est une autre forme normale utilisée dans la normalisation de la base de données relationnelle. Il a été introduit pour capturer certaines anomalies qui ne sont pas abordées par le 3NF. Un tableau serait en BCNF, si et seulement si, pour chacune des dépendances de la forme A → B qui ne sont pas triviales, A est un super-clé. La décomposition d'une table qui n'est pas sous la forme normale du BCNF ne garantit pas la production de tables sous la forme BCNF (tout en préservant les dépendances qui étaient présentes dans le tableau d'origine).
Quelle est la différence entre 3NF et BCNF?
Le 3NF et le BCNF sont tous deux des formes normales qui sont utilisées dans les bases de données relationnelles pour minimiser les redondances des tableaux. Dans un tableau qui se trouve sous la forme normale du BCNF, pour chaque dépendance fonctionnelle non triviale de la forme A → B, A est une touche super tandis que un tableau qui est conforme à la 3NF devrait être dans le 2NF, et tous les non-prismes L'attribut doit dépendre directement de chaque clé candidate de ce tableau. 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 n'ont pas pu être capturées par 3NF. L'obtention d'un tableau conforme au formulaire BCNF nécessitera de décomposer une table qui se trouve dans le 3NF. Cette décomposition se traduira par des opérations de jointure supplémentaires (ou des produits cartésiens) lors de l'exécution de requêtes. Cela augmentera le temps de calcul. D'un autre côté, les tables conformes au BCNF auraient moins de redondances que les tables qui ne respectent que le 3NF. En outre, la plupart du temps, il est possible d'obtenir un tableau conforme à la 3NF sans entraver la préservation des dépendances et l'adhésion sans perte. Mais ce n'est pas toujours possible avec BCNF.