- Règles gestion 📄
- Dictionnaire de données 📄
- MCD 📄
- MLD 📄
- MPD 📄
- BDD initialisation 📄
- Requêtes 📄
- Dossier sauvegardes 📁
- Contexte du Projet
- Objectifs de la Mission
- Règles de la Base de Données
- Peuplement des Données
- Requêtes SQL à Réaliser
- Procédures Stockées
- Triggers
- Contraintes Techniques
- Livrables
- Critères de Performance
Bienvenue sur Simpluedo 🕵️♂️, un projet inspiré du célèbre jeu de société Cluedo. L'objectif est de créer une plateforme permettant de gérer une partie de ce jeu en enregistrant les mouvements des personnages dans un manoir, leurs interactions avec les pièces, et les objets présents.
La première étape consiste à concevoir et à mettre en place une base de données relationnelle qui stockera toutes les informations nécessaires pour gérer une partie. Ce projet est structuré en différentes phases, la phase actuelle étant dédiée à la conception et à l'implémentation des données.
-
Analyse des Besoins
- Comprendre les relations entre les entités telles que les joueurs, personnages, pièces, et objets.
- Identifier les contraintes spécifiques liées au jeu Simpluedo (e.g., un seul maître de jeu par partie).
-
Modélisation de la Base de Données
- Concevoir un Modèle Conceptuel de Données (MCD), un Modèle Logique de Données (MLD) et un Modèle Physique de Données (MPD).
- Assurer que le modèle respecte les règles métier (par exemple, gestion des rôles et des déplacements des personnages).
-
Implémentation de la Base de Données
- Générer la structure SQL basée sur le MPD.
- Configurer les contraintes d'intégrité, les clés primaires et étrangères.
-
Mise en Place de Fonctions Avancées
- Création de procédures stockées pour automatiser les opérations fréquentes.
- Mise en œuvre de triggers pour tenir à jour les informations en temps réel.
- Chaque joueur doit avoir un rôle (Maître du jeu, utilisateur ou observateur).
- Un seul maître de jeu est autorisé par partie.
- Chaque joueur, sauf les observateurs, doit avoir un personnage.
- Les personnages peuvent se déplacer dans différentes pièces du manoir et y revenir à plusieurs reprises.
- Une pièce peut contenir une liste d'objets, qui peut être modifiée pendant la partie.
- Les données initiales concernant les personnages, pièces, et objets doivent correspondre à celles du jeu Cluedo original.
- Utiliser des scripts SQL pour insérer les données de peuplement.
- Lister tous les personnages du jeu.
- Lister chaque joueur et son personnage associé.
- Afficher les personnages présents dans la cuisine entre 08:00 et 09:00.
- Afficher les pièces où aucun personnage n’est allé.
- Compter le nombre d’objets par pièce.
- Ajouter une pièce.
- Modifier un objet.
- Supprimer une pièce.
- Lister tous les objets présents dans une pièce donnée (paramètre : nom de la pièce).
- Ajouter un objet à une pièce spécifiée (paramètres : nom de l’objet et nom de la pièce).
- Une table supplémentaire devra enregistrer la localisation en temps réel de chaque personnage.
- Mettre à jour cette table via un trigger à chaque fois qu’un personnage entre ou sort d’une pièce.
- Le NoSQL est interdit pour ce projet.
- Implémentation d’un système de contrôle RBAC (Role-Based Access Control) pour gérer les permissions.
- Seul l’administrateur peut effectuer des modifications ou ajouts dans la base.
- Modèles de Données : MCD, MLD, MPD.
- Scripts SQL pour :
- Générer la structure de la base.
- Peupler les données.
- Requêtes SQL documentées dans le
README.md
. - Dépôt GitHub contenant :
- Le dictionnaire de données.
- Les modèles de données.
- Les scripts SQL.
- Les requêtes SQL documentées.
- (Optionnel) Environnement Docker pour faciliter l’installation.
- Installation de l’environnement sans erreur.
- Exactitude des relations entre les tables.
- Triggers fonctionnels et corrects.
- Documentation claire et complète des requêtes.
- Requêtes SQL exécutées avec succès.