Vous êtes sur la page 1sur 32

Modèle conceptuel : le Schéma Entité Association

11 novembre 2020

Un modèle conceptuel : le S.E.A. 11 novembre 2020 1 / 32


Introduction : rappel des différents modèles

Rappel des étapes de la réalisation d’une base de données.


1 cahier des charges (en langage naturel).
2 Modèle Conceptuel de Données
- description sans ambiguité des données à stocker
- besoin d’un langage formel précis, souvent graphique.
3 Modèle Logique de Données.
(hierarchique, réseau, relationnel, orientées objets, etc...)
4 Modèle Physique : implémentation dans la machine.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 2 / 32


Introduction

Quelques remarques :

Le M.C.D. est complètement indépendant du modèle logique qui


va être utilisé.
Dans tous les développements de logiciel important, on a besoin de
faire cela (avec à peu-près les mêmes étapes
1 cahier des charges,
2 spécifications des données et de leur traitements indépendamment du
langage utilisé (C, Java, OCamL, Python, etc..)
3 spécifications plus précises suivant le langage
imperatif/objet/fonctionnel
4 implémentation

Un modèle conceptuel : le S.E.A. 11 novembre 2020 3 / 32


Introduction : rappel des différents modèles

But : préciser de manière claire et non ambigue


les données à stocker
la manière dont elles sont structurées

Différents modèles suivant le domaine informatique :


MERISE : Analyse, conception et gestion de projets informatique au
sens large.
U.M.L. : plus spécialement en développement logiciel (surtout orienté
objet)
S.E.A (Schéma Entité Association) : pour les bases de données.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 4 / 32


Introduction

Remarques :
• Le S.E.A. ne parle que des données, on ne décrit pas le traitement de
celles ci.
• Le Schéma Entité Association n’est pas un schéma relationnel.
⇒ On ne parle pas de tables, ni de relations dans le SEA.
• Du S.E.A., on déduira le schéma relationnel.
• Simple, il n’y a que quelques définitions.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 5 / 32


Les objets de bases : les entités

Les entités
Entité : classe d’objets qui existent de manière autonome : voiture,
employé, etc...
on peut dire ”Une voiture existe”, ”un employé existe”.

L’entité est représentée par un rectangle : EMPLOYÉ

Instance : l’entité EMPLOYÉ représente tous les employés 6= un


employé particulier X, qui est une instance d’ EMPLOYÉ
Attribut : une entité a des attributs : nSS, nom, fonction, etc.. ayant des
domaines (valeurs qu’ils peuvent prendre)
Clé : un ou plusieurs attributs identifiant de manière unique une instance
particulière.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 6 / 32


Les objets de bases : les entités

EMPLOYÉ
nSS
L’entité stocke l’ensemble des faits/phrases de la forme :
nom
fonction

”l’employé nSS existe, il a tel nom, et telle fonction”

Remarques :
- nSS est la clé ⇒ il n’y a pas 2 phrases de ce type avec le même nSS.
- un attribut ne contient pas une liste de valeurs.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 7 / 32


Les objets de bases : les associations

Une association
relie deux (ou plus) entités (cela peut être 2 fois la même).
permet de faire des phrases ”sujet verbe complément(s)” où :
- le verbe est l’association ;
- sujet et complements sont les clés des différentes entités reliées par
l’association.
représenté par un losange

Remarque : on n’a pas 2 fois la même phrase (en ne tenant compte que
des clés)

Un modèle conceptuel : le S.E.A. 11 novembre 2020 8 / 32


Les objets de bases : les associations

Exemple 1 :

EMPLOYÉ < travaille > BÂTIMENT

Cette association permet de stocker les faits (ou phrases) :


- L’employé 111 travaille dans le bâtiment B3”
- L’employé 222 travaille dans le bâtiment B3”

Un modèle conceptuel : le S.E.A. 11 novembre 2020 9 / 32


Les objets de bases : les associations

Exemple 2 :

Cela permet de stocker les faits ou phrases


- ”l’employé 112 loue la voiture 1PR75 au client 3”
- ”l’employé 112 loue la voiture 8123CF33 au client 3”
Il est interdit de faire des phrases incomplètes :
”l’employé 123 loue au client 3 ” est interdit !

Un modèle conceptuel : le S.E.A. 11 novembre 2020 10 / 32


Les objets de bases : les associations

Attributs des associations

”l’employé 111 travaille de 12 à 16h dans le bâtiment B2”


”l’employé 222 travaille de 11 à 14h dans le bâtiment B2”
Attention : Il y a toujours interdiction de mettre 2 fois la même phrase
reliant les mêmes instances. Rajouter
”l’employé 111 travaille de 8 à 10h dans le bâtiment B2” est interdit ici.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 11 / 32


Les objets de bases : Les cardinalités

La cardinalité
- compte le nombre de fois minimum et maximum où peut intervenir
chaque instance dans une association. Où on peut écrire une phrase utilisant
une instance particulière
- se met sur le lien entre l’entité et l’association, une cardinalité par
”patte” de l’association.
Valeurs les plus utilisées des cardinalités
[0-1] : une instance n’est pas obligée d’intervenir dans l’association, et doit
intervenir au plus une fois.
[0-n] : une instance n’est pas obligée d’intervenir dans l’association, et peut
intervenir autant de fois qu’on veut.
[1-1] : une instance intervient une et une seule fois dans l’association.
[1-n] : une instance intervient au moins une fois dans l’association.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 12 / 32


Les objets de bases : Les cardinalités

Exemple :

[0−1] [1−n]
EMPLOYÉ < travaille > BATIMENT

• [0-1] : pour tout employé E, le fait : ”l’employé E travaille dans le bâtiment ...”
existe entre 0 et 1 fois.
i.e. l’employé travaille dans 0 à 1 bâtiment.
• [1-n] : pour tout bât. B, le fait : ”l’employé ... travaille dans le bâtiment B”
existe autant de fois que l’on veut, bien sûr avec des employés différents.
i.e. un bâtiment accueille de 1 à n employés.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 13 / 32


Les objets de bases : Les cardinalités

Remarque : dans l’absolu, on pourrait autoriser tout [x,y].

Exemple : on souhaite imposer qu’un bâtiment accueille entre 10 et 20


employés ?

[0−1] [10−20]
EMPLOYÉ < travaille > BATIMENT

En pratique seuls [0-1], [1-1], [0-n] et [1,n] sont utilisés.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 14 / 32


Autres Points : les contraintes d’intégrité

Le S.E.A est simple, concis. ⇒ on ne peut pas tout représenter.


Exemple : ”Si l’employé est jardinier, il travaille dans 0 bâtiment” n’est
pas représentable dans le S.E.A.


• Faire la liste en langage naturel (mais de la manière la plus claire et
précise) de toutes ces contraintes d’intégrité.
• Ne pas oublier ces contraintes lors de l’implémentation. Et faire en sorte
qu’elles soient toujours respectées après toutes :
- saisies de données,
- modifications de données.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 15 / 32


Autres Points : Entité ou Association ?

Dans certains cas, on peut hésiter : Entité ou Association pour représenter


quelque chose ?

Exemple : location de voiture.

[0−n] [1−n]
VOITURE <estLoue> CLIENT

ou bien
CONTRAT
numero
[0−n] [0−n] [0−1] [1−n]
VOITURE <estLouee> date <loue> CLIENT
nbjours
payé

Un modèle conceptuel : le S.E.A. 11 novembre 2020 16 / 32


Autres Points : Entité ou Association ?

Choix d’une entité CONTRAT : on pourra :


- manipuler un contrat de location en tant que tel ;
- commencer à remplir, sans le finaliser, un contrat ;
- affecter plusieurs voitures à un même contrat.
Association <estLouee> :
- le contrat n’existe pas et ne peut être traité séparément ;
- la location est forcément complète client/voiture ;
- concerne une seule voiture.

Remarques dans cet exemple :


Une voiture est forcément une entité.
Mais pour la location, cela dépend du cahier des charges.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 17 / 32


Transformation S.E.A. → S.R.

Règles de base :
Entité E : on crée une relation E avec :
- les mêmes attributs,
- la même clé primaire.
Association A : on crée relation A comprenant :
- les clés étrangères pointant vers les clés des relations liées par A,
- les attributs propres à la relation s’il y en a.
clé primaire : elle est formée de l’ensemble des clés étrangères.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 18 / 32


Transformation S.E.A. → S.R. : cardinalités [0-1] ou [1-1]

cas particulier : association avec cardinalités [0-1] ou [1-1]

[.−1] [.−.]
E1 <A> E2

cas a) E1 est la seule entité dont la cardinalité max avec A vaut 1 :


On ”fusionne” l’association A avec la relation E1. Et E1 récupère :
- les attributs de l’association A
- la clé étrangère pointant vers E2 (et celles pointant vers E3, E4 si besoin)
clé primaire de E1 : inchangée.
cardinalité [0-1] ou [1-1] ? :
• [1-1] : tous les attributs provenant de A sont non nuls (sauf pour un
attribut propre de A qui pouvait être nul dans le S.E.A.).
• [0-1] : tous les attributs provenant de A peuvent être nuls.
on rajoute la C.I. : ils sont soit tous nuls, soit aucun (sauf pour un attribut
propre de A qui pouvait être nul dans le S.E.A.)

Un modèle conceptuel : le S.E.A. 11 novembre 2020 19 / 32


Transformation S.E.A. → S.R. : cardinalités [0-1] ou [1-1]

cas b) E1 et E2 ont tous deux des cardinalités [.-1] par rapport à A.


Soit E1 l’entité qui semble la plus ”importante”, alors :
1 On ”fusionne” comme précédement A du coté de E1,
2 On rajoute la contrainte : ”FK 2 est unique.” où FK 2 est la clé étrangère
de E1 qui référence la clé primaire de E2.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 20 / 32


Compléments : entité faible

Entité faible
C’est une entité :
- qui est en association [1-1] avec une autre entité E
- dont l’identifiant dépend de celui de l’entité E.

Exemple :
FABRICANT PIECE
[0−n] [1−1]
numFabri < produit > codeP
nom description
On souhaite que plusieurs pièces puissent avoir même code si elles ont des
numéros de fabricant différents, i.e on veut :
”Une pièce est identifiée par son codeP et par son numéro de fabricant”.

Définition : codeP est la clé locale de l’entité faible PIECE .

Un modèle conceptuel : le S.E.A. 11 novembre 2020 21 / 32


Compléments : entité faible

Notation d’une entité faible :

Transformation en SchémaRelationnel.
FABRICANT(numFabri,nom)
PIECE(codeP,numFabri,description)
numFabri est une clé étrangère référençant FABRICANT(numFabri)

Un modèle conceptuel : le S.E.A. 11 novembre 2020 22 / 32


Compléments : attributs clés des associations

Un client loue une voiture, à une certaine date.

le client 12 loue le 10 mai la voiture 8643CF33


Le client 12 est content, alors il revient louer la même voiture:
le client 12 loue le 20 juin la voiture 8643CF33
Problème : c’est impossible car cela ferait un doublon !

Un modèle conceptuel : le S.E.A. 11 novembre 2020 23 / 32


Compléments : attributs clés des associations

Solution : mettre la date en entité.

”le 10 mai existe”


”le 20 juin existe”
Et possible d’avoir les deux locations:
”le client 12 loue le 10 mai la voiture 8643CF33”
”le client 12 loue le 20 juin la voiture 8643CF33”

Un modèle conceptuel : le S.E.A. 11 novembre 2020 24 / 32


Compléments : attributs clés des associations

Transformation en schéma relationnel :

VOITURE(immatriculation, marque)
CLIENT(numCli, nom)
DATE(jour)
LOUE(immatriculation, numCli, jour)
immatriculation clé étrangère référençant VOITURE(immatriculation)
numCli clé étrangère référençant CLIENT(numCli)
jour clé étrangère référençant DATE(jour)

Mais intérêt de faire une entité (et une table) pour stoker toutes les dates
du calendrier ?

Un modèle conceptuel : le S.E.A. 11 novembre 2020 25 / 32


Compléments : attributs clés des associations

⇒ Raccourci de notation pour ce genre de cas.


On souligne simplement l’attribut dans l’association que l’on veut intégrer à la clé.

Transformation en schéma relationnel. ⇒ On rajoute simplement la date


dans la clé.
VOITURE(immatriculation, marque)
CLIENT(numCli, nom)
LOUE(immatriculation, numCli, date)
immatriculation clé étrangère référençant VOITURE(immatriculation)
numCli clé étrangère référençant CLIENT(numCli)

Un modèle conceptuel : le S.E.A. 11 novembre 2020 26 / 32


Compléments : Entités Généralisation/Spécification
Généralisation/Spécification d’entités
Exemple : un personnel peut être médecin ou comptable.
PERSONNEL
NSS
nom
MedecinSpecialite
MedecinNumeroPoste
ComptableSpecialite
ComptableService
Avec les C.I. :
- ”les champs Medecin... sont soit tous vides, soit tous pleins
- ”les champs Comptable... sont soit tous vides, soit tous pleins
Et possiblement aussi
- ”si un personnel est comptable, il n’est pas medecin, et vice-versa.”
- ”Tout personnel est soit comptable, soit mèdecin, ou les deux.”

Un modèle conceptuel : le S.E.A. 11 novembre 2020 27 / 32


Compléments : Entités Généralisation/Spécification

⇒ Notation spéciale pour cela

T : couverture ou Totalité : ”un personnel est ou comptable, ou médecin, ou les deux.”


X : eXclusion : ”un comptable n’est pas médecin, et un médecin n’est pas comptable”
+ : couverture et exclusion.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 28 / 32


Compléments : Entités Généralisation/Spécification

Traduction en schéma relationnel :

PERSONNEL (nSS, nom)


MEDECIN (nSS, spécialité, numeroDePoste)
nSS est une clé étrangère qui référence PERSONNEL(nSS)
COMPTABLE(nSS, specialite, service)
nSS est une clé étrangère qui référence PERSONNEL(nSS)

Plus la contrainte d’intégrité correspondant au X/T/+.

Un modèle conceptuel : le S.E.A. 11 novembre 2020 29 / 32


Compléments : Contraintes sur les associations

Parfois il y a des contraintes entre différentes associations.


Exemple : des personnes étudient et/ou gèrent des services.

Question : rapport entre étudier et gérer ?


- Aucune contrainte ;
- soit l’un, soit l’autre mais pas les deux ;
- toute personne font forcément soit l’un soit l’autre, ou les deux ;
- tout étudiant gère également ;
- tout gestionnaire étudie également;
- tout étudiant est gestionnaire, et vice-versa.
Un modèle conceptuel : le S.E.A. 11 novembre 2020 30 / 32
Compléments : Contraintes sur les associations

Notation pour cela :

X : eXclusion : une personne qui étudie ne gère pas, et vice-versa.


T : couverture ou Totalité : toute personne gère, ou étudie, ou les deux ;
+ : couverture et exclusion ;
= : toute personne qui gére étudie également, et vice-versa;

Un modèle conceptuel : le S.E.A. 11 novembre 2020 31 / 32


Compléments : Contraintes sur les associations

I : Inclusion : deux cas possibles pour une personne.


a) si une personne gère, alors elle étudie ;
b) si une personne étudie, alors elle gére aussi.
On met une flèche entre les deux associations dans le sens a ou b choisi. (ici a)

Un modèle conceptuel : le S.E.A. 11 novembre 2020 32 / 32

Vous aimerez peut-être aussi