Les 1re, 2e et 3e formes normales
Les trois premières formes normales dans l'ordre : attributs atomiques, aucune dépendance partielle, aucune dépendance transitive ; diagnostic d'une relation et décomposition en 3FN.
- 24 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Première forme normale (1FN) : de quoi s'agit-il ?
Voir la réponse
Relation dont chaque attribut est atomique : une seule valeur par ligne et par colonne, sans liste ni groupe de colonnes répétées.
Une colonne
matieresqui contient « Maths, Réseaux » viole la 1FN ;matiere1,matiere2,matiere3aussi, car c'est la même liste déguisée.Ligne(n_cmd, n_produit, quantite, libelle) a pour clé (n_cmd, n_produit), avec (n_cmd, n_produit) → quantite et n_produit → libelle. Quelle est sa plus haute forme normale ?
- 1FN
- 2FN
- 3FN
- Elle n'est pas en 1FN
Voir la réponse
1FN
Les valeurs sont atomiques, donc 1FN. Mais
libelledépend den_produitseul, une partie de la clé : la 2FN est violée, et donc la 3FN aussi.Mnémotechnique : chaque attribut non clé dépend de la clé (1FN), de … (2FN) et de … (3FN).
Voir la réponse
Mnémotechnique : chaque attribut non clé dépend de la clé (1FN), de toute la clé (2FN) et de rien que la clé (3FN).
« Toute la clé » interdit la dépendance partielle ; « rien que la clé » interdit la dépendance transitive.
Dépendance partielle : de quoi s'agit-il ?
Voir la réponse
Dépendance d'un attribut non clé envers une partie seulement de la clé, quand celle-ci est composée.
Avec la clé (n_cmd, n_produit),
n_produit → libelleest partielle : le libellé se répète sur chaque commande du produit.Facture(num, date, client, adresse_client) a pour clé num. L'adresse d'un client est répétée sur chacune de ses factures. Quelle forme normale est violée, et que faire ?
- La 3FN : adresse_client dépend de client, pas de num ; la placer dans une table Client
- La 1FN : l'adresse a plusieurs mots, donc elle n'est pas atomique
- La 2FN : l'adresse dépend d'une partie seulement de la clé num
- Aucune : num est une clé, donc la relation est en 3FN
Voir la réponse
La 3FN : adresse_client dépend de client, pas de num ; la placer dans une table Client
La clé
numn'a qu'un attribut : pas de dépendance partielle possible. La chaînenum → client → adresse_clientest transitive, c'est la définition de la violation de 3FN.