Bases de données :
plus loin en modélisation
Karën Fort
[Link]@[Link]
1 / 52
Sources d’inspiration (avec leur accord)
I Cours de B. Habert (ENS Lyon)
I Cours de N. Chaignaud (Rouen)
I Cours de G. Lejeune (SU)
I Conception méthodique des bases de données, G. Bueno, Ellipses, 2008
2 / 52
Retours
Cardinalités
Normalisation des modèles
Pour finir
3 / 52
Retours
Questions
A propos des entités et des associations
Rappels sur la méthode
Cardinalités
Normalisation des modèles
Pour finir
4 / 52
5 / 52
Retours
Questions
A propos des entités et des associations
Rappels sur la méthode
Cardinalités
Normalisation des modèles
Pour finir
6 / 52
Autant d’entités que nécessaire
Entité1 Entité2
Association1
Id_Entité1 Id_Entité2
Attr1 Id_Entité1 Attr1
Attr2 Attr2
Id_Entité2
Id_Entité3
Id_Entité4
Entité4 Entité3
Id_Entité4 Id_Entité3
Attr1 Attr1
Attr2 Attr2
7 / 52
Autant d’associations que nécessaire
Entité1 Entité2
Association1
Id_Entité1 Id_Entité2
Attr1 Id_Entité1 Attr1
Attr2 Attr2
Id_Entité2
Id_Entité3
Id_Entité4
Entité3
Entité4
Association2 Id_Entité3
Id_Entité4 Attr1
Id_Entité1 Attr2
Attr1
Id_Entité4
Attr2
8 / 52
Pas d’association entre associations
Entité1 Entité2
Association1
Id_Entité1 Id_Entité2
Attr1 Id_Entité1 Attr1
Attr2 Attr2
Id_Entité2
Id_Entité3
Id_Entité4
Entité3
Entité4
Association2 Id_Entité3
Id_Entité4 Attr1
Id_Entité1 Attr2
Attr1
Id_Entité4
Attr2
9 / 52
Retours
Questions
A propos des entités et des associations
Rappels sur la méthode
Cardinalités
Normalisation des modèles
Pour finir
10 / 52
A garder en tête lors de la création du modèle
1. avoir l’application prévue en vue : la modélisation va largement dépendre de celle-ci
2. verbaliser : trouver des phrases qui expriment ce qu’on attend du modèle (un
usager emprunte un livre ). . .
3. . . . et les transformer en entités (noms) et relations (verbes)
4. tester le modèle (il ne peut pas être parfait du premier coup)
11 / 52
Retours
Cardinalités
Définitions
Tour de France
Normalisation des modèles
Pour finir
12 / 52
Intuition
Client Produit
Commande
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
Questions
Est-ce qu’un même produit peut être commandé par plusieurs clients ?
Est-ce qu’un même client peut commander plusieurs produits ?
13 / 52
Retours
Cardinalités
Définitions
Tour de France
Normalisation des modèles
Pour finir
14 / 52
Cardinalités
Pour un couple entité-association (E,A) on doit ajouter m, M :
I cardinalité minimale m : le nombre minimal de participation d’une entité à une
association
I cardinalité maximale M : le nombre maximal de participation d’une entité à une
association
Les valeurs utilisées sont :
I 0 : aucune participation
I 1 : une seule participation
I n : plusieurs participations
15 / 52
Cas 1,1
1 minimum (m), 1 maximum (M)
Client Produit
Commande
1,1 1,1
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
I Un client donné ne commande qu’un seul produit (minimum = maximum).
I Un produit donné n’est commandé que par un seul client.
16 / 52
Cas 1,1
1 minimum (m), 1 maximum (M)
Client Produit
Commande
1,1 1,1
Id_Client Id_Produit
Id_Produit
Nom Id_Client Nom
Date_Commande
1,1
Chaque occurrence de l’entité est concernée une et une seule fois par l’association.
C’est le cas le plus restrictif.
17 / 52
Cas 0,1
0 minimum (m), 1 maximum (M)
Client Produit
Commande
1,1 0,1
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
I Un client donné ne commande qu’un seul produit.
I Un produit donné n’est commandé que par un seul client maximum, mais peut ne
pas être commandé du tout.
18 / 52
Cas 0,1
0 minimum (m), 1 maximum (M)
Client Produit
Commande
1,1 0,1
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
0,1
Chaque occurrence de l’entité est concernée au plus une fois par l’association. Cela
signifie que certaines occurrences ne le sont pas et si elles le sont, elles ne le sont au
maximum qu’une seule fois chacune.
19 / 52
Cas 1,n
1 minimum (m), n maximum (M)
Client Produit
Commande
1,n 1,n
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
I Un client donné peut commander un ou plusieurs produits.
I Un produit donné peut être commandé par un ou plusieurs clients.
20 / 52
Cas 1,n
1 minimum (m), n maximum (M)
Client Produit
Commande
1,n 1,n
Id_Client Id_Produit
Id_Produit
Nom Nom
Id_Client
Date_Commande
1,n
Chaque occurrence de l’entité est concernée au moins une fois par l’association et elle
peut l’être plusieurs fois. Il n’y a pas d’occurrence qui ne soit pas concernée par
l’association.
21 / 52
Cas 0,n
0 minimum (m), n maximum (M)
Client Produit
0,n Commande 0,n
Id_Client Id_Produit
Date_Commande
Nom Nom
I Un client donné peut ne commander aucun produit ou plusieurs produits.
I Un produit donné peut être commandé par plusieurs clients ou ne pas être
commandé du tout.
22 / 52
Cas 0,n
0 minimum (m), n maximum (M)
Client Produit
0,n Commande 0,n
Id_Client Id_Produit
Date_Commande
Nom Nom
0,n
Chaque occurrence de l’entité peut être concernée par l’association aucune ou
plusieurs fois. Toutes les situations sont possibles. C’est le cas le moins restrictif.
23 / 52
Cardinalités : pour quoi faire ?
Les cardinalités
I permettent de mesurer la densité informationnelle des associations
I sont exploitées par les SGBD relationnels pour assurer l’intégrité des données en
contrôlant les liens entre les tables : plus la cardinalité est restrictive, plus le
contrôle est rigoureux.
I forment le troisième pilier fondamental de la modélisation relationnelle de données
Trois piliers ?
Quels sont les deux autres piliers ?
24 / 52
Retours
Cardinalités
Définitions
Tour de France
Normalisation des modèles
Pour finir
25 / 52
Modèle E/A du Tour de France
Coureur Pays
Provenir
NuméroCoureur CodePays
NomCoureur NomPays
Participer
Appartenir
TempsRéalisé
Etape Equipe
NuméroEtape CodeEquipe
Date NomEquipe
VilleDépart DirecteurSportif
VilleArrivée
NbKm
26 / 52
Ajoutez les cardinalités : groupes de 2 ou 3
Coureur Pays
Provenir
NuméroCoureur CodePays
NomCoureur NomPays
Participer
Appartenir
TempsRéalisé
Etape Equipe
NuméroEtape CodeEquipe
Date NomEquipe
VilleDépart DirecteurSportif
VilleArrivée
NbKm
27 / 52
Association Coureur/Pays
Coureur Pays
1,1 Provenir 0,n
NuméroCoureur CodePays
NomCoureur NomPays
1,1
I Un coureur provient au min d’ 1 pays et au max d’1 pays
⇔ Un coureur provient d’un et d’un seul pays
0,n
I Un pays est représenté par au min 0 coureur et au max n
⇔ Un pays est représenté par aucun ou plusieurs coureur
28 / 52
Association Coureur/Equipe
Coureur
NuméroCoureur
NomCoureur
1,1
Appartenir
1,n
Equipe
CodeEquipe
NomEquipe
DirecteurSportif
29 / 52
Association Coureur/Equipe
Coureur
NuméroCoureur
NomCoureur
1,1
I Un coureur appartient à une et une seule
Appartenir
équipe.
I Une équipe est composée d’un ou plusieurs
coureurs
1,n
Equipe
CodeEquipe
NomEquipe
DirecteurSportif
30 / 52
Association Coureur/Etape
Coureur
NuméroCoureur
NomCoureur
1,n
Participer
TempsRéalisé I Un coureur participe à une ou plusieurs étapes
I à une étape participent un ou plusieurs coureurs
1,n
Etape
NuméroEtape
Date
VilleDépart
VilleArrivée
NbKm
31 / 52
Avec les cardinalités
Coureur Pays
1,1 Provenir 0,n
NuméroCoureur CodePays
NomCoureur NomPays
1,n 1,1
Participer
Appartenir
TempsRéalisé
1,n 1,n
Etape Equipe
NuméroEtape CodeEquipe
Date NomEquipe
VilleDépart DirecteurSportif
VilleArrivée
NbKm
32 / 52
Retours
Cardinalités
Normalisation des modèles
Définitions
Première forme normale
Deuxième forme normale
Troisième forme normale
Pour finir
33 / 52
Formes normales ou conditions de normalisation
En théorie, 6 formes normales à respecter, mais
les trois premières couvrent la grande majorité des cas
→ Permettent d’assurer le passage (quasi) automatique à un modèle logique
34 / 52
Retours
Cardinalités
Normalisation des modèles
Définitions
Première forme normale
Deuxième forme normale
Troisième forme normale
Pour finir
35 / 52
Dépendance fonctionnelle (DF)
Deux propriétés P1 et P2 sont en dépendance fonctionnelle de P1 vers P2
ssi pour toute valeur de P1 il existe une valeur unique de P2 associée.
Autrement dit
La connaissance de P1 détermine P2
36 / 52
Monovaluée
Une propriété monovaluée est une propriété qui ne peut prendre qu’une
seule valeur, indépendamment de sa complexité.
Exemple
Une adresse qui rassemble en une seule propriété le numéro, le type de voie, le nom de
la voie, le code postal et la ville, est monovaluée.
37 / 52
Retours
Cardinalités
Normalisation des modèles
Définitions
Première forme normale
Deuxième forme normale
Troisième forme normale
Pour finir
38 / 52
Première forme normale
Une entité est en première forme normale ssi
1. Toutes les propriétés sont atomiques, c’est-à-dire monovaluées et non divisibles ;
2. Il existe une propriété qui joue le rôle d’identifiant ;
3. Toutes les propriétés dépendent de l’identifiant par une dépendance fonctionnelle.
39 / 52
Exemple
Client
Id_Client
Nom
Prénom
Adresse
Num_Tel
I Chaque propriété doit être considérée comme un tout indivisible : c’est le cas ici.
I Il existe un identifiant : ID_Client
I Toutes les propriétés dépendent de l’identifiant par une dépendance fonctionnelle :
la connaissance de l’ID_Client détermine en effet ici le nom du client, son prénom,
son adresse et son numéro de tel.
40 / 52
Retours
Cardinalités
Normalisation des modèles
Définitions
Première forme normale
Deuxième forme normale
Troisième forme normale
Pour finir
41 / 52
Deuxième forme normale
Une entité est en deuxième forme normale ssi
1. Elle est en première forme normale ;
2. Toutes les propriétés dépendent de l’identifiant par une dépendance fonctionnelle
élémentaire.
42 / 52
Contre-exemple
Une propriété ne doit pas dépendre de l’identifiant et en même temps d’une partie de
celui-ci :
Client
Id_Client
CP_Ville_Client
Nom_Client
Ville_Client
I il existe une DF entre le couple (ID_Client, CP_Ville_Client) et Ville_Client ET
I il existe une DF entre CP_Ville_Client et Ville_Client
⇒ n’est pas en deuxième forme normale
43 / 52
Retours
Cardinalités
Normalisation des modèles
Définitions
Première forme normale
Deuxième forme normale
Troisième forme normale
Pour finir
44 / 52
Troisième forme normale
Une entité est en troisième forme normale ssi
1. Elle est en deuxième forme normale ;
2. Il n’existe pas d’autre DF entre propriétés autre que celles existant entre chaque
propriété et l’identifiant : toutes les propriétés dépendent de l’identifiant par une
DFE directe.
45 / 52
Contre-exemple
Client
Id_Client
DF1
CP_Ville_Client
Nom_Client DF
DF2
Ville_Client
I DF peut s’obtenir à partir de DF1 associée à DF2
⇒ n’est pas en troisième forme normale
46 / 52
Retours
Cardinalités
Normalisation des modèles
Pour finir
CQFR : Ce Qu’il Faut Retenir
TD
47 / 52
I Méthode
I Cardinalités
I Formes normales
48 / 52
TD noté (suite)
à rendre à la fin du TD, par groupe (de 3, avec au moins 1 francophone natif), sous
forme papier :
I modélisation sous forme de schéma E/A
I avec les cardinalités
I exemples (instanciation du schéma)
49 / 52
Modéliser quoi ?
Par groupes de 3
I Mon premier est un animal,
I Mon second est une anse,
I Mon tout est une devinette.
Solution : chat - rade -> charade
50 / 52
Application
Site Web pour les enfants, qui leur propose des charades.
51 / 52
Conseils
Exemples de charades :
[Link]
I couvrir le plus de cas possibles
I tester la modélisation (avec des exemples)
I présentez votre travail de façon à le mettre en valeur (expliquez vos choix)
52 / 52