Skip to content

Repository files navigation

Monstermon — Conception et exploitation d'une base de données MySQL

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).

Stack

  • MySQL / MariaDB — SGBD
  • Python — automatisation des scripts SQL

Structure du projet

.
├── 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

Modèle de données

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 CHECK sur les attributs numériques (niveau, points de vie, puissance)
  • Gestion des combats hors événement
  • Unicité des équipements par arène

Lancement

Prérequis

pip install mysql-connector-python faker

Variables d'environnement à définir :

export DB_HOST=localhost
export DB_USER=root
export DB_PASSWORD=your_password

Commandes

python main.py c   # Création du schéma
python main.py p   # Peuplement
python main.py d   # Destruction

Requêtes SQL (étape 3)

9 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.

Optimisations (étape 4)

  • 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

About

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).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages