Vous êtes sur la page 1sur 3

Filière : MCW

Année Profesionnelle: 2019/2020


TP-Bases de données
Objectif : Ce TP s’intéresse à la création, manipulation et interrogation d'une DB en utilisant le
SGBD MySQL. Toutes les manipulations sont réalisées sous l’outil phpMyAdmin.
Exercice 1 : Création de la base de données

1) En utilisant l’onglet « Bases de données » de l’interface phpMyAdmin, créer la BD « entreprise ».


Compte-rendu 1 : Recopier et expliquer la requête SQL de création de la base de données.

2) En utilisant l’onglet « Structure » de l’interface phpMyAdmin, créer les tables suivantes :


 EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, #DNO)
 DEPT(DNO, DNOM, DIR, VILLE)
NB : On veillera à choisir soigneusement le type de chaque champ, en sélectionnant le plus approprié
parmi les types disponibles sous MySQL.
Compte-rendu 2 : Indiquer, sous forme d’un tableau et en les justifiant, les propriétés choisies pour
chaque champ : type, taille/valeur, valeur par défaut, attributs, NULL autorisé ?, index,
AUTO_INCREMENT, …

3) S’assurer que les tables créées ont pour moteur de stockage le type InnoDB. Sinon, modifier les
tables en leur donnant comme type de moteur de stockage InnoDB.
Compte-rendu 3 : Quel est le moteur de stockage par défaut utilisé par le MySQL. Comparer les
moteurs de stockage InnoDB et MyISAM.
Exercice 2 : Insertion de données
4) En utilisant l’onglet « Insérer » de phpMyAdmin, saisir manuellement les employés suivants :
Compte-rendu 4 : Recopier la requête SQL d’insertion de l’employé Salim.

5) En utilisant une requête SQL, insérer les départements suivants et vérifier que l’incrémentation
automatique est bien fonctionnelle :
Compte-rendu 5 : Recopier et expliquer la requête SQL utilisée lors de cette insertion.

6) ) Interdire les doublons dans le champ DNOM et vérifier que cette contrainte est respectée.
Compte-rendu 6 : Recopier et expliquer la requête et le message délivré par MySQL lors de
l’insertion d’un doublon pour le nom du département.

Pr.:M. KATTASS 1 TP-Bases de données


Exercice 3 : Requêtes SQL
Exprimer en SQL les requêtes suivantes :
Compte-rendu 7-16 : Pour chaque question :
 reproduire le code de la requête, en expliquant les principales difficultés ;
 donner des indications permettant de vérifier si le résultat est correct, par exemple : nombre
de lignes, valeur(s) retournée(s), etc.

7) Donner la liste (nom et ville) des départements de l’entreprise.


8) Donner la liste des employés gagnant plus de 4000 DH.
9) Donner la liste des ingénieurs ayant une commission supérieure à 4000 DH.
10) Donner la liste (Nom et profession) des employés ayant une commission.
11) Donner les noms, emplois et salaires des employés classés par salaire décroissant.
12) Donner le salaire moyen des employés.
13) Donner le nombre d’ingénieurs dans l’entreprise.
14) Donner le salaire moyen des ingénieurs.
15) Donner le nom des employés avec le nom de leur département.
16) Donner le nom et le salaire des employés du département « Développement » recrutés après le
‘1990-01-01’.

Exercice 4 : Mise à jour de données

17) Afficher la table DEPT et, mettre à 60 le directeur du département « Comptabilité ».


Compte-rendu 17 : Recopier la requête générée par MySQL lors de cette mise à jour.

18) En vous inspirant de la requête précédente, formuler une requête de mise à jour multi-tables pour
mettre à 0 la commission de tous les employés du département « Développement ».
Compte-rendu 18 : Recopier cette requête et expliquer sa syntaxe. Quel est le nombre de lignes
ainsi modifiées ?

Exercice 5 : Suppression de données

19) Supprimer le dernier département grâce au bouton « Supprimer ».


Compte-rendu 9 : Recopier la requête générée par MySQL lors de cette suppression.

20) En vous inspirant de la requête précédente, supprimer les départements 1 et 2.


Compte-rendu 20 : Recopier cette requête. Quel problème pose-t-elle quant à la cohérence des
données de la base ?

21) On veut supprimer le département de l’employé Kamal, sans supprimer cet employé lui-même.
Formuler la requête SQL permettant de faire les modifications nécessaires, ainsi que la requête
SQL permettant de faire cette suppression.
Compte-rendu 21 : Recopier les deux requêtes et expliquer leur syntaxe. La cohérence des données
relatives à cet emplyé est-elle préservée ?

Pr.:M. KATTASS 2 TP-Bases de données


Exercice 6 : Relations entre tables

22) S’assurer que la clé étrangère utilisée possède les mêmes propriétés (type, taille, signe) que la clé
primaire qu’elle référence (faire les éventuels changements nécessaires).
Compte-rendu 22 : Quel est le champ concerné (argumenter) ? Donner les types utilisés.

23) Dans l’onglet « Structure », ajouter un index sur la clé étrangère utilisée s’elle n’est pas encore
indexée.
Compte-rendu 23 : Recopier la requête générée par MySQL lors de cette suppression.

24) Relier la clé étrangère à la clé primaire qu’elle référence (en laissant pour l’instant RESTRICT
comme stratégie de mise à jour et de suppression).
Compte-rendu 24: Recopier et expliquer la requête générée lors de cette manipulation, ainsi que le
message délivré par MySQL lors de la mise à jour et de la suppression d’une clé primaire
référencée. Quelle est sa conséquence sur la mise à jour/suppression d’un numéro de département.

25) Dans la Vue relationnelle de la table EMP, appliquer une mise à jour en cascade de la clé
étrangère DNO.
Compte-rendu 25: Recopier et expliquer la requête générée lors de cette manipulation. Quelle est
sa conséquence sur la mise à jour d’un numéro de département ?
26) Supprimer le département n°3.
Compte-rendu 26: Comment s’explique la différence constatée lors de cette suppression ?

27) Tester toutes les stratégies (CASCADE, SET NULL, NO ACTION, RESTRICT) et leurs
conséquences sur les données lors d’une mise à jour ou d’une suppression.
Compte-rendu 27: faire une proposition globale pour la gestion des relations de la base de données
afin que son intégrité référentielle soit gérée au mieux : quelles stratégies de mise à jour et de
suppression proposez-vous pour chaque clé étrangère?

Pr.:M. KATTASS 1 TP-Bases de données

Vous aimerez peut-être aussi