Modéliser des BDD › 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
0ou1. - La borne maximale prend une valeur de
0oun(= 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
UtilisateurPosteau moins0et au plusnCommentaire» - « Un
UtilisateurPublieau moins0et au plusnArticle» - « Un
UtilisateurUploadau moins0et au plus1Avatar» - « Un
AvatarEst uploadé parau moins1et au plus1Utilisateur» - « Un
ArticleContientau moins0et au plusnCommentaire» - « Un
ArticleEst publié parau moins1et au plus1Utilisateur» - « Un
ArticlePossèdeau moins0et au plusnCatégorie» - « Un
CommentaireEst posté parau moins1et au plus1Utilisateur» - « Un
CommentaireEst contenu parau moins1et au plus1Article» - « Une
CatégorieEst possédée parau moins0et au plusnArticle»
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 »