Aller au contenu principal

Création du MCD

Création du Modèle Conceptuel de Données (MCD)

Objectifs
  • Comprendre ce qu’est un MCD (Modèle Conceptuel de Données).
  • Identifier les entités, attributs et relations d’une base de données.
  • Concevoir la structure de données nécessaire pour gérer un quiz.
  • Préparer la création de la base de données Supabase.

looping_MCD

Notions théoriques

1. Pourquoi modéliser les données ?

Avant de créer une base de données, il faut réfléchir à ce que l’on veut stocker.

Dans notre projet “CyberQuiz”, nous allons gérer :

  • des questions,
  • des réponses,
  • des joueurs,
  • et des scores (pour le classement des joueurs).
info

Mais comment représenter cela de façon claire, logique et exploitable dans une base ?

C’est là qu’intervient le MCD, ou Modèle Conceptuel de Données.

2. Qu’est-ce qu’un MCD ?

Le MCD est une représentation visuelle des données que vous allez stocker.

Le MCD permet de :

  • identifier les entités (objets à stocker),
  • définir leurs attributs (informations à retenir sur ces objets),
  • établir les relations entre ces entités.
astuce

Le MCD, c'est l'outil de réflexion avant la technique.

3. Définitions clés

TermeDéfinition
EntitéUn objet du monde réel ou logique que l’on veut stocker (ex : Question, Joueur)
AttributUne information associée à une entité (ex : texte, date, score)
RelationUn lien entre deux entités (ex : un joueur répond à une question)

4. Les entités de notre projet

Voici les entités principales de notre quiz :

  • Question

    • id (clé primaire = identifiant unique)
    • texte (le texte de la question)
    • niveau (facile, moyen, difficile)
  • Réponse

    • id
    • texte
    • est_correcte (boolean : vrai ou faux)
    • id_question (clé étrangère = relation vers la clé primaire de la question)
  • Joueur

    • id
    • pseudo
    • email (optionnel)
    • date_inscription
  • Classement

    • id
    • id_joueur
    • date_partie
    • score
    • temps

5. Les relations

  • Une question a plusieurs réponses.
  • Un joueur est lié à un classement.
astuce

Nous allons représenter cela sous forme d'un schéma (appelé modèle entité-association ou Modèle Conceptuel de Données) avec le logiciel Looping.

Looping

https://www.looping-mcd.fr/

Notre MCD pourra ensuite être transformé en tables dans Supabase.


Quelques méthodes à connaître

ConceptÀ retenir
Une entité = une tableChaque entité devient une table dans la base
Un attribut = une colonneChaque attribut devient une colonne dans la table
Une relation = une clé étrangèrePermet de relier deux tables entre elles
Un identifiant uniqueSert de clé primaire dans chaque table (id)
Une relation 1-NUne question a plusieurs réponses (relation 1-N)

Test de mémorisation/compréhension


Qu’est-ce qu’un MCD ?


Quelle est la meilleure définition d’une entité ?


Dans notre projet, quelle entité contient le champ `est_correcte` ?


Quelle relation existe entre une question et ses réponses ?


Quel champ permet de relier une réponse à une question ?



TP pour réfléchir et résoudre des problèmes

Objectif du TP

Vous allez construire, en binôme, le MCD du projet CyberQuiz.
Ce MCD servira de base pour créer les tables dans Supabase lors de la prochaine séance.

Étapes à suivre

  1. Travaillez en binôme.

  2. Installez et Démarrez Looping.

    ou utilisez une feuille de papier, ou un outil de schéma en ligne (ex : draw.io).

02_start_looping

  1. Représentez les entités suivantes :
    • Question
    • Reponse
    • Joueur
    • Classement

04_mcd_looping

  1. Pour chaque entité, indiquez :
    • son nom,
    • ses attributs (nom + type de donnée),
    • sa clé primaire (id).

05_mcd_looping

  1. Représentez les relations :
    • Une question a plusieurs réponses.
    • Un joueur est lié à un classement.

06_mcd_looping

  1. Indiquez les clés étrangères dans les entités concernées.

Corrigé du TP

Un exemple de Modèle conceptuel de données (MCD) simplifié
Le Modèle Logique de Données (MLD)
Le Modèle Physique de Données (MPD) pour PostgreSQL
Le fichier `quiz-cyber.loo` de Looping