Définition normale
Format normal : Le format normal est une sorte de connaissance en mathématiques discrètes. Il s'agit de résoudre le problème du stockage et de l'optimisation des données : après avoir sauvegardé les données, il peut. généralement, les données trouvées grâce aux relations ne seront pas stockées de manière répétée. Le but ultime est de réduire la redondance des données.
Contexte du paradigme :
1. Pour résoudre la redondance des données
2. Pour optimiser et stocker les données
3. Après la sauvegarde. les données, les données qui peuvent être obtenues grâce à la relation ne seront plus stockées
Concept de paradigme :
1. C'est une spécification d'une structure hiérarchique, divisé en 6 couches
2 Chaque couche est plus stricte que la couche précédente
3 Pour satisfaire le paradigme de la couche suivante, le principe est que la couche précédente
. 4. Le paradigme a une signification directrice dans la base de données, mais il n'est pas obligatoire de standardiser
5. La base de données doit non seulement prendre en compte les problèmes d'espace, mais aussi les problèmes d'efficacité. Généralement, la troisième couche est utilisée
.6. Paradigme à six couches, 1NF est le niveau le plus bas avec les exigences les plus faibles ; 6NF est le niveau le plus élevé et le plus strict
Il existe actuellement six paradigmes dans les bases de données relationnelles : première forme normale (1NF. ), deuxième forme normale (2NF) et troisième forme normale (3NF), forme normale Bascord (BCNF), quatrième forme normale (4NF) et cinquième forme normale (5NF, également connue sous le nom de forme normale parfaite). De manière générale, la base de données doit uniquement répondre à la troisième forme normale (3NF).
Première forme normale : assurez-vous que chaque colonne ne peut pas être subdivisée
Exigences
Lors de la conception d'un tableau pour stocker des données, si les champs conçus sont définis. dans le tableau Les données stockées nécessitent un traitement supplémentaire (fractionnement) avant d'être extraites et utilisées, donc la conception du tableau ne répond pas à la première forme normale
2. La première forme normale nécessite que les champs soient atomiques et non divisible
Par exemple :
Tableau de remplacement des conférenciers
Il n'y a aucun problème avec la conception du tableau ci-dessus : Mais si l'exigence est de connaître les données, il faut afficher un Quand l'enseignant commence-t-il à enseigner et quand finit-il :, alors le temps d'enseignement de remplacement doit être fractionné : il n'est pas conforme à 1NF, les données ne sont pas atomiques , et peut être à nouveau divisé.
Solution
Solution : Divisez le temps de tutorat en deux champs pour résoudre le problème.
Deuxième forme normale : assurez-vous que chaque colonne du tableau est liée à la clé primaire
Exigences
1 Dans le processus de conception de la table de données, s'il existe une clé primaire composite. key (clé primaire multi-champs), et les champs du tableau ne sont pas déterminés par la clé primaire entière, mais dépendent de En raison d'un champ dans la clé primaire (partie de la clé primaire)
2. Il y a un problème selon lequel le champ dépend de la partie de la clé primaire, appelée dépendance partielle
3. Le deuxième paradigme consiste à résoudre le problème de la conception des tables. Les dépendances partielles sont autorisées
Horaires des cours du professeur
Clé primaire composite : Maître de conférences+Classe
Dans le tableau ci-dessus : heure de remplacement, début et fin Les champs sont tous liés au courant clé primaire (professeur et classe), mais le sexe ne dépend pas de la classe, la classe ne dépend pas du professeur, le sexe ne dépend que du professeur et la classe ne dépend que de la classe. Il existe une dépendance partielle aux clés primaires de. genre et classe : dépendance partielle. N'est pas conforme à la deuxième forme normale.
Solution
Solution 1 : Le genre et le conférencier peuvent être transformés en tableaux séparés, et les classes et les salles de classe peuvent également être créées. dans des tables séparées.
Solution 2 : Annuler la clé primaire composite et utiliser la clé primaire logique
Clé primaire logique : aucune signification commerciale, telle qu'une clé primaire à incrémentation automatique
Clé primaire commerciale : sens commercial, par exemple, la table des personnes utilise le numéro d'identification comme clé primaire
Troisième forme normale : assurez-vous que chaque colonne est directement liée à la colonne de clé primaire, plutôt qu'indirectement liée
Exigences
1 , pour satisfaire la troisième forme normale, elle doit satisfaire la deuxième forme normale
2. Théoriquement, tous les champs d'une table devraient dépendre directement de la clé primaire. S'il y a un champ dans la conception de la table, il ne dépend pas directement de la clé primaire, mais s'appuie sur un certain champ non clé pour finalement obtenir une dépendance. la clé primaire. Cette relation de dépendance qui ne dépend pas directement de la clé primaire, mais s'appuie sur des champs de clé non primaires est appelée dépendance transitive
3. Troisième paradigme Il s'agit de résoudre le problème de la dépendance transitive
Le conférencier apporte l'horaire des cours
Clé primaire : ID
Dans le plan de conception ci-dessus : un conférencier dépendant du sexe existe, le conférencier dépend de la clé primaire ; la classe dépend de la classe, la classe dépend de la clé primaire : le sexe et la classe ont des dépendances transitives
Solution
Supprimez les champs avec des dépendances transitives et les champs dépendants eux-mêmes séparément pour former un A. table séparée, puis lorsque les informations correspondantes sont nécessaires, utilisez la clé primaire de la table d'entité correspondante pour l'ajouter
Horaire des cours du conférencier
Horaire des cours du conférencier. tableau
Table de classe
Anti-paradigme
Parfois, lors de la conception d'une table Parfois, s'il y a plusieurs champs dans une table qui doivent obtenir des informations d'une autre table, en théorie, les données souhaitées peuvent effectivement être obtenues, mais l'efficacité est moindre et d'autres tables ne seront délibérément pas enregistrées dans certaines tables. en enregistrant directement les informations de données souhaitées, une table peut fournir directement des données lors de l'interrogation de données sans avoir besoin de requêtes multi-tables ((faible efficacité), mais la redondance augmentera
Tutoriel vidéo MySQL recommandé, adresse : https://www.php.cn/course/list/51.html
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!