Académique Documents
Professionnel Documents
Culture Documents
UN MODELE CONCEPTUEL:
LE MODELE ENTITE-ASSOCIATION
Le modèle entité-association (EA, appelé aussi entité-relation ou ER) est un modèle de données de
type conceptuel. Comme tel, il est actuellement utilisé par plusieurs méthodes et outils d'aide à la
conception des bases de données (MERISE, IDA, Yourdon, ...). Ce modèle est actuellement limité à
la description statique: son but est de permettre la description conceptuelle des structures de
données d'une application.
L'idée fondamentale du modèle EA est de retenir comme concepts de base pour la représentation
les mêmes concepts génériques que ceux qui guident le processus d'abstraction conduisant de
l'observation d'une réalité à sa description. On suppose que la perception d'une situation observée se
fait naturellement sur la base d'une identification des objets présents (qu'ils soient réels, une
personne, ou abstraits, une foule), de liens entre ces objets (une personne conduit une voiture) et de
propriétés observables (la taille d'une personne, la couleur d'une voiture, ...). Le modèle EA propose
une description sur la base de ces mêmes trois concepts, renommés de façon à distinguer facilement
le discours sur la réalité (fait en termes d'objets, liens et propriétés) du discours sur la représentation
de la réalité (fait en utilisant les termes du modèle).
La correspondance entre les trois concepts génériques et la terminologie du modèle EA est la
suivante:
Entité
représentation d'un objet du monde réel (concret ou abstrait), perçu par le concepteur
comme ayant une existence propre, et à propos duquel on veut enregistrer des informations.
Une entité existe indépendamment du fait qu'elle puisse être liée à d'autres entités de la
base de données.
Exemples: Mme Dupont, Mr. Durand, la cafetière X32, l'atelier de fabrication A22, le
service Comptabilité, … sont des objets susceptibles d'être représentés par des entités.
Association
Attribut
représentation d'une propriété associée à un TE, ou à un TA, ou participant à la
composition d'un autre attribut. L'ensemble des attributs d'un TE (TA) représente
l'ensemble des informations inhérentes que l'on souhaite conserver sur les entités
(associations) du TE (TA).
Exemples: nom, prénoms, salaire sont des attributs du TE Employé; quantité-en-fabrication
est un attribut du TA fabrique; date-de-mariage est un attribut du TA est-marié-avec; jour,
mois, année sont des attributs composant un attribut date, ...
On appelle occurrence d'un TE (TA) toute entité (association) appartenant à l'ensemble décrit par le
TE (TA). On appelle population d'un TE (TA) l'ensemble des occurrences du TE (TA). La base de
données décrite par un schéma EA est donc l'ensemble des populations des TE et TA apparaissant
dans le schéma.
Une occurrence de TE est vue par l'utilisateur comme un ensemble de valeurs: une valeur pour
chaque attribut du TE (NB: il est possible que la valeur d'un attribut soit en fait une absence de
valeur ou un ensemble de valeurs).
Une occurrence de TA est vue par l'utilisateur comme un ensemble de valeurs (éventuellement vide)
et un ensemble d'occurrences de TE : une valeur pour chaque attribut du TA (s'il en existe), et, pour
chaque rôle associé au TA, une occurrence du TE qui joue ce rôle.
Il faut remarquer que les termes type, population, occurrence sont génériques (ne sont pas propres
au modèle EA, ni aux modèles conceptuels).
Le modèle EA permet une représentation graphique assez lisible du schéma d'une base de données.
Dans cette représentation, appelée diagramme EA, les types d'entités sont représentés par des
rectangles; les types d'associations sont représentés par des hexagones ou autre symbole similaire
(ovale, losange...). Les attributs sont soit rattachés au TE (TA) par des traits (convention utilisée
ici), soit listés à l'intérieur du rectangle TE (hexagone TA), au dessous du nom du TE (TA) et
séparés de celui-ci par une barre (voir les diagrammes MERISE, par exemple).
Ces types d'entité sont reliés par les types d'association suivants:
- Livraison, d'attribut quantité, liant Fournisseur, Article et Rayon;
- Vente, d'attribut quantité, liant Rayon et Article;
- Emploi, liant Employé et Rayon;
- Chef, cyclique, liant Employé (avec le rôle Inf) et Employé (avec le rôle Sup).
La signification des différents types de traits (pleins, pointillés, ...) est précisée dans le paragraphe 3.
Sup
Employé Chef Fournisseur
Inf
nom salaire nomF adresse
Emploi Livraison
quantité
Un type d’entité représente une classe d'objets du monde réel perçus comme similaires et ayant les
mêmes caractéristiques. Or, il arrive parfois qu'un même ensemble d'objets soit perçu d'un certain
point de vue comme une seule classe, mais en même temps perçu d'un autre point de vue comme
plusieurs classes, différentes malgré l'existence de caractéristiques communes.
Exemple: dans le diagramme EA décrivant un hypermarché, le TE Article regroupe tous les articles
vendus, quels qu'ils soient; certains traitements doivent pouvoir accéder de façon uniforme à tous
les articles: inventaire, recherche des caractéristiques d'un article dont on ne connaît que le code, ...
Pour d'autres usages, on peut néanmoins vouloir séparer les articles en plusieurs classes
(alimentation, habillement, Hi-Fi, hygiène, ...). Par exemple, la gestion des ventes promotionnelles
n'aura pas les mêmes critères suivant la catégorie, les articles d'alimentation doivent être retirés des
On sera donc amené à décrire, en plus du TE générique Article, des TE plus spécialisés,
représentant les sous-classes "intéressantes" (celles sur lesquelles on a effectivement quelque chose
de particulier à faire). Par exemple, un TE "Article alimentaire", un TE "Article d'habillement" et un
TE "Article Hi-Fi".
Ceci, toutefois, introduit une situation atypique: celle où les mêmes objets sont représentés par deux
TE (le TE générique et l'un des TE spécialisés), alors que normalement les populations de deux TE
représentent des classes d'objets disjointes.
Pour décrire une telle situation atypique, les modèles de données récents incluent le concept de
généralisation/spécialisation: un lien, orienté, d'un TE spécialisé (ou spécifique) vers un TE
générique. La sémantique de ce lien est qu'à toute occurrence du TE spécifique correspond une
occurrence du TE générique qui décrit le même objet du monde réel. Inversement, à toute
occurrence du TE générique correspond zéro ou une occurrence par TE spécifique. Graphiquement,
ce lien est représenté par une flèche orientée du TE spécifique vers le TE générique.
Article
Les liens de généralisation/spécialisation sont souvent appelés liens "est-un" (IS A); on dit que
"Article alimentaire est-un Article". On dit également que le TE spécifique est un sous-type du TE
générique qui, lui, est sur-type du TE spécifique. En effet, par convention, les attributs communs au
TE générique et aux TE spécifiques ne sont décrits, dans le schéma, que comme attributs du TE
générique. Néanmoins, ils sont implicitement inclus dans les attributs des TE spécifiques: on dit que
ces derniers "héritent" des attributs du TE générique. En plus des attributs hérités, les TE
spécifiques peuvent avoir des attributs propres.
Ce qui a été dit pour la description et l'héritage des attributs s'applique également à l'héritage des
rôles d'association. Par exemple, le TE "Article Hi-Fi", comme les autres TE spécifiques, est
implicitement lié par les TA Vente et Livraison, hérités du TE Article. Il pourrait, en plus, être lié
par un TA Réparation à un TE Service après-vente (tel type d'articles de Hi-Fi est réparé par tel
Service après-vente). Ce dernier TA n'est défini alors que pour les articles du TE Article Hi-Fi.
Un diagramme plus précis (mais partiel) pour la base de données exemple Hypermarché est donc:
marque
nomA
Vente Article type
n°code
quantité en
stock
Service
après-vente
Il n'est pas nécessaire que les TE spécifiques représentent, dans leur ensemble, tous les objets
représentés par le TE générique. Ainsi, dans l'exemple, les articles d'hygiène, de bricolage, ... ne
constituent pas d'autres classes spécifiques et sont donc uniquement représentés par le TE Article.
De même, les TE spécifiques d'un même TE générique ne représentent pas nécessairement des
populations disjointes, comme le montre le diagramme qui suit, décrivant des personnes travaillant
ou étudiant dans un campus universitaire. Cet exemple illustre également le fait qu'un TE générique
peut à son tour être sous-type d'un autre TE: on dit alors que l'on a une hiérarchie de
généralisations.
On parle de généralisation multiple lorsqu'un TE est sous-type de plusieurs autres TE. C'est le cas
dans l'exemple du campus universitaire pour le TE Assistant-doctorant, qui regroupe la population
des personnes qui sont à la fois Assistant et Doctorant. La généralisation multiple pose des
problèmes liés à l'héritage: éviter d'hériter deux fois d'un ancêtre commun (dans l'exemple,
Assistant-doctorant doit hériter une seule fois de Personne, soit via Doctorant-Etudiant, soit via
Assistant-Enseignant-Employé), éviter d'avoir des conflits d'héritage (par exemple, lorsque deux
attributs portant le même nom se trouvent dans deux TE génériques différents dont on hérite). Pour
résoudre ces conflits d'héritage, soit le concepteur spécifie explicitement une préférence d'héritage,
soit le système applique une règle implicite déterministe.
Assistant Professeur
laboratoire dirigé
Assistant-doctorant
Les cardinalités possibles pour un rôle (ici, Employé de Emploi) et leur signification sont les
suivantes:
min=0 : un employé peut ne travailler dans aucun rayon
min=1 : un employé doit travailler dans au moins un rayon
max=1 : un employé ne peut travailler dans plus d'un rayon
max=n : un employé peut travailler dans plusieurs rayons
La représentation graphique des rôles et des attributs varie en fonction des cardinalités associées au
rôle ou à l'attribut, selon le tableau ci-dessous:
minimum maximum
0 1
1 1
0 n
1 n
m n
Certains auteurs utilisent une convention graphique différente, consistant à indiquer explicitement
les cardinalités par deux chiffres (min,max ou min:max) au voisinage du trait continu représentant
le rôle correspondant:
0:n 2:2
Parent est parent de Enfant
La signification des cardinalités dans ce diagramme est: un parent peut avoir de 0 à n enfants; un
enfant a toujours (dans cette base de données) deux parents.
1 la notation pointée Employé•nom désigne l'attribut nom du TE Employé. Plus généralement, X•a désigne le
composant a de l'objet X.
Si l'on représente dans la base de données d'un constructeur automobile la composition d'une
voiture, on pourra obtenir les occurrences suivantes:
Terminologie: on appelle:
attribut simple: un attribut qui n'est pas décomposé en d'autres attributs: ses valeurs sont
atomiques. Un domaine lui est associé.
Exemple: salaire, téléphones
attribut complexe: un attribut qui est décomposé en d'autres attributs: ses valeurs sont des
valeurs composées.
Exemple: adresse, composé de: rue, ville, code postal
attribut monovalué: un attribut qui ne peut prendre qu'une seule valeur par occurrence
(cardinalité max=1).
Exemple: nom, date de naissance
attribut multivalué: un attribut qui peut prendre plusieurs valeurs par occurrence (cardinalité
max>1).
Exemple: prénoms, téléphones
attribut obligatoire: un attribut qui doit prendre une valeur au moins par occurrence (cardinalité
min=1).
Exemple: nom, prénoms
attribut facultatif: un attribut qui peut ne pas prendre de valeur dans une occurrence
(cardinalité min=0).
Exemple: salaire, téléphones
Le diagramme suivant:
montant date
année mois
illustre un TE Employé, qui a deux attributs simples, monovalués et obligatoires (n°E et nom), un
attribut simple, multivalué et obligatoire (prénoms) et deux attributs complexes et multivalués (CV
et postes), dont le premier est facultatif et le deuxième est obligatoire.
Il convient de souligner que la définition d'un attribut (ou d'un rôle) comme étant obligatoire induit
une contrainte sur la création des occurrences correspondantes. En effet, la création d'une
occurrence ne peut être acceptée que si tous les attributs (rôles) obligatoires reçoivent une valeur dès
sa création.
4. Identifiants des TE et TA
Définition: un identifiant d'un TE (ou TA) est un ensemble minimum d'attributs tel qu'il n'existe
pas deux occurrences du TE (ou TA) qui ont la même valeur pour ces attributs.
Un TE, comme un TA, peut avoir plusieurs identifiants; il peut n'en avoir aucun. Dans ce cas, des
occurrences de même valeur sont autorisées.
Exemple: n°employé et (nom+prénoms) sont deux identifiants du TE Employé, si dans cette
entreprise il n'y a jamais deux employés ayant les mêmes nom et prénoms, ou le même numéro.
Les identifiants des TE peuvent être représentés sur le diagramme en les soulignant (attention à
distinguer l'existence de deux identifiants de celle d'un identifiant composé de deux attributs). Par
contre, pour ne pas surcharger le diagramme, les identifiants des TA sont en général précisés
textuellement en commentaire du diagramme.
Une occurrence du TA Mariage est un triplet: < <un époux>, <une épouse>, date >
Comme l'attribut AVS est l'identifiant de Personne, Mariage possède deux identifiants:
époux•AVS et épouse•AVS
Cette définition n'est valable que si la population du TA Mariage ne contient que les mariages en
cours (on ne garde pas l'historique). Si le TA Mariage conservait l'historique (les mariages passés),
les cardinalités des deux rôles seraient 0,n et les identifiants du TA seraient:
Un TA dont tous les rôles ont une cardinalité maximum supérieure à 1, a souvent (mais pas
toujours) un identifiant qui est constitué de l'ensemble des identifiants des TE liés.
Exemple: soit un TA Contrôle, avec une occurrence (donc une moyenne, et un ensemble de notes)
par étudiant par matière suivie. Ce TA représente les résultats acquis, à ce jour, par un étudiant dans
une matière.
En supposant que les identifiants des TE soient ceux indiqués sur le diagramme, l'identifiant du TA
Contrôle est:
( Etudiant•N°Carte + Matière•NumMat )
Néanmoins, il n'est pas toujours vrai que l'identifiant d'un TA est constitué de l'ensemble des
identifiants des TE liés. Si l'un des rôles du TA a une cardinalité maximum égale à 1, l'identifiant du
TE associé à ce rôle est un identifiant du TA (ce qui était le cas de Mariage, dans la première
version).
Par exemple, soit le TA suivant:
nomA Cie Assurance
Une autre règle peut être établie pour les cas où plusieurs occurrences du TA lient les mêmes
occurrences des TE. Dans l'exemple ci-dessous, plusieurs commandes peuvent être passées par un
même client pour un même produit à des dates différentes. Dans ce cas l'identifiant du TA contient
au moins un attribut du TA.
L'identifiant d'un TE faible (qui est le même que celui du TA) est constitué de l'identifiant du TE
dont il dépend et d'un (ou plusieurs) attribut du TE faible.
L'identifiant de Exemplaire (et du TA "Correspond") est: ( Livre•ISBN + N°ex 2 )
Soit E un TE sous-type du TE E', alors tout identifiant de E' est aussi identifiant de E. E n'a pas
nécessairement d'identifiant qui lui soit propre. Dans l'exemple de l'hypermarché, Article
alimentaire, Article habillement et Article Hi-Fi ont tous les trois pour identifiant celui de Article
(n°code).
5. Contraintes d'intégrité
Les concepts d'entité, d'association, d'attribut et de sous-type ne suffisent pas à décrire tout ce qui
caractérise les données d'un schéma EA. Par exemple, pour le TA Mariage du § 4.1, une règle
connue mais non exprimée par ce diagramme est:
si une occurrence de Personne participe à l'association Mariage, alors la valeur de son
attribut état civil doit être "marié".
Un formalisme possible, inspiré de la logique du premier ordre, pour cette règle est:
∀ x,y ∈ Personne, <x,y> ∈ Mariage ⇒ x•état-civil = "marié" ∧ y•état-civil = "marié"
(soient x et y deux occurrences quelconques de Personne, alors, le fait que la paire <x,y> forme une
occurrence de mariage implique que l'attribut état-civil dans les occurrences x et y a la valeur
"marié")
2 ISBN signifie "international standard book number". C'est un numéro qui identifie tout nouveau
livre édité.
De telles règles, définissant les états (ou transitions d'état) possibles de la base de données et qui ne
peuvent pas être décrites avec les concepts du modèle, sont appelées contraintes d'intégrité. Si les
valeurs de la base de données ne satisfont pas ces contraintes, il y a une "erreur" dans la base de
données; on dit que la base de données est incohérente. Lors du passage au schéma logique (celui
implanté sur le SGBD), les contraintes d'intégrité peuvent être implémentées par des prédicats de
contraintes (par exemple les CHECK de SQL), par des procédures déclenchées automatiquement
(par exemple les TRIGGERS de SQL) ou par des procédures associées au schéma (par exemple les
"stored procedures" de SQL).
Les limites peuvent être définies en fonction du contexte (valeur d'un autre attribut, participation à
une association, ...).
Exemples:
- si mois∈{4, 6, 9, 11} alors jour∈[1:30] , sinon si mois=2 alors jour∈[1:29] sinon jour∈[1:31] ;
- si une Personne participe à l'association Mariage, alors son état civil doit être "marié";
- une française mariée avant 1986 a pour premier nom, le nom de son mari; une française mariée
après 1986 a pour premier nom son nom de jeune fille.
Par exemple, dans la base de l'hypermarché, les trois sous-types de Article sont disjoints: un article
alimentaire n'est jamais un article d'habillement et vice-versa.
Un autre type de contrainte peut être défini sur les groupes de sous-types issus d'un même sur-type
s'ils sont statiques. A priori un objet du monde réel peut se transformer et changer de classification.
Par exemple, dans la base de données du campus universitaire vue à la fin du paragraphe 2, un
étudiant ayant fini sa licence peut devenir assistant doctorant, puis ayant fini sa thèse il peut devenir
assistant, puis plus tard devenir professeur. La même occurrence change donc de sous-type au cours
de sa vie. Le groupe de sous-types est alors dit "dynamique". Au contraire certains groupes de sous-
types ne permettent aucun changement de classification. Par exemple pour l'hypermarché, le groupe
de sous-types d'Article est statique: un article d'habillement ne peut pas se transformer en article
alimentaire, etc. De tels groupes de sous-types sont dits statiques. C'est une contrainte d'intégrité.
Article
disjoint statique
En conclusion: