Initiation aux Bases de Données NFP107 TPs CNAM Paris Nicolas.Travers (at) cnam.fr
Table des matières 1 TP1-Installation etrequêtes simples 3 1.1 Bien débuter........................................ 3 1.1.1 Installation du TP................................. 3 1.1.2 Utilisation du TP.................................. 3 1.2 Requêtes simples (sans jointures)..................... 3 1.3 Jointures simples................................... 4 2 TP2-Requêtescomplexes 5 2.1 Requetes imbriquées................................. 5 2.2 Agrégats........................................... 5 3 TP3-Requêtesetmisesàjour 7 3.1 Mises à jour......................................... 7
1TP1-Installationetrequêtessimples 1.1 Bien débuter 1.1.1 Installation du TP MySQL est un serveur de base de données gratuit et facile d accès. Nous allons l utiliser dans le cadre de ce TP pour une utilisation à domicile (fonctionne également sur les machines du Cnam). 1. Télécharger les données relatives au TP sur Pleiad section Enoncé des TP.Téléchargez NFP107_data.sql et NFP107_schema.sql. 2. Télécharger le logiciel EasyPHP (logiciel gratuit permettant d avoir un serveur Web, et entre autre un serveur MySQL intégré). Prenez la dernière version disponible sur la page suivante : http://www.easyphp.org/fr/download.php 3. Installer l application en suivant les instructions ; 4. Vérifier que EasyPHP tourne sur votre machine ; 5. Ouvrez votre navigateur et aller sur l url suivante : http://localhost/home Vous y trouverez la page d administration d EasyPHP. Cliquez sur PhpMyAdmin (traditionnellement l URL est : http://localhost/phpmyadmin ou http://localhost/mysql). Une nouvelle page va s ouvrir vous permettant de manipuler votre base de données. 6. Dans le formulaire Créer une base de données, entrez la valeur NFP107. Ce qui créera une nouvelle instance de base de données : NFP107. 7. Cliquer sur l onglet Importer 8. Dans Fichier à importer, aller parcourir vos fichiers pour retrouver NFP107_schema.sql du TP que vous avez téléchargé en étape 1. 9. Dans Fichier à importer, aller parcourir vos fichiers pour retrouver NFP107_data.sql du TP que vous avez téléchargé en étape 1. 10. Vous avez fini d installer la base de données du TP. 1.1.2 Utilisation du TP Pour vous connecter à la base de données : 1. Assurez-vous de bien avoir effectué l installation ; 2. Vérifiez que EasyPhp est lancé ; 3. Sélectionnez dans le menu de droite la base de données NFP107 ; 4. Cliquez sur l onglet SQL ; 5. Pour chaque requête, placez-la dans le formulaire et appuyez sur Exécuter ; Vous pouvez maintenant effectuer le TP. 1.2 Requêtes simples (sans jointures) 1. Donner le n-uplet correspondant à l album d identifiant 375 ;
1.3. JOINTURES SIMPLES CHAPITRE 1. TP1 - INSTALLATION ET REQUÊTES SIMPLES 2. Donner les titres des albums réalisés par l artiste d identifiant 1167 ; 3. Donner les identifiants d albums dont le prix est inférieur à12euros; 4. Donner les albums qui sont sortis après le 18 mai 1999 ; 5. Donner les identifiant d artiste dont l album a atteint un rank supérieur ou égal à 30000 ; 6. Donner la liste (en éliminant les doublons) des asin des albums qui ont plus de 2 cds ; 7. Donner les titres des albums dont le titre commence par la lettre za et le prix est supérieur à 20 euros ; 8. Donner les identifiants des artistes ayant sorti un album classé entre la position 800 et 1000, trié par date de sortie. 1.3 Jointures simples 1. Donner les titres des chansons de l album qui a pour titre zavlet ; 2. Donner les titres (distincts) des albums qui ont plus de 2 cd; 3. Donner le nom des compositeurs de musique de type hr ; 4. Donner les trois albums (titre et prix) ayant les prix les plus bas (utiliser rownum qui numérote les lignes du résultat) ; 5. Donner les noms des artistes qui ont plusieurs labels ; 6. Donner le titre de l album, le titre de sa première chanson, son style, pour les albums de rank inférieur à 90.
2TP2-Requêtescomplexes 2.1 Requetes imbriquées. 1. Donner les titres des albums contenant le prix le plus élevé (ne pas tenir compte des albums dont le prix n est pas renseigné. Faire de 3 façons différentes ; 2. Donner les titres des albums sans style (ou dont le style n a pas été précisé) ; 3. Donner les noms des artistes qui ont produit un album sous le meme label que l artiste de nom lfc (attention, lfc peut avoir fait des albums sous différents labels) ; 4. Donner les titres des albums sortis le même jour qu un album de musique de style hr.faire avec et sans requetes imbriquées ; 5. Donner les titres des albums pour lesquels il n existe pas de deuxième cd. Faire de 3 façons différentes ; 2.2 Agrégats 1. Donner le nombre d albums stockés dans la base ; 2. Donner le prix moyen d un album ; 3. Donner le nombre d albums ayant au moins 2 cds ; 4. Donner les titres des albums ayant le prix le plus bas ; 5. Donner l asin et le nombre de chansons de chaque album ayant plus de 18 chansons en tout (attention un album peut-etre constitué de plusieurs cds!) ; 6. Donner pour chaque nom de label, le titre du meilleur album (rang le plus bas), ainsi que ce rang ;
2.2. AGRÉGATS CHAPITRE 2. TP2 - REQUÊTES COMPLEXES
3TP3-Requêtesetmisesàjour 3.1 Mises à jour Exercices. 1. Créer une table Label_XXX (Remplacez XXX par votre nom) aveclesattributs: name :nomdulabel,chainedecaractèresdelongueur40; country :paysd originedecelabel,chainedecaractèresdelongueur30; nb_artists :nombred artistesayantsignépourcelabel,entier; weight :chiffre d affaires en milliards de dollards, réel ; 2. Vérifier que la table apparaît dans l ensemble des tables dont vous êtes propriétaire, ainsi que les attributs (et formats) de cette table ; 3. Ajouter les n-uplets correspondant aux labels : Sony labeljaponaisquiprésente327artistespourunc.a.de2.38m$; EMI labelaméricain,quiprésente268artistespourunc.a. de 1.63 M$ ; Capitol labelaméricainquiprésente112artistespourunc.a.de0.87m$; Polydor labelfrançaisquiprésente37artistespourunc.a. de 0.11 M$ ; 4. Supprimer le n-uplet correspondant au label Polydor ; 5. Mettre à jour le C.A. de Sony à 2.64 M$ ; 6. Mettre à jour le nombre d artistes de Capitol à 266 artistes ainsi que son chiffre d affaires à 1.54 M$ ; 7. Supprimer la table Label_XXX que vous venez de créer ; 8. Creer une table Client_XXX avec les attributs : numero,nombredelongueur6,cléprimaire; nom,unechainedecaractèredelongueur63,lesvaleursnulles ne sont pas autorisées ; prenom,unechainedecaractèredelongueur63; naissance,ladatedenaissance,detypedate; 9. Ajouter une colonne code_postal : une chaine de caractère de taille 5 ; 10. Modifier le nom pour qu il soit de taille 50 ; 11. Creer une table Commande_XXX ayant les attributs suivant : numero,unnombredetaille8,cléprimaire; jour,de type date et ayant comme valeur par défaut la date système ; client,unnombredetaille6unecléétrangèreréférençant le numero dans la table Client_XXX ; 12. Ajouter une contrainte d unicité à la colonne client de la tablecommandes; 13. Quels sont les indexes qui existent pour les tables clients et commandes. (voir les tables all_indexes et all_ind_columns ). Que remarquez vous? 14. Créer un indexe sur la colonne prenom de la table Client_XXX ; 15. Insérer des tuples dans les tables Client_X et Commande_XXX. Vérifier les contraintes d intégrtitè référentielles.