Temps estimé de lecture : 30 minutes
Objectifs
Question à laquelle cette activité va permettre de répondre :
Objectifs pédagogiques visés :
La modélisation conceptuelle est une approche intuitive pour concevoir une base de données. Elle est adaptée dès qu’on doit structurer un ensemble de données un peu complexe (à chacun de juger quand un ensemble de données atteint ce seuil). Une autre approche, la théorie de la normalisation, est plus formelle, plus rigoureuse et offre des moyens d’analyse très fins pour régler des problèmes sur des sous-ensembles précis des données.
Sur ce schéma, on montre où se situe la modélisation conceptuelle de données. Entre le monde réel qu’elle doit permettre de représenter de manière assez intuitive et les modèles logiques des SGBD sous-jacents.Au bénéfice des modèles conceptuels, on peut dire qu’il est souvent plus simple (plus intuitif) de passer par une modélisation conceptuelle entre le monde réel et la modélisation logique (dans notre cas, la modélisation relationnelle). L’étape intermédiaire de transformation d’un modèle conceptuel vers un modèle logique s’appelle la dérivation. La limite des modèles conceptuels est liée à ce qui fait leur force : si l’expert qui modélise les données n’a pas la bonne intuition, alors le modèle ne met pas de garde-fous pour aider l’utilisateur dans sa démarche, contrairement à des formalismes logiques plus formels, tels que le modèle relationnel qui s’accompagne d’un formalisme de modélisation très rigoureux (appelé « théorie de la normalisation »).Les séquences dédiées à la théorie de la normalisation illustrent ainsi la complémentarité que l’on peut trouver entre la modélisation conceptuelle (utile quand les données sont complexes) et la modélisation relationnelle (permettant, sur un ensemble de données restreint, d’avoir une démarche rigoureuse).
Avertissement
Les notations UML présentées dans ce document sont présentées dans l’optique d’effectuer un modèle conceptuel de données. Afin d’effectuer un diagramme de classe, les mêmes éléments de notation sont utilisés, mais les usages peuvent parfois sensiblement différer.
Définition
Classe
Une classe est un objet concret ou abstrait qui a une existence propre et qui permet de décrire un concept dans le système d’information.
Dans cet exemple, nous allons évoquer deux classes : Étudiant et Livre.
Définition
Une association binaire est un groupement de deux classes pour décrire une réalité de l’organisation.
Les associations permettent de représenter les règles de gestion d’une organisation. Ici, nous voulons exprimer le fait qu’un étudiant puisse emprunter un livre.
Définition
Cardinalité
La cardinalité indique le nombre d’instances d’une classe qui sont associées à chacune des instances de l’autre classe.
Les cardinalités s’écrivent au moyen d’un couple de valeurs permettant d’exprimer les cardinalités minimale et maximale. En UML, la cardinalité caractérisant l’association d’une classe A
à une autre classe B
s’écrit à l’opposé de la classe A
, près de la classe B
.
Par exemple, en observant l’exemple ci-dessus, nous pouvons dire :
Etudiant
) peut avoir emprunté aucun ou plusieurs livres : cardinalité 0..* du côté de Livre
.Livre
) peut ne pas avoir été emprunté par un étudiant, ou avoir été emprunté une seule fois : cardinalité 0..1 du côté de Etudiant
.A partir de cette notion de cardinatité nous pouvons ainsi caractériser 3 grands types d’association :
Ici quand on parle d’une cardinalité de type “1” on évoque les couples de cardinalités (0..1) et (1..1). Quand on parle d’une cardinalité de type “N” on évoque les couples de cardinaliltés (0..*) et (1..*).
Dans notre exemple précédent, l’association emprunt entre Etudiant
et Livre
est une association 1:N (un à plusieurs).
Définition
Une propriété désigne une valeur ou un groupe de valeurs pour décrire une classe ou une association entre classes.
Une association N:M peut avoir en propre des propriétés. Cela n’est en aucun cas obligatoire.
Dans cet exemple, un étudiant peut avoir aucun ou plusieurs abonnements (à une revue), et une revue être concernée par aucun ou plusieurs abonnements (d’étudiants). Ici les attributs date_début
et durée
caractérisent l’association entre les deux entités.
Une association réflexive est une association binaire qui relie une classe avec elle-même.
Dans cet exemple, chaque personne est associée à un seul et unique manager, c’est-à-dire que chaque personne apparait une seule et unique fois en tant qu’employé dans l’association entre manager et employé.
Par ailleurs, chaque manager est associé à aucun ou plusieurs employés, c’est-à-dire que chaque personne apparait aucune ou plusieurs fois en tant que manager dans l’association entre manager et employé.
On généralise le concept d’association binaire à un nombre quelconque de classes. Le schéma ci-dessous montre l’exemple d’une association ternaire, de dimension 3.
Dans cet exemple, l’association ternaire représente l’inscription d’un participant à un sport pour une compétition donnée. Pour déterminer les cardinalités il faut se poser 3 questions :
Dans notre exemple la réponse est à chaque fois 1 fois ou plusieurs.
L’héritage permet d’exprimer des propriétés communes à plusieurs classes : il peut être exclusif ou non exclusif