Objectifs

Consignes

Schéma relationnel d'une base de données exemple

Nous allons travailler avec une base de données qui contient les 100 films ayant fait le plus d'entrées dans les salles de cinéma en France.

Voici le schéma de la base de données utilisée :

Ce schéma comporte les tables suivantes :

Implémentation du schéma avec la base de données SQLite

A faire vous même

Nous allons utiliser une implémentation de ce schéma de base de données avec le moteur SQlite.

Téléchargez le logiciel DB Browser for SQLite qui permet de créer et manipuler des bases de données au format SQlite : ici.

Installez ce logiciel et ouvez le, vous devriez obtenir cette fenêtre :

A faire vous même

Téléchargez le fichier SQL qui permet créer la base de données pour le cinéma, de créer les tables et de charger les données dans les tables. : Base_Cinema_avec_data.sql

Importez le fichier sql à partir du logiciel DB Browser for SQLite : Fichier/Base de données à partir du fichier SQL

Vous pouvez aussi ouvrir le fichier au format natif de SqlLite : cinema.db à partir de Fichier/ouvrir une base de données.

Lorsque la fenêtre suivante apparait :

Répondre Yes, et enregistrez le nom de la base de données sous cinema.db.

Après l'importation du fichier SQL, l'onglet Structure de la Base de Données, devrait s'afficher comme suit :

Les 5 tables ont été importées avec leurs données.

Explorez le contenu de chaque table à partir de l'onglet Parcourir les données.

Donner le nombre d'enregistrements (ou de lignes) de chacune des tables de la base de données.

Des requêtes en lecture avec le langage SQL

Nous allons utiliser utiliser le langage SQL (Structured Query Language) pour "interroger" notre base de données.

Voici un lien vers un cours en ligne sur le langage SQL : sql.sh.

Et voici un aussi un aide mémoire pour la syntaxe des requêtes SQL : Aide mémoire SQL.

Des requêtes simples utilisant une seule table

Ecrire une requête SQL qui donne le titre de tous les films de la base de données.

Ecrire une requête SQL qui donne le titre, le nombre d'entrées de tous les films de la base de données ayant fait plus de 10 millions d'entrées.

Cela représente combien de films ?

Quelle requête SQL permet de retrouver ce nombre (le nombre de films ayant fait plus de 10 millions d'entrées).

Ecrire une requête SQL qui donne affiche le titre des films avec son année de sortie triés par année de sortie de la plus récente à la plus ancienne.

Des requêtes utilisant des jointures

Ecrire une requête SQL qui affiche tous les films avec leur titre, le prénom et le nom du réalisateur et l'année de sortie.

Ecrire une requête SQL qui affiche les 10 films ayant fait le plus d'entrées avec leur titre, le prénom et le nom du réalisateur, le où les pays ayant produit ou coproduit le film, l'année de sortie, le nombre d’entrées et triés par nombre d'entrées décroissantes.

Que remarque-t-on ?

Modification de données dans la base cinéma

Retrouver l'année de sortie du film "Avatar" dans la base de données "Cinéma".

Vérifier sur Internet que ce n'est pas la bonne année !

Ecrire une requête SQL du type UPDATE qui met à jour l'enregistrement du film "Avatar" dans la table "Film" avec la bonne année de sortie du film.

Ajout de données dans la base cinéma

Afin d'enrichir notre base de données sur le cinéma, nous souhaitons faire figurer les acteurs principaux pour les films recensés.

Proposez une modélisation qui complète le schéma actuel de la base de données cinéma afin de pouvoir consulter les 3 acteurs principaux pour chaque film recensé.

Vous pourrez utiliser le logiciel en ligne dbdiagram.io qui permet de représenter un schéma relationnel d'une base de données.

Pour importer la base de données Cinéma, utilisez ce fichier sql avec seulement la structure de la base de données : ici et l'importer dans dbdiagram.io à partir du menu Import/Import from Mysql.

Enrichir le fichier SQL de génération de la base de données : Base_Cinema_avec_data.sql en utilisant les instructions SQL CREATE TABLE pour créer les nouvelles tables (sans oublier la création des clefs primaires et clefs étrangères).

Renseignez vous sur les 3 acteurs principaux par film pour les 5 films ayant fait le plus d'entrées.

A l'aide de l"instruction SQL INSERT ajouter dans les tables correspondantes les informations relatives à ces acteurs.

Proposez une requête SQL qui affiche pour les 5 films au top des entrées le titre du film, le nom de réalisateur et les 3 acteurs principaux du film.

Suppression de données dans la base cinéma

Dans la table Pays figure un pays imaginaire (issu de l'album Le sceptre d'Ottokar de la bande dessinée Les4 Aventures de Tintin.)

Identifier ce pays imaginaire et à l'aide d'une requête SQL du type DELETE supprimez l'enregistrement correspondant dans la table Pays.

Auteur : Hugues Malherbe