Soit l'entité CLIENTS, celle-ci regroupe les clients d'une société.
Cette société classe ses clients en 4 catégories (A, B, C, D) auxquelles elle fait un pourcentage de remise de 25% pour les clients A, 10% pour les B, 6% pour les C et rien pour les D.
Extrait de la table CLIENTS:
id_cli | nom_cli | categ_cli | remis_cli |
1 | Brussels Airlines | A | 0.25 |
2 | Unilever | A | 0.25 |
3 | Vandeput Dirk | D | 0.00 |
4 | Grégoire SA | B | 0.10 |
5 | Boucherie Sansos | C | 0.06 |
de construction
Un champs est entièrement déterminé par la clé de la table, c'est une règle absolue.
On constate ici que le champ "Remise" dépend certes de la clé (donc du client) mais aussi d'un autre champ, le champ "Categorie".
Cette situation porte le nom très compliqué de "dépendance transitive",
expression que vous ne manquerez pas d'entendre dans vos études supérieures.
de redondance
Comme on peut le constater cette dépendance transitive génère également une redondance d'information!
de modification
La redondance rend pariculièrement ardue la modification par exemple dans le cas où le taux de remise change pour une catégorie de client.
l'intégrité des données est donc mise à mal.
On crée une table avec le champ qui générait la dépendance transitive, le champ CATEGORIES.
On crée une table avec le champ qui générait la dépendance transitive, le champ "Categorie".
id_cat | nom_cat | remis_cat |
1 | A | 0.25 |
2 | B | 0.10 |
3 | C | 0.06 |
4 | D | 0.00 |
id_cli | nom_cli | id_cat |
1 | Brussels Airlines | 1 |
2 | Unilever | 1 |
3 | Vandeput Dirk | 4 |
4 | Grégoire SA | 2 |
5 | Boucherie Sansos | 3 |
La relation CONCERNER s'exprime comme suit:
- un client peut appartenir à une et une seule catégorie
- une catégorie contient 0 ou plusieurs clients
Généralisons:
- Une occurence de la table CLIENTS est en relation avec 1 et une seule occurences de la table CATEGORIES
- Une occurence de la table CATEGORIES est en relation avec 1 ou plusieurs (ou n) occurences de la table CLIENTS
- La relation CONCERNER est de type (1-1) (1-n)
La relation CLIENTS CATEGORIES est de type (1-1) (1-n)
Une entité ou association est en 3NF lorsque celle-ci est en 2NF et que ses attributs ne sont pas en DF par rapport à un autre attribut non clé (dépendance transitive)