Previous Up Next
Accueil

2.2  Éléments constitutifs du modèle entités-associations

La représentation du modèle entités-associations s’appuie sur trois concepts de base :

L’objet est une entité ayant une existence propre. L’association est un lien ou relation entre objets sans existence propre. La propriété est la plus petite donnée d’information décrivant un objet ou une association.

2.2.1  Entité


Figure 2.1: Représentation graphique d’un exemple de type-entité.

Définition 1     -entité- Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement et qui est caractérisée par son unicité.

Exemples d’entité : Jean Dupont, Pierre Bertrand, le livre que je tiens entre les mains, la Ferrari qui se trouve dans mon garage, etc.

Les entités ne sont généralement pas représentées graphiquement.

Définition 2     -type-entité- Un type-entité désigne un ensemble d’entités qui possèdent une sémantique et des propriétés communes.

Les personnes, les livres et les voitures sont des exemples de type-entité. En effet, dans le cas d’une personne par exemple, les informations associées (i.e. les propriétés), comme le nom et le prénom, ne changent pas de nature.

Une entité est souvent nommée occurrence ou instance de son type-entité.

La figure 2.1 montre la représentation graphique d’un exemple de type-entité (Personne) sans ses propriétés associées.

Les type-entité Personne, caractérisé par un nom et un prénom, et Voiture, caractérisé par un nom et une puissance fiscale, ne peuvent pas être regroupés car ils ne partagent leurs propriétés (le prénom est une chaîne de caractères et la puissance fiscale un nombre). Les type-entité Personne, caractérisé par un nom et un prénom, et Livre, caractérisé un titre et un auteur, possèdent tous les deux deux attributs du type chaîne de caractères. Pourtant, ces deux type-entités ne peuvent pas être regroupés car ils ne partagent pas une même sémantique : le nom d’une personne n’a rien à voir avec le titre d’un livre, le prénom d’une personne n’a rien à voir avec un auteur.

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.

2.2.2  Attribut ou propriété, valeur


Figure 2.2: Représentation graphique d’un exemple de type-entité comportant trois attributs

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

Exemples d’attribut : le nom d’une personne, le titre d’une livre, la puissance d’une voiture.

Définition 4     -valeur- Au niveau du type-entité ou du type-association, 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.

La figure 2.2 montre la représentation graphique d’un exemple de type-entité (Personne) avec trois attributs.

Règle 5   Un attribut ne peut en aucun cas être partagé par plusieurs type-entités ou type-associations.
Règle 6   Un attribut est une donnée élémentaire, ce qui exclut des données calculées ou dérivées.
Règle 7   Un type-entité et ses attributs doivent être cohérents entre eux (i.e. ne traiter que d’un seul sujet).

Par exemple, si le modèle doit comporter des informations relatives à des articles et à leur fournisseur, ces informations ne doivent pas coexister au sein d’un même type-entité. Il est préférable de mettre les informations relatives aux articles dans un type-entité Article et les informations relatives aux fournisseurs dans un type-entité Fournisseur. Ces deux type-entités seront probablement ensuite reliés par un type-association.

2.2.3  Identifiant ou clé


Figure 2.3: Représentation graphique d’un exemple de type-entité comportant quatre attributs dont un est un identifiant : deux personnes peuvent avoir le même nom, le même prénom et le même âge, mais pas le même numéro de sécurité sociale.

Définition 8     -identifiant, clé- Un identifiant (ou clé) 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.

Il est donc impossible que les attributs constituant l’identifiant d’un type-entité (respectivement type-association) prennent la même valeur pour deux entités (respectivement deux associations) distinctes. Exemples d’identifiant : le numéro de sécurité sociale pour une personne, le numéro d’immatriculation pour une voiture, le code ISBN d’un livre pour un livre (mais pas pour un exemplaire).

Règle 9   Chaque type-entité possède au moins un identifiant, éventuellement formé de plusieurs attributs.

Ainsi, chaque type-entité possède au moins un attribut qui, s’il est seul, est donc forcément l’identifiant.

Dans la représentation graphique, les attributs qui constituent l’identifiant sont soulignés et placés en tête (cf. figure 2.3).

2.2.4  Association ou relation


Figure 2.4: Représentation graphique d’un exemple de type-association liant deux type-entités.

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

Exemples d’association : l’emprunt par l’étudiant Tanidute du 3 ème exemplaire du livre « Maîtrisez SQL ».

Les associations ne sont généralement pas représentées graphiquement.

Définition 11     -type-association- Un type-association (ou un type-relation) désigne un ensemble de relations qui possèdent les mêmes caractéristiques. Le type-association décrit un lien entre plusieurs type-entités. Les associations de ce type-association lient des entités de ces type-entités.

Comme les type-entités, les type-associations sont définis à l’aide d’attributs qui prennent leur valeur dans les associations.

Règle 12   Un attribut peut être placé dans un type-association uniquement lorsqu’il dépend de toutes les entités liées par le type-association.

Un type-association peut ne pas posséder d’attribut explicite et cela est relativement fréquent, mais on verra qu’il possède au moins des attributs implicites.

Exemples de type-association : l’emprunt d’un livre à la bibliothèque.

Une association est souvent nommée occurrence ou instance de son type-association.

La figure 2.4 montre la représentation graphique d’un exemple de type-association.

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.

Définition 13     -participant- Les type-entités intervenant dans un type-association sont appelés les participants de ce type-association.
Définition 14     -collection- L’ensemble des participants d’un type-association est appelé la collection de ce type-association.

Cette collection comporte au moins un type-entité (cf. section 2.3.2), mais elle peut en contenir plus, on parle alors de type-association n-aire (quand n=2 on parle de type-association binaire, quand n=3 de type-association ternaire, …).

Définition 15     -dimension ou arité d’un type-association- La dimension, ou l’arité d’un type-association est le nombre de type-entités contenu dans la collection.

Comme un type-entité, un type-association possède forcément un identifiant, qu’il soit explicite ou non.

Règle 16   La concaténation des identifiants des type-entités liés à un type-association constitue un identifiant de ce type-association et cet identifiant n’est pas mentionné sur le modèle (il est implicite).

Cette règle implique que deux instances d’un même type-association ne peuvent lier un même ensemble d’entités.

Souvent, un sous-ensemble de la concaténation des identifiants des type-entités liés suffit à identifier le type-association.

On admet également un identifiant plus naturel et explicite, à condition qu’il ne soit qu’un moyen d’exprimer plus simplement cette concaténation.

2.2.5  Cardinalité


Figure 2.5: Représentation graphique des cardinalités d’un type-association. Dans cet exemple pédagogique, on suppose qu’un livre ne peut posséder qu’un auteur.

Définition 17     -cardinalité- La cardinalité d’une patte reliant un type-association et un type-entité précise le nombre de fois minimal et maximal d’interventions d’une entité du type-entité dans une association du type-association. La cardinalité minimale doit être inférieure ou égale à la cardinalité maximale.

Exemple de cardinalité : une personne peut être l’auteur de 0 à n livre, mais un livre ne peut être écrit que par une personne (cf. figure 2.5).

Règle 18   L’expression de la cardinalité est obligatoire pour chaque patte d’un type-association.
Règle 19   Une cardinalité minimal est toujours 0 ou 1 et une cardinalité maximale est toujours 1 ou n.

Ainsi, si une cardinalité maximale est connue et vaut 2, 3 ou plus, alors nous considérons qu’elle est indéterminée et vaut n. En effet, si nous connaissons n au moment de la conception, il se peut que cette valeur évolue au cours du temps. Il vaut donc mieux considérer n comme inconnue dès le départ. De la même manière, on ne modélise pas des cardinalités minimales qui valent plus de 1 car ces valeurs sont également susceptibles d’évoluer. Enfin, une cardinalité maximale de 0 n’a pas de sens car elle rendrait le type-association inutile.

Les seuls cardinalités admises sont donc :

0,1 :
une occurrence du type-entité peut exister tout en étant impliquée dans aucune association et peut être impliquée dans au maximum une association.
0,n :
c’est la cardinalité la plus ouverte ; une occurrence du type-entité peut exister tout en étant impliquée dans aucune association et peut être impliquée, sans limitation, dans plusieurs associations.
1,1 :
une occurrence du type-entité ne peut exister que si elle est impliquée dans exactement (au moins et au plus) une association.
1,n :
une occurrence du type-entité ne peut exister que si elle est impliquée dans au moins une association.

Une cardinalité minimale de 1 doit se justifier par le fait que les entités du type-entité en questions ont besoin de l’association pour exister. Dans tous les autres cas, la cardinalité minimale vaut 0. Ceci dit, la discussion autour d’une cardinalité minimale de 0 ou de 1 n’est intéressante que lorsque la cardinalité maximale est 1. En effet, nous verrons que, lors de la traduction vers un schéma relationnel (cf. section 3.1.3), lorsque la cardinalité maximale est n, nous ne ferons pas la différence entre une cardinalité minimale de 0 ou de 1.

Remarques

La seule difficulté pour établir correctement les cardinalités est de se poser les question dans le bon sens. Pour augmenter le risque d’erreurs, il faut noter que, pour les habitués, ou les futurs habitués, du modèle UML, les cardinalités d’un type-association sont « à l’envers » (par référence à UML) pour les type-associations binaires et « à l’endroit » pour les n-aires avec n>2.

La notion de cardinalité n’est pas définie de la même manière dans le modèle Américain et dans le modèle Européen (Merise). Dans le premier n’existe que la notion de cardinalité maximale.

Avec un SGBD relationnel, nous pourrons contraindre des cardinalités à des valeurs comme 2, 3 ou plus en utilisant des déclencheurs (trigger, cf. section ??).

Base de Données et langage SQL – Laurent Audibert

Previous Up Next