Résumé des concepts
Dans le premier chapitre du cours, nous avons abordé les concepts suivants :
- Les lignes, colonnes et cellules d’une table
- Les clés primaires et étrangères
- Le phénomène de redondance des données
- Les formes normales (1NF, 2NF, 3NF)
- La décomposition d’une table en plusieurs tables normalisées
Lignes, colonnes et cellules
- Les lignes représentent les enregistrements
- Les colonnes représentent les attributs
- Les cellules contiennent les valeurs
Clés primaires et étrangères
- La clé primaire identifie de manière unique chaque ligne d’une table
- La clé étrangère établit une relation entre deux tables
Redondance des données
- La redondance des données est la répétition d’informations identiques dans une base de données
- Elle peut entraîner des anomalies et des incohérences
Formes normales
1ère forme normale (1FN ou 1NF)
Exemple de non-respect de la 1FN
Produits | ||
---|---|---|
IDProduit | Description | Fournisseurs |
1 | Téléviseur | Sony, Sharp, LG |
2 | Chaîne Hifi | Philips, Sony |
- La colonne Fournisseurs est répétitive (elle contient plusieurs valeurs)
- Il faudrait décomposer la colonne Fournisseurs en une table Fournisseur
Formes normales
2ème forme normale (2FN ou 2NF)
Autrement dit, tous les attributs non-identifiants sont totalement dépendants fonctionnellement de la totalité de l’identifiant (et donc de la clé primaire au niveau tabulaire)
La 2NF garantit que chaque colonne dépend de la clé primaires#### Exemples de non-respect de la 2FN
Règle : Tout attribut non clé ne dépend pas d’une partie de clé
DetailsCommandes | ||
---|---|---|
numeroCommande | numeroProduit | descriptionProduit |
1 | 1 | Téléviseur |
2 | 2 | Chaîne Hifi |
3 | 1 | Téléviseur |
- Dans cet exemple :
- L’identifiant de la table est (numeroCommande, numeroProduit)
- On peut déduire qu’il existe une dépendance fonctionnelle entre numeroProduit et descriptionProduit
- numeroProduit → descriptionProduit
- La table n’est pas en 2FN car descriptionProduit dépend d’une partie de la clé
Schématique du non-respect de la 2FN
Si un attribut ne fait pas partie de la clé, il ne doit pas dépendre fonctionnellement d’une partie de la clé
3ème forme normale (3FN ou 3NF)
Exemples de non-respect de la 3FN
Commandes | ||
---|---|---|
numeroCommande | numeroClient | nomClient |
1 | 1 | Dupont |
2 | 1 | Dupont |
3 | 2 | Durand |
- Dans cet exemple :
- L’identifiant de la table est numeroCommande
- On peut déduire qu’il existe une dépendance fonctionnelle entre numeroClient et nomClient
- numeroClient → nomClient
- La table n’est pas en 3FN car nomClient dépend d’un attribut non-clé ( numeroClient ne fait pas partie de la clé)
Schématique du non-respect de la 3FN
Si un attribut ne fait pas partie de la clé, il ne doit pas dépendre fonctionnellement d’un autre attribut non-clé
Décomposition
- La décomposition consiste à diviser une table en plusieurs tables normalisées
- Elle permet d’éliminer la redondance des données et de prévenir les anomalies
-
Soit une table
R
possédant 3 attributsA
,B
etC
-
Il existe une dépendance fonctionnelle entre
B
etC
(Si on connaitB
, alors on connait nécessairementC
)- On doit donc extraire la colonne
C
de la tableR
pour éviter la redondance interne - La colonne
B
doit être présente dans les 2 tables pour pouvoir reconstruire l’information
- On doit donc extraire la colonne
-
On peut aussi remarquer dans cet exemple que :
B
sera une clé étrangère dans la tableR
B
sera une clé primaire dans la tableS
Il peut exister plusieurs dépendances fonctionnelles au sein d’une même table.
Il faudra alors décomposer autant de fois que nécessaire pour éviter la redondance.