Recommandé, 2024

Choix De L'Éditeur

Différence entre 3NF et BCNF

La normalisation est une méthode qui supprime la redondance d'une relation, minimisant ainsi les anomalies d'insertion, de suppression et de mise à jour qui dégradent les performances des bases de données. Dans cet article, nous distinguerons deux formes normales supérieures, à savoir 3NF et BCNF. La différence fondamentale entre 3NF et BCNF est que 3NF élimine la dépendance transitive d'une relation et qu'une table doit être dans BCNF, la dépendance fonctionnelle triviale X-> Y dans une relation doit être vérifiée, uniquement si X est la super clé.

Laissez-nous discuter des différences entre 3NF et BCNF à l'aide du tableau de comparaison ci-dessous.

Tableau de comparaison

Base de comparaison3NFBCNF
ConceptAucun attribut non primordial ne doit dépendre de manière transitoire de la clé candidate.Pour toute dépendance triviale dans une relation R, disons X-> Y, X devrait être une super clé de la relation R.
Dépendance3NF peut être obtenu sans sacrifier toutes les dépendances.Les dépendances ne peuvent pas être préservées dans BCNF.
DécompositionLa décomposition sans perte peut être réalisée en 3NF.La décomposition sans perte est difficile à réaliser en BCNF.

Définition de 3NF

Une table ou une relation est considérée comme étant dans la troisième forme normale uniquement si la table est déjà dans 2NF et qu’il n’existe aucun attribut non primordial dépendant de manière transitoire de la clé candidate d’une relation.

Donc, avant d’aborder le processus de normalisation d’une table dans 3NF, permettez-moi de discuter de la clé candidate. Une clé candidate est une super clé minimale, c’est-à-dire une super clé avec un minimum d’attributs permettant de définir tous les attributs d’une relation. Ainsi, dans le processus de normalisation de votre table, tout d’abord, vous reconnaissez la clé candidate d’une relation donnée. Les attributs qui font partie de la clé candidate sont des attributs principaux et les attributs qui ne font pas partie de la clé candidate sont des attributs non principaux .

Maintenant, si nous avons une relation R (A, B, C, D, E, F) et que nous avons des dépendances de fonction suivantes pour la relation R.

En observant les dépendances fonctionnelles, nous pouvons conclure que AB est une clé candidate pour la relation R car, à l'aide de la clé AB, nous pouvons rechercher la valeur de tous les attributs dans une relation R. Ainsi, A, B deviennent des attributs premiers lorsqu'ils forment ensemble une clé candidate. Les attributs C, D, E, F deviennent des attributs non premiers, car aucun d’eux n’est la partie d’une clé candidate.

La table est en 2NF car aucun attribut non principal n’est partiellement dépendant de la clé candidate

Cependant, une dépendance transitive est observée parmi les dépendances fonctionnelles fournies, l'attribut F n'étant pas directement dépendant de la clé candidate AB . Au lieu de cela, l'attribut F dépend de manière transitoire de la clé candidate AB via l'attribut D. Jusqu'à ce que l'attribut D ait une valeur que nous pouvons atteindre pour attribuer la valeur de F, à partir de la clé candidate AB. Si la valeur de l'attribut D est NULL, nous ne pouvons jamais trouver / rechercher la valeur de F à l'aide de la clé candidate AB. C'est la raison pour laquelle 3NF demande de supprimer la dépendance transitive des relations.

Ainsi, pour éliminer cette dépendance transitive, nous devons diviser la relation R. Lorsque vous divisez une relation, placez toujours la clé candidate et tous les attributs qui dépendent de cette clé candidate dans la première relation. Dans la relation suivante divisée, nous placerons l'attribut qui cause la dépendance transitive ainsi que les attributs qui en dépendent dans la deuxième relation.

Maintenant, les tables R1 et R2 sont dans 3NF car il ne reste aucune dépendance partielle et transitive. La relation R1 (A, B, C, D, E) a une clé candidate AB alors que la relation R2 (D, E) a D comme clé candidate.

Définition de BCNF

BCNF est considéré comme le plus fort que 3NF. La relation R pour être dans BCNF doit être dans 3NF . Et chaque fois qu'une dépendance fonctionnelle non triviale A -> B est maintenue dans la relation R, alors A doit être une super - clé de la relation R. Comme nous le savons, la clé Super est une clé qui possède un seul attribut ou ensemble d'attributs qui détermine attributs d'une relation.

Passons maintenant à un exemple pour mieux comprendre la BCNF. Supposons que nous ayons une relation R (A, B, C, D, F), qui a des dépendances fonctionnelles suivantes.

En observant la relation R, nous pouvons dire que A et BF sont des clés candidates de la relation R, car ils sont les seuls à pouvoir rechercher la valeur de tous les attributs de la relation R. Ainsi, A, B, F sont les attributs premiers, tandis que C et D sont des attributs non principaux . Aucune dépendance transitive n'est observée dans les dépendances fonctionnelles présentées ci-dessus. Par conséquent, la table R est dans 3NF.

Mais une dépendance fonctionnelle, c'est-à-dire D -> F, enfreint la définition de BCNF, selon laquelle, si D -> F existe, alors D devrait être la super clé, ce qui n'est pas le cas ici. Nous allons donc diviser la relation R.

Maintenant, les tables R1 et R2 sont en BCNF. La relation R1 a deux clés candidates A et B, la dépendance fonctionnelle triviale de R1, c'est-à-dire A-> BCD et B -> ACD, maintenues pour BCNF, car A et B sont les super-clés de la relation. La relation R2 a D comme clé candidate et la dépendance fonctionnelle D -> F est également valable pour BCNF, car D est une super clé.

Différences clés entre 3NF et BCNF

  1. 3NF stipule qu'aucun attribut non-premier ne doit être dépendant de manière transitoire de la clé candidate de la relation. De son côté, BCNF déclare que s'il existe une dépendance fonctionnelle triviale, X -> Y existe pour une relation; alors X doit être une super clé.
  2. 3NF peut être obtenu sans sacrifier la dépendance de la relation. Cependant, la dépendance peut ne pas être préservée lors de l'obtention du fichier BCNF.
  3. La 3NF peut être obtenue sans perdre aucune information de l'ancien tableau alors que, lors de l'obtention du BCNF, nous pouvons perdre certaines informations de l'ancien tableau.

Conclusion:

BCNF est beaucoup plus restrictif que 3NF, ce qui aide à normaliser davantage le tableau. La relation dans 3NF a une redondance minimale qui est encore éliminée par le BCNF.

Top