Un support de cours magistraux de Bases de données

Modèle entité-association

Pierre Crescenzo



retour au sommaire


  1. Introduction

    Le modèle Entité-Association (notation : EA) est aussi fréquemment nommé Entité-Relation et parfois Entité-Relation-Attribut. Le modèle EA propose des concepts (principalement les entités, les associations et les attributs) permettant de décrire un ensemble de données relatives à un domaine défini afin de les intégrer ensuite dans une BD.

    • Le modèle relationnel (cf. chapitres 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre) est pauvre en capacité de représentation sémantique. Cependant, le concepteur de la BD a besoin de certaines informations sémantiques que le modèle EA lui permet de décrire.
    • Il est difficile de modéliser un domaine sous une forme directement manipulable par un SGBD. Une ou plusieurs modélisations intermédiaires sont donc utiles, le modèle EA constitue l'une des premières et des plus courantes.

    Ce chapitre ne présente que les concepts de base du modèle EA qui ne constitue pas le point le plus important de ce cours.

  2. Entité et type-entité

    Définition : Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement.

    Définition : Un type-entité est un ensemble d'entités qui possèdent les mêmes caractéristiques.

    Attention ! Par abus de langage, on utilise souvent le mot entité en lieu et place du mot type-entité, il faut cependant prendre garde à ne pas confondre les deux concepts.

    • Exemples de type-entité : Personne, Automobile, Région…
    • Exemples d'entité : Jean Dupont, Pierre Bertrand, ma voiture, Provence-Alpes-Côte d'Azur…
    • Exemple de représentation graphique d'un type-entité :
      type-entité
    • Les entités ne sont généralement pas représentées graphiquement.
  3. Attribut, propriété

    Définition : Un attribut (ou une propriété) est une caractéristique associée à un type-entité.

    Au niveau du type-entité, chaque attribut possède un domaine qui définit l'ensemble des valeurs possibles qui peuvent être choisies pour lui (entier, chaîne de caractères, booléen…). Au niveau de l'entité, chaque attribut possède une valeur compatible avec son domaine.

    • Exemples d'attribut : l'âge d'une personne, le code d'un fournisseur, le numéro d'un produit…
    • Exemple de représentation graphique d'un type-entité avec deux attributs :
      type-entite-avec-attributs
  4. Association, relation

    Définition : Une association (ou une relation) est un lien entre plusieurs entités.

    Définition : Un type-association (ou un type-relation) est un ensemble de relations qui possèdent les mêmes caractéristiques.

    Le type-association décrit un lien entre plusieurs types-entités. Les associations de ce type-association lient des entités de ces types-entités. Comme les types-entités, les types-associations sont définis à l'aide d'attributs qui prennent leur valeur dans les associations.

    Attention ! Par abus de langage, on utilise souvent le mot association en lieu et place du mot type-association, il faut cependant prendre garde à ne pas confondre les deux concepts.

    • Exemples de type-association : le mariage de deux personnes, le transport d'un produit vers un entrepôt, l'affectation d'un employé à un service…
    • Exemples d'association : le mariage de Bernard et Marielle, le transport de la Clio 3333 XR 06 vers le dépôt de Nice, le fait que Paul travaille au service Marketing…
    • Exemple de représentation graphique d'un type-association :
      type-association
    • Les associations ne sont généralement pas représentées graphiquement.
    • Un type-association peut ne pas posséder d'attribut et cela est relativement fréquent.
  5. Identifiant

    Définition : Un identifiant d'un type-entité ou d'un type-association est constitué par un ou plusieurs de ses attributs qui doivent avoir une valeur unique pour chaque entité ou association de ce type.

    Au niveau du type-entité, chaque attribut possède un domaine qui définit l'ensemble des valeurs possibles qui peuvent être choisies pour lui (entier, chaîne de caractères, booléen…). Au niveau de l'entité, chaque attribut possède une valeur compatible avec son domaine.

    • Exemples d'identifiant : le numéro d'immatriculation d'une voiture, le code-barre d'un produit…
    • Exemple de représentation graphique d'un identifiant (immatriculation) :
      identifiant
    • On parle parfois de clé plutôt que d'identifiant.
    • Chaque type-entité possède au moins un identifiant, éventuellement formé de plusieurs attributs. Chaque type-entité possède au moins un attribut qui, s'il est seul, est donc forcément l'identifiant.
    • L'identifiant, qu'il soit explicite ou non, d'un type-association doit être la concaténation des identifiants des types-entités liés. On admet cependant un identifiant plus naturel, à condition qu'il ne soit qu'un moyen d'exprimer plus simplement cette concaténation.
  6. Cardinalité

    Définition : La cardinalité d'un type-association est le nombre de fois minimal et maximal qu'une entité peut intervenir dans une association de ce type.

    La cardinalité minimale doit être inférieure ou égale à la cardinalité maximale.

    • Exemple de cardinalité : un client peut commander entre 1 et n produits.
    • Exemple de représentation graphique de cardinalité :
      cardinalité
    • L'expression de la cardinalité est obligatoire pour chaque patte d'un type-association.

    La cardinalité minimale peut-être :

    • 0 Cela signifie qu'une entité peut exister tout en étant impliquée dans aucune association.
    • 1 Cela signifie qu'une entité ne peut exister que si elle est impliquée dans au moins une association.
    • n Cela signifie qu'une entité ne peut exister que si elle est impliquée dans plusieurs associations.

    Attention ! Le cas n est rare et pose problème. Il est prudent de l'éviter.

    La cardinalité maximale peut-être :

    • 0 Cela signifie qu'une entité ne peut pas être impliquée dans une association.
    • 1 Cela signifie qu'une entité peut être impliquée dans au maximum une association.
    • n Cela signifie qu'une entité peut être impliquée dans plusieurs associations.

    Attention ! En toute logique, le cas 0 ne doit pas exister : il démontre un problème de conception puisque le type-entité est inutile au type-association. Il faut alors reconsidérer la cardinalité ou retirer la liaison entre le type-entité et le type-association.

  7. Dimension, nombre de pattes

    Définition : La dimension (ou une nombre de pattes) d'un type-association est le nombre de types-entités qui y participent. Si un type-entité participe plusieurs fois au type-association, il est compté autant de fois que de participations.

    Attention ! Les cardinalités maximales à 1 ne sont généralement utilisées que dans des types-associations de dimension 2 (dits binaires). Si ce n'est pas le cas, bien que cela puisse être valide, il est prudent de modifier ces cardinalités vers n ou, mieux, de revenir à des types-associations binaires. Cela facilitera en effet le passage vers le modèle relationnel (cf. chapitres 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre).

  8. Remarques diverses

    • Une entité ou une association est souvent nommée occurrence ou instance de son type.
    • Un attribut ne peut en aucun cas être partagé par plusieurs types-entités ou types-associations.
    • Il est parfois difficile de faire un choix entre un type-entité et un type-association : un mariage est-il un type-association entre deux personnes ou un type-entité pour lequel on veut conserver un numéro, une date, un lieu, etc. et que l'on souhaite manipuler en tant que tel ? Le contexte doit aider à répondre à ce genre de question.
    • Lorsqu'on ne parvient pas à trouver d'identifiant pour un type-entité, il faut se demander s'il ne s'agit pas en fait d'un type-association. Si ce n'est pas le cas, un identifiant arbitraire numérique entier peut faire l'affaire.
    • Lorsque toutes les pattes d'un type-association portent la cardinalité 1,1, il faut se demander si ce type-association et les types-entités liés ne décrivent pas en fait un seul type-entité.
    • Pour faciliter la lecture du schéma, il est assez courant de ne pas y faire figurer les attributs ou de ne conserver que ceux qui font partie des identifiants. Les attributs cachés doivent alors absolument être spécifiés dans un document à part.
  9. Exercices de modélisation

    1. Décrivez, grâce au modèle EA, un mariage et les mariés.
    2. Décrivez, grâce au modèle EA, des enseignements avec des matières, des enseignants et des étudiants.
    3. Décrivez, grâce au modèle EA, des appartements avec leurs propriétaires, leurs locataires et leurs occupants.
    4. Décrivez, grâce au modèle EA, un système répondant à la description suivante que vous donne un commerçant : « Des clients me commandent des articles. J'ai aussi des lots d'articles. Je conserve tous les bons de commande. »
  10. Passage au modèle relationnel

    Pour traduire un schéma du modèle EA vers le modèle relationnel (cf. chapitre 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre), les indications suivantes peuvent être appliquées :

    1. Il faut tenir compte des remarques écrites qui accompagnent forcément les schémas EA. Ces remarques permettent parfois d'adapter les indications ci-dessous.
    2. La normalisation (cf. chapitre 4 Modèle relationnel : formes normales) devrait toujours être effectuée avant le passage au modèle physique. Dans les faits, elle est parfois faite a posteriori ce qui impose toujours une surcharge de travail importante.
    3. Chaque type-entité donne naissance à une relation. Chaque attribut de ce type-entité devient un attribut de la relation. L'identifiant est conservé en tant que clé de la relation.
    4. Chaque type-association dont aucune patte n'a pour cardinalité maximale 1 donne naissance à une relation. Chaque attribut de ce type-association devient un attribut de la relation. L'identifiant, s'il est précisé, est conservé en tant que clé de la relation, sinon cette clé est formée par la concaténation des identifiants des types-entités qui interviennent dans le type-association.
    5. Un type-association dont au moins une patte a une cardinalité maximale à 1 (ce type-association devrait être binaire et n'a généralement pas d'attribut) ne devient pas une relation. Il décrit en effet une dépendance fonctionnelle (cf. chapitre 4 Modèle relationnel : formes normales). Il faut alors considérer un des deux types-entités (forcément un dont la patte vers le type-association a une cardinalité maximale valant 1) et la relation correspondant à ce type-entité se voit simplement ajouter comme attribut l'identifiant de l'autre type-entité.
  11. Exemple de passage au modèle relationnel

    Voici un exemple de modélisation EA, très simplifiée :

    passage de EA à relationnel

    Voici les relations déduites de ce schéma :

    • Patient(numéro, nom, numMutuelle)
    • Mutuelle(numMutuelle, nomMutuelle)
    • Médecin(numMédecin, nomMédecin)
    • Affection(codeAffection, nomAffection)
    • Hospitalisation(numéro, codeAffection, numMédecin, dateEntrée, dateSortie)

    On utilise la notation suivante : nomRelation(clé, autresAttributs)



retour au sommaire

XHTML 1.1 validé ! CSS 2 validé ! GNU's Not Unix Debian GNU/Linux Optimisé pour tout navigateur ! Contre les brevets logiciels !

URI : http://www.crescenzo.nom.fr/CMBasesDeDonnees/002-ModeleEA.html conforme à XHTML 1.1 et à CSS 2.1
Création : 2002/09/01
Dernière modification : 2009/04/24
Hébergement : Anima
Contact et maintenance : Pierre@crescenzo.nom.fr