Projet de modélisation et d'exploitation d'une base de données relationnelle pour un RPG multijoueur fictif. Réalisé dans le cadre du module TIC-DAT3 (Bachelor).
- MySQL / MariaDB — SGBD
- Python — automatisation des scripts SQL
.
├── schema_monstermon.png # Modèle entité-association v1
├── schema_monstermon-V2.png # Modèle entité-association v2 (final)
├── creation_base_donnees_monstermon.sql # Création du schéma
├── generation.sql # Peuplement (données initiales + générées)
├── destruction.sql # Suppression des tables dans l'ordre
├── etape3.sql # Requêtes d'audit et statistiques
├── etape4.sql # Vues, procédures stockées, pagination
└── main.py # CLI Python pour piloter les scripts SQL
Le jeu est composé des entités suivantes : Monster, Dresseur, Espèce, Type, Arène, Équipement, Événement, Combat, Quête, Magasin, Vente.
Points notables du schéma :
- Auto-référence sur
Dresseur(relation professeur / apprenti) - Contraintes
CHECKsur les attributs numériques (niveau, points de vie, puissance) - Gestion des combats hors événement
- Unicité des équipements par arène
pip install mysql-connector-python fakerVariables d'environnement à définir :
export DB_HOST=localhost
export DB_USER=root
export DB_PASSWORD=your_passwordpython main.py c # Création du schéma
python main.py p # Peuplement
python main.py d # Destruction9 requêtes imposées couvrant :
- Jointures multi-tables (
JOIN,LEFT JOIN) - Agrégations (
COUNT,SUM,GROUP BY,HAVING) - Filtres combinés (
WHERE,BETWEEN,AND) - Tri et classement (
ORDER BY) - Gestion des valeurs nulles (
COALESCE/IFNULL)
5 requêtes libres complémentaires utilisant SUM, MIN, MAX, GROUP BY, HAVING.
- Pagination sur la liste des combats
- Vue
StatistiqueMonsterQuete— monsters et leurs quêtes - Vue
StatistiqueEvenement— événements avec participants, équipements et combats - Procédure stockée
MonsterType(type)— liste des monsters par type - Procédure stockée
MiseAJourMonster— mise à jour des caractéristiques d'un monster avec affichage du résultat