Ce sont à la base de données de formes normales et pouvez-vous donner des exemples?
Dans la base de données relationnelle de la conception, il existe un concept de normalisation de base de données ou tout simplement de normalisation, qui est un processus d'organisation des colonnes (attributs) et des tables (relations) afin de réduire la redondance des données et d'améliorer l'intégrité des données. (comme écrit sur Wikipédia).
Comme la plupart des articles sont un peu techniques et donc plus difficile à comprendre, je demande à quelqu'un pour écrire le plus facile à comprendre des explications fondées sur des exemples sur ce que 1FN, 2FN, 3FN, voire 3,5 NF (Boyce-Codd) moyenne.
Vous devez vous connecter pour publier un commentaire.
1FN est le plus fondamental des formes normales - chaque cellule dans un tableau doit contenir qu'un seul élément d'information, et il ne peut y avoir de doublons.
2FN et 3FN sont tous à propos de la dépendance sur la clé primaire. Rappelons qu'une clé primaire peut être composée de plusieurs colonnes. Comme Chris l'a dit dans sa réponse:
Données repose sur la touche [1FN], l'ensemble de la touche [2FN] et de rien, mais la touche [3FN] (aidez-moi donc Codd).
2FN
Dire que vous avez un tableau contenant les cours qui sont prises dans un certain semestre, et vous avez les données suivantes:
C'est pas en 2FN, parce que la quatrième colonne ne s'appuie pas sur la ensemble clé - mais seulement une partie. Le nom du cours est dépendante sur le terrain de l'ID, mais n'a rien à voir avec semestre, il est pris dans. Donc, comme vous pouvez le voir, nous avons des informations en double - plusieurs lignes pour nous dire que IT101 est de la programmation, et IT102 Bases de données. Nous avons donc corrigé que par le mouvement du cours nom dans une autre table, où CourseID est la TOTALITÉ de la clé.
Pas de redondance!
3FN
D'accord, alors disons que nous avons également ajouter le nom de l'enseignant du cours, et quelques détails à son sujet, dans les SGBDR:
Maintenant, espérons-le, il devrait être évident que TeacherName dépend de TeacherID - donc, c'est pas en 3FN. Pour résoudre ce problème, nous en faire de même comme nous l'avons fait en 2FN - prendre la TeacherName champ de cette table, et de le mettre dans son propre, qui a TeacherID comme clé.
Pas de redondance!!
Une chose importante à retenir est que si quelque chose n'est pas en 1FN, il n'est pas en 2FN ou 3FN soit. Donc, chaque Forme Normale nécessite tout que le bas de formes normales avait, en plus de certaines conditions supplémentaires, qui doivent tous être remplies.
Je n'ai jamais eu une bonne mémoire pour la formulation exacte, mais dans ma base de données de la classe, je pense que le professeur a toujours dit quelque chose comme:
The data depends on the key [1NF], nothing but the key [3NF]
? Veuillez ne pas nous confondre, comme 1 sentense réponse ne marche pas préciser la réponse, mais confondre les visiteurs!Voici un rapide, certes massacrés réponse, mais dans une phrase:
1FN : Votre table est organisé comme un non-ordonnée ensemble de données, et il n'y a pas de répéter les colonnes.
2FN: Vous ne répétez pas les données dans une colonne de votre table à cause d'une autre colonne.
3FN: Chaque colonne de votre tableau ne concerne que votre table de clés -- vous n'auriez pas une colonne dans une table qui décrit une autre colonne de la table qui n'est pas la clé.
Pour plus de détails, voir wikipédia...
1FN: une Seule valeur par colonne
2FN: Tous les non colonnes de clé primaire dans la table dépend de l'ensemble de la clé primaire.
3FN: Tous les non colonnes de clé primaire dans la table doit dépendre DIRECTEMENT sur l'ensemble de la clé primaire.
J'ai écrit un article plus en détail sur ici