sio:bloc2:td9

TD9 : Festival de Cinéma (Modélisation, SQL, IA)

Objectifs pédagogiques

  • Modéliser un système d'information à partir de règles de gestion
  • Produire un MCD et un MLD
  • Générer un jeu d’essai réaliste (avec ou sans IA)
  • Créer la base avec Looping
  • Interroger la base de données avec des requêtes SQL de niveau croissant
  • Bonus : créer des vues, contraintes, voire triggers

Contexte

Le FICFO (Festival International de Caen du Film Original) est un festival de cinéma indépendant. Il dure une semaine et projette des films dans plusieurs salles (cinémas, campus, médiathèques…).

Chaque projection correspond à un film, projeté dans une salle donnée, à une date et heure précises. Le public peut réserver des places à l’avance. En fin de festival, des prix sont décernés à certains films.

Planning (4h)

  • 45 min – Modélisation (MCD puis MLD)
  • 45 min – Génération du schéma via Looping
  • 45 min – Création d’un jeu d’essai avec l’IA ou manuellement
  • 1h15 – Requêtes SQL + bonus

Entités principales

  • Film : id, titre, durée, langue originale, genre, résumé, année, nationalité
  • Réalisateur : id, nom, prénom, date de naissance, pays
  • Salle : id, nom, capacité, adresse (ville, code postal)
  • Projection : id, film_id, salle_id, date, heure, version (VO/VOST/VF), prix
  • Spectateur : id, nom, prénom, email, ville
  • Réservation : id, spectateur_id, projection_id, date réservation
  • Prix attribué : id, nom, montant, film_id, édition (année)

Règles de gestion

  1. RG1 : Un film a un seul réalisateur. Un réalisateur peut avoir plusieurs films.
  2. RG2 : Une salle peut accueillir plusieurs projections, mais jamais en même temps.
  3. RG3 : Une projection correspond à un seul film et une seule salle.
  4. RG4 : Un spectateur peut réserver plusieurs projections.
  5. RG5 : Un spectateur ne peut réserver qu’une fois une même projection.
  6. RG6 : Une réservation est horodatée.
  7. RG7 : Le nombre de réservations ne doit pas dépasser la capacité de la salle.
  8. RG8 : Un film peut recevoir un ou plusieurs prix.
  9. RG9 : Une projection peut être gratuite ou payante.
  10. RG10 : Le festival dure une semaine par an.

Partie 1 – Modélisation

  • Réaliser un MCD complet avec entités, associations, cardinalités, attributs, clés
  • Dériver le MLD relationnel
  • Utiliser une contrainte entre associations si pertinent (ex : un film primé doit avoir été projeté)

Partie 2 – Génération du schéma avec Looping

  • Utiliser Looping pour créer les tables à partir du MCD/MLD
  • Vérifier les clés primaires, les relations et les types

Partie 3 – Génération du jeu d’essai

Utiliser une IA (ChatGPT ou autre) pour générer les données suivantes :

  • 5 réalisateurs
  • 10 films (durées variées, genres, langues…)
  • 3 salles avec capacités différentes
  • 10 projections (sans collision horaire par salle)
  • 5 à 10 spectateurs
  • 15 réservations cohérentes (pas de doublons, pas de dépassement de capacité)

Partie 4 – Requêtes SQL

Requêtes de base
  1. Afficher les projections prévues le 2e jour du festival
  2. Lister les films français projetés
  3. Afficher les réalisateurs ayant au moins 2 films projetés
Requêtes intermédiaires
  1. Nombre de réservations par projection
  2. Nombre de spectateurs par jour
  3. Taux d’occupation des salles
Requêtes avancées
  1. Liste des spectateurs ayant réservé des films en VOST
  2. Film le plus réservé
  3. Films projetés mais non primés
  4. Requêtes avec `EXISTS`, `NOT IN`, `HAVING`

Bonus (facultatif)

  • Créer une vue : projections à venir encore réservables
  • Écrire un trigger : empêcher une réservation si la salle est pleine
  • Ajouter un champ JSON dans la table Film pour stocker des métadonnées (plateformes, mots-clés, etc.)

Critères d'évaluation

  • Qualité de la modélisation
  • Pertinence du jeu d’essai
  • Capacité à écrire des requêtes correctes et efficaces
  • Usage pertinent de l’IA (guidée)
  • sio/bloc2/td9.txt
  • Dernière modification : il y a 33 heures
  • de 127.0.0.1