JLH A12 Modele EA de Base
JLH A12 Modele EA de Base
JLH A12 Modele EA de Base
Annexe 12 0
Compléments
CLIENT
NumClient
Nom
1-N Adresse 0-N
appartient id: NumClient signe
1-1 1-1
VEHICULE
CONTRAT
NumVéh
NumCtr
Marque
Type
Modèle 1-1 couvre 1-1
DateSign
Année
id: signe.CLIENT
Cylindrée
NumCtr
id: NumVéh
ACCIDENT
NumAcc
0-N implique 1-N DateAcc
Montant[0-1]
id: NumAcc
regarder ailleurs tant que la double opération n’est pas terminée (transaction).
Nous attendrons, avant d’étudier ces techniques avancées, d’avoir acquis un peu
d’expérience dans la construction des bases de données.
Outre ce raisonnement de nature technique, des raisons organisationnelles ou
ergonomiques peuvent justifier qu’on traduise par la valeur [0-N] ce qui, en première
analyse mériterait la valeur [1-N]. Reprenons le cas du type d’associations appar-
tient, dont on vient de décider qu’il exprimait le fait que tout client posséde un
véhicule et que tout véhicule appartient à un client. Si cette modélisation est légi-
time du point de vue statique, elle ne l’est pas nécessairement du point de vue
dynamique. S’il apparaît que dans la pratique on a l’habitude d’enregistrer un client
alors même que le véhicule qu’il désire assurer n’est pas encore connu, alors il faut
accepter que, pendant un certain temps, une entité CLIENT ne soit pas associée à une
entité VEHICULE. Dès lors, on assignera au rôle appartient.CLIENT une cardinalité
[0-N] plutôt que [1-N]. De même, bien qu’on admette que toute commande doit
spécifier au moins un produit, le fait qu’on puisse enregistrer et vérifier une
commande avant d’enregistrer ses détails peut nous inciter à choisir pour le rôle
de.COMMANDE, la cardinalité [0-N] plutôt que [1-N].
CLIENT
NumClient
Nom
0-N Adresse 0-N
appartient id: NumClient signe
1-1 1-1
VEHICULE
CONTRAT
NumVéh
NumCtr
Marque
Type
Modèle 1-1 couvre 0-1
DateSign
Année
id: signe.CLIENT
Cylindrée
NumCtr
id: NumVéh
ACCIDENT
NumAcc
0-N implique 0-N DateAcc
Montant[0-1]
id: NumAcc
CLIENT
PRODUIT
NCli NPro
Nom COMMANDE
Libellé
Adresse NCom
0-N passe 1-1 Prix
Localité DateCom
QStock
Cat[0-1] id: NCom id: NPro
Compte
id: NCli 0-N 0-N
de en
DETAIL
QCom
1-1 1-1
id: de.COMMANDE
en.PRODUIT
Figure A12.3 - DETAIL est un type d’entités deux fois dépendant mais qui n’obéit pas
à la définition du type d’entitésfaible
L’ensemble des attributs d’un identifiant d’un identifiant hybride est parfois appelé
identifiant local ou relatif de leur type d’entités. L’attribut NumCtr est un identifiant
relatif de CONTRAT par rapport à CLIENT (via signe). Par contraste, un identifiant ne
contenant que des attributs sera appelé absolu.
Une étude critique de ces concepts a été proposée dans la référence ci-dessous.
Référence
Mira Balaban, Peretz Shoval. Resolving the "Weak Status" of Weak Entity Types in
Entity-Relationships Schemas. in Proc. Int. Conf. ER-1999, pp. 369-383, LNCS
1728 Springer, 1999
A12.3 Identifiants primaires : une anecdote 5
A12.4EXERCICES DU CHAPITRE 12
1-1 1-1
VEHICULE
CONTRAT
NumVéh
NumCtr
Marque
Type
Modèle 1-1 couvre 0-1
DateSign
Année
id: signe.CLIENT
Cylindrée
NumCtr
id: NumVéh
ACCIDENT
NumAcc
0-N implique 0-N DateAcc
Montant[0-1]
id: NumAcc
A12.2 En utilisant les conventions graphiques des figures 12.6 et 12.16, dessiner les
populations (entités, associations, valeurs d’attributs) au format du schéma
de la figure 12.19 et telles décrites par le contenu de la base de données de la
figure 2.8.
A12.4 Dans l’interprétation du schéma 12.25, on précise qu’un service est réputé
traiter un dossier dès qu’un de ses employés est en charge de ce dossier.
Modifier le schéma pour tenir compte de cette précision.
A12.4 Exercices du chapitre 12 7
Solution
SERVICE
NomServ
Responsable 0-N occupe
id: de.DEPARTEMENT
NomServ 1-1
DOSSIER EMPLOYE
NumDossier NumEmp
Titre 1-1 traite 0-N NomEmp
DateEnreg Adresse
id: NumDossier id: NumEmp
Solution
OUVRAGE
EMPRUNTEUR
MOT-CLE NumOuv
NumEmpr
Titre
Valeur 0-N décrit 0-N 0-N réserve 0-N NomEmpr
Auteurs
id: Valeur Adresse
Editeur
id: NumEmpr
id: NumOuv
0-N
0-N
par
ex de
1-1
1-1
EMPRUNT
EXEMPLAIRE
Date Emprunt
NumEx
Date Restitution[0-1]
Position 0-N de 1-1
DateAchat id: par.EMPRUNTEUR
de.EXEMPLAIRE
id: NumEx
Date Emprunt
veut lui transmettre. On suppose qu’un voyage ne s’étend pas sur plus d’une
journée, et qu’un colis déposé à une date déterminée pourra être enlevé dès le
lendemain.
A12.9 Pourquoi dans le schéma de la figure 12.27 les sections ne sont-elles pas
identifiées par leurs stations de départ et d’arrivée ?
Solution
Parce qu’une section est un fragment de ligne et non la portion de voie qui
relie deux stations. Il existe autant de sections entre deux stations qu’il y a de
lignes passant consécutivement par ces stations.
Solution
Un tronçon est une liaison directe, ininterrompue, entre deux stations; il
n’existe pas de station au milieu d’un tronçon. Conventionnellement, on fixe
pour un tronçon une station de départ et une station d’arrivée. Il n’existe pas
plus d’un tronçon entre deux stations, bien qu’un tronçon puisse comporter
plusieurs portions de voies physiques (= rails). Une section d’une ligne
emprunte un tronçon dans le sens direct (départ → arrivée) ou dans le sens
inverse (arrivée → départ).
AGENT
IDAgent
0-N Nom 0-1 dirige
TRAIN
Adresse
NumTrain
id: IDAgent 1-1
Origine
id: NumTrain
LIGNE STATION
conduit Nom
0-N CodeLigne
Date Activ Commune
effectue id: CodeLigne id: Nom
0-N
1-1 0-N 0-N 0-N
1-1 suivant
forme départ arrivée
VOYAGE 1-1
1-1
DateVoyage 1-1 1-1
HeureVoyage SECTION
id: suivant.LIGNE NumOrdre TRONCON
DateVoyage Longueur id: arrivée.STATION
HeureVoyage Sens départ.STATION
id: forme.LIGNE
NumOrdre
rs
A r B s C
Solution
Pour simplifier le raisonnement, on considère les quatre classes
fonctionnelles 1:N, N:1, 1:1 et N:N (N:1 est simplement la classe fonctionnelle
d’un type d’association 1:N considéré dans le sens inverse). On définit ainsi
16 configurations distinctes.
r s rs
1:N 1:N 1:N
1:N N:1 N:N
1:N 1:1 1:N
1:N N:N N:N
N:1 1:N N:N
N:1 N:1 N:1
N:1 1:1 N:1
N:1 N:N N:N
1:1 1:N 1:N
© J-L Hainaut - 2015