Skip to main content

Mettre une base de données en seconde forme normale (2NF)

Things Mr. Welch is No Longer Allowed to do in a RPG #1-2450 Reading Compilation (Avril 2024)

Things Mr. Welch is No Longer Allowed to do in a RPG #1-2450 Reading Compilation (Avril 2024)

Table des matières:

Anonim

Nous avons examiné plusieurs aspects de la normalisation d'une table de base de données. Nous avons d’abord abordé les principes de base de la normalisation des bases de données. La dernière fois, nous avons exploré les exigences de base posées par la première forme normale (1NF). Maintenant, continuons notre chemin et couvrons les principes de la seconde forme normale (2NF).

Les exigences générales de 2NF

  • Supprimez les sous-ensembles de données qui s'appliquent à plusieurs lignes d'une table et placez-les dans des tables séparées.
  • Créez des relations entre ces nouvelles tables et leurs prédécesseurs grâce à l'utilisation de clés étrangères.

Ces règles peuvent être résumées en une simple déclaration: 2NF tente de réduire la quantité de données redondantes dans une table en l'extrayant, en la plaçant dans une ou plusieurs nouvelles tables et en créant des relations entre ces tables.

Regardons un exemple. Imaginez une boutique en ligne qui conserve les informations client dans une base de données. Ils peuvent avoir une seule table appelée Clients avec les éléments suivants:

  • CustNum
  • Prénom
  • Nom de famille
  • Adresse
  • Ville
  • Etat
  • ZIP *: FRANÇAIS

Un bref aperçu de ce tableau révèle une petite quantité de données redondantes. Nous stockons les entrées "Sea Cliff, NY 11579" et "Miami, FL 33157" deux fois chacune. Cela ne vous semblera peut-être pas beaucoup plus de stockage dans notre exemple, mais imaginez l’espace perdu si nous avions des milliers de lignes dans notre table. De plus, si le code postal de Sea Cliff devait changer, nous devions le faire à de nombreux endroits dans la base de données.

Dans une structure de base de données compatible 2NF, ces informations redondantes sont extraites et stockées dans une table séparée. Notre nouvelle table (appelons-la ZIP) peut contenir les champs suivants:

  • ZIP *: FRANÇAIS
  • Ville
  • Etat

Si nous voulons être extrêmement efficaces, nous pouvons même remplir ce tableau à l'avance. Le bureau de poste fournit un répertoire de tous les codes postaux valides et de leurs relations ville / État. Vous avez sûrement rencontré une situation dans laquelle ce type de base de données a été utilisé. Quelqu'un qui prend une commande peut vous avoir demandé votre code postal d’abord, puis il connaissait la ville et l’état à partir desquels vous appeliez. Ce type d'agencement réduit les erreurs de l'opérateur et augmente l'efficacité.

Maintenant que nous avons supprimé les données en double de la table Customers, nous respectons la première règle de la seconde forme normale. Nous devons encore utiliser une clé étrangère pour lier les deux tables. Nous allons utiliser le code postal (la clé primaire de la table ZIP) pour créer cette relation. Voici notre nouvelle table de clients:

  • CustNum
  • Prénom
  • Nom de famille
  • Adresse
  • ZIP *: FRANÇAIS

Nous avons maintenant minimisé la quantité d'informations redondantes stockées dans la base de données et notre structure est en seconde forme normale.