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