TP1 : création de BD avec phpmyadmin - IA
TP1 : création de BD avec phpmyadmin - IA
TP1 : création de BD avec phpmyadmin - IA
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>BD</strong> – 1 er semestre – GM5<br />
<strong>TP1</strong> : phpMyAdmin et la <strong>création</strong> <strong>de</strong> tables<br />
Le but <strong>de</strong> ce TP est <strong>de</strong> se familiariser <strong>avec</strong> phpMyAdmin , une interface web codée en php<br />
pour gérer le contenu d’une base MySql. A la fin <strong>de</strong> chaque exercice, exportez l’ensemble<br />
<strong>de</strong>s opérations effectuées sera exporté dans un fichier SQL. C’est ce fichier qui vous<br />
permettra d’avoir une trace <strong>de</strong>s opérations permettant <strong>de</strong> recréer votre base, et qui vous<br />
sera utile pour revoir ce TP.<br />
Exercice 1 (corrigé): 2h30<br />
Connexion :<br />
Connectez-vous à l’interface phpMyAdmin en tapant l’url suivante dans un navigateur :<br />
https://pc84.polytech.upmc.fr/<strong>phpmyadmin</strong>/<br />
Votre login est le même que sous linux et votre mot <strong>de</strong> passe, c’est votre login aussi.<br />
Deux panneaux s’affichent : ils seront toujours visibles. Le panneau <strong>de</strong> gauche est le<br />
gui<strong>de</strong> <strong>de</strong> navigation pour les bases <strong>de</strong> données et les tables. Le panneau <strong>de</strong> droite est<br />
l’espace <strong>de</strong> travail principal où sont gérées les données et où apparaissent les résultats.<br />
Pour revenir à l’accueil, cliquez dans le panneau <strong>de</strong> gauche sur l’image .<br />
Vues :<br />
Dans le panneau <strong>de</strong> droite, nous pouvons être en vue Base <strong>de</strong> données, ce qui nous permet<br />
<strong>de</strong> faire diverses actions sur une base <strong>de</strong> données précise, ou en vue Table où nous avons<br />
accès à plusieurs fonctions pour gérer une table. Chacune <strong>de</strong>s vues comporte un menu en<br />
haut <strong>de</strong> page, contenant <strong>de</strong>s onglets qui conduisent à diverses pages secondaires qui<br />
présentent l’information regroupée par fonction (structure <strong>de</strong> table, privilèges, …).<br />
Création <strong>de</strong> tables :<br />
Le but <strong>de</strong> cette section est <strong>de</strong> créer les tables suivantes et <strong>de</strong> détecter les impossibilités s’il<br />
y en a :<br />
1
<strong>BD</strong> – 1 er semestre – GM5<br />
2
<strong>BD</strong> – 1 er semestre – GM5<br />
1. PhpMyAdmin est une interface graphique web –écrite en php bien sur, qui permet<br />
d’envoyer <strong>de</strong>s instructions SQL au serveur Mysql <strong>de</strong> l’école (installé sur le pc84) via<br />
<strong>de</strong>s formulaires web. PhpMyAdmin affiche l’instruction SQL envoyée dans un<br />
panneau. Pour gar<strong>de</strong>r une trace complète <strong>de</strong> toutes actions,, les instructions SQL que<br />
vous allez générées <strong>de</strong>vront être inscrites au fur et à mesure dans un fichier texte<br />
nommé tp1_ex1.sql (où nom1 et nom2 sont les noms du binôme).<br />
2. Dans le menu déroulant à gauche, vous remarquerez une liste <strong>de</strong> bases <strong>de</strong> données.<br />
Seules celles que vous pouvez réellement consulter montrent qu'elles ont <strong>de</strong>s tables<br />
(nombre entre parenthèses).<br />
Sélectionnez la base i<strong>de</strong>ntifiée par votre login en cliquant sur son nom dans le<br />
panneau <strong>de</strong> gauche.<br />
3. La <strong>création</strong> d’une table se fait en <strong>de</strong>ux temps : 1) <strong>création</strong> <strong>de</strong> la table en indiquant<br />
son nom et le nombre d’attributs qui la composent et 2) information <strong>de</strong>s attributs au<br />
travers d’un écran spécifique. Une fois les champs informés, cliquer sur<br />
« sauvegar<strong>de</strong>r ».<br />
Créez la table STATION(nomStation, capacité, lieu, région, tarif) en renseignant<br />
uniquement le type <strong>de</strong>s champs.<br />
1. Un écran confirmant la <strong>création</strong> <strong>de</strong> la base apparait, <strong>avec</strong> le co<strong>de</strong> sql correspondant,<br />
qui peut alors êre modifié manuellement en cliquant sur « modifier ». Mais il est<br />
également possible <strong>de</strong> modifier un attribut en cliquant le bouton Action correspondant<br />
à un crayon.<br />
Modifier la table STATION <strong>de</strong> telle sorte que les attributs capacité, lieu et tarif soient<br />
toujours connues et que l’attribut nomStation soit la clé primaire.<br />
2. Pour revenir à la vue Base <strong>de</strong> données, cliquez sur le nom <strong>de</strong> la base dans le panneau<br />
<strong>de</strong> gauche.<br />
Créer les tables suivantes, <strong>avec</strong> leurs clés primaires, en spécifiant les options ci<strong>de</strong>ssous<br />
(mais sans spécifier les contraintes <strong>de</strong> clés étrangères pour le moment) :<br />
a. ACTIVITE(nomStation*, libellé, prix)<br />
b. CLIENT(id, nom, prénom, ville, région, sol<strong>de</strong>)<br />
c. SEJOUR(id*, station*, début, nbPlaces)<br />
Les données nom, ville, sol<strong>de</strong> et nbPlaces doivent toujours être connues.<br />
Les montants (prix, tarif et sol<strong>de</strong>) ont une valeur par défaut à 0.<br />
Il ne peut pas y avoir <strong>de</strong>ux stations dans le même lieu et la même région.<br />
Les régions autorisées sont : 'Ocean Indien', 'Antilles', 'Europe', 'Ameriques' et<br />
'Extreme Orient'.<br />
3
<strong>BD</strong> – 1 er semestre – GM5<br />
<br />
<br />
<br />
Le numéro <strong>de</strong> client est auto-incrémenté.<br />
Le prénom du client peut être omis.<br />
Il existe un in<strong>de</strong>x sur les noms <strong>de</strong>s clients.<br />
3. Pour ajouter une contrainte référentielle (FOREIGN KEY), il faut que la table soit <strong>de</strong><br />
type InnoDB. Si cette information n’a pas été donnée au moment <strong>de</strong> la <strong>création</strong> en<br />
choisissant le type <strong>de</strong> la table dans le menu déroulant, il est possible <strong>de</strong> le modifier en<br />
sélectionnant la table, en cliquant dans l’onglet « Opérations » puis en modifiant le<br />
type <strong>de</strong> la table dans le menu correspondant et en cliquant sur « Exécuter ».<br />
Vérifier que vos tables sont bien toutes <strong>de</strong> type InnoDB.<br />
4. Pour ajouter une contrainte référentielle (clé étrangère) dans une table <strong>de</strong> type<br />
InnoDB, il faut sélectionner la table puis cliquer sur le lien « Gestion <strong>de</strong>s relations ».<br />
Seuls les attributs in<strong>de</strong>xés 1 (dont les clés primaires) peuvent participer à une<br />
contrainte référentielle..<br />
Ajouter les options <strong>de</strong> clés étrangères correspondant au schéma décrit plus haut en<br />
choisissant les comportements qui vous semblent le plus cohérent. Par exemple, la<br />
modification d’une station doit entrainer la modification <strong>de</strong> ses activités.<br />
5. Pour insérer <strong>de</strong>s tuples dans une table, sélectionner la table puis cliquer sur l’onglet<br />
« Insérer ». Vous pouvez saisir <strong>de</strong>ux tuples à la fois (le <strong>de</strong>uxième est ignoré si vous ne<br />
remplissez pas ses champs). Pour les valeurs auto-incrémentées, il n’est pas<br />
nécessaire <strong>de</strong> saisir leur valeur. Pour visualiser les tuples insérés, cliquer sur l’onglet<br />
« Afficher ».<br />
Remplissez les tables <strong>avec</strong> les tuples <strong>de</strong> la figure. Toutes les insertions sont-elles<br />
possibles L’ordre <strong>de</strong>s INSERT est important. Pourquoi <br />
6. Pour modifier individuellement un tuple, afficher la table et cliquer sur le crayon dans<br />
les options du tuple.<br />
Modifier la valeur du tarif <strong>de</strong> la station Venusa à 1300.<br />
7. Pour modifier plusieurs tuples d’une table, il faut cliquer sur l’onglet SQL <strong>de</strong> la vue<br />
<strong>de</strong> la table, écrire le co<strong>de</strong> SQL correspondant à l’update et cliquer sur « Exécuter »<br />
Incrémenter <strong>de</strong> 5% les tarifs <strong>de</strong> toutes les stations en une seule comman<strong>de</strong>.<br />
8. Pour supprimer individuellement un tuple, afficher la table et cliquer sur la croix<br />
dans les options du tuple<br />
1 Un attribut in<strong>de</strong>xé est un attribut pour lequel existe un in<strong>de</strong>x permettant d’accé<strong>de</strong>r rapi<strong>de</strong>ment à la donnée via<br />
l’attribut. Les attributs in<strong>de</strong>xés sont les attributs participant à une clé primaire, à une clé secondaire (contrainte<br />
d’unicité) ou tout simplement un attribut pour lequel on a créé manuellement un in<strong>de</strong>x.<br />
4
<strong>BD</strong> – 1 er semestre – GM5<br />
Supprimer <strong>de</strong> la table STATION la station Santalba. Vérifier que toutes ses activités<br />
ont disparu.<br />
9. Exporter une base <strong>de</strong> données consiste en la génération d’un fichier texte dans un<br />
format donné. Pour exporter une <strong>BD</strong> au format SQL, cliquer sur le nom <strong>de</strong> la base<br />
dans le panneau <strong>de</strong> gauche, puis dans l’onglet « Exporter ».<br />
Exporter votre base au format SQL et sauvegar<strong>de</strong>r-là dans un nouveau fichier texte<br />
nommé tp1_ex1_.sql., où nombase est le nom <strong>de</strong> la base. Que contient<br />
ce fichier Est-il i<strong>de</strong>ntique au fichier tp1_ex1.sql Pourquoi A quoi sert d’exporter<br />
une base <br />
10. Pour supprimer complètement une table (le schéma + les données), il faut cliquer sur<br />
le nom <strong>de</strong> la table et choisir l’onglet « Supprimer ».<br />
a. Quelle est la comman<strong>de</strong> <strong>de</strong> suppression d’une table <br />
b. Supprimer toutes les tables. Y’a-t-il un ordre <strong>de</strong> suppression Quelles sont les<br />
comman<strong>de</strong>s SQL générées <br />
Exercice 2 (à rendre) : 1h30<br />
Par la suite, les instructions SQL que vous allez générées <strong>de</strong>vront être inscrites dans un fichier<br />
nommé tp1_nom1_nom2.sql (où nom1 et nom2 sont les noms du binôme) et seront soumises en<br />
fin d’exercice.<br />
Le but <strong>de</strong> cette section est <strong>de</strong> créer les tables suivantes :<br />
5
<strong>BD</strong> – 1 er semestre – GM5<br />
1. Créer les tables :<br />
a. Déduire le schéma, le type <strong>de</strong>s données et les contraintes référentielles<br />
(REFERENCES).<br />
b. Ajouter les contraintes suivantes :<br />
Les données nom_mat, coef doivent toujours être connues.<br />
Il ne peut pas y avoir <strong>de</strong>ux matières dans la même table <strong>avec</strong> le même nom.<br />
Le gra<strong>de</strong> <strong>de</strong>s enseignants peut prendre l’une <strong>de</strong>s valeurs : ‘ASS’, ‘MCF’, ‘PR’.<br />
c. Créer <strong>de</strong>s séquences pour num_mat, num_etu et num_ens (en respectant la valeur<br />
initiale).<br />
2. Créer un in<strong>de</strong>x sur les noms <strong>de</strong>s étudiants.<br />
2. Remplissez les tables <strong>avec</strong> les tuples présentés en début d’exercice.<br />
3. Essayer d’insérer le tuple (6,’Programmation’,3,11) dans la table matieres, est-ce que<br />
l’insertion est possible Pourquoi L’ordre <strong>de</strong>s INSERT est important. Pourquoi <br />
Inscrivez vos réponses en commentaires du fichier tp1_nom1_nom2.sql<br />
4. Modifier la note <strong>de</strong> l'étudiant numéro 1 correspondant à la matière numéro 2 à 13.<br />
5. Augmenter <strong>de</strong> 15% les notes <strong>de</strong> tous les étudiants.<br />
6. Essayer <strong>de</strong> supprimer <strong>de</strong> la table matieres la matière nommée 'Statistiques'. Que se passet-il<br />
et pourquoi Modifier la table notes <strong>de</strong> sorte que les notes relatives à une matière<br />
soient supprimées automatiquement si on supprime la matière <strong>de</strong> la table matieres.<br />
7. L’école souhaite maintenir <strong>de</strong>s statistiques sur le nombre <strong>de</strong> notes données par matière.<br />
Ajouter une colonne nbNote dans la table matiere initialement à 0. Créer une règle telle<br />
que l’ajout d’une note dans la table note modifie la valeur nbNote correspondant dans la<br />
table matieres.<br />
6
<strong>BD</strong> – 1 er semestre – GM5<br />
Soumission du TP<br />
Soumettre votre fichier tp1_nom1_nom2.sql en précisant le sujet suivant :<br />
[GM5-bd] tp1 nom1 nom2<br />
7