Apprendre les BDD relationnelles : Modèle Conceptuel de Données (MCD)
Le Modèle Conceptuel de Données (MCD) est un diagramme qui a pour but de décrire de façon formelle la structure des données d'un système d'information.
Un modèle abstrait
À ce stade, bien que l’on décrive les données de notre base de données, on ne pense pas encore réellement à son implémentation pour un type de base de données (pas de notions de clé primaire, clé étrangère…)
Le MCD est un modèle abstrait. Il est indépendant de toute implémentation physique ou logicielle. Il permet de conceptualiser la base de données en détaillant ses entités et ses associations à travers un diagramme Entité-Associations (E-A).
Entités
Le MCD d’une base de données commence par la définition des types de données qui vont être stockées. Chaque type de donnée est nommé « Entité ».
Libellé
Chaque entité doit être nommée par un mot décrivant ce qu’elle représente. Ce nom est à écrire dans la partie haute du rectangle.
Propriétés
Une entité représente un élément réel ou fictif possédant ses propres caractéristiques, aussi appelées propriétés. Ces caractéristiques sont à énumérer dans la partie basse du rectangle.
Vous constaterez que j’ai ici ajouté la propriété « identifiant » sur l’ensemble des champs. Le rôle de cette propriété est d’identifier une donnée de manière unique. Son rôle est essentiel pour manipuler nos données.
Cet identifiant se doit d’être souligné.
Cette propriété est généralement définie par une valeur numérique (1, 2, 3…) mais elle peut tout à fait être identifiée par une chaîne de caractères autre.
Ce besoin d’identification est omniprésent dans notre société : plaque d’immatriculation d’un véhicule et numéro de sécurité sociale sont des exemples d’identifiants incontournables.
Comment différencier informatiquement 2 utilisateurs « John Doe » nés tous deux le 10 janvier 1987 ?? Grâce aux identifiants.
Relations
Dans une application, les données sont bien souvent liées les unes aux autres : on parle de relations. Ces relations, aussi parfois appelées « associations », représentent les liens qui peuvent exister entre plusieurs entités.
On distingue 4 grands types de relations, en fonction du nombre d’entités qui les composent :
- Relation récursive (ou réflexive) : relie une entité à elle-même
- Relation binaire : relie deux entités
- Relation ternaire : relie trois entités
- Relation n-aire : relie n entités
Liaison
Pour créer une relation, la première chose à faire est de créer une liaison entre les entités concernées.
Une liaison est constituée :
- D’un trait reliant les entités
- D’une entité relationnelle dont le libellé doit décrire le type de relation qui relie les entités. Il s’agit généralement d’un verbe à l’infinitif. Exemple : «
Appartenir
», «Posséder
», «Ecrire
» …
Cardinalité
La cardinalité d’une relation définit, pour une entité A, à combien d’éléments d’une Entité B elle peut être associée au minimum et au maximum.
La cardinalité d’une relation est composée d’un couple comportant une borne minimale et une borne maximale. Cela constitue un intervalle de valeurs au sein duquel la cardinalité d’une entité pourra être définie.
- La borne minimale prend une valeur de
0
ou1
. - La borne maximale prend une valeur de
0
oun
(= plusieurs).
Pour vous aider à noter la cardinalité d’une relation, partez d’une entité spécifique et récitez dans votre tête la phrase :
Un
{nom de l'entité 1}
{verbe de l'entité relationnelle}
au moins???
et au plus???
{nom de l'entité B}
Dans l’exemple précédent, je définis que :
- « Un
Utilisateur
Poste
au moins0
et au plusn
Commentaire
» - « Un
Utilisateur
Publie
au moins0
et au plusn
Article
» - « Un
Utilisateur
Upload
au moins0
et au plus1
Avatar
» - « Un
Avatar
Est uploadé par
au moins1
et au plus1
Utilisateur
» - « Un
Article
Contient
au moins0
et au plusn
Commentaire
» - « Un
Article
Est publié par
au moins1
et au plus1
Utilisateur
» - « Un
Article
Possède
au moins0
et au plusn
Catégorie
» - « Un
Commentaire
Est posté par
au moins1
et au plus1
Utilisateur
» - « Un
Commentaire
Est contenu par
au moins1
et au plus1
Article
» - « Une
Catégorie
Est possédée par
au moins0
et au plusn
Article
»
Propriété additionnelle dans l'entité relationnelle
Parfois, une liaison nécessitera la création d’une propriété spécifique au sein de l’entité relationnelle. Prenons l’exemple de la relation entre les entités « Recette
» et « Ingrédient
» de la base de données d’un blog de cuisine.
Une recette est constituée d’ingrédients ; il existe alors une relation entre ces entités. En revanche, cette relation ne donnera pas suffisamment d’informations sur la nature de la relation et il sera important de préciser en quelle quantité un ingrédient est utilisé dans une recette. Cela se fera via l’ajout d’une propriété « quantité
» au sein de l’entité relationnelle « Contient
»