Aller au contenu

UGA - MIASHS - S7 - BDD - Pierre Blarre

Concepts et Normalisation

Icône Présentation
1 / 1

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

Exemple de table non normalisée 1FN
Produits
IDProduitDescriptionFournisseurs
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é
Exemple de table non normalisée 2FN
DetailsCommandes
numeroCommandenumeroProduitdescriptionProduit
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

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

Exemple de table non normalisée 3FN
Commandes
numeroCommandenumeroClientnomClient
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

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

Décomposition d'une table

  • Soit une table R possédant 3 attributs A, B et C

  • Il existe une dépendance fonctionnelle entre B et C (Si on connait B, alors on connait nécessairement C)

    • On doit donc extraire la colonne C de la table R pour éviter la redondance interne
    • La colonne B doit être présente dans les 2 tables pour pouvoir reconstruire l’information
  • On peut aussi remarquer dans cet exemple que :

    • B sera une clé étrangère dans la table R
    • B sera une clé primaire dans la table S

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.