Aller au contenu principal

Séminaire

Objectifs​

  • Modéliser une base de donnée

Rendu​

Estimation​

  • Créer un ficher report.md dans le dossier du dépôt.
  • Estimer le temps nécessaire pour réaliser ce travail dans le rapport.
    • Découper le travail en tâches pour faciliter l'estimation.
  • Une fois terminé, comparer le temps estimé avec le temps réellement passé.
TâcheTemps estiméTemps passéCommentaire
Estimation10m15m...
............
Total2h1h30...

Exercices​

Banque​

Compléter le modèle entité-association suivant :

  • Chaque banque a un code SWIFT, un nom et une adresse.
  • Chaque client a un numéro de client, un nom, un prénom et optionnellement un numéro de téléphone.
  • Chaque compte a un numéro de compte, un solde et une date d'ouverture.
  • Chaque filiale a un numéro de filiale et une adresse.

Choisir et justifier les clés primaires ainsi que les cardinalités des relations.

plantuml

Solution

plantuml

  • Clés primaires :
    • Banque : code_swift
    • Client : numero_client
    • Compte : numero_compte
    • Filiale : numero_filiale
  • Cardinalités :
    • Chaque client peut avoir un ou plusieurs comptes (éventuellement aucun, mais difficile de nos jours).
    • Chaque compte appartient à un seul client (éventuellement plusieurs si compte joint).
    • Chaque banque peut avoir une ou plusieurs filiales (éventuellement aucune pour les néo-banques).
    • Chaque filiale appartient à une seule banque.
    • Chaque banque peut avoir zéro ou plusieurs comptes.
    • Chaque compte appartient à une seule banque.

Ajouter les clés étrangères (FK) dans le modèle précédent.

Solution

plantuml

Bibliothèque​

Dessiner le modèle entité-association suivant (ajouter des attributs pour les clés primaires si nécessaire) :

  • Modéliser la base de données d'une bibliothèque pour gérer les livres, les emprunts et les lecteurs :
    • Chaque livre a un titre, un auteur et un éditeur.
    • Chaque emprunt a une date de début, une date de fin et un statut (en cours, terminé, retardé).
    • Chaque lecteur a un nom, un prénom et une date de naissance (optionnel).
  • Ajouter les clés étrangères (FK) nécessaires.
Solution

plantuml

Quelle serait la relation entre les entités Livre et Lecteur si on n'avait pas besoin de garder l'historique des emprunts ?

Solution

plantuml

  • Chaque livre peut être emprunté par zéro ou plusieurs lecteurs.
  • Chaque lecteur peut emprunter zéro ou plusieurs livres.

Ajouter les clés étrangères (FK) nécessaires.

Solution

Pour une relation de type Many-to-Many (plusieurs à plusieurs), on doit ajouter une table intermédiaire (similaire à l'Emprunt) :

plantuml

Magasin​

Dessiner le modèle ER pour un magasin de produits divers :

  • Chaque produit a un nom, un prix et une quantité en stock.
  • Chaque commande a une date, des articles avec leur quantité et un client.
  • Chaque client a un nom, une adresse et un numéro de téléphone.

Justifier quels attributs sont obligatoires ou optionnels (la solution peut varier).

Solution

plantuml

Autres exercices​

Modélisation d'une base de données​

Dans le rapport, individuellement ou par groupe de deux (indiquer avec qui), modéliser une base de données.

  • Choisir un domaine à modéliser, par exemple :
    • Application quiz (questions, réponses, scores, etc.)
    • Gestion des notes d'une école
    • Gestion des personnes (élèves, professeurs, personnel administratif) d'un établissement
    • Gestion d'une équipe de sport (joueurs, entraîneurs, matchs, etc.)
    • Application utilisée fréquemment (réseaux sociaux, e-commerce, streaming, etc.)
    • Jeu vidéo (personnages, objets, quêtes, etc.)
    • Autres idées
  • Décrire le domaine choisi en quelques phrases avec les fonctionnalités principales attendues.
  • Dessiner un modèle entité-association (ER) pour ce domaine.
    • Sur papier et le scanner.
    • Ou sur un outil de dessin (PlantUML, DrawDB, etc.).
  • Justifier les choix de modélisation (entités, attributs, relations, cardinalités, clés primaires, clés étrangères, etc.).

Références​