Session 6 : Exercice pratique
Analyse du cahier des charges (MCD)
Objectifs :
- Identifier les entités principales du projet
- Déterminer les relations entre ces entités
- Créer un modèle conceptuel de donnees (MCD)
- PAUSE : 10 minutes
- Convertir le MCD en modèle relationnel
- Appliquer les règles de normalisation
-
Préparer le script SQL de création des tables
Plan détaillé
Analyse collaborative du cahier des charges
- Identification des entités principales
- Établissement de la liste des attributs pour chaque entité
Modélisation conceptuelle
- Construction du diagramme entité-association
- Définition des cardinalités des relations
- Discussion sur la relation many-to-many entre Items et Tags
Validation du modèle
- Vérification de la couverture des besoins fonctionnels
- Discussion des cas d’utilisation principaux
- Confirmation que le modèle supporte toutes les fonctionnalités demandées
Du MCD au modèle relationnel
- Rappel des formes normales (1FN, 2FN, 3FN)
- Traitement spécifique des relations many-to-many
- Identification des clés primaires et étrangères
Définition des types de données et contraintes
- Choix des types appropriés pour chaque attribut
- Définition des contraintes (NOT NULL, UNIQUE, etc.)
- Discussion sur les valeurs par défaut et les auto-incréments
Resultat final
- Présentation du schéma relationnel final
- Validation des types de données et des contraintes
- Discussion sur les choix de modélisation et leurs justifications
- Rédaction du script SQL pour la création des tables
Cahier de charge
Ce document décrit toutes les règles que la base de données doit garantir pour assurer la cohérence du contenu, de la classification et des interactions du site.
1. Les contenus (items)
Chaque contenu est une fiche éditoriale soumise aux contraintes suivantes :
-
Le titre doit être unique.
-
Le slug doit être unique.
-
Chaque contenu possède un statut clair (brouillon, publié, archivé).
-
Chaque contenu doit être lié à un utilisateur créateur afin d’assurer la responsabilité éditoriale.
-
Chaque contenu doit être lié à :
-
Un contenu peut recevoir autant de tags libres qu’on le souhaite, mais :
- un même tag ne peut pas être associé deux fois au même contenu.
2. Les utilisateurs (opérateurs)
Pour garantir un accès sécurisé :
- L’adresse e-mail doit être unique.
- Le mot de passe doit être stocké sous forme sécurisée.
- Un utilisateur peut être actif ou désactivé.
- Les actions de gestion de contenu doivent être rattachées à un utilisateur.
3. Les thèmes
- Chaque thème possède un nom unique.
- Un thème ne peut pas être supprimé tant qu’il est utilisé par au moins un contenu.
4. Les catégories
- Chaque catégorie possède un nom unique.
- Chaque contenu doit appartenir à une catégorie existante.
- Une catégorie ne peut pas être supprimée si elle est encore utilisée.
Les tags servent à enrichir la description des contenus.
- Chaque tag possède un nom unique.
- Un contenu peut avoir plusieurs tags.
- Un même tag ne peut pas apparaître deux fois sur un même contenu.
- Un tag ne peut pas être supprimé s’il est encore utilisé, sauf si un nettoyage au préalable est effectué.
Pour assurer un suivi minimal :
- Chaque message doit contenir les informations envoyées (nom, e-mail, texte).
- Chaque message doit être daté.
- Chaque message possède un statut : lu ou non lu.
7. Les collections utilisateurs (favoris, wishlist, panier, etc.)
- Chaque collection appartient à un utilisateur.
- Une collection peut contenir plusieurs contenus.
- Un même contenu ne peut apparaître qu’une seule fois dans une même collection.
- Une collection doit pouvoir être identifiée par un type (ex. favoris, panier, wishlist).
Ce cours est distribué sous licence Creative Commons. Toute reproduction ou distribution à but commercial est interdite sans l’accord préalable de l’auteur.