Normalisation-2NF vs 3NF

luttant pour voir les différences entre eux. Je sais que nous disons 2FN est "la clé" et 3FN "rien, mais la clé".

Référencement ce super réponse par Smashery: Ce sont 1FN, 2FN et 3FN en conception de base de données?

l'exemple utilisé pour 3NF est exactement le même que 2NF - c'est un champ qui dépend d'un seul attribut clé. Comment est l'exemple pour 3FN différent de celui pour 2FN?

Merci

24
demandé sur Community 0000-00-00 00:00:00

4 réponses

supposons qu'une relation satisfasse une dépendance fonctionnelle non triviale de la forme A->B, où B est un attribut non primitif.

2FN est violé si A n'est pas un superkey mais est un sous-ensemble propre d'une clé candidate

3NF est violé si A n'est pas un superkey

vous avez remarqué que l'exigence 3NF est juste un cas spécial (mais pas vraiment si spécial) de l'exigence 2NF. 2NF en soi n'est pas très important. Le la question importante est de savoir si A est une super-clé, et non si A est simplement une partie d'une clé candidate.

10
répondu sqlvogel 2018-07-25 12:53:59

puisque vous posez une question très spécifique sur une réponse pour existant ainsi question voici une explication de cela (et fondamentalement, je vais dire ce que dportas déjà dit dans sa réponse, mais en plus de mots).

les exemples de dessin ou modèle qui n'est pas dans 2NF et pas dans 3NF ne sont pas les mêmes.

Oui, la dépendance, dans les deux cas sur un seul champ.

toutefois, dans l'exemple non 2NF:

  • la dépendance est sur la partie de la clé primaire

dans l'exemple non 3NF (qui est dans 2NF):

  • la dépendance est un champ qui est pas une partie de la clé primaire (et aussi de remarquer que dans cet exemple, il satisfait 2FN; c'est pour montrer que même si vous vérifiez pour 2FN vous devriez également vérifier pour 3FN)

dans les deux cas pour normaliser vous créeriez une table supplémentaire qui ne montrerait pas d'anomalies de mise à jour (exemple d'anomalie de mise à jour: dans l'exemple 2NF, que se passe-t-il si vous mettez à jour Coursename pour IT101|2009-2 , mais pas pour IT101|2009-1 ? Vous obtenez incompatible=sens=données inutilisables).

donc, si vous mémorisez la clé, la clé entière et rien que la clé , qui couvre à la fois 2NF et 3NF, qui devrait fonctionner pour vous dans la pratique lors de la normalisation. La distinction entre 2NF et 3NF peut vous sembler subtile (question si dans la dépendance supplémentaire l'attribut(s) sur lequel les données dépendent font partie de la clé candidate ou non) - et, bien, il est - donc il suffit de l'accepter.

8
répondu Unreason 2017-05-23 12:18:05

2NF permet aux attributs non prime d'être fonctionnellement dépendants des attributs non prime

mais

3NF permet aux attributs non-prime d'être fonctionnellement dépendants uniquement de la super-clé

ainsi, quand une table est en 3NF elle est en 2NF et 3NF est plus stricte que 2NF

Espérons que cette aide...

6
répondu Lordferrous 2015-05-06 10:54:05

vous avez atteint le 3ème NF quand il n'y a pas de relations entre la clé et les autres colonnes qui ne dépendent pas de lui.

Pas sûr que mon professeur aurait dit que comme cela, mais c'est ce qu'il est.

si vous

2
répondu