Contexte et objectifs
Dans le cadre du cours de bases de données, des documents décrivant le système d'information d'une compagnie de fournisseur énergétique ont été fournis. La base existante présentait des problèmes de conception et de normalisation identifiables.
L'objectif était de couvrir l'ensemble du cycle de vie d'une base de données : analyser de manière critique le modèle existant, reconcevoir un modèle objet correct, l'implémenter en SQL, répondre à un ensemble de requêtes imposées, puis proposer une extension cohérente.
En binôme, nous avons d'abord réalisé la rétro-ingénierie du modèle existant (passage au diagramme de classe), identifié les anomalies de normalisation et proposé un modèle corrigé avec son script SQL. Nous avons ensuite répondu aux requêtes imposées (jointures, agrégations, sous-requêtes) et conçu une extension de la base.
Trois livrables SQL ont été produits : modèle corrigé, requêtes, et extension avec jeu de données test. Ce projet m'a permis de maîtriser la modélisation relationnelle de bout en bout, du cahier des charges jusqu'aux requêtes avancées en SQL.
Étapes du projet
- 1Critique et rétro-ingénierie — Analyse critique de la base existante, identification des problèmes de normalisation, proposition d'un nouveau modèle corrigé (diagramme de classe) et script SQL.
- 2Requêtes SQL — Réponse aux différentes requêtes imposées : projections, sélections, jointures, agrégations. Livrable sous forme de script SQL.
- 3Extension de la base — Proposition d'une extension (diagramme de classe + implémentation SQL) avec un jeu de données test pour peupler la nouvelle base.
Ce qui a été réalisé
- Rétro-ingénierie : passage du modèle relationnel existant au modèle conceptuel (diagramme de classe)
- Identification des anomalies de normalisation (1NF, 2NF, 3NF)
- Nouveau modèle relationnel corrigé avec script SQL de création
- Script de requêtes SQL : projections, sélections, jointures, agrégations
- Extension cohérente de la base avec jeu de données test