TD 7 – Modèle Relationnel et SGBDR MySQL

Transcription

TD 7 – Modèle Relationnel et SGBDR MySQL
DAIGL – Analyse – TD7 – Modèle Relationnel et SGBDR MySQL
TD 7 – Modèle Relationnel et SGBDR MySQL
Cas Séries TV
La nouvelle chaîne télévisuelle TVSeries, diffusée sur la TNT, propose à ses téléspectateurs des séries 24
heures sur 24 (7 jours sur 7). La direction de la chaîne vous confie la conception de son site web. Ce site
devra mettre à disposition des visiteurs, des fiches descriptives de tous les épisodes de toutes les séries
diffusées.
Modèle relationnel :
ACTEUR(num_acteur,nom_acteur,prénom_acteur)
SERIE(num_série,titre_série,genre)
SAISON(num_saison,#num_série,année)
EPISODE(num_épisode,#num_saison,#num_série,titre,durée)
PAYS(code_pays,nom_pays)
JOUER(#num_série,#num_acteur,rôle)
APPARAITRE(#num_épisode,#num_saison,#num_série,#num_acteur,rôle_invité)
DIFFUSER(#num_épisode,#num_saison,#num_série,date,#code_pays,chaîne_TV)
Partie 2 – "Peupler" et interroger la base de données
Question 1 – Sauvegarder la base de données series_nom dans le fichier series_nom.sql.
Question 2 – Connecter le client MySQL (client en ligne de commandes) au SGBDR avec le compte de
l'administrateur.
Question 3 – Insérer le pays France (qui a pour code "FR") dans la table PAYS.
mysql> insert into PAYS(code_pays,nom_pays) values('FR','France') ;
Question 4 – Insérer le pays Italie (qui a pour code "IT") dans la table PAYS.
mysql> insert into PAYS values('IT','Italie') ;
Question 5 – Insérer les pays USA (code : "US") et Espagne (code : "ES") dans la table PAYS.
Question 6 – Afficher le contenu de la table PAYS.
mysql> select * from PAYS ;
Question 7 – Afficher les codes des pays recensés dans la table PAYS.
mysql> select code_pays from PAYS ;
Question 8 – Afficher les noms des pays recensés dans la table PAYS.
mysql> select nom_pays from PAYS ;
Question 9 – Afficher le nombre de pays recensés dans la table PAYS.
mysql> select count(*) from PAYS ;
Question 10 – Afficher le nom du pays qui a pour code "FR".
mysql> select nom_pays
> from PAYS
> where code_pays = 'FR' ;
Question 11 – Insérer l'acteur William PETERSEN dans la table ACTEUR.
mysql> insert into ACTEUR(nom_acteur,prenom_acteur)
> values('PETERSEN','William') ;
Question 12 – Insérer l'acteur Gary DOURDAN dans la table ACTEUR.
mysql> insert into ACTEUR
> values(NULL,'DOURDAN','Gary') ;
Question 13 – Insérer les actrices Michelle RODRIGUEZ et Michelle HURD dans la table ACTEUR.
Question 14 – Afficher le contenu de la table ACTEUR ;
Page 1
DAIGL – Analyse – TD7 – Modèle Relationnel et SGBDR MySQL
Question 15 – Afficher les noms et prénoms des acteurs et actrices mémorisés.
Question 16 – Afficher le nombre d'acteurs (actrices comprises)..
Question 17 – Afficher les prénoms, sans doublon, des acteurs.
mysql> select distinct prenom_acteur from ACTEUR ;
Question 18 – Afficher le numéro de l'actrice Michelle HURD.
Question 19 – Afficher les noms des actrices prénommées Michelle.
Question 20 – Editer le fichier series_nom.sql et y insérer les instructions SQL permettant de supprimer
la base de données si elle existe, de la recréer et enfin, de la sélectionner pour en faire la base courante.
Question 21 – Modifier les tables ACTEUR et SERIE en supprimant l'option AUTO_INCREMENT.
Question 22 – Restaurer la base de données series_nom.sql.
Le fichier series.py contient la définition des variables (tuples) associées aux différentes tables de la base
de données series_nom.sql. Pour exemple, la variable Acteurs (qui correspond à la relation ACTEUR)
contient des chaînes de caractères.
Acteurs = (
"1:FISHBURNE:Laurence",
"2:HELGENBERGER:Marg",
...
) Ces chaînes de caractères correspondent à des n-uplets. Chaque chaîne de la variable Acteurs représente un
acteur. L'ordre des champs (qui sont séparés par le caractère ":") respecte celui imposé par l'écriture de la
relation.
Exemple : relation ACTEUR(num_acteur,nom_acteur,prénom_acteur)
Le premier élément de la variable Acteurs est la chaîne "1:FISHBURNE:Laurence". Le premier champ
correspond au numéro de l'acteur, le deuxième au nom de l'acteur et enfin, le troisième au prénom de l'acteur.
Question 23 – Compléter le script Python (fichier series.py) dont le rôle est de créer et d'afficher
l'instruction d'insertion (requête SQL) pour chaque élément de chaque tuple (variables Acteurs, Series,
Pays...).
Exemple : Pour le premier élément de la variable Acteurs, le script doit afficher la chaîne "insert into ACTEUR values(1,'FISHBURNE','Laurence');".
De plus, le script devra en tout premier lieu afficher l'instruction SQL " use series_nom ;" avant de
générer et d'afficher les instructions SQL d'insertion.
Question 24 – Exécuter le script (fichier series.py) en "re-dirigeant" la sortie standard sur le fichier
donnees_series_nom.sql.
$ python series.py > donnees_series_nom.sql
Question 25 – "Peupler" la base de données à l'aide du script donnees_series_nom.sql.
Page 2