Accueil Finances personnelles SQL Première, deuxième et troisième formes normales - mannequins

SQL Première, deuxième et troisième formes normales - mannequins

Table des matières:

Vidéo: Conception de base de données #07 : Normalisation - Première forme normale 2025

Vidéo: Conception de base de données #07 : Normalisation - Première forme normale 2025
Anonim

Il existe trois sources d'anomalies de modification en SQL sont définis comme première, deuxième et troisième formes normales (1NF, 2NF, 3NF). Ces formes normales agissent comme des remèdes aux anomalies de modification.

Première forme normale

Pour être en première forme normale (1NF), une table doit avoir les qualités suivantes:

  • La table est bidimensionnelle avec des lignes et des colonnes.

  • Chaque ligne contient des données qui concernent une chose ou une partie d'une chose.

  • Chaque colonne contient des données pour un seul attribut de la chose qu'il décrit.

  • Chaque cellule (intersection d'une ligne et d'une colonne) de la table ne doit avoir qu'une seule valeur.

  • Les entrées d'une colonne doivent toutes être du même type. Si, par exemple, l'entrée dans une ligne d'une colonne contient un nom d'employé, toutes les autres lignes doivent également contenir les noms d'employés dans cette colonne.

  • Chaque colonne doit avoir un nom unique.

  • Aucune ligne ne peut être identique (c'est-à-dire que chaque ligne doit être unique).

  • L'ordre des colonnes et l'ordre des lignes ne sont pas significatifs.

Une table (relation) en première forme normale est immunisée contre certains types d'anomalies de modification mais reste soumise à d'autres. La table SALES est en première forme normale et la table est sujette à des anomalies de suppression et d'insertion. La première forme normale peut s'avérer utile dans certaines applications mais pas fiable dans d'autres.

Deuxième forme normale

Pour apprécier la seconde forme normale, il faut comprendre l'idée de dépendance fonctionnelle. Une dépendance fonctionnelle est une relation entre ou parmi les attributs. Un attribut dépend fonctionnellement d'un autre si la valeur du deuxième attribut détermine la valeur du premier attribut. Si vous connaissez la valeur du deuxième attribut, vous pouvez déterminer la valeur du premier attribut.

Supposons, par exemple, qu'une table possède des attributs (colonnes) StandardCharge, NumberOfTests et TotalCharge qui se rapportent à l'équation suivante:

TotalCharge = StandardCharge * NumberOfTests

TotalCharge dépend fonctionnellement de StandardCharge et de NumberOfTests. Si vous connaissez les valeurs de StandardCharge et NumberOfTests, vous pouvez déterminer la valeur de TotalCharge.

Chaque table au premier format normal doit avoir une clé primaire unique. Cette clé peut comporter une ou plusieurs colonnes. Une clé composée de plus d'une colonne est appelée une clé composite . Pour être dans la deuxième forme normale (2NF), tous les attributs non clés doivent dépendre de la clé entière. Ainsi, toute relation qui se trouve dans 1NF avec une seule clé d'attribut est automatiquement dans la seconde forme normale.

Si une relation a une clé composite, tous les attributs non clés doivent dépendre de tous les composants de la clé. Si vous disposez d'une table dans laquelle certains attributs non clés ne dépendent pas de tous les composants de la clé, divisez la table en deux tables ou plus afin que, dans chacune des nouvelles tables, tous les attributs non clés dépendent de tous les composants de la clé primaire.

Son confus? Regardez un exemple pour clarifier les choses. Considérez la table des ventes. Au lieu d'enregistrer un seul achat pour chaque client, vous ajoutez une ligne chaque fois qu'un client achète un article pour la première fois. Une autre différence est que les clients charter (ceux qui ont des valeurs CustomerID de 1001 à 1007) obtiennent un rabais sur le prix normal.

Customer_ID n'identifie pas de manière unique une ligne. Dans deux lignes, Customer_ID est 1001. Dans deux autres lignes, Customer_ID est 1010. La combinaison de la colonne Customer_ID et de la colonne Product identifie de manière unique une ligne. Ces deux colonnes sont ensemble une clé composite.

Si ce n'est pas parce que certains clients ont droit à une réduction et d'autres pas, la table ne serait pas en seconde forme normale, car Price (un attribut non-clé) ne dépendrait que d'une partie de la clé (Produit). Étant donné que certains clients bénéficient d'une remise, le prix dépend à la fois du code client et du produit, et la table est en deuxième forme normale.

Troisième forme normale

Les tables en seconde forme normale sont particulièrement vulnérables à certains types d'anomalies de modification - en particulier celles qui proviennent de dépendances transitives.

Une dépendance transitive se produit lorsqu'un attribut dépend d'un deuxième attribut, qui dépend d'un troisième attribut. Les suppressions dans une table avec une telle dépendance peuvent entraîner une perte d'information non désirée. Une relation dans la troisième forme normale est une relation dans la deuxième forme normale sans dépendances transitives. Regardez à nouveau la table SALES, dont vous savez qu'elle est en première forme normale. Tant que vous restreignez les entrées pour n'autoriser qu'une seule ligne pour chaque Customer_ID, vous disposez d'une clé primaire à un seul attribut et la table est au deuxième format normal. Cependant, la table est toujours sujette à des anomalies. Que se passe-t-il si le client 1010 n'est pas satisfait de l'agent de blanchiment au chlore, par exemple, et renvoie l'article pour un remboursement?

Vous voulez supprimer la troisième rangée de la table, qui enregistre le fait que le client 1010 a acheté de l'eau de Javel. Vous avez un problème: si vous supprimez cette rangée, vous perdez également le fait que l'eau de Javel a un prix de 4 $. Cette situation est un exemple de dépendance transitive. Le prix dépend du produit, qui à son tour dépend de la clé primaire Customer_ID.

Briser la table SALES en deux tables résout le problème de dépendance transitive. Les deux tables constituent une base de données en troisième forme normale.

SQL Première, deuxième et troisième formes normales - mannequins

Le choix des éditeurs

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Alors que les standards journalistiques sont légèrement différents Diffusion, et les organisations en ligne, ils partagent des éléments communs de véracité, la précision, l'objectivité, l'impartialité, l'équité et la responsabilité publique (c'est une citation adaptée de Wikipedia). Surtout, les standards journalistiques établissent une séparation entre les départements qui génèrent des revenus (ventes de publicité et de sponsoring) et les départements qui développent ...

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comme gestionnaire de communauté en ligne, vous ne pouvez pas avoir peur pour demander des commentaires parce que vous ne voulez pas entendre de mauvaises nouvelles. La réalité est qu'il n'y a pas de mauvaises réactions. Pourtant, lorsque les commentaires négatifs viennent, parfois vous ne pouvez pas vous empêcher de le prendre personnellement. Vous passez tellement de temps à cultiver votre communauté et à promouvoir ...

Comment ajouter NoFollow Tag - mannequins

Comment ajouter NoFollow Tag - mannequins

La balise NoFollow a été créée comme un moyen de divulguer aux moteurs de recherche que, bien que votre site de blogging maman ajoute un lien vers une destination particulière, il n'approuve pas le site de destination. Initialement utilisé pour les commentaires de blog pour lutter contre les spams de commentaires, il protégeait les blogs de se connecter par inadvertance aux ...

Le choix des éditeurs

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Les concepts les plus courants utilisés dans les tableaux de bord et les rapports Excel sont le concept de tendances. Une tendance est une mesure de la variance sur un intervalle défini, généralement des périodes telles que des jours, des mois ou des années. Mais construire des composants tendance pour vos tableaux de bord a quelques choses à faire et à ne pas faire. Utilisez les types de graphiques appropriés pour ...

Emplacements de confiance et macros Excel - mannequins

Emplacements de confiance et macros Excel - mannequins

Si l'idée d'un message Macro Excel à venir (même une fois) désorganise vous, configurez un emplacement de confiance pour vos fichiers. Un emplacement approuvé est un répertoire considéré comme une zone sûre dans laquelle seuls les classeurs approuvés sont placés. Un emplacement de confiance vous permet, à vous et à vos clients, d'exécuter un classeur compatible avec les ...

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Dans une feuille Excel 2016 que vous devez transformer une colonne de données en deux colonnes. Dans le cas des noms, par exemple, il peut être nécessaire de transformer une colonne de noms en deux colonnes, l'une appelée prénom et l'autre nom de famille. Suivez ces étapes dans un fichier Excel ...

Le choix des éditeurs

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Sont dix domaines que vous devriez Discutez avec n'importe quel fournisseur de produits d'entreposage de données, quelle que soit la catégorie de produit (outil d'aide à la décision, outil de middleware ou SGBDR, par exemple) que vous envisagez d'acheter. Il y a aussi une question spécifique que vous pourriez vouloir poser. Toutes ces questions sont quelque peu bizarres car elles ont peu à voir avec ...

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

Commencé à changer et à évoluer avec l'avènement du Big Data. Dans le passé, il n'était tout simplement pas rentable pour les entreprises de stocker l'énorme quantité de données provenant d'un grand nombre de systèmes d'enregistrement. Le manque d'architectures de calcul réparties rentables et pratiques a fait que les données ...

Les catégories principales de Business Intelligence - les nuls

Les catégories principales de Business Intelligence - les nuls

Au début de votre projet d'entreposage de données, ne vous concentrez pas sur le type d'outils dont vous avez besoin - pour le moment. Au lieu de cela, concentrez-vous sur les types de questions que les utilisateurs poseront concernant le contenu de l'entrepôt de données, les types de rapports qui seront exécutés et à quelles fins, et les modèles généraux de traitement qui ...