3 Cours
3 Cours
Dans ce chapitre, nous proposons quelques règles pour guider le concepteur lors de la définition du schéma
conceptuel entité association d'une (nouvelle) base de données. Les concepts proposés (dépendances, règles)
sont volontairement définis de façon non exhaustive. Un traitement complet de ces concepts dépasse le cadre
du cours.
Le concepteur étudie l'existant et les besoins de l'entreprise en recensant les fiches, formulaires,
bordereaux,..., utilisés jusqu'à présent dans l'entreprise et en interviewant les personnes de l'entreprise sur les
informations qu'elles utilisent et dont elles aimeraient disposer. Le concepteur établit ainsi progressivement
la liste des types d'entités, sous-types, types d'association, attributs, règles d'intégrité et de gestion (règles
décrivant les traitements dans cette entreprise). Le diagramme entité association est ainsi construit
progressivement, en précisant pour chaque type sa définition.
De cet exposé on peut extraire les informations suivantes pour le schéma de la base de données:
- les objets Lecteur et Livre ayant des existences indépendantes, il y a (au moins) deux TE, Lecteur
et Livre.
- il y a un TA Emprunte entre Livre et Lecteur; cette association a une cardinalité (0 : 3) pour le
Lecteur (un lecteur peut emprunter zéro, un, deux, ou trois livres).
- il faut mémoriser la date d'emprunt (pour savoir s'il y a retard); c'est un attribut qui dépend de Livre
et de Lecteur, donc c'est un attribut du TA Emprunte.
- la contrainte de ne pas pouvoir avoir plus de trois emprunts en cours simultanément, sera assurée
automatiquement par le SGBD à cause de la cardinalité maximale 3 de Lecteur pour le TA
Emprunte.
Etablir la liste des types d'entités, ... n'est pas une tâche aisée. Il faut être bien conscient que les choix de
représentation dépendent du point de vue du concepteur. La même réalité peut donner lieu à des
23
Chapitre 3 : Conception d’un schéma entité-association
modélisations différentes. Par exemple, un mariage peut être représenté comme une association entre des
entités personnes, ou comme un entité en soi dont certains attributs décriront l'époux et l'épouse. Ce
deuxième point de vue pourrait être celui d'une administration chargée de gérer l'information sur les
mariages. Pour cette administration, les époux sont des attributs, non des entités. En fait, en adoptant un
point de vue purement statique (i.e., en ne considérant que les données de l'application) il est impossible de
déterminer avec certitude si tel composant de l'application doit être représenté comme une entité, une
association, ou un attribut. De même, il est impossible de déterminer la classification des objets: faut-il
représenter toutes les entités personnes par un type Personne, ou vaut-il mieux les représenter selon les deux
types Homme et Femme, éventuellement sous-types du sur-type Personne ? Sur le plan statique, ces diverses
représentations peuvent être équivalentes.
C'est donc seulement en examinant l'utilisation des données, à savoir l'ensemble des traitements qui seront
appliqués aux données dans le cadre de l'application étudiée, qu'il est possible de déterminer la représentation
adéquate. Cette connaissance des traitements, complétée par la connaissance des liens de dépendance entre
informations (définis ci-après), nous permet d'appliquer les règles de modélisation suivantes:
Règle de représentation par un type d'entité: est représenté par un TE tout ensemble d'objets similaires
qui a un intérêt en soi pour au moins un traitement de l'application.
En d'autres termes, il existe un traitement (ou un ensemble de traitements) qui utilise les entités de ce type
indépendamment de leurs liens éventuels d'association avec d'autres types d'entité.
Cette règle s'applique également au choix des sous-types et des sur-types. On ne définira un sous-type (sur-
type) que si la matérialisation qu'il offre de l'ensemble des entités correspondantes offre un intérêt pour au
moins un traitement.
Règle de représentation par un type d'association: est représenté par un TA tout ensemble de liens
similaires et de même sémantique, d'intérêt pour l'application, entre deux ou plusieurs objets représentés par
des entités.
Règle de représentation par un attribut: est représenté par un attribut toute information intéressante qui
participe à la description d'un objet ou d'un lien et qui ne fait l'objet de traitement qu'en tant que partie de cet
objet ou lien. Un attribut ne dépend que de l'entité (ou de l'association, i.e. des entités liées) à laquelle il est
attaché.
Une fois le diagramme entité association établi, plusieurs types de vérification sont effectuées:
- vérification "syntaxique": il s'agit de vérifier que les règles du modèle entité association sont
respectées (voir le chapitre précédent sur la définition du modèle et la suite de chapitre sur les
règles de vérification d'un diagramme entité association);
- par jeu d'essai: le concepteur vérifie grâce à une mini base de données que le diagramme permet
effectivement de stocker les informations nécessaires à l'entreprise;
- complétude par rapport aux traitements: le concepteur vérifie que le diagramme contient tous les
types d'information nécessaires à l'exécution des traitements prévus;
- par les utilisateurs: le concepteur présente le diagramme accompagné des définitions aux personnes
qui utiliseront la base de données et vérifie que les informations contenues correspondent bien aux
besoins.
Chaque oubli, erreur, modification, ...., détecté lors des vérifications entraîne une mise à jour du diagramme
et relance les différentes phases de vérification.
24
Chapitre 3 : Conception d’un schéma entité-association
Une fois le diagramme entité association établi et vérifié, le schéma textuel détaillé est défini et validé (voir
l'exemple du schéma FormaPerm en fin de ce chapitre).
2. Notion de dépendance
Avant de voir comment vérifier la cohérence syntaxique d'un diagramme entité association, nous
introduisons le concept de dépendance entre données ou entre types d'entité, qui est utile pour certaines
règles de vérification. Le concept de dépendance n'est pas propre au modèle entité-association; c'est un
concept générique qui est utilisé aussi bien en entité-association qu'en relationnel pour exprimer les
propriétés intrinsèques des données.
Définition: étant donné un attribut, ou un ensemble d'attributs, A, d'un TE (ou TA), et B un attribut du même
TE (ou TA), il y a dépendance A vers B, notée A→B , si dans la population du TE (ou TA) toutes les
occurrences qui ont même valeur pour A ont toujours même valeur pour B.
Plus formellement, on a A → B si et seulement si, quelles que soient deux occurrences du TE (TA) de
valeurs (a,b) et (a',b') pour les attributs A et B, on a toujours: a=a' ⇒ b=b'.
Si A (ou B) est multivalué, par valeur de A (ou de B) on entend l'ensemble des valeurs prises par l'attribut
pour une occurrence du TE (ou du TA).
On dit aussi que B dépend de A, ou que A détermine B. A est dit la source de la dépendance, dont B est la
cible.
Pratiquement toute dépendance A→B, traduit un fait du monde réel ou bien une règle de l'application qui lie
de manière univoque la valeur de B à la valeur prise par A, quelque soit le contexte dans lequel A et B sont
considérés. Par exemple, la valeur de l'attribut date-de-naissance dépend indissociablement de la personne
dont on parle et d'aucun autre facteur: c'est un fait du monde réel. Dans l'exemple ci-dessous, le nom d'un
étudiant est une fonction univoque du numéro de carte considéré, sur la base de l'hypothèse que l'institution
n'attribue un numéro de carte qu'à un seul étudiant: c'est une règle de l'application.
Par définition, l'identifiant d'un TE (ou TA) détermine tous les autres attributs du TE (TA).
Exemple:
Etudiant
liste
N°carte nom prénoms datenais adresse
Si (nom + prénoms) était un autre identifiant de Etudiant, on aurait en plus les dépendances suivantes:
(nom , prénoms) → N°carte
(nom , prénoms) → adresse
(nom , prénoms) → datenais
La notion de dépendance peut être étendue aux dépendances entre TEs liés par un TA.
25
Chapitre 3 : Conception d’un schéma entité-association
Définition: soient E1, E2 deux TE liés par un TA. Il existe une dépendance E1 vers E2, notée E1→E2, si et
seulement si pour chaque occurrence de E1, le TA lui associe toujours la même occurrence de E2.
On notera que dans un TA correctement défini, le fait qu'un rôle ait une cardinalité maximum égale à 1
implique qu'il y a une dépendance du TE jouant ce rôle vers les autres TE du TA:
0:1 i:j
E1 R E2 E1 → E2
m:n E1 → E3
E3
Attention: ne pas confondre, sur un diagramme EA, les flèches représentant des liens de généralisation (qui
font partie du modèle EA), et les flèches représentant des dépendances. Ces dernières ne font pas partie du
modèle EA et servent pendant la validation du schéma et, le cas échéant, à exprimer des contraintes
d'intégrité.
Exemple:
Etudiant
n° rue ville
n°étudiant, nom et adresses sont les attributs directs du TE Etudiant, dont n°étudiant est identifiant. Si les
seules dépendances existantes sont celles illustrées sur le diagramme, le TE est correctement défini.
La règle est contredite si un attribut dépend d'une partie de l'identifiant, et non de l'identifiant entier. Soit, par
exemple:
Etudiant
26
Chapitre 3 : Conception d’un schéma entité-association
L'identifiant de ce TE Etudiant est n°étudiant+département (on suppose ici que les numéros sont donnés par
les départements suivant une numérotation qui leur est propre, telle que deux étudiants différents de
départements différents peuvent recevoir le même numéro). Les dépendances sont:
(n°étudiant, département) → nom_étudiant et département → directeur_département.
La deuxième dépendance (qui exprime qu'un département n'a qu'un directeur) contredit la règle. Il convient
donc de modifier la définition du TE afin de regrouper dans un même attribut complexe les attributs en
dépendance:
Etudiant
intitulé directeur
Etudiant
Ce TE Etudiant n'est pas correct. En effet, la dépendance département → directeur_département n'a pas pour
source l'identifiant du TE. Elle contredit la règle 1. L'existence de cette dépendance signifie que les deux
attributs sont liés sémantiquement. Comme dans l'exemple précédent, ce lien peut être traduit dans le schéma
EA par le regroupement des deux attributs en un attribut complexe. On obtient ainsi le nouveau TE Etudiant:
Etudiant
n°étudiant département
intitulé directeur
27
Chapitre 3 : Conception d’un schéma entité-association
Cette règle signifie qu'un attribut du ième niveau peut dépendre d'une combinaison d'attributs du même
niveau et de niveaux supérieurs contigus (i, i-1, i-2…), issus du même père. Cette règle s'explique par le fait
qu'il existe deux types d'attributs complexes:
- ceux qui décrivent une propriété locale des entités, comme par exemple les enfants d'une personne ou ci-
dessus le département de l'étudiant (cas 1/ de la règle);
- et ceux qui décrivent une propriété locale plus le lien entre l'entité et cette propriété (cas 2/ de la règle).
Ce dernier cas est représenté dans l'exemple ci-dessous par l'attribut chercheurs qui décrit les
chercheurs (nomC, adresse) et le lien entre chaque chercheur et le labo (dateentrée du chercheur dans
le labo et %temps passé chaque semaine par le chercheur dans le labo).
Exemple:
Laboratoire
ligne montant
Les règles de validation des attributs d'un TE s'appliquent de la même façon aux attributs d'un TA. On peut
en déduire les règles suivantes:
28
Chapitre 3 : Conception d’un schéma entité-association
Exemple:
Etudiant Contrôle Matière
Ce diagramme est correctement défini en ce sens que les attributs notes et moyenne dépendent à la fois de
l'étudiant et de la matière: un étudiant a des notes et une moyenne par matière, et pour une matière il y a des
notes et une moyenne par étudiant. On notera que l'attribut coef est bien placé, car il ne dépend que de la
matière et pas de l'étudiant.
Autre exemple:
Etudiant Contrôle Enseignant
Cours
Nom Cours
Un enseignant peut enseigner plusieurs cours. Un cours peut être enseigné par plusieurs enseignants; dans ce
cas les notes mises par chaque enseignant ont un poids différent (coef) qui est fonction du nombre d'heures
assurées par l'enseignant dans ce cours.
En vérifiant les attributs du TA Contrôle, on s'aperçoit que l'attribut notes dépend des trois TE liés, mais que
l'attribut coef ne dépend que des TE Enseignant et Cours. Le bon diagramme est alors:
Cours Assure
Règle 4: Soit un TA bien construit, liant les TE E1, E2, ..., En; s'il existe une dépendance:
29
Chapitre 3 : Conception d’un schéma entité-association
(E1, ..., Ei) → Ei+1, alors il existe la dépendance: (E1, ..., Ei) → (Ei+1, ..., En).
Donc, si dans un diagramme EA, un TA comporte l'une de ces dépendances sans les autres, il faut
décomposer le TA, afin de matérialiser cette dépendance par un nouveau TA de cardinalité maximale 1 pour
le rôle source de la dépendance.
Exemple:
0:1 0:n
Chercheur Travaille Labo
1:n
Projet
Dépendance
La dépendance (Projet → Labo) traduit la règle d'entreprise suivante: chaque projet est réalisé dans un et un
seul laboratoire. Ce schéma n'est pas correct et génère des redondances. La dépendance doit être décrite par
un TA binaire reliant Projet et Labo. Le TE restant, Chercheur, sera lié par un TA binaire au TE source de la
dépendance (Projet):
0:1 1:n
Chercheur Travaille Projet
1:1
Affecté
0:n
Labo
0:1 0:n
Chercheur Travaille Labo
0:n
Affecté
1:1
Projet
Un TA est redondant si les associations correspondantes peuvent être établies sans ambiguïté par
composition des associations d'autres TA.
30
Chapitre 3 : Conception d’un schéma entité-association
Exemple:
Est élève de
Si "Est élève de" établit une association entre un étudiant et l'enseignant dont il suit un cours, cette
association est la même que celle résultant de la composition des associations correspondantes Inscrit et
Assure: Dupont est élève de Durand si Dupont est inscrit à un cours assuré par Durand.
Le TA "Est élève de" n'apporte aucune information supplémentaire et doit donc être supprimé. Si pour
l’application on veut cependant conserver ce TA, il faut alors déclarer par une contrainte d’intégrité le fait
que le TA est dérivé des deux autres.
Si l'on trouve dans un TE E1 un attribut dont la valeur est égale à celle de l'identifiant d'un TE E2, cet
attribut exprime en réalité un lien entre les TEs E1 et E2. La règle de représentation par un type d'association
n'a pas été respectée. Il convient donc de corriger le schéma: le lien doit être explicitement décrit comme un
TA entre les deux TEs et l'attribut doit être supprimé du TE E1. Le nouveau schéma ainsi obtenu est
préférable car le TA assure une meilleure intégrité des données que l'attribut référençant un TE. Dans le cas
de l'attribut, les utilisateurs peuvent y entrer une valeur qui n'existe pas en tant qu'identifiant de E2; ce qui est
manifestement une erreur. Par contre ce serait impossible de faire une erreur équivalente avec le TA,
puisqu'une association ne lie que des entités existantes.
Employé Service
Il est tout à fait possible que, lors d'une première esquisse du diagramme EA, le concepteur ait inclus des
types d'entité qui lui paraissaient utiles a priori, mais qui se révèlent inutiles une fois la conception du
schéma terminée. Il convient donc de supprimer ces types inutiles. Conformément à la règle de
représentation par un type d'entité, un TE est inutile s'il ne présente d'intérêt, en tant que TE, pour aucun
traitement de l'application. S'il faut néanmoins conserver l'information correspondante, celle-ci sera
rattachée, sous forme d’un attribut, au TE (ou TA) où elle est pertinente (c.à-d., dont elle dépend).
Par exemple, dans le dernier schéma ci-dessus, si les informations sur les services ne sont utilisées que
comme une information supplémentaire sur les employés, sans qu'il y ait de traitements portant directement
31
Chapitre 3 : Conception d’un schéma entité-association
sur les services (pas de requêtes du type "à quel étage est le service comptabilité?”), Service est alors un TE
inutile. Les informations sur les services seront rattachées au TE Employé et décriront, pour chaque
employé, le service dans lequel cet employé travaille:
Employé
n°emp • • • service
n° étage nom
Le fait que les mêmes informations sur les services apparaîtront dans tous les employés d'un service donné
n'est pas un inconvénient dans une modélisation conceptuelle. Rappelons que le schéma conceptuel
représente la structure des données telle qu'elle est vue par l'application. Cette structure conceptuelle n'est pas
nécessairement implantée telle quelle aux niveaux logique et/ou physique.
Autre exemple: un TE qui n’a pas de sur-type et qui n'a qu'un seul attribut, doit probablement être transformé
en attribut des TEs auxquels il est lié.
• • • • • n° • • • • n°salle
Par contre, conformément à la règle de représentation par un type d'entité, il convient, lorsqu'un TE possède
un attribut complexe, de vérifier que cet attribut ne fait pas l'objet de traitements (création de nouvelles
valeurs, interrogations, mises à jour, suppressions) indépendamment du TE en question. Si de tels traitements
existent, il faut remplacer cet attribut par un TE, plus un TA qui conserve le lien avec le TE d'origine.
?
Etudiant Etudiant Inscrit Cours
Enfin, il convient de supprimer tout TE qui n'aurait qu'une seule occurrence (il s'agit ici aussi d'une erreur
d'analyse, fréquente chez les concepteurs débutants). Cette occurrence unique n'a probablement aucun intérêt
pour l'application.
32
Chapitre 3 : Conception d’un schéma entité-association
Soit un institut de formation permanente qui veut gérer avec une base de données ses cours, ses enseignants
et ses étudiants, avec leurs inscriptions et leurs résultats.
Les cours, identifiés par leur nom, sont répartis sur trois cycles (1, 2 et 3). Chaque cours peut avoir zéro, un
ou plusieurs autres cours du même cycle ou des cycles précédents en prérequis.
Un enseignant, identifié par son nom, peut assurer un ou plusieurs cours; mais un cours est assuré par un seul
enseignant. L'institut mémorise, pour chaque enseignant, ses nom, prénom, adresse, numéro de téléphone,
statut (universitaire, professionnel...), et renseignements bancaires.
Les étudiants s'inscrivent à un ou plusieurs cours et paient un droit d'inscription pour chaque cours (qui est le
même pour tous les cours).
Lors de sa première inscription à l'institut, l'étudiant reçoit un numéro qu'il conserve tout au long de sa
formation. Chaque étudiant est décrit par ses nom, prénoms, numéro, adresse, études antérieures (diplômes et
année) et date de naissance. L'institut conserve, pour chaque étudiant, la liste des cours qu'il a obtenus, avec
la note et l'année. On suppose que l'offre de cours est la même d'une année à l'autre.
nom
Personne adr.
prénoms liste
couverture
jour n°E tél.
mois dateN Etudiant Enseignant statut
année études liste [Link].
liste
diplôme année banque compte agence
Obtenu Inscrit Assure
multi-ensemble
notes année
Cours
nomC cycle
est-un a-pour
Prérequis
Etudiant: tout individu qui est actuellement inscrit à l'institut, ou qui a déjà passé avec succès l'un des cours
de l'institut.
Enseignant: tout individu assurant actuellement un ou plusieurs cours à l'institut.
Personne: tout étudiant et tout enseignant de l'institut.
Cours: tout cours offert par l'institut.
Obtenu: tel étudiant a réussi tel cours telle année et a obtenu telle note.
Inscrit: actuellement, tel étudiant est inscrit à tel cours.
Assure: actuellement, tel enseignant assure tel cours.
Prérequis: tel cours est un pré-requis pour tel cours.
33
Chapitre 3 : Conception d’un schéma entité-association
a) Un cours c1 ne peut pas être pré-requis d'un cours c2 s'il appartient à un cycle postérieur à celui de c2. Ce
qui s'exprime par la contrainte d'intégrité suivante (en français et en logique) :
Pour toute occurrence c1 de Cours, si c2 est une autre occurrence de Cours liée à c1 par Prérequis (dans le
sens c1(a pour)–Prérequis–c2(est un)), alors on doit avoir : c2•cycle ≥ c1•cycle.
∀ c1 ∈ Cours, ∀ c2 ∈ Cours,
( Prérequis (c1/est-un, c2/a-pour) ⇒ c2•cycle ≥ c1•cycle )
b) Un inscrit à un cours doit avoir obtenu tous les pré-requis de ce cours. Ce qui s'exprime par la contrainte
d'intégrité suivante (en français et en logique) :
Pour toute occurrence e de Etudiant, pour chacun des Cours c auxquels il est lié par Inscrit, et pour chacun
des Cours r auxquels c est lié par Prérequis (dans le sens c(a pour)–Prérequis–r(est un)), e doit être lié à r par
Obtenu.
∀ e ∈ Etudiant , ∀ c ∈ Cours , ∀ r ∈ Cours,
( Inscrit (e, c) ∧ Prérequis (r/est-un, c/a-pour) ⇒ Obtenu (e, r) )
c) Un étudiant doit avoir au moins 18 ans. Ce qui s'exprime par la contrainte d'intégrité suivante (en français
et en logique) :
Pour toute occurrence e de Etudiant, on doit avoir: (Date - e•dateN) ≥ 18 ans.
∀ e ∈ Etudiant (Date - e•dateN) ≥ 18 ans
d) Les dates sont cohérentes. Ce qui s'exprime par les deux contraintes d'intégrité suivantes (en français et en
logique) :
Pour toute occurrence e de Etudiant, pour toute valeur v de e•études, on doit avoir :
v•année > e•dateN•année.
Pour toute occurrence e de Etudiant, pour toute occurrence o de Obtenu liant e, on doit avoir :
o•année > (e•dateN•année + 18).
∀ e ∈ Etudiant, ∀ v ∈ e•études v•année > e•dateN•année
∀ e ∈ Etudiant, ∀ c ∈ Cours ( Obtenu (e, c) ⇒ e•dateN•année < (Obtenu•année + 18) )
e) Le groupe de sous-types de Personne forme une couverture. Ce qui s'exprime par la contrainte d'intégrité
suivante (en français et en logique) :
Pour toute occurrence p de Personne, p doit aussi être occurrence de Etudiant et/ou de Enseignant.
∀ p ∈ Personne ( ∃ e ∈ Etudiant ( e ISA p ) ∨ ∃ e ∈ Enseignant ( e ISA p ) )
34
Chapitre 3 : Conception d’un schéma entité-association
35
Exercices - Série 2
Proposer des diagrammes entité-association qui modélisent les cas ci-dessous. Précisez en français les
contraintes d'intégrité.
Exercice 1. Bibliothèque
La Bibliothèque d'un syndicat intercommunal consiste en 5 centres de prêt. Ces centres disposent
d'ordinateurs personnels interconnectés qui doivent permettre de gérer les emprunts.
L'interview des bibliothécaires permet de déterminer les faits suivants:
- une personne qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution elle
aura le droit d'effectuer en même temps de 1 à 10 emprunts;
- les emprunts durent au maximum 15 jours;
- un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses)
auteur(s);
- on veut pouvoir obtenir, pour chaque abonné les emprunts qu'il a effectué (nombre, numéro et titre du
livre, date de l'emprunt) au cours des trois derniers mois;
- toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse de l’abonné, date de
l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s);
- on veut enfin pouvoir connaître pour chaque livre sa date d'achat, son état et s'il est disponible dans quel
centre.
Exercice 2. Editeur
Un éditeur souhaite installer une base de données pour mémoriser les informations suivantes:
- les livres sont identifiés par leur numéro ISBN. Un livre possède un titre et un prix de vente. Il est écrit
par un ou plusieurs auteurs.
Chaque livre est tiré en une ou plusieurs éditions, datées et identifiées par leur ordre (première édition,
seconde édition, etc.). Chaque édition comporte un certain nombre d'exemplaires. Le prix de vente peut
changer d'une édition à l'autre.
Un livre peut être primé (Goncourt, Fémina etc.).
- les auteurs sont identifiés par leur nom et prénoms et peuvent avoir un pseudonyme. Pour chaque livre, un
auteur perçoit des droits d'auteur annuels, calculés comme un pourcentage des ventes (il est aussi fonction
du nombre d'auteurs).
- les libraires (identifiés par leur nom et adresse complète) commandent des livres en précisant l’édition et
le nombre d’exemplaires désiré.
37
Chapitre 3 : Conception d’un schéma Entité-Association
- ses paris, avec pour chacun: le type de pari (couplé, tiercé, quarté, quinté ...) la somme jouée et les
numéros de chevaux dans l'ordre du pari (exemple: <tiercé, 20 Frs, 13-2-8>)
Une fois la course jouée, on enregistre aussi :
- le résultat : l'ordre d'arrivée des chevaux (exemple: <1er, 13>, <2ème, 8>, <3ème, 14>, ...) et les rapports
pour chacun des types de pari (exemple: <tiercé dans l'ordre, 900 Frs>, <tiercé dans le désordre: 112
Frs>, <quarté dans l'ordre: 5430 Frs>, <quarté dans le désordre: 750 Frs>, <2 sur 4 : 21 Frs> ...)
- le gain total du parieur pour la course.
Les noms de chevaux sont uniques, et les noms de courses sont uniques (à un instant donné).
Proposer deux diagrammes entité-association, l'un contenant un seul type d'entité (Course), l'autre en
contenant plusieurs (Course, Cheval...) ainsi que des types d'association. Préciser les contraintes d'intégrité.
38
Exercices - Série 3
Proposer des diagrammes entité-association qui modélisent les cas ci-dessous. Précisez en français les
contraintes d'intégrité.
Exercice 1. Aéroport
Pour les besoins de la gestion d'un aéroport on souhaite mémoriser dans une base de données les
informations nécessaires à la description des faits suivants:
- chaque avion géré est identifié par un numéro d'immatriculation. Il est la propriété soit d'une société, soit
d'un particulier: dans les deux cas on doit connaître le nom, l'adresse et le numéro de téléphone du
propriétaire, ainsi que la date d'achat de l'avion;
- chaque avion est d'un certain type, celui-ci étant caractérisé par son nom, le nom du constructeur, la
puissance du moteur, le nombre de places;
- la maintenance des avions est assurée par les mécaniciens de l'aéroport. Par sécurité, les interventions sont
toujours effectuées par deux mécaniciens (l'un répare, l'autre vérifie). Un même mécanicien peut, selon
les interventions, effectuer la réparation ou la vérification. Pour toute intervention effectuée, on conserve
l'objet de l'intervention, la date et la durée;
- pour chaque mécanicien on connaît son nom, son adresse, son numéro de téléphone et les types d'avion
sur lesquels il est habilité à intervenir;
- un certain nombre de pilotes sont enregistrés auprès de l'aéroport. Pour chaque pilote on connaît son nom,
son adresse, son numéro de téléphone, son numéro de brevet de pilote et les types d'avion qu'il est habilité
à piloter avec le nombre total de vols qu'il a effectué sur chacun de ces types.
Des questions types auxquelles l'application doit pouvoir répondre sont les suivantes:
- liste des avions de la société "Voltige";
- liste des avions qui sont la propriété de particuliers;
- durée totale des interventions faites par le mécanicien Rochat au mois de janvier;
- liste des types d'avion de plus de 4 places;
- liste des pilotes habilités pour tel type d'avion;
- liste des interventions (objet, date) faites sur l'avion numéro 3242XZY78K3.
39
Chapitre 3 : Conception d’un schéma Entité-Association
Exercice 3. Personnel
On veut représenter le personnel d'une entreprise et son affectation. L'entreprise est organisée en services
auxquels est affecté le personnel. Chaque service est décrit par son nom, son chef (qui est nécessairement un
cadre de l'entreprise) et la liste de ses locaux. Le personnel est réparti en trois catégories, les administratifs,
les techniciens et les cadres. Tous possèdent un numéro d'employé, un nom, un prénom, une adresse, une
identification bancaire (nom banque, nom agence, numéro de compte), un salaire et sont rattachés à un
service. Chaque catégorie possède en outre des renseignements qui lui sont propres:
- pour un administratif ou un technicien, le prix de l'heure supplémentaire;
- pour un technicien, les machines dont il est responsable;
- pour un administratif, le(s) cadre(s) pour le(s)quel(s) il travaille;
- pour un cadre, son bureau, son numéro de poste téléphonique et l'(les) administratif(s) (s'il en existe) qui
lui est (sont) attaché(s).
Exercice 4. Généalogie
Proposer deux diagrammes entité-association (l’un sans lien de généralisation/spécialisation, l’autre avec)
pour une base de données décrivant un arbre généalogique. Pour chaque individu on désire: son nom, ses
prénoms, son sexe, sa date et son lieu de naissance (et éventuellement de décès), ses parents (la mère et le
père), ses enfants et l'historique de ses mariages: date, lieu, nom et prénoms du conjoint (avec éventuellement
la date de décès), et s’il y a lieu le divorce (date, lieu).
40
Exercices - Série 4
Proposer des diagrammes entité-association qui modélisent les cas ci-dessous. Précisez en français les
contraintes d'intégrité.
Exercice 1. Musée
Définir un diagramme entité-association représentant les faits suivants, relatifs à un musée:
- toute œuvre du musée a un titre, un ou plusieurs auteurs, une date d'acquisition et un numéro de catalogue
(identifiant);
- une œuvre est exposée dans l'une des salles du musée (qui est caractérisée par un numéro, son nom, le
nombre d'œuvres exposables, sol, éclairage), ou est en prêt dans un autre musée (nom et adresse de ce musée,
début et durée du prêt);
- certaines œuvres exposées dans le musée peuvent avoir été empruntées par le musée, soit à un autre musée,
soit à un particulier (nom et adresse). Dans ce cas, on connaît son titre, son (ou ses) auteur(s), la date de
début et la durée de l'emprunt. De plus, l'œuvre doit alors être assurée. On veut savoir le montant de la prime
d'assurance, la valeur pour laquelle l'œuvre est assurée, le nom et l'adresse de la compagnie qui l'assure;
- le conservateur garde le fichier des musées et des particuliers qui ont prêté ou qui sont susceptibles de
prêter des œuvres. Pour chacun (musée ou particulier), il garde le nom et l'adresse et la liste des collections
qui l'intéressent (art déco, art contemporain, antiquités, ...).
Préciser les contraintes d'intégrité.
Ces dernières années, quelques sociétés informatiques ont mis au point des logiciels qui permettent de
planifier l'utilisation des équipements et de savoir en temps réel ce qui est libre ou occupé. La société
Dinafield, basée à Poitiers, a installé son programme Hercule dans une soixantaine de villes de plus de
quarante mille habitants. Il permet, par exemple, aux habitants de réserver leurs courts de tennis par Minitel.
Avec ses trois mille aires (terrains de jeux, lignes d'eau, pistes, etc.), ses deux cent quatre-vingt mille
créneaux horaires par semaine, ses quarante-cinq mille contrats par an pour mille huit cents associations, la
Ville de Paris était confrontée à des combinaisons beaucoup plus complexes. Son système Planning, qui
fonctionne depuis la rentrée sur les douze secteurs de la capitale, permet aux responsables de la direction de
la jeunesse et des sports de connaître exactement le taux de fréquentation des équipements. Pour chaque
créneau horaire, le gardien inscrit le nombre de sportifs présents en face du nom de l'association. Les
éventuelles intempéries sont mentionnées. C'est une façon de s'assurer que ceux qui n'occupent pas les
créneaux horaires qu'ils ont réservés ont de bonnes excuses. Autrement, leur contrat risque de ne pas être
renouvelé, et leur place offerte à ceux qui sont sur les listes d'attente.
41
Chapitre 3 : Conception d’un schéma Entité-Association
Les articles présentés au colloque et imprimés dans les actes sont choisis de la façon suivante: ce sont des
articles de 15 à 20 pages, présentant des résultats de recherche, proposés par une (ou plusieurs) personne,
appelée ici auteur, qui travaille dans un laboratoire de recherche d’une université ou entreprise. Un comité de
lecture regroupant une trentaine d’experts fait la sélection. Chaque article est évalué par trois experts qui
mettent chacun une note. Les experts ne doivent pas proposer eux-mêmes d’article ni être de la même
université ou entreprise que les auteurs des articles qu’ils évaluent. A partir des notes, le comité classe les
articles, choisit les meilleurs et les affecte aux différentes sessions.
Les organisateurs veulent conserver les informations suivantes pour la préparation du prochain colloque:
- pour chaque article proposé: titre, nombre de pages, mots clés, auteur(s) avec mention de l’auteur principal
à qui envoyer la réponse (acceptation ou refus), les trois experts avec les notes qu’ils ont mises à l’article. Si
l’article est accepté, la session et l’heure à laquelle il sera présenté. S’il y a plusieurs auteurs, celui qui le
présentera (appelé l’orateur).
- pour chaque auteur: nom, titre, université ou entreprise, adresse, le(s) article(s) qu’il propose. S’il est auteur
principal, on enregistre en plus ses numéros de téléphone et de télécopie, et son adresse électronique. S’il est
orateur, on enregistre en plus son CV résumé sur cinq lignes pour que le président de la session puisse le
présenter.
- pour chaque expert: nom, titre, université ou entreprise, adresse, numéro de téléphone, numéro de télécopie,
adresse électronique, les articles qu’il évalue avec la note qu’il leur met.
- pour chaque session: thème, jour, heure de début, heure de fin, le président (celui qui anime la session,
présente les orateurs, lance la discussion,....; c’est un expert, un participant ou un auteur d’un autre article),
liste des articles de la session, avec leur heure de passage, coût de l’inscription à la session (toutes les
sessions n’ont pas le même prix).
- pour chaque participant: nom, affiliation (nom de l’entreprise, université, ...), adresse, s’il a déjà participé à
ce colloque une (des) année précédente: quelles années et s’il y était simple participant ou auteur ou expert.
On enregistre aussi les sessions auxquelles il s’inscrit et s’il a réglé son inscription.
42
Exercices - Série 5
Proposer des diagrammes entité-association qui modélisent les cas ci-dessous. Précisez en français les
contraintes d'intégrité.
L'informaticien interroge ensuite les gardiens. Il apprend que le zoo est divisé en huit secteurs qui ont chacun
une fonction bien précise (oiseaux, reptiles, aquarium, singes,...) et sont placés sous la responsabilité d'un
chef de secteur. Chaque secteur est divisé en un certain nombre de parcelles, qui sont surveillées par des
gardiens pendant les heures d'ouverture au public. L'emploi du temps des gardiens est très précis et est
toujours défini pour une semaine à l'avance. Chaque gardien ne surveille qu'un seul secteur par jour mais
change de parcelle toutes les heures. Chaque chef de secteur doit surveiller son secteur entier et vérifier que
les gardiens sont bien à leur place.
L'emploi du temps des gardiens est actuellement écrit manuellement sur un tableau blanc, mais après
l'informatisation il sera édité automatiquement avec deux types d'états (listings) différents : un exemplaire
commun avec l'emploi du temps complet pour l'affichage (état 1), et des exemplaires individuels avec
l'emploi du temps personnel pour chaque gardien (état 2).
Chaque gardien peut choisir jusqu'à trois secteurs favoris (pour lesquels il se porte volontaire) et trois
secteurs non appréciés. Ses affinités seront prises en compte dans la mesure du possible lors de la définition
de l'emploi du temps.
.........
Secteur Singes :
Parcelle 1 Parcelle 2 Parcelle 3 Parcelle 4 Parcelle 5
Lundi
09H-10H JEA DUV YVE LUC VIT
10H-11H VIT JEA DUV YVE LUC
11H-12H YVE LUC VIT JEA DUV
12H-13H LUC DUV JEA YVE VIT
43
Chapitre 3 : Conception d’un schéma Entité-Association
... ...
Etat 1 : Emploi du temps par secteur, par parcelle, par jour et par heure.
Etat 2 : Emploi du temps d'un gardien, par jour, par secteur, par parcelle et par heure.
L'informaticien se renseigne enfin auprès du service vétérinaire qui s'occupe des pensionnaires (animaux) du
zoo. Les pensionnaires sont classés en deux catégories : les individus et les groupes.
Les individus sont les animaux qui possèdent un nom et pour lesquels on conserve une fiche signalétique
précise : l'espèce, la date de naissance, ses mesures (poids et taille) prises à dates périodiques (pour vérifier
sa croissance) et enfin son groupe sanguin. De plus, si l'individu est né en captivité (dans le zoo) on conserve
sa parenté (sa mère et son père supposé s'il est connu). Le service conserve donc les fiches de tous les
individus du zoo, même ceux décédés (dans ce cas on conserve la date de décès).
Les groupes sont des ensembles d'individus qui appartiennent à la même espèce et qui ne peuvent être
appréhendés isolément (termites, souris blanches, poissons clown, ...). Pour chaque groupe on conserve le
nombre approximatif d'animaux qui le compose.
Chaque espèce est donc représentée soit sous la forme d'un groupe soit sous la forme d'un ou de plusieurs
individus. Chaque espèce n'est présente que dans une seule parcelle, mais, dans certains secteurs, une même
parcelle peut accueillir plusieurs espèces différentes.
Des demandes typiques auxquelles la base de données devra pouvoir répondre sont :
- Afficher l'emploi du temps hebdomadaire global des gardiens (par secteur, par parcelle, par jour et par
heure).
- Afficher l'emploi du temps personnel du gardien Michelot selon le format jour, heure, secteur, parcelle.
- Quels sont les noms de secteurs et les noms et prénoms des gardiens qui apprécient ce secteur et dans
lequel le nombre de volontaires est inférieur ou égal au nombre de parcelles à surveiller ? (Dans le but
d'affecter les gardiens aux secteurs qu'ils apprécient lorsque leurs demandes peuvent être satisfaites)
44
Chapitre 5: Normalisation d’une relation
Exercices Supplémentaires
Proposer des diagrammes entité-association qui modélisent les cas ci-dessous. Précisez en français les
contraintes d'intégrité.
45
Chapitre 3 : Conception d’un schéma Entité-Association
À chaque véhicule, elle assigne un numéro d'enregistrement. Il n'existe pas deux véhicules ayant le même
numéro d'enregistrement.
À tout moment, un véhicule n'appartient qu'à un seul propriétaire, qui est soit un constructeur, soit un garage,
ou encore une personne privée. Il peut avoir été possédé par plusieurs propriétaires (à des moments
distincts). Un constructeur, un garage ou une personne privée est connu de l'administration d'Enregistrement
des Véhicules, c'est à dire considéré comme faisant partie de l'ensemble des propriétaires s'il possède ou a
possédé un véhicule.
Qu'il soit constructeur, garage ou personne privée, un propriétaire est caractérisé par un numéro l'identifiant.
Pour un constructeur, on connaît son nom, son adresse ainsi que les garages avec lesquels il travaille
(garages concessionnaires). Un garage est caractérisé par un nom, une adresse et un numéro de registre de
commerce. On connaît le nom, le prénom et l'adresse d'une personne privée.
Pour toute transaction effectuée sur un véhicule, on connaît le vendeur (ancien propriétaire), l'acheteur
(nouveau propriétaire), la date de transaction et le prix d'achat/vente. Un véhicule peut faire l'objet de
plusieurs transactions (à des dates différentes). Il n'est pas exclu que deux transactions réalisées à des dates
différentes puissent porter sur un même véhicule, un même vendeur et un même acheteur.
Un constructeur ne peut vendre ses véhicules à d'autres constructeurs, ni directement à des personnes privées.
Il ne les vend qu'à ses garages concessionnaires. Il n'achète aucun véhicule. Un garage peut vendre ou
acheter des véhicules à des personnes privées ou à des garages. Il peut, bien sûr, acheter également des
véhicules aux constructeurs pour lesquels il est concessionnaire. Une personne privée ne peut vendre ou
acheter des véhicules qu'à des personnes privées ou à des garages. Ceci signifie donc que seuls, les véhicules
dont le propriétaire "du moment" est un constructeur, n'ont été l'objet d'aucune transaction.
46