Système scolaire : Base de données qui gère les élèves, les cours, les notes, les enseignants et les classes.
- Identifier les entités principales (Élève, Cours, Professeur, Classe)
- Déterminer les attributs de chaque entité
- Établir les relations entre entités
- Définir les clés primaires et étrangères
Professeur(id_prof*, nom, prenom, email, specialite)
Cours(id_cours*, nom_cours, id_prof°)
Classe(id_classe*, nom_classe, niveau)
Note(id_note*, id_eleve°, id_cours°, valeur, date_evaluation)
* = Clé primaire, ° = Clé étrangère
On identifie les objets principaux : Élève, Professeur, Cours, Classe
Un élève appartient à une classe
Un professeur enseigne un cours
Un élève reçoit des notes pour chaque cours
La table Note relie les élèves aux cours
Elle stocke la valeur de la note et la date d'évaluation
Schéma relationnel complet du système scolaire
• Clés primaires : Chaque entité a une clé unique
• Clés étrangères : Relient les entités entre elles
• Cardinalités : Respect des relations entre entités
Système de bibliothèque : Base de données qui gère les livres, les adhérents, les emprunts et les retours.
Livre(id_livre*, titre, auteur, isbn, date_publication, disponible)
Emprunt(id_emprunt*, id_adherent°, id_livre°, date_emprunt, date_retour_prevue, date_retour_effectif)
Genre(id_genre*, nom_genre)
Livre(id_livre*, ..., id_genre°) -- Ajout de la relation avec Genre
On identifie Adherent, Livre, Emprunt comme entités centrales
La table Emprunt relie un adhérent à un livre
Elle contient les dates d'emprunt et de retour
Ajout d'une table Genre pour classifier les livres
Modèle complet de gestion de bibliothèque
• Disponibilité : Suivi de l'état des livres (disponible/indisponible)
• Historique : Conservation des dates d'emprunt et de retour
• Classification : Catégorisation des livres par genre
Catalogue de produits : Base de données qui organise les produits, les catégories, les fournisseurs et les stocks.
Categorie(id_categorie*, nom_categorie, description)
Fournisseur(id_fournisseur*, nom, adresse, telephone, email)
Commande(id_commande*, id_client°, date_commande, statut)
Ligne_Commande(id_ligne*, id_commande°, id_produit°, quantite, prix_unitaire)
* = Clé primaire, ° = Clé étrangère
On crée les entités Produit, Categorie, Fournisseur
On ajoute Commande et Ligne_Commande pour gérer les achats
Un produit appartient à une catégorie et provient d'un fournisseur
Une commande peut contenir plusieurs produits
Schéma complet de catalogue e-commerce
• Normalisation : Séparation des entités pour éviter la redondance
• Relations n-n : Utilisation de tables intermédiaires pour les relations complexes
• Historique : Conservation des prix au moment de la commande
Système de réservations : Base de données qui gère les chambres, les clients, les réservations et les services.
Chambre(id_chambre*, numero, type, prix_nuit, capacite, disponible)
Reservation(id_reservation*, id_client°, id_chambre°, date_arrivee, date_depart, statut)
Service(id_service*, nom_service, prix)
Reservation_Service(id_rel*, id_reservation°, id_service°, quantite)
Paiement(id_paiement*, id_reservation°, montant, date_paiement, methode)
* = Clé primaire, ° = Clé étrangère
On identifie Client, Chambre, Reservation
Ajout de Service et Reservation_Service pour gérer les extras
Création de Paiement pour suivre les transactions
Système complet de gestion hôtelière
• Disponibilité : Suivi de la disponibilité des chambres
• Services : Gestion flexible des services supplémentaires
• Paiements : Traçabilité des transactions financières
Agenda partagé : Base de données qui gère les utilisateurs, les événements, les invitations et les partages.
Evenement(id_event*, titre, description, date_debut, date_fin, lieu, id_createur°)
Partage_Evenement(id_partage*, id_event°, id_user°, role, statut_reponse)
Categorie(id_categ*, nom_categ, couleur)
Evenement(id_event*, ..., id_categ°) -- Ajout de la catégorie
Commentaire(id_comment*, id_event°, id_user°, contenu, date_comment)
* = Clé primaire, ° = Clé étrangère
On crée Utilisateur et Evenement avec le créateur
On ajoute Partage_Evenement pour gérer les invitations
Ajout de Categorie et Commentaire pour enrichir l'agenda
Système complet d'agenda collaboratif
• Partage : Gestion flexible des droits d'accès
• Invitations : Suivi des réponses des participants
• Sécurité : Hashage des mots de passe
- Analyse du besoin : Comprendre le système à modéliser
- Modélisation conceptuelle : Diagramme UML des entités et relations
- Modélisation logique : Transformation en schéma relationnel
- Modélisation physique : Implémentation dans le SGBD
- 1ère forme normale : Tous les attributs doivent être atomiques
- 2ème forme normale : Tous les attributs dépendent de la clé primaire entière
- 3ème forme normale : Aucune dépendance transitive entre attributs non-clés
- Avantages : Réduction de la redondance, meilleure intégrité des données