Serie d’exercices corriges pour s’initier aux bases de donnees
Faculté Polydisciplinaire de Ouarzazate (IGE)
Exercices
Corrigés
Initiation aux
Base de données
• Algèbre relationnelle
• Modèle relationnel
• SQL
Tables des matières
I. Chapitre 1 : Algèbre relationnelle . 5
Exercice 1 5
Correction de l’exercice 1 . 5
Exercice 2 7
Correction de l’exercice 2 . 7
Exercice 3 7
Correction de l’exercice 3 . 8
Exercice 4 8
Correction de l’exercice 4 . 8
II. Chapitre 2 : Modèle relationnel . 11
Exercice 1 . 11
Correction de l’exercice 1 .. 11
Exercice 2 . 11
Correction de l’exercice 2 .. 12
Exercice 3 . 12
Correction de l’exercice 3 .. 12
Exercice 4 . 13
Correction de l’exercice 4 .. 13
Exercice 5 . 13
Correction de l’exercice 5 .. 14
Exercice 6 . 14
Correction de l’exercice 6 .. 14
Exercice 7 . 15
Correction de l’exercice 7 .. 15
Exercice 8 . 16
Correction de l’exercice 8 .. 16
Exercice 9 . 17
Correction de l’exercice 9 .. 17
III. Chapitre 3 : Langage SQL .. 19
Exercice 1 . 19
Corrigé de l’exercice 1 . 20
IV. EXAMEN INITIATION AUX BASE DE DONNEES (2010) .. 22
Examen : initiation aux BDD .. 22 Exercice 1 (10 points) .. 22
Exercice 2 (10 points) 22
Corrigé de l'EXAMEN . 23
Corrigé de l’exercice 1 .. 23
Corrigé de l’exercice 2 .. 23
Chapitre 1
Algèbre
Relationnelle
I. Algèbre relationnelle
Exercice 1
Correction de l’exercice 1
1.
r s = (A, B, r.c, s.C, D)
A | B | r.C | s.C | D |
7 | 9 | 8 | 8 | 1 |
8 | 1 | 2 | 2 | 3 |
9 | 7 | 2 | 2 | 3 |
2.
r s = (r s)
r s
r s p = (A, B, r.c, s.C, p.D, t.D, E, F)
A | B | r.C | s.C | p.D | s.d | E | F |
7 | 9 | 8 | 8 | 1 | 1 | 2 | 3 |
8 | 1 | 2 | 2 | 3 | 3 | 9 | |
9 | 7 | 2 | 2 | 3 | 3 | 9 |
3.
r ⋈(C ⩽D) t = (A, B, C, D, E, F)
A | B | C | D | E | F |
8 | 1 | 2 | 1 | 2 | 3 |
8 | 1 | 2 | 4 | 7 | |
1 | 3 | 3 | 3 | 9 | |
9 | 7 | 2 | 3 | 9 |
4.
s x s =(C, D, C, D)
C | D | C | D |
8 | 1 | 8 | 1 |
8 | 1 | 2 | 3 |
2 | 3 | 8 | 1 |
2 | 3 | 2 | 3 |
5. π (A,B) r = (A,B)
A | B |
1 | 3 |
7 | 9 |
8 | 1 |
9 | 7 |
6.
s x t =(C, s.D, t.D, E, F)
C | s.D | t.D | E | F |
8 | 1 | 1 | 2 | 3 |
8 | 1 | 4 | 7 | |
8 | 1 | 3 | 9 | |
2 | 3 | 1 | 2 | 3 |
2 | 3 | 4 | 7 | |
2 | 3 | 3 | 9 |
Exercice 2
Soit la base de l’extension suivante de la relation Personne :
Correction de l’exercice 2
1.
Numero | Nom | Prenom |
2 | Grossetete | Sandrine |
2.
Nom | Prenom |
Grossetete | Sandrine |
Renaud | Stephane |
Rum | Alexandre |
3.
Prenom |
Pierre –Louis |
Stephane |
Alexandra |
Exercice 3
On considère les relations suivantes:
PERSONNE (CIN, NOM, Prenom, Adresse)
Voiture(NCarteGrise, CIN, Modele)
Moto(NCarteGrise, CIN, Modele)
Ecrire les expressions représentant:
1. Afficher les personnes qui possèdent une voiture mais pas de moto?
2. Afficher les personnes qui possèdent une voiture et une moto?
3. Afficher les personnes qui ne possèdent ni voiture ni moto?
Correction de l’exercice 3
1.
π CIN, NOM, Prenom, Adresse(π CIN Voiture - π CIN Moto)
2.
π CIN, NOM, Prenom, Adresse(π CIN Voiture ∩ π CIN Moto)
3.
π CIN, NOM, Prenom, Adresseπ CIN (π CIN Voiture π CIN Moto) )
Exercice 4
Soit le schéma de la base de données Bibliothèque suivante :
Etudiant(NumEtd,NomEtd,PrenomEdt,AdresseEtd)
Livre(NumLivre,TitreLivre,NumAuteur,NumEditeur,NumTheme,AnneeEdition)
Auteur(NumAuteur,NomAuteur,AdresseAuteur)
Editeur(NumEditeur,NomEditeur,AdresseEditeur)
Theme(NumTheme,IntituléTheme)
Prêt(NumEtd,NumLivre,DatePret,DateRetour)
En gras les clés primaires et en italique les clés étrangères
Ecrire en langage algébrique les requêtes suivantes :
1. Le nom, le prénom et l’adresse de l’étudiant de nom ‘Alami’
2. Le numéro de l’auteur ‘Alami’
3. la liste des livres de l’auteur numéro 121
4. les livres de l’auteur nom ‘Alami’
5. le numéro de l’auteur du livre ‘comment avoir 20 en BDD’
6. le nom et l’adresse de l’auteur du livre ‘comment avoir 20 en BDD’
7. Les livres de l’auteur ‘Alami’ «édités chez l’éditeur ‘Nul part’
8. les livres de l’auteur ‘Alami’ ou ‘Belhadj’
9. les livres qui n’ont jamais été empruntés
Correction de l’exercice 4
1.
π NomEtd, PrenomEtd, AdresseEtdσEtudiant )
2.
π NumAuteurσAuteur )
3.
σLivre
4.
π Livre.* (σ(Livre
5.
π NumAuteur (σ(Livre
6.
π NomAuteur, AdresseAuteur (σ(Livre
7.
π Livre.* (σ(Livre
8.
π Livre.* (σ(Livre
9. π Livre.* ((π NumLivre Livre - π NumLivre Prêt)
Chapitre 2 Modèle
Relationnel
II. Modèle relationnel
Exercice 1
Soit les deux relations suivantes R1 (A, B, C) et R2 (D, E, A). Soit les extensions suivantes des deux relations :
Expliquer si la contrainte d’intégrité référentielle entre A de R1 et A de R2 est respectée dans les deux extensions.
Correction de l’exercice 1
Dans l’extension 1 la contrainte d’intégrité référentielle est respectée car toute les valeur de l’attribut A de R2 existe dans A de R1.
Dans l’extension 2 la contrainte d’intégrité référentielle n’est pas respectée car la valeur 5 de l’attribut A de R2 n’existe pas parmi les valeurs de A de R1.
Exercice 2
Soit la relation R(A,B,C) avec l’extension suivante :
A | B | C |
a1 | b1 | c1 |
a2 | b1 | c2 |
a2 | b2 | c3 |
a1 | b2 | c2 |
a2 | b3 | c3 |
a1 | b3 | c3 |
Quelle est la clé primaire de la relation R.
Correction de l’exercice 2
A ne peut pas être clé de R car la valeur a1 de A se répètent dans la relation R. De même pour B (b1) et C (c2).
(A, B) est une clé composée de R car les valeurs de (A,B) ne se répètent pas dans R.
Exercice 3
Soit le schéma de la base de données Bibliothèque suivante :
Etudiant(NumEtd,NomEtd,AdresseEtd)
Livre(NumLivre,TitreLivre,NumAuteur,NumEditeur,NumTheme,AnneeEdition)
Auteur(NumAuteur,NomAuteur,AdresseAuteur)
Editeur(NumEditeur,NomEditeur,AdresseEditeur)
Theme(NumTheme,IntituléTheme)
Prêt(NumEtd,NumLivre,DatePret,DateRetour)
Un étudiant peut emprunter plusieurs livres à la fois. Chaque fois qu’un livre est retourné, la date de retour est mise à jour. Sinon sa valeur reste null. Pour des raisons de statistique, on conserve dans la table Prêt tous les tuples les livres retournés. Un livre ne peut pas être emprunté le même jour ou il est retourné !
1) Donner les clés de ces relations. Justifier.
2) Donner toutes les contraintes d’intégrités référentielles qui apparaissent dans ce schéma.
Correction de l’exercice 3
1.
NumEtd est la clé de la relation Etudiant ;
NumLivre est la clé de la relation Livre ;
NumAuteur est la clé de la relation Auteur ;
NumEditeur est la clé de la relation Editeur;
NumTheme est la clé de la relation Theme ;
(NumEtd, NumLivre, DatePret) est la clé de la relation Prêt.
2.
Les contraintes d’intégrités référentielles de ce schéma son :
• L’attribut NumAuteur de la table Livre fait référence à l’attribut clé NumAuteur de la table Auteur ;
• L’attribut NumEditeur de la table Livre fait référence à l’attribut clé NumEditeur de la table Editeur ;
• L’attribut NumTheme de la table Livre fait référence à l’attribut clé NumTheme de la table Theme ;
• L’attribut NumEtd de la table Prêt fait référence à l’attribut clé NumEtd de la table Etudiant ;
• L’attribut NumLivre de la table Prêt fait référence à l’attribut clé NumLivre de la table Livre.
Exercice 4
On considère la relation R(A,B,C,D,E, F) sur laquelle sont définies les dépendances fonctionnelles suivantes :
A,B C
D C
D E
C,E F
E A
1. Compléter les cases vides du tableau :
Correction de l’exercice 4
A | B | C | D | E | F |
w | 1 | i | 110 | m | 54 |
x | 2 | j | 100 | n | 52 |
w | 1 | i | 110 | m | 54 |
x | 2 | j | 100 | n | 52 |
Exercice 5
On considère la relation R (A, B, C) avec l’ensemble de DF { A → B ; B → C }. Par exemple, R pourrait être la relation FILM (No_exploitation, Titre, Realisateur).
1) Quelle est la clé primaire de R ? Dans quelle forme normale se trouve cette relation ?
2) L’extension de la relation R’ suivante est-elle une extension de R ?
3) Trouver une extension R’’ conforme à R, à partir de R’. 4) Proposer une décomposition en 3FN de R sans perte d’information.
Correction de l’exercice 5
1.
La clé de R est A
La relation R est en 2FN (elle n’est pas en 3FN car l’attribut non clé C ne dépend pas de la clé directement (C dépend de A par transitivité)).
2.
R’ n’est pas une extension de R car B ne détermine pas C (pour la même valeur B1 de B en trouve deux valeurs différentes de C (C1 et C2)).
3.
R’’
A | B | C |
A1 | B1 | C1 |
A2 | B1 | C1 |
A3 | B2 | C1 |
A4 | B3 | C3 |
4.
La décomposition en 3FN de R est :
R1(A, B) et R2 (B, C).
Exercice 6
Nous considérons ce schéma relationnel résultant d’une première enquête :
CLIENT(NumClient,RaisonSociale,NumRepresentant,Tauxrepresentant) D’une part chaque CLIENT n’est affecté qu’à un seul REPRSENTANT
1) Représenter les dépendances fonctionnelles 2) Quelle est la forme normale ?
3) Définir le schéma équivalent en 3e forme normale.
Correction de l’exercice 6
1.
Les dépendances fonctionnelles de ce schéma :
NumClient RaisonSociale,NumRepresentant,Tauxrepresentant
NumRepresentant NumClient
NumRepresentant Tauxrepresentan
2.
Cette relation est en 2FN (n’est pas en 3FN)
3.
Le schéma équivalent en 3FN est :
Client (NumClient,RaisonSociale,NumRepresentant)
Representant (NumRepresentant,Tauxrepresentant)
Exercice 7
Soient la relation
R1(NumMatriculeOuvrier,NomOuvrier,NumRéparation,NumMachine,TempsPassé,
Dateréparation,NomMachine,NumAtelier,NomAtelier)
Les dépendances fonctionnelles suivantes :
NumMatriculeOuvrier NomOuvrier
NumRéparation Dateréparation
NumMatriculeOuvrier, NumRéparation TempsPassé
NumRéparation NumMachine
NumMachine NomMachine
NumMachine NomAtelier
NumAtelier NomAtelier
NumMachine NumAtelier
1) Trouver le graphe des dépendances fonctionnelles 2) Clé primaire de R1 ?
3) Définir le schéma équivalent en 3e forme normale.
Correction de l’exercice 7
1.
NumMatriculeOuvrier NumRéparation
TempsPassé NomOuvrier
NomAtelier
2.
La clé de cette relation est (NumMatriculeOuvrier, NumRéparation)
3.
Le schéma équivalent en 3FN :
Ouvrier (NumMatriculeOuvrier, NomOuvrier)
reparation( NumRéparation, NumMachine , Dateréparation)
Ouvrier_Repatation (NumMatriculeOuvrier, NumRéparation, TempsPassé)
Machine(NumMachine, NomMachine , NumAtelier)
Atelier(NumAtelier, NomAtelier)
Exercice 8
On considère l’ensemble des dépendances fonctionnelles suivantes : e,f,g t a v a b b c b w c d c z d c d u
1) Trouver le graphe des dépendances fonctionnelles.
2) Définir le schéma équivalent en 3e forme normale (indiquer les clés primaires et étrangères).
Correction de l’exercice 8
1.
e f g
t a
v b
u
2.
R1(e,f,a)
R2(e,f,g,t)
R3(a,v,b)
R4(b,w,c)
R5(c,d,z)
R6(d,u)
Exercice 9
Une entreprise comprend différents services, chacun étant caractérisé par un numéro unique (NOSER), un nom (NOMS) de service, le numéro (NORES) et le nom (NOMR) de son responsable. Un budget (BUSER) est attribué à un service.
Chaque service gère un ou plusieurs projets, mais un projet est géré par un seul service. Un projet est caractérisé par un numéro (NOPRO) supposé unique et un nom (NOMP). Un budget (BUPRO) est attribué à un projet.
Les employés de l'entreprise sont affectés à un instant donné à un seul projet. Un employé est caractérisé par un numéro (NOEMP) supposé unique et un nom (NOME). Chaque employé peut être joint par l'intermédiaire d'un numéro de téléphone (NOTEL). Un numéro de téléphone peut être partagé entre plusieurs employés.
Un employé est installé dans un bureau caractérisé par un numéro unique (NOBUR). Un bureau peut accueillir plusieurs employés et plusieurs appareils téléphoniques. La localisation d'un bureau est repérée par le nom de son bâtiment (NOMB). Un bureau est rattaché pour gestion à un seul service.
1) Déterminer les dépendances fonctionnelles qui existant sur l'ensemble des attributs.
2) Donner une représentation de la base sous forme d'un ensemble de relations en 3FN.
Correction de l’exercice 9
Chapitre 3 Langage SQL
III. Langage SQL
Exercice 1
Soit la base de données relationnelle des vols quotidiens d’une compagnie aérienne qui contient les tables Avion, Pilote et Vol.
Table Avion (NA : numéro avion de type entier (clé primaire),
Nom : nom avion de type texte (12),
Capacite : capacité avion de type entier,
Localite : ville de localité de l’avion de type texte (10)
)
Table Pilote (NP : numéro pilote de type entier,
Nom : nom du pilote de type texte (25),
Adresse : adresse du pilote de type texte (40)
)
Table Vol (NV : numéro de vol de type texte (6),
NP : numéro de pilote de type entier,
NA : numéro avion de type entier,
VD : ville de départ de type texte (10),
VA : ville d’arrivée de type texte (10), HD : heure de départ de type entier,
HA : heure d’arrivée de type entier
)
1) Insérer les avions suivants dans la table Avion :
(100, AIRBUS, 300, RABAT), (101,B737,250,CASA), (101, B737,220,RABAT)
2) Afficher tous les avions
3) Afficher tous les avions par ordre croissant sur le nom
4) Afficher les noms et les capacités des avions
5) Afficher les localités des avions sans redondance
6) Afficher les avions dans la localité et Rabat ou Casa
7) Modifier la capacité de l’avion numéro 101, la nouvelle capacité et 220
8) Supprimer les avions dans la capacité et inférieure à 200
9) Afficher la capacité maximale, minimale, moyenne des avions
10) Afficher les données des avions dont la capacité et la plus basse
11) Afficher les données des avions dont la capacité et supérieure à la capacité moyenne
12) Afficher le nom et l’adresse des pilotes assurant les vols IT100 et IT104
13) Afficher les numéros des pilotes qui sont en service
14) Afficher les numéros des pilotes qui ne sont pas en service
15) Afficher les noms des pilotes qui conduisent un AIRBUS
Corrigé de l’exercice 1
1.
Insert into avion values (100, 'AIRBUS', 300, 'RABAT');
Insert into avion values (101,'B737',250,'CASA');
Insert into avion values (101, 'B737',220,'RABAT');
2.
select * from avion;
3.
select * from avion
order by Nom asc;
4.
select nom, Capacite from avion;
5.
select distinct Localite from avion;
6.
select * from avion
where Localite='Rabat' or Localite='Casa' ;
7.
Update avion set Capacite=220
where NA=101;
8.
Delete from avion
where Capacite <200;
9.
Select Max(Capacite), Min(Capacite), Avg(Capacite) from avion;
10.
Select * from avion
where Capacite=min(Capacite);
11.
Select * from avion
where Capacite>=avg(Capacite);
12.
Select Nom, Adresse from Pilote, Vol where = and NV='IT100' and NV='IT104';
13.
Select NP from Vol;
14.
Select NP from Pilote
where NP not in (select NP from Vol);
15.
Select from Pilote, Vol, Avion where = and
and ='AIRBUS';
IV. EXAMEN INITIATION AUX BASE DE DONNEES (2010)
Examen : initiation aux BDD
durée 1h 00 min
Exercice 1(10 points)
On considère l’ensemble des dépendances fonctionnelles suivantes : e,f,g t a v,b b c,w c d,z
d c,u
1) Définir le schéma équivalent en 3e forme normale (indiquer les clés primaires et étrangères).
Exercice 2(10 points)
Ecrire en Langage algébrique les requêtes suivantes :
Corrigé de l'EXAMEN
Corrigé de l’exercice 1
R3(a,v,b)
R4(b,w,c)
R5(c,d,z)
R6(d,u)
Corrigé de l’exercice 2
1.
π NomU, Ville (U)
2.
π NomU, Ville σ
π NF (σ
π NomP, Couleur (σ
π NF (σ