Niveau conceptuel : les modèles conceptuels de données (MCD)
Qu'est-ce qu'un « modèle conceptuel de données » ?¶
Définitions¶
Définition : Modèle Conceptuel de Données (MCD)
- Modèle formel (= « manière de voir les choses ») qui décrit un domaine d'applications : ses concepts ou objets, et les liens qu'ils entretiennent
- Il spécifie la réalité existante, indépendamment de son implémentation informatique (BDD ou programme)
Définition : Modèle Entité-Association (ou Schéma Entité-Association)
- C'est un type de modèle conceptuel : il en existe d'autres, comme UML et ses diagrammes de classes
- Diagramme exprimant les concepts/informations du domaine d'applications, qui - à terme - devront être retranscrits dans la future base de données
- Basé sur les notions d'entités (« objets ») et d'associations (« liens » entre objets)
Étapes de développement d'une BDD¶
- Écriture du MCD, basée sur une analyse de la situation existante et des besoins applicatifs
- Traduction du MCD en MLD (Modèle Logique de Données = schéma relationnel ici)
- Raffinement du schéma si nécessaire (en se basant sur les règles de normalisations d'un MLD), pour éliminer au maximum la redondance
Les schémas Entité-Association¶
Entités et types d'entités¶
Définition : Entité
- C'est un objet concret du monde réel
- Il est caractérisé par un ensemble de propriétés ou attributs
- Ces propriétés sont monovaluées (1 seule valeur)
- Chaque entité possède un identifiant (sous la forme d'une ou plusieurs propriétés) ; 2 entités de même nature (type), ont forcément des identifiants différents
Exemple d'entités
Pablo Picasso
etSalvador Dali
sont 2 entités distinctes (de « type » étudiant)- Leurs identifiants respectifs sont leurs numéro INE :
140116244795612
150086238218665
- Outre leurs identifiants, ils sont chacun caractérisés par 2 propriétés :
Nom
etPrénom
Définition : Type d'Entités
- C'est une catégorie d'entités (une « classe »), qui sert à représenter l'ensemble des entités de cette catégorie
- Il est caractérisé par les propriétés communes à l'ensemble des entités qu'il représente, et par un identifiant
- On le représente à l'aide d'un rectangle, comme dans l'exemple qui suit
Exemple de type d'entités
Pablo Picasso
etSalvador Dali
sont 2 entités particulières de ce type Etudiant- Elles diffèrent au minimum par leur identifiant : le
Numéro INE
Associations et types d'associations¶
Définition : Association
- C'est un lien entre 2 entités particulières (association binaire), souvent de types d'entité différents, qui traduit l'existence d'une relation particulière entre ces 2 entités
- Toutes les associations ne sont pas binaires : il existe des associations n-aires avec n>2
- Degré de l'association : c'est son arité, le nombre d'entités qu'elle lie. On travaillera essentiellement avec des associations binaires
- Une association peut avoir des propriétés
Exemple d'associations
Pablo Picasso
et le stage42
sont associés au sens de « suivre un stage », une association binaire :Picasso
suit le stage42
, et inversement, le stage42
est suivi parPicasso
(l'association est symétrique).- Le service
x
se fait équiper en fournituresy
par le fournisseurz
, oùx
,y
etz
sont 3 entités de types différents : (x
,y
,z
) est une association entre ces 3 entités (= association 3-aire = ternaire).
Définition : Type d'Associations
- C'est une catégorie (une « classe ») d'associations de même nature, qui sert à représenter l'ensemble des associations de cette catégorie
- Elle met en relation des entités appartenant à des types d'entités particuliers, 1 entité par type d'entités
- Elle porte un nom qui traduit la nature de cette relation
- Elle peut avoir des propriétés
- On la représente à l'aide d'une ellipse ou d'un losange : les types d'entités qui participent à ce type d'association sont connectés à cette ellipse/losange par un trait
Exemple de type d'associations : « suivre »
- Le type d'associations « suivre » met en relation des paires (Étudiant, Stage)
- N'importe quel étudiant peut potentiellement être associé à n'importe quel stage, suivant ce type d'association
- Une paire (
e
,s
) appartient, ou n'appartient pas, à ce type (« ensemble ») d'associations : il n'y a pas d'autres possibilités ; en particulier une paire (e
,s
) ne peut pas appartenir plusieurs fois à l'association - Parmi elles, il y a celle qui lie l'étudiant
Picasso
au stage42
(puisque42
est LE stage dePicasso
)
Exemple de types d'associations : « suivre » et « postuler »
- Les types d'entités
Étudiant
etStage
peuvent être impliqués dans plusieurs types d'association, icisuivre
etpostuler
(on suppose que pour « suivre un stage », il faut au préalable y avoir « postulé » (exprimé un vœu), et qu'une sélection a ensuite été faite pour décider des affectations finales) - Le type d'association
postuler
est caractérisé par la propriétépréférence
: quand un étudiant postule à un stage, il précise un niveau de préférence, pour ordonner ses souhaits, sous la forme d'un nombre. Il s'agit bien une propriété de l'association, et non pas d'une propriété d'Étudiant
ou deStage
Cardinalités des associations¶
Définition : Cardinalité
- Chaque type d'entité participant à un type d'associations peut être caractérisé par un couple de cardinalités
- C'est un couple de valeurs
(min,max)
qui indique, pour CHAQUE entité du type d'entité concerné, à combien d'associations il participe, au minimum et au maximum - Cardinalités minimales usuelles : 0 ou 1 (soit : aucune ou une)
- Cardinalités maximales usuelles : 1 ou N (soit : une ou plusieurs)
Exemple de cardinalités pour les associations « postuler » et « suivre »
- Un étudiant donné participe au minimum à
1
association de typepostuler
, et au maximum àN
(c'est-à-dire un nombre quelconque) : c'est la signification du1,N
entre le type d'entitésÉtudiant
et le type d'associationpostuler
- Un stage donné participe au minimum à
0
association de typepostuler
, et au maximum àN
(c'est-à-dire un nombre quelconque) : c'est la signification du0,N
entre le type d'entitésStage
et le type d'associationpostuler
- Autrement dit :
- Tout étudiant doit postuler à au moins 1 stage
- Un stage peut être demandé par un nombre quelconque d'étudiants (c'est-à-dire 0, 1 ou plusieurs)
- En revanche, au vue des cardinalités du type d'association
suivre
:- Un étudiant suit au plus 1 stage
- Un stage est suivi par au plus 1 étudiant
Transformation d'un schéma Entité-Association en schéma relationnel¶
Définition : Classe fonctionnelle d'un type d'associations (binaire)
Chaque type d'associations binaire appartient à une classe fonctionnelle parmi 3 possibles, et cette classe dépend exclusivement de ses cardinalités maximales.
Voici les 3 classes fonctionnelles possibles :
- « un à plusieurs » : une des cardinalité maximale vaut 1, l'autre N. Exemple d'un type d'associations
est inscrit
entre les 2 types d'entitésÉtudiant
etFormation
; car 1 étudiant est associé à au plus 1 formation, mais 1 formation est normalement associée à plusieurs étudiants ; - « un à un » : les 2 cardinalités maximales valent 1. Exemple du type d'associations
suivre
entreÉtudiant
etStage
. - « plusieurs à plusieurs » : les 2 cardinalités maximales valent N. Exemple du type d'associations
postuler
entreÉtudiant
etStage
.
Ces classes fonctionnelles jouent un rôle essentiel dans la transcription du schéma E-A en schéma relationnel.
Définition : Entités faibles
Certaines entités peuvent être munies d'un identifiant relatif. Par exemple, un Chapitre
est identifié par son numéro
, mais relativement à un Livre
. Le numéro
est donc un idenfiant relatif (il faut le composer avec celui du Livre
associé pour retrouver son identifiant absolu)
Une entité faible est une entité qui n'existe que comme une composante (une partie) d'une autre entité (entité forte). Son identifiant est relatif.
Pour représenter un ensemble d'entités faibles de même nature, on utilise un Type d'entité faible : il est relié au Type d'entité forte par une association un à plusieurs, qui comporte un «(R)
» (qui signifie Relatif à) du côté de la partie (type entité faible); et dont le trait se termine par une flèche, du côté du tout (type entité forte).
Exemple de type d'entité faible
- Normalement on place aussi un «
(R)
» au-dessus du trait d'association côté type d'entité faible (ici :Enfant
), en plus de la flèche côté type d'entité forte. - Ici, il ne s'agit pas à proprement parler d'un type d'associations de composition. Mais c'est tout comme : l'enfant d'un employé s'identifie par rapport à un employé. Si l'employé quitte l'entreprise, on ne conservera pas trace de ses enfants : c'est comme s'ils faisaient partie de l'employé. L'existence des entités
Enfant
dépendent de leurEmployé
-parent (mais pas l'inverse : quand il devient majeur, on peut retirer unEnfant
du système sans avoir à enlever sonEmployé
-parent).
Exemple de modèle Entité-Associations pour la base « Stock »
Transformation d'un schéma conceptuel E-A en schéma relationnel
Il existe des règles qui permettent de transformer un schéma entité-association (conceptuel) en un schéma relationnel (logique) :
- Chaque type d'entité devient une table ; l'identifiant devient clé primaire
- Chaque type d'associations « plusieurs à plusieurs » (+ associations n-aires) devient une table ; sa clé primaire est composée à l'aide des identifiants des types d'entités
- Chaque type d'associations « un à plusieurs » se traduit juste par l'ajout d'une clé étrangère dans la table correspondant au type d'entité « du côté du un »
- Chaque type d'associations « un à un » se traduit soit par une fusion des entités (si cardinalités minimales à 1), soit par l'ajout d'une clé étrangère (sinon)
Conversion du schéma E-A de la base Stock en schéma relationnel