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