Concepts de base du modèle logique de données
Lors de l'élaboration d'une base de donnée, la difficulté réside dans la recherche de données élémentaires liées à un même thème.
Exemple d'une base de donnée de jeux :
Nom du jeu |
Catégorie de jeu |
Abalone |
stratégie |
Tarot |
cartes |
Echec |
stratégie |
Yams |
hasard |
Le nom du jeu est unique mis on retrouve plusieurs fois la même catégorie (redondance de données).
On pourrait donc envisager de dissocier ces deux types d'informations et de créer des relations entre elles :
Nom du jeu |
et |
Catégorie de jeu |
Abalone |
stratégie |
|
Tarot |
cartes |
|
Echec |
hasard |
|
Yams |
Le champ
Un champ dans une base de données est :
- une information élémentaire présentant un intérêt dans le domaine étudié
- une information non décomposable (un nom, un prénom ne peuvent être décomposés par exemple)
- une information ayant une valeur et une seule
- une information non redondante
La table
Une table dans une base de données :
- regroupe un ensemble de champs nommés et uniques
- a une existence propre et unique
- comporte une population de données homogènes (par exemple : dans une ludothèque la table JEUX contient l'ensemble des jeux disponibles dans la ludothèque
On appelle enregistrement d'une table l'ensemble des valeurs d'une ligne de la table.
Chaque enregistrement d'une table doit être identifiable de manière unique.
Exemple :
Nom de la table |
JEUX |
Nom d'un champ |
numero |
Nom d'un champ |
nom |
Nom d'un champ |
description |
Nom d'un champ |
contenu |
Nom d'un champ |
date_achat |
Les enregistrements pourraient être :
JEUX |
||||
numero |
nom |
description |
contenu |
date_achat |
000000101 |
Abalone |
éjecter des billes adverse du plateau hexagonal |
un plateau-28 billes |
2015-01-01 |
000000102 |
Tarot |
jeu de tarot |
22 cartes |
2010-10-10 |
000000103 |
Echec |
jeu d'échec |
plateau-32 pièces |
2005-12-01 |
000000104 |
Yams |
enchaîner les combinaisons de cinq dés |
5 dés |
2011-08-05 |
Dans cet exemple de table de 4 enregistrements, le champ numero garanti l'identification unique de l'enregistrement.
Clé primaire (Primary Key)
La clé primaire est un champ particulier qui permet d'établir des liaisons entre tables.
Elle peut :
- être liée à un champ naturel (nom de pays par exemple)
- être liée à un champ artificiel (numéro de jeu par exemple)
- être composée (liée à plusieurs champs)
Elle ne peut pas prendre deux fois la même valeur dans deux enregistrements différents.
Une table doit et ne peut posséder qu'une seule clé primaire.
Il existe trois types de clés primaires :
- Un à plusieurs
- Un à un
- Plusieurs à plusieurs
Une clé primaire est automatiquement indexée.
Lien un à plusieurs
En se basant sur l'exemple ci-contre, un jeu ne correspond qu'à une seule catégorie (stratégie, carte, hasard...) mais une catégorie peut être liée à plusieurs jeux.
Table Maître : c'est la table qui impose la donnée (dans cet exemple la table catégories).
Table Esclave : c'est elle qui reçoit la donnée (dans cet exemple la table jeux).
Clé externe ou Clé étrangère (Foreign Key) : c'est le champ qui reçoit la donnée (dans cet exemple fk_categorie)
Lien un à un
Dans une relation un à un, une seule donnée de la clé primaire est associée à une clé étrangère et à une seule.
Par exemple dans le cas d'une base de gestion d'une ludothèque, la cotisation d'un adhérent est liée à cet adhérent et à lui seul.
Lien plusieurs à plusieurs
Pour illustrer ce cas nous allons reprendre l'exemple de la base de gestion d'une ludothèque.
Un adhérent peut emprunter plusieurs jeux, et un jeu peut être emprunté par plusieurs adhérents (pas en même temps bien sûr).