Différence entre 3NF et BCNF

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 10 Peut 2024
Anonim
Différence entre 3NF et BCNF - La Technologie
Différence entre 3NF et BCNF - La Technologie

Contenu


Normalisation est une méthode qui supprime redondance à partir 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 d'une table 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.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

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 en Troisième forme normale seulement si la table est déjà en 2NF et il n'y a pas non prime attribut transitoirement dépendant 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é du candidat est super clé minimale c'est-à-dire une super clé avec un minimum d'attributs pouvant définir tous les attributs d'une relation. Ainsi, dans le processus de normalisation de votre table, vous reconnaissez d’abord la clé candidate d’une relation donnée. Les attributs qui font partie de la clé candidate sont attributs principaux, et les attributs qui ne font pas partie de la clé candidate sont 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, on peut en conclure que UN B est une clé candidate pour la relation R car, en utilisant la clé AB, nous pouvons rechercher la valeur de tout l'attribut d'une relation R. UN B devient attributs principaux comme ils font ensemble la clé candidate. Les attributs C, D, E, F devient non prime attributs 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

Mais, une dépendance transitive est observée parmi les dépendances fonctionnelles fournies, car l'attribut F ne dépend pas directement de la clé candidate UN B. Attribuer à la place F est transitoirement dépendant de la clé candidate UN B via attribut. 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. Relation R1 (A, B, C, D, E) a une clé de candidat UN B alors que, relation R2 (D, E) a comme clé candidate.

Définition de BCNF

BCNF est considéré comme le plus fort que 3NF. La relation R pour être en BCNF doit être en 3NF. Et partout où dépendance fonctionnelle non triviale A -> B tient dans la relation R, alors UNE Doit être un super clé de la relation R. Comme nous le savons, la super clé est une clé qui possède un seul attribut ou un ensemble d’attributs qui détermine l’ensemble des 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 ont des dépendances fonctionnelles suivantes.

En observant la relation R, on peut dire que UNE et BF sont clés du candidat de la relation R, car ils peuvent à eux seuls rechercher la valeur de tous les attributs de la relation R. A, B, F sont les premier attributs alors que C et sont non prime les attributs. 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 viole la définition de BCNF selon laquelle, si D -> F existe, alors devrait être le 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. Relation R1 a deux candidat clés UNE et B, la dépendance fonctionnelle triviale de R1, c’est-à-dire A-> BCD et B -> ACD, est valable pour BCNF car A et B sont les super-clés de la relation. Relation R2 a comme son clé candidate et la dépendance fonctionnelle D -> F est également valable pour BCNF car D est une super clé.

  1. 3NF stipule qu'aucun attribut non premier ne doit être dépendant 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. 3NF peut être atteint 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 qui aide à normaliser davantage le tableau. La relation dans 3NF a une redondance minimale qui est encore éliminée par le BCNF.