Qu'est-ce que la normalisation? Exemple de base de données 1NF, 2NF, 3NF, BCNF

Table des matières:

Anonim

Qu'est-ce que la normalisation?

La normalisation est une technique de conception de base de données qui réduit la redondance des données et élimine les caractéristiques indésirables telles que les anomalies d'insertion, de mise à jour et de suppression. Les règles de normalisation divisent les tables plus grandes en tables plus petites et les relient à l'aide de relations. Le but de la normalisation en SQL est d'éliminer les données redondantes (répétitives) et de garantir que les données sont stockées de manière logique.

L'inventeur du modèle relationnel Edgar Codd a proposé la théorie de la normalisation des données avec l'introduction de la première forme normale, et il a continué à étendre la théorie avec la deuxième et la troisième forme normale. Plus tard, il a rejoint Raymond F. Boyce pour développer la théorie de Boyce-Codd Normal Form.

Formulaires normaux de la base de données

Voici une liste de formes normales

  • 1NF (première forme normale)
  • 2NF (deuxième forme normale)
  • 3NF (troisième forme normale)
  • BCNF (forme normale Boyce-Codd)
  • 4NF (quatrième forme normale)
  • 5NF (cinquième forme normale)
  • 6NF (sixième forme normale)

La théorie de la normalisation des données dans SQL Server est encore en cours de développement. Par exemple, il y a des discussions même sur la 6 e forme normale. Cependant, dans la plupart des applications pratiques, la normalisation atteint son maximum dans la 3 ème forme normale . L'évolution des théories de normalisation SQL est illustrée ci-dessous:

Formulaires normaux de la base de données

Normalisation de la base de données avec des exemples

L' exemple de normalisation de base de données peut être facilement compris à l'aide d'une étude de cas. Supposons qu'une vidéothèque conserve une base de données des films loués. Sans aucune normalisation dans la base de données, toutes les informations sont stockées dans une table comme indiqué ci-dessous. Comprenons la normalisation dans la base de données avec l'exemple de tables:

Ici, vous voyez que la colonne Films loués a plusieurs valeurs. Passons maintenant aux 1ères formes normales:

Règles 1NF (First Normal Form)

  • Chaque cellule du tableau doit contenir une seule valeur.
  • Chaque enregistrement doit être unique.

Le tableau ci-dessus dans 1NF-

Exemple 1NF

Avant de continuer, comprenons quelques choses -

Qu'est-ce qu'une CLE?

Une KEY est une valeur utilisée pour identifier un enregistrement dans une table de manière unique. Une clé peut être une seule colonne ou une combinaison de plusieurs colonnes

Remarque: les colonnes d'une table qui ne sont PAS utilisées pour identifier un enregistrement de manière unique sont appelées colonnes non clés.

Qu'est-ce qu'une clé primaire?

Un primaire est une valeur de colonne unique utilisée pour identifier un enregistrement de base de données de manière unique.

Il a les attributs suivants

  • Une clé primaire ne peut pas être NULL
  • Une valeur de clé primaire doit être unique
  • Les valeurs de clé primaire doivent rarement être modifiées
  • La clé primaire doit recevoir une valeur lorsqu'un nouvel enregistrement est inséré.

Qu'est-ce que la clé composite?

Une clé composite est une clé primaire composée de plusieurs colonnes utilisée pour identifier un enregistrement de manière unique

Dans notre base de données, nous avons deux personnes avec le même nom Robert Phil, mais elles vivent à des endroits différents.

Par conséquent, nous avons besoin à la fois du nom complet et de l'adresse pour identifier un enregistrement de manière unique. C'est une clé composite.

Passons à la deuxième forme normale 2NF

Règles 2NF (Second Normal Form)

  • Règle 1 - Être en 1NF
  • Règle 2 - Clé primaire à colonne unique

Il est clair que nous ne pouvons pas avancer pour créer notre base de données simple sous forme de 2 ème normalisation à moins de partitionner la table ci-dessus.

Nous avons divisé notre table 1NF en deux tables à savoir. Tableau 1 et tableau 2. Le tableau 1 contient des informations sur les membres. Le tableau 2 contient des informations sur les films loués.

Nous avons introduit une nouvelle colonne appelée Membership_id qui est la clé primaire de la table 1. Les enregistrements peuvent être identifiés de manière unique dans le tableau 1 en utilisant l'ID d'appartenance

Base de données - Clé étrangère

Dans le tableau 2, Membership_ID est la clé étrangère

La clé étrangère fait référence à la clé primaire d'une autre table! Cela aide à connecter vos tables

  • Une clé étrangère peut avoir un nom différent de sa clé primaire
  • Cela garantit que les lignes d'une table ont des lignes correspondantes dans une autre
  • Contrairement à la clé primaire, elles n'ont pas besoin d'être uniques. Le plus souvent, ils ne le sont pas
  • Les clés étrangères peuvent être nulles même si les clés primaires ne peuvent pas

Pourquoi avez-vous besoin d'une clé étrangère?

Supposons qu'un novice insère un enregistrement dans le tableau B tel que

Vous ne pourrez insérer dans votre clé étrangère que des valeurs qui existent dans la clé unique de la table parent. Cela contribue à l'intégrité référentielle.

Le problème ci-dessus peut être surmonté en déclarant l'ID d'appartenance de Table2 en tant que clé étrangère de l'ID d'appartenance de Table1

Maintenant, si quelqu'un essaie d'insérer une valeur dans le champ d'identification d'appartenance qui n'existe pas dans la table parent, une erreur sera affichée!

Que sont les dépendances fonctionnelles transitives?

Une dépendance fonctionnelle transitive se produit lors de la modification d'une colonne non clé, peut entraîner la modification de l'une des autres colonnes non clés

Considérez le tableau 1. Changer la colonne non-clé Nom complet peut changer Salutation.

Passons à 3NF

Règles 3NF (troisième forme normale)

  • Règle 1 - Être en 2NF
  • Règle 2 - N'a pas de dépendances fonctionnelles transitives

Pour déplacer notre table 2NF en 3NF, nous devons à nouveau diviser notre table.

Exemple 3NF

Voici un exemple 3NF dans la base de données SQL:

Nous avons à nouveau divisé nos tables et créé une nouvelle table qui stocke les salutations.

Il n'y a pas de dépendances fonctionnelles transitives, et donc notre table est en 3NF

Dans le tableau 3, l'ID de salutation est la clé primaire, et dans le tableau 1, l'ID de salutation est étranger à la clé primaire du tableau 3

Maintenant, notre petit exemple est à un niveau qui ne peut plus être décomposé pour atteindre des formes normales plus élevées de normalisation. En fait, il est déjà sous des formes de normalisation plus élevées. Des efforts séparés pour passer aux niveaux suivants de normalisation des données sont normalement nécessaires dans les bases de données complexes. Cependant, nous discuterons brièvement des prochains niveaux de normalisation dans ce qui suit.

BCNF (forme normale Boyce-Codd)

Même lorsqu'une base de données est en 3 ème forme normale, des anomalies se produiraient toujours si elle avait plus d'une clé candidate .

Parfois, BCNF est également appelé 3.5 forme normale.

Règles 4NF (quatrième forme normale)

Si aucune instance de table de base de données ne contient au moins deux données indépendantes et à valeurs multiples décrivant l'entité pertinente, alors elle est dans la 4 e forme normale.

Règles 5NF (cinquième forme normale)

Une table est en 5ème forme normale uniquement si elle est en 4NF et elle ne peut pas être décomposée en un nombre quelconque de tables plus petites sans perte de données.

6NF (sixième forme normale) proposé

La 6 e forme normale n'est pas normalisée, mais elle est discutée par les experts en bases de données depuis un certain temps. Espérons que nous aurions une définition claire et standardisée de la 6 e forme normale dans un proche avenir…

C'est tout à la normalisation SQL !!!

Résumé

  • La conception d'une base de données est essentielle à la mise en œuvre réussie d'un système de gestion de base de données qui répond aux exigences en matière de données d'un système d'entreprise.
  • Le processus de normalisation dans le SGBD permet de produire des systèmes de base de données rentables et dotés de meilleurs modèles de sécurité.
  • Les dépendances fonctionnelles sont un élément très important du processus de normalisation des données
  • La plupart des systèmes de bases de données sont des bases de données normalisées jusqu'aux troisièmes formes normales.
  • Une clé primaire identifie de manière unique est enregistrée dans une table et ne peut pas être nulle
  • Une clé étrangère aide à connecter la table et fait référence à une clé primaire