Vous êtes sur la page 1sur 4

Anne 2012-2013 2me anne de licence Informatique Elisabetta DE MARIA, Nicolas PASQUIER et Mahmoud EL CHAMIE TP crit par Philippe

LAHIRE

Travaux Pratiques de Base de donnes


Cration de BDs relationnelles avec MySql (phpMyAadmin) (4 sances de 1h30) Objectif
On va ici sintresser la cration d'une base de donnes en utilisant un SGBD (MySQL). Cela nous permettra en particulier dexprimenter la cration dune base de donnes relationnelle en utilisant linterface fournie avec MySQL (phpMyAdmin).

Prise en main
Accdez la page web : http://euterpe.unice.fr/phpmyadmin/. Votre identifiant est constitu de L2I_ suivi de votre nom en majuscule (limit 13 caractres en incluant L2I_)1. Ensuite, partir du menu droulant gauche slectionnez votre base de donnes, elle a le mme nom que votre identifiant. Noubliez pas que linterface phpMyAdmin utilise le terme de table pour dsigner une relation, le terme de champ pour dsigner un attribut, le terme d'enregistrement pour dsigner un tuple et le terme de relation pour dsigner une liaison entre tables.

Exercice 1 : Cration du schma (premiers lments)


Se positionner sur votre base de donnes et utiliser linterface propose pour crer vos tables (cest assez intuitif). Attention : il faut crer les tables en leur donnant le type InnoDB. Crer les relations Etudiant, UE, EtudiantUE, Adresse, Enseignant de telle manire ce quelles contiennent les attributs suivants. Choisir les types de donnes qui vous semblent les plus appropris (se rfrer au cours et au TP1) et spcifier si la saisie de donne est obligatoire ou non pour un attribut (NULL/NOT NULL): Etudiant : numro (cl primaire), nom, prnom. UE : code, libell, nombre dheures associes (cours, TP, TD confondus). Le code est la cl primaire de la relation. Adresse : numro et nom de rue, nom de la ville, code postal, caractre (t pour Ter, b pour Bis, et si aucun des deux). On pourra pour simplifier donner un numro gnr automatiquement chaque adresse qui servira de cl primaire. Enseignant : numro (cl primaire), nom, prnom, ge, ville o il habite, nombre dheures enseignes. EtudiantUE : la note de CC obtenue, la note dexamen obtenue.

Exercice 2 : Cration du schma (complments)


On veut maintenant complter la description de ces relations en introduisant les informations qui ncessitent de lier ces relations entre-elles (dfinir les cls trangres). Pour cela il faudra rajouter des attributs (avec index) certaines relations et utiliser le lien gestion des relations . Attention choisir loption SET NULL (si lattribut lautorise) ou CASCADE (sinon). 1.Etudiant. Il faut i) lier la relation Etudiant avec la relation Adresse afin dexprimer le fait que tout tudiant a une adresse et ii) lier la relation Etudiant et la relation EtudiantUE afin de prciser les UEs avec leurs notes2 qui sont suivies par les tudiants. Eventuellement, un tudiant peut ne suivre aucune UE. Avant de crer une cl trangre dans une relation il faut quelle ait sa cl primaire dfinie.

Les sont remplacs par _. En cas de doute, lenseignant de TP a la liste des identifiants.

2. Enseignant. Il faut lier la relation Enseignant avec la relation UE afin dexprimer le fait que chaque enseignant peut tre responsable dUEs (ventuellement, un enseignant peut tre responsable daucune UE)3. 3. UE. A propos de la liaison de la relation UE avec la relation Enseignant afin dexprimer le fait que chaque UE a un enseignant responsable. Que pouvez-vous dire ? 4. EtudiantUE. Il faut lier la relation EtudiantUE avec la relation UE afin de pouvoir faire le lien entre les notes et lUE concerne. Avant de crer une cl trangre dans une relation il faut quelle ait sa cl primaire dfinie. Dfinir la cl primaire qui vous semble raisonnable (vous ne choisirez pas ici de numroter les tuples comme on a pu le faire plus haut). A propos de la liaison de la relation EtudiantUE avec la relation Etudiant afin dexprimer le fait que les notes sont obtenues par un certain tudiant. Que pouvez-vous dire ? Question : Quelles sont vos remarques propos du travail correspondant fait dans le TP1 (productivit, spcification des liaisons entre classes/relations,) ?

Exercice 3 : Insertion de donnes


Pour chaque table vous cliquerez sur le bouton ou longlet insrer selon que vous soyez au niveau de la base de donnes ou celui de la table concerne. Lobjectif est de crer les tuples. A priori il faut oprer dans un ordre logique : Adresse, Etudiant, Enseignant, UE, EtudiantUE4. Saisir les tuples suivants : Adresse(1, 3, 'b', "Jean mdecin", "O6000", "Nice") Adresse(2, 10, ' ', "Barla", "O6000", "Nice") Adresse(3, 10, ' ', "Jean Jaures", "O6200", "Cagnes") Etudiant(1001, "Nom1", "prenom1", 1) Etudiant(1002, "Nom2", "prenom2", 2) Etudiant(1003, "Nom3", "prenom3", 3) Enseignant(1, "Menez", "Gilles", 25, 35, "Antibes") Enseignant(2, "Lahire", "Philippe", 26, 30, "Nice") Enseignant(3, "Kounalis", "Emanuel", 27 , 28, "Nice") Enseignant(4, "Renevier", "Philippe", 21, 28, "Nice") UE("SL2IBD", "Base de Donnes", 24, 2) UE("SL2IPI", "Programmation imprative", 36, 1) UE("SL2IAL", "Algorithmique", 32, 3) UE("SL2IPW", "Programmation WEB", 26, 4) EtudiantUE(1001, "SL2IBD", 10, 11) EtudiantUE(1001, "SL2IPI", 8, 10) EtudiantUE(1002, "SL2IBD", 10, 11) EtudiantUE(1002, "SL2IPI", 8, 10) EtudiantUE(1003, "SL2IBD", 10, 11) EtudiantUE(1003, "SL2IPI", 8, 10); EtudiantUE(1003, "SL2IAL", 12, 13);
2 3

priori il ny en aura pas plus de 5 mais pour linstant on ne sen proccupe pas. Mme remarque concernant le nombre que pour la relation Etudiant. 4 Dire pourquoi cet ordre est logique.

Exercice 4 : Consultation et slection simple de donnes


Utiliser le bouton afficher pour voir lensemble des informations contenues dans chacune des tables. Utiliser ensuite successivement le bouton chercher et longlet Requte 5 pour afficher les informations suivantes (dans les deux cas utiliser les diffrentes possibilits offertes): 1.Numro et nom de la rue et ville, pour toutes les adresses 2.Nom et prnom de tous les tudiants 3.Le libell de lUE et le numro de lenseignant responsable pour toutes les UEs 4.code postal et ville, pour toutes les adresses (avec ou sans suppression des doublons) Premires slections : 1.Affichage de tous les tudiants dont le nom est Nom1 (toutes les informations) 2.Affichage de tous les numros dtudiants qui suivent lUE SL2IBD 3.Afficher tous les enseignants dont le prnom est Philippe . 4.Afficher tous les noms de rues de la ville Nice .

Exercice 5 : Slection plus complexes


Cest le moment dutiliser de manire plus fine les possibilits de MySQL pour raliser des requtes impliquant plusieurs tables. Pour cela, se placer au niveau de la base de donnes et cliquer sur longlet Requte 1.Afficher tous les noms et prnoms dtudiants qui suivent lUE SL2IBD ou lUE SL2IPI 2.Afficher tous les noms et prnoms dtudiants ainsi que le libell des UEs toujours pour ceux qui suivent lUE SL2IBD ou lUE SL2IPI 3.Afficher tous les tudiants dont le nom est Nom1 , mais en affichant que le prnom de ltudiant et le nom de la rue o il habite. 4.Afficher le nom du responsable de chacune des UEs SL2IBD et SL2IPI 5.Afficher le nom de ltudiant, le libell de lUE et la note de CC de chacun des tudiants. 6.Afficher le nom de ltudiant, le libell de lUE et la note de CC de chacun des tudiants dont le nom commence par Nom

Exercice 6 : Modification de donnes


Afficher le contenu dune table en utilisant le bouton afficher prsent pour chaque table, puis pour chacun des champs utiliser le bouton modifier afin de raliser les oprations suivantes (tuple par tuple 6) : 1.Augmenter toutes les notes dexamen de 1 point pour tous les tudiants et toutes les UEs. 2.Pour les tudiants qui suivent lUE SL2IBD , augmenter la note de contrle continu de 1 point.

Exercice 7 : Modification du schma


Utiliser le bouton structure prsent pour chaque table afin de vous mettre en position de travailler sur la structure dune table. Ensuite, utilisez les boutons modifier ou supprimer accessible pour chaque champ dune table et le bandeau dajout de colonne plac sous la table pour raliser les oprations suivantes :

5 6

chercher une fois que vous tes positionn sur la bonne table et requte au niveau de la base de donnes. On verra comment automatiser ces requtes avec le langage SQL dans un prochain TP.

1.Changer le type de lattribut ville de la table Adresse de manire en augmenter la taille de 5 caractres. 2.Ajouter une colonne age la table Etudiant et complter son contenu. 3.Supprimer la colonne age de la table Etudiant

Exercice 8 : Nouveau contexte


On dsire raliser une base de donnes pour la gestion dune bibliothque de DVDs. Chaque socit de location de DVD a un nom et une adresse (nom de rue et ville), ainsi quun nom de directeur. Plusieurs socits de location peuvent porter le mme nom. Tout DVD possde un titre, un auteur, une anne de sortie, un numro qui permet de l'identifier, une catgorie (ex : action, aventure); on enregistre galement sa date d'acquisition, le nombre dexemplaires achets et la socit qui la acquis. Pour un acteur on mmorise son nom, son prnom, son ge et son sexe. Pour chaque DVD et pour chaque acteur principal du film concern, on mmorise le rle tenu dans le film. Un DVD est emprunt par un client (nous ne mmoriserons pas dautre information que le numro du client) une date donne et pour une dure dtermine (nombre de jours). Un mme client ne peut emprunter un mme DVD plus dune fois par jour. Socit (numS, nomS, rueS, villeS, directeurS) Dvd (numD, titreD, auteurD, anneD, catgorieD, dateAchatD, nombreD, socitD) Acteur (numA, nomA, prnomA, geA, sexeA) Casting (dvdC, acteurC, rleC) Emprunt (dvdE, dateE, clientE, dureE)
(un trait soulign correspond une cl primaires et litalique une cl trangre)

Travail faire : Crer la base de donnes Mettre en oeuvre les requtes suivantes 1. Liste des DVDs acquis par la socit 'DVDStore'. 2. Liste des DVDs acquis par la socit 'DVDStore', avec pour chacun le nom et le prnom des acteurs qui ont particip au film. 3. Liste des acteurs de chaque DVD. 4. Liste des clients ayant lou un DVD dont un des acteurs a xavier pour prnom 5. Ajouter une information sur le numro de la rue o se trouve une socit de location.