Qu'est-ce que Troisième forme normale (3NF) ?

État d'une table en deuxième forme normale qui n'a aucune colonne déterminée par l'intermédiaire d'une colonne autre que la clé primaire (pas de dépendance fonctionnelle transitive). S'il existe par exemple une dépendance comme NumEmploye → CodeService → NomService, séparer une table des services donne la troisième forme normale.

Nom japonais: 第3正規形

« Troisième forme normale (3NF) » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.

Domaine: Bases des bases de données

S'entraîner : questions sur Troisième forme normale (3NF)

La clé primaire d'une table Commande(NumCommande, NumArticle, Quantite, NumClient, NomClient) est {NumCommande, NumArticle}, et ses dépendances fonctionnelles sont {NumCommande, NumArticle} → Quantite, NumCommande → NumClient et NumClient → NomClient. Quel est le résultat correct de la normalisation de cette table jusqu'à la troisième forme normale (3NF) ?

  1. ALigneCommande(NumCommande, NumArticle, Quantite, NumClient), Client(NumClient, NomClient)
  2. BLigneCommande(NumCommande, NumArticle, Quantite), Commande(NumCommande, NumClient), Client(NumClient, NomClient)
  3. CLigneCommande(NumCommande, NumArticle, Quantite), Commande(NumCommande, NumClient, NomClient)
Afficher la réponse et l'explication

Réponse : B. LigneCommande(NumCommande, NumArticle, Quantite), Commande(NumCommande, NumClient), Client(NumClient, NomClient)

La deuxième forme normale est l'état d'une table en première forme normale dans laquelle aucune colonne ne dépend d'une partie seulement de la clé primaire (pas de dépendance fonctionnelle partielle). NumCommande → NumClient est une dépendance fonctionnelle partielle, car NumClient est déterminé par NumCommande seul, qui n'est qu'une partie de la clé primaire ; la table d'origine est donc en première forme normale mais pas en deuxième forme normale. Placer les colonnes déterminées par NumCommande dans Commande(NumCommande, NumClient, NomClient) donne la deuxième forme normale. La troisième forme normale (3NF) est l'état d'une table en deuxième forme normale dans laquelle aucune colonne n'est déterminée par l'intermédiaire d'une colonne autre que la clé primaire (pas de dépendance fonctionnelle transitive). Commande contient encore la dépendance fonctionnelle transitive NumCommande → NumClient → NomClient ; on sépare donc aussi Client(NumClient, NomClient). Les 3 tables LigneCommande(NumCommande, NumArticle, Quantite), Commande(NumCommande, NumClient) et Client(NumClient, NomClient) sont alors en troisième forme normale. Les joindre sur NumCommande et NumClient restitue la table d'origine.

« Troisième forme normale (3NF) » dans les explications

Questions mentionnant « Troisième forme normale (3NF) » (2)

  1. La clé primaire d'une table Commande(NumCommande, NumArticle, Quantite, NumClient, NomClient) est {NumCommande, NumArticle}, et ses dépendances fonctionnelles sont {NumCommande, NumArticle} → Quantite, NumCommande → NumClient et NumClient → NomClient. Quel est le résultat correct de la normalisation de cette table jusqu'à la troisième forme normale (3NF) ?
  2. La clé primaire d'une table Employe(NumEmploye, Nom, CodeService, NomService) est NumEmploye, et chaque colonne contient une seule valeur. Les dépendances fonctionnelles sont NumEmploye → Nom, NumEmploye → CodeService et CodeService → NomService. Quelle proposition indique correctement la forme normale de cette table ?

Termes associés

Clé primaire Normalisation Clé étrangère (foreign key) Base de données relationnelle Diagramme E-R (entité-association) Index (index de base de données) Niveau d'isolation NoSQL Propriétés ACID SQL

Retour au glossaire