Aller au contenu

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

  1. Écriture du MCD, basée sur une analyse de la situation existante et des besoins applicatifs
  2. Traduction du MCD en MLD (Modèle Logique de Données = schéma relationnel ici)
  3. 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 et Salvador 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 et Pré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


Type d'entités

  • Pablo Picasso et Salvador 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 stage 42 sont associés au sens de « suivre un stage », une association binaire : Picasso suit le stage 42, et inversement, le stage 42 est suivi par Picasso (l'association est symétrique).
  • Le service x se fait équiper en fournitures y par le fournisseur z, où x, y et z 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 »


Type d'entités

  • 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 stage 42 (puisque 42 est LE stage de Picasso)

Exemple de types d'associations : « suivre » et « postuler »


Type d'entités

  • Les types d'entités Étudiant et Stage peuvent être impliqués dans plusieurs types d'association, ici suivre et postuler (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 de Stage

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 »


Type d'entités

  • Un étudiant donné participe au minimum à 1 association de type postuler, et au maximum à N (c'est-à-dire un nombre quelconque) : c'est la signification du 1,N entre le type d'entités Étudiant et le type d'association postuler
  • Un stage donné participe au minimum à 0 association de type postuler, et au maximum à N (c'est-à-dire un nombre quelconque) : c'est la signification du 0,N entre le type d'entités Stage et le type d'association postuler
  • 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 et Formation ; 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 et Stage.
  • « plusieurs à plusieurs » : les 2 cardinalités maximales valent N. Exemple du type d'associations postuler entre Étudiant et Stage.

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


Type d'entités

  • 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 leur Employé-parent (mais pas l'inverse : quand il devient majeur, on peut retirer un Enfant du système sans avoir à enlever son Employé-parent).

Exemple de modèle Entité-Associations pour la base « Stock »


Type d'entités


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


Type d'entités