Vous êtes sur la page 1sur 54

MSIS Chapitre 4

Le concept
d’association

Jolita Ralyté | UniGe | CUI | jolita.ralyte@unige.ch


Dans ce chapitre

§ Qu’est-ce qu’une association? Comment l’identifier?

§ Propriétés des associations

§ Associations spécifiques

§ Représentation des associations en langage formel relationnel

2
Identification des associations
Monde informationnel

INFORMATION
Specification conceptuelle

Monde
Monde DOMAINE INFORMATIQUE
artificiel
vivant Organisation, activités Architecture informatique
numérique

3
Association dans le monde informationnel
INFORMATION

Association – une représentation d'un ensemble de liens entre les


objets de deux classes ayant la même sémantique et décrits par les
mêmes caractéristiques.

Chaque classe joue un rôle déterminé dans l’association.

possède >
CHAUFFEUR PERMIS
< appartient à

4
Association dans le monde vivant
DOMAINE

Si les classes représentent des concepts du domaine


ex. : Personne, Véhicule

alors les associations entre classes représentent des phrases formées


sur ces concepts
ex. : une personne est propriétaire d’un véhicule,
une personne conduit un véhicule,
une personne répare un véhicule…

5
Association dans le monde vivant
DOMAINE

De toute phrase décrivant un domaine d’activité, on peut extraire des


classes et des associations entre des classes.
« Tel chauffeur conduit tel véhicule, qui est assuré auprès de telle compagnie
d’assurances, pour effectuer tel trajet. »

Classes
Véhicule, Chauffeur, Trajet, Compagnie-Assurances

Associations
Conduire entre les classes Chauffeur et Véhicule
Etre assuré entre les classes Véhicule et Compagnie-Assurances
Effectuer formée sur Conduire et Trajet

6
Identification des associations
DOMAINE INFORMATION

Quelles sont les phrases de la description du monde vivant qui


donnent lieu à des représentations dans le modèle conceptuel du SI ?
§ Les phrases peuvent mettre en jeu plusieurs classes : les associations ne sont
pas toujours binaires, mais peuvent être n-aires.
§ Les formulations des phrases peuvent avoir la forme active ou passive :
Cette compagnie assure ce véhicule.
Ce véhicule est assuré par cette compagnie.
§ Il est possible de construire des associations sur des associations :
L’association Effectuer formée sur Conduire et Trajet.

7
Identification des associations
DOMAINE INFORMATION

Conduit > Assuré par > Compagnie-


Chauffeur Véhicule
Assurances

Trajet

8
Association dans le monde artificiel
INFORMATIQUE

Représente un chemin d’accès entre objets – des possibilités


techniques de relier un objet à un autre objet.
Peut-on associer tout objet de toute classe à n’importe quel objet de n’importe
quelle autre classe ?
Potentiellement oui.

Restriction en BD : si un objet d’une classe A est associé à un objet


de la classe B, alors tout objet de A peut être associé à un objet de B.

Un SGBD permet de naviguer d’objets en objets en passant de classes en


classes et en suivant les chemins d’accès.

9
Implémentation des associations
INFORMATION INFORMATIQUE

Le monde informatique des SGBD utilise des mécanismes


d’associations de nature binaire :
§ un objet d’une classe peut être associé à un ou plusieurs objets d’une autre
classe,
§ la composition des associations permet de connecter les objets de plusieurs
classes.

Le monde informatique doit offrir une représentation fidèle aux


raisonnements faits autant au niveau informationnel qu’au au niveau
du monde vivant!

10
Propriétés d’une association
Sémantique de l’association
Cardinalité des rôles d’association
Contraintes entre associations
Transformation d’une association en classe
Sémantique de l’association
La sémantique de l’association est définie par son nom et les rôles
que jouent les classes participant à l’association.

Pour la clarté du modèle il faut nommer l’association et/ou les rôles


des classes.

nom de l’association
Classe A Classe B
rôle de A rôle de B

titulaire possède >


CHAUFFEUR PERMIS
< appartient à propriété

12
Multiplicité de liens dans une association
Une association entre deux classes représente de 0 à N liens entre les
objets de ces classes.

Possession
PERSONNE VOITURE
1 0..N

v1: VOITURE
AZ.345
Porche
Michel : Personne
v2: VOITURE
AI.122
BMW
Marie : Personne v3: VOITURE
Paul : Personne
NL.374
Ferrari

13
Cardinalités des rôles d’associations
Cardinalité – le nombre d’objets avec lesquelles un objet peut être
liée via un ensemble de liens.

Pour chaque rôle d’une association on spécifie sa cardinalité.

un-à-un un-à-plusieurs plusieurs-à-un plusieurs-à-plusieurs

14
Cardinalités des rôles d’associations
Une cardinalité est définie par deux valeurs numériques (min..max)
min..max min..max
Classe A Classe B

• min : le nombre de fois minimum qu’un objet participe à une association


• max : le nombre de fois maximum qu’un objet participe à une association

§ Les valeurs possibles sont : (0..1), (1..1), (0..N), (1..N), (M..N) ou N indique un
nombre indéterminé >1
§ N et (O..N) peut être remplacé par * : (*), (1..*)

1..1 possède 0..N 1 possède *


PERSONNE VOITURE PERSONNE VOITURE

15
Exemples des cardinalités

Adhésion 3..N
CLUB PERSONNE

Il faut au moins 3 personnes


pour ouvrir un club

Inscription 0..10
ÉTUDIANT COURS

On peut s’inscrire au plus 10 cours

Possession *
PERSONNE VOITURE

Une personne peut posséder un


nombre indéterminé de voitures 16
Cardinalités doivent être déterminés pour les
deux rôles de l’association

0..N Adhésion 3..N


CLUB PERSONNE

Une personne peut être membre Il faut au moins 3 personnes


de nombre indéterminé de clubs pour ouvrir un club

5..20 Inscription 0..10


ÉTUDIANT COURS

On accepte entre 5 et 20 On peut s’inscrire au plus 10 cours


étudiants par cours

1 Possession *
PERSONNE VOITURE

Une voiture appartient toujours à Une personne peut posséder un


une personne et pas plus nombre indéterminé de voitures 17
Multiples associations
Il peut exister plusieurs associations entre deux classes.

Les noms d’association et/ou des rôles aide à distinguer leur sémantique.

participation

membre

EMPLOYÉ PROJET

directeur

direction

18
Association récursive
L’association récursive relie les objets de la même classe entre eux.

La spécification des rôles est indispensable pour comprendre le sens


de l’association est récursive.

est prérequis pour est l’entant de


COURS PERSONNE
* *
a comme * est parent de 0..2 Filiation
prérequis

19
Degré d’association
Degré d’une association – le nombre de classes participant dans
l’association.

§ Binaire = degré 2
A B
§ Ternaire = degré 3
§ N-aire = degré N
A B

C
A B

20
Exemple d’association ternaire
Un cours peut être donné dans plusieurs salles différentes et par plusieurs
enseignants différents.

* *
COURS Planning SALLE

ENSEIGNANT

Peut-on savoir quel enseignant donne quel cours et dans quelle salle?
NON!
21
Association ternaire vs Classe
On peut toujours transformer une association ternaire /n-aire en une classe.

Forte recommandation !

Les objets de la classe SÉANCE-COURS constituent le planning des cours. Une séance d’un
cours à une date et se déroule dans une salle et peut être donnée par un ou plusieurs
enseignants.

1 * * 1
COURS SÉANCE-COURS SALLE
Date
*
1..*
Cette modélisation est
ENSEIGNANT beaucoup plus précise !
22
Contraintes entre associations
1..* écrit par >
Ordonnancement LIVRE AUTEUR
1..* {ordonné}

* commandant 1
Exclusion VOL PILOTE
{ou exclusif}
* 1
copilote

* membre 1..*
Inclusion ÉMPLOYÉ DÉPARTEMENT
{inclusion}
* *
directeur
23
Comment faire si l’association a des
informations propres à elle?
* évaluation *
ÉTUDIANT EXAMEN
Matricule NomCours
Nom Date
Prénom …

Où est-ce qu’on inscrit la note obtenue par un étudiant pour un examen ?

Option simple : transformer l’association évaluation en classe

Option UML : classe d’association


24
Transformation d’une association en classe
* évaluation *
ÉTUDIANT EXAMEN
Matricule NomCours
Nom Date
Prénom …

1 * * 1
ÉTUDIANT ÉVALUATION EXAMEN
Matricule Note NomCours
Nom … Année
Prénom Semestre
… …

25
Classe d’association (UML)
Classe d’association – une association qui est représentée par une
classe afin d’y ajouter des attributs et des opérations.
§ La cardinalité maximale des deux rôles est N.
§ A transformer en une classe normale avec deux associations!

* * *
Classe A Classe B ÉTUDIANT * EXAMEN

Classe Association
ÉVALUATION
attributs Note

méthodes ()
Attention: seuls les outils de modélisation
spécifiques UML supportent cette représentation !
26
Associations spécifiques
Composition
Agrégation
Spécialisation / généralisation
Composition
Association de type « fait partie de »

Composition – l’objet de la classe composante est contenu dans un objet


de la classe A (casse composée).
§ Les cycles de vie des objets de la classe composante et du l’objet de la classe
composée sont liés – si le composé est détruit, ses composants le sont aussi.
§ Un objet composant ne peut pas exister tout seul (dans le système).
§ Un objet composant n’appartient qu’à un seul objet composé.

Classe Classe 1..N


composée composante Bâtiment Pièce

28
Agrégation
Association de type « fait partie de », moins forte que la composition.

Agrégation – une association non symétrique dans laquelle une


classe joue un rôle prédominant par rapport à l’autre classe.
§ Une relation de type « agrégat / élément »
§ Un objet de la classe élément peut être lié à plusieurs objets d’autres classes
(l'élément peut être partagé).
§ Un objet de la classe élément peut exister sans l’agrégat (et inversement) : les
cycles de vies de l'agrégat et de ses éléments peuvent être indépendants.

Classe Classe *
agrégat élément Département * Employé

29
Composition, agrégation ou association
En modélisation conceptuelle de données toujours privilégier
l’association simple.

Composition à Association
1..N 1 1..N
Bâtiment Pièce Bâtiment Pièce
composé de>

Agrégation à Association

Département * * Employé Département * * Employé


emplois

30
Spécialisation / généralisation

Un moyen de créer une classification Classe générique


des objets similaires
Attributs communs
§ Spécialisation – une association qui permet
d’étendre les propriétés d’une classe sous
forme de sous-classes, plus spécifiques. est un est un

§ Généralisation – une association qui Classe Classe


permet d’extraire les propriétés et les spécifique 1 spécifique 2
opérations communes à plusieurs classes
et de les définir dans une classe générique. Attributs Attributs
propres propres

31
Spécialisation / généralisation

Un moyen de créer une hiérarchie de


classes de plus en plus spécialisées Ouvrage

code_ouvrage
titre

Livre Revue
ISBN ISSN
{auteur} volume
numéro

32
Spécialisation / généralisation
Un moyen d’organiser un domaine, créer une taxonomie

Boisson

Eau minérale Alcool

Eau gazeuse Eau plate Vin Bière Liqueur

33
Spécialisation / généralisation
Spécialisation / généralisation – un type particulier d’association.

Classe A Classe A
1,1

0,1
Classe B Classe B

§ Tout objet de B est associé à exactement un objet de A de manière permanente.


§ Un objet de A est associé au maximum à un objet de B.

34
Quel intérêt pour la spécialisation?
Spécialisation logique ou d’utilisation ?

Spécialisation logique – basée sur des propriétés logiques des éléments du


modèle, des règles et des traitements spécifiques sont appliqués en fonction
de la spécialisation.
Client_Sénior est une spécialisation de Client – les clients de plus de 65 ans ont des
privilèges spécifiques.

Contrainte d’utilisation – la condition est gérée de façon extérieure (lors de


l’utilisation de la BD).
Les participants d’une conférence sont demandés de désigner leur régime alimentaire
lors de l’inscription à la conférence.
à pas de spécialisation des participants par régime alimentaire, car cette
information n’a aucun impact sur le traitement des participants.

35
Contraintes de spécialisation
Spécialisation disjointe ou chevauchante ?

Un objet peut-il appartenir à plusieurs spécialisations ou à une seule ?

Disjointe – un objet ne peut appartenir Chevauchante – un objet peut appartenir


qu’à une seule des spécialisations. à plusieurs spécialisations.
Le même client ne peut être à la fois privé et Une personne peut être à la fois enseignant et
entreprise. étudiant.

Client Personne

dis. chev.
Client_Privé Client_Entreprise Enseignant Etudiant

36
Contraintes de spécialisation
Spécialisation totale ou partielle ?

Un objet doit-il forcément appartenir à l’une des spécialisations ?

Totale – un objet doit absolument Partielle – un objet ne doit pas forcément


appartenir à l’une des spécialisations. être spécialisé.
Tout client est soit privé, soit entreprise. Un client peut être ni exceptionnel ni mauvais.

Client Client

tot. part.

Client_Privé Client_Entreprise Cl_Exceptionnel Cl_Mauvais

37
Exemples de spécialisations

Totale et disjointe Totale et chevauchante


Tout client est soit privé, soit
Toute personne est soit enseignant,
entreprise, jamais les deux.
soi étudiant, soit les deux.

Client Personne

{t, d} {t, ch}

Client_Privé Client_Entreprise Enseignant Etudiant

38
Exemples de spécialisations
Partielle et disjointe Partielle et chevauchante
§ Un client peut être classé comme § Une personne est soit un enseignant,
exceptionnel ou comme mauvais, soit un étudiant, soit non classée dans
mais pas les deux à la fois. aucune de ces deux catégories (ex.
§ Les autres clients ne sont placés dans secrétaire, comptable).
aucune des catégories. § Elle peut appartenir aux deux catégories
à la fois.

Client Personne

{p, d}
{p, ch}

Cl_Exceptionnel Cl_Mauvais Enseignant Etudiant

39
Spécialisation multiple

Une classe peut être spécialisation PERSONNE


de plusieurs classes.

ENSEIGNANT ETUDIANT

ASSISTANT

40
Représentation des
associations en langage
formelle relationnel
Définition générique

?..? ?..?
Classe A Classe B

Deux classes A et B sont reliées par une association et


cléA est la clé de A et A1, A2, A3,… sont les attributs de A
cléB est la clé de B et et B1, B2, B3,… sont les attributs de B

La définition de l’association dépend des cardinalités de l’association.

A voir cas par cas dans les pages suivantes.

42
Association simple 0..1 – 0..N
0..1 0..N
Classe A Classe B

Si deux classes A et B sont reliées par une association ayant comme cardinalités
0..1 du côté de A et 0..N du côté de B, alors la définition de la classe B doit inclure
la clé de la classe A.
A (cléA // A1, A2, A3,…)
B (cléB // cléA, B1, B2, B3,…)

Dans la définition de la classe B :


§ cléA est aussi appelée clé étrangère ou contrainte de référence ou encore
dépendance référentielle,
§ la valeur de cléA peut être obscure (inconnue) – un objet de B peut exister
sans être relié à aucun objet de A.
43
Association simple 0..1 – 0..N
Exemple : catalogue de formations d’une école
Le catalogue peut contenir des formations qui n’ont pas de responsable attitré (ex. la formation
n’est pas ouverte)

0..1 gère > 0..N


RESPONSABLE FORMATION
IdResp // Titre //
Nom Durée
Prénom Description
email Crédits
… ..

RESPONSABLE (IdResp // Nom, Prénom, email,…)

FORMATION (Titre // IdResp, Durée, Description, Crédits,…)

ici la valeur de IdResp peut être obscure


44
Association 1 – 0..N
1 0..N
Classe A Classe B

Si deux classes A et B sont reliées par une association ayant comme cardinalités 1
du côté de A et 0..N du côté de B, alors la définition de la classe B doit inclure la clé
de la classe A dont la valeur doit être claire pour tous les objets de B.
A (cléA // A1, A2, A3,…)
B (cléB // cléA, B1, B2, B3,…)

Dans la définition de la classe B:


§ la valeur de cléA doit être claire – un objet de B ne peut pas exister sans être
relié à aucun objet de A et il ne peut être relié qu’à un seul objet A.

Attention à la cohérence de données 45


Association simple 1 – 0..N
Exemple : gestion des immatriculations des voitures par le service des automobiles
Toute voiture immatriculée doit être reliée à une et une seule personne considérée comme
propriétaire.
Toute personne peut posséder plusieurs voitures ou aucune.

1 possède > 0..N


PERSONNE VOITURE
IdPersonne // NoImmatric //
Nom Marque
Prénom Modèle
DateNaissance DateFabrication
… ..

PERSONNE (IdPersonne // Nom, Prénom, DateNaissance,…)

VOITURE (NoImmatric // IdPersonne, Marque, Modèle, DateFabrication,…)

ici la valeur de IdPersinne doit être claire 46


Association 1 – 0..N
Dépendance existentielle
1 0..N
Classe A Classe B

La classe B dépend existentiellement de la classe A. Tout objet de B dépend


existentiellement d’un objet de A.

§ Un objet de B
§ ne peut pas exister sans être relié à aucun objet de A et ne peut être relier qu’à un seul
objet de A
§ est relié au même objet de A pour toute son existence

§ La clé de A fait partie de la clé de B


A (cléA // A1, A2, A3,…)
B (cléA attributs cléB // B1, B2, B3,…)
47
Dépendance existentielle
Exemple : gestion des réservations d’hôtel pour une chaine hôtelière
Les chambres sont numérotées de la même façon dans tous les hôtels. Le numéro de
chambre ne suffit pas pour identifier une chambre, il faut aussi dire dans quel hôtel elle se
trouve.

1 possède > 0..N


HOTEL CHAMBRE
NomHotel // NomHotel
Catégorie NumChambre //
Adresse Type
Description
… ..

HOTEL (NomHotel // Catégorie, Adresse,…)

CHAMBRE (NomHotel NumChambre // Type, Description,…)

48
Association complexe 0..N – 0..N
0..N 0..N
Classe A Classe B

Une nouvelle classe AB doit être crée pour représenter l’association


même si l’association n’a pas d’attributs propres.

La clé de AB est composée des clés de A et de B.


A (cléA // A1, A2, A3,…)
B (cléB // B1, B2, B3,…)
AB (cléA cléB //)
ou
AB (cléA cléB attributs clé AB //)
Il est nécessaire de compléter la clé de AB par des attributs supplémentaires si
un objet de A peut être relié au même objet de B plusieurs fois.
49
Association complexe 0..N – 0..N
0..N 0..N
Classe A Classe B

Attributs
AB1, AB2, …

Quand l’association a des attributs propres à elle

A (cléA // A1, A2, A3,…)


B (cléB // B1, B2, B3,…)
AB (cléA cléB // AB1, AB2, …) A (cléA // A1, A2, A3,…)
B (cléB // B1, B2, B3,…)
AB (cléA cléB attributs clé AB // AB1, AB2, …)

50
Association complexe 0..N – 0..N
Exemple : gestion des examens
Chaque étudiant peut passer plusieurs examens et chaque examen est ouvert à plusieurs
étudiants.
La note obtenue est un attribut propre à l’association.
0..N passe > 0..N
ÉTUDIANT EXAMEN
NoImmat // IDCours
Nom Note DateExam //
… Type
Durée
..

ÉTUDIANT (NoImmat // Nom,…)

EXAMEN (IDCours DateExam // Type, Durée,…)

ÉVALUATION (NoImmat IDCours DateExam // Note)


51
Association complexe 0..N – 0..N
Exemple : gestion des emprunts de livres
Un abonné peut emprunter le même livre plusieurs fois.

0..N emprunte > 0..N


ABONNÉ LIVRE
NoAbonné // RefLivre //
Nom DateEmprunt
Titre
Date Retour
… Editeur
..

ABONNÉ (NoAbonné // Nom,…)

LIVRE (RefLivre // Titre, Editeur,…)

EMPRUNT (NoAbonné RefLivre DateEmprunt // DateRetour)

52
Spécialisation / généralisation
Si les classes A1 et A2 sont des Classe générique A
spécialisations de la classe A alors A1 et A2
sont en dépendance existentielle avec A.
§ Tout objet de A1/A2 doit être relié à un et un Classe Classe
seul objet de A2 pour toute son existence. spécifique A1 spécifique A2

§ La clé de A est également la clé des A1 et A2.


§ A1 et A2 peuvent aussi avoir des clés propres.

A (cléA // A1, A2, A3,…)


A1 (cléA / cléA1 // A11, A12, A13,…)
A2 (cléA / cléA2 // A21, A22, A23,…)

53
Spécialisation / généralisation
Exemple : gestion des membres académiques PERSONNE
IDPersonne //
Nom …

ENSEIGNANT ETUDIANT

Classe générique
PERSONNE (IdPersonne / NoAVS // Nom, Prénom, email, Adresse, DateNaissance)

Classes spécifiques
ENSEIGNANT (NoEns / IdPersonne // DateEmbauche, Position)
ETUDIANT (NoEtudiant / IdPersonne //DateInscription, EtatEdutdiant)
54

Vous aimerez peut-être aussi