Facicule PDF
Facicule PDF
Facicule PDF
Scientifique
Direction Générale des Etudes Technologiques
Natija BOUZIDI
Assistante technologue à ISET Sidi Bouzid
AU : 2009-2010
(Dernière mise à jour : Février 2016)
Travaux Dirigés Base de Données ISET Sidi Bouzid
Avant Propos
Ce fascicule des travaux diriges de Base de données est à l’intention des étudiants de la
deuxième année en Licence Appliqués en Technologies de l’Informatique spécialité
Multimédia et Développement Web (MDW) ou Réseaux et Services Informatiques (RSI) de
l’Institut Supérieur des Etudes Technologiques de Sidi Bouzid.
Le fascicule comporte 6 TD avec leurs corrections qui sont reparties comme suit :
TD n°1 : Introduction aux bases de données
TD n°2 : Modèle Entité/Association
TD n°3 : Modèle Relationnel
TD n°4 : Normalisation d’une base de données relationnelle
TD n°5 : L’Algèbre Relationnelle
TD n°6 : Langage SQL
L’objectif principal est de faire apprendre aux étudiants à concevoir une base de données.
J’introduirai dans le TD n°1 des questions à choix multiples qui ont pour objectifs de savoir les
notions de base d’une base de données et d’un système de gestion d’une base de données ainsi
que les différentes phases de conception d’une base de données relationnelles.
Je commencerai par des exercices sur le modèle Entité/Association dans le TD n°2, puis je
traiterai dans le TD n°3 des exercices de passage d’un modèle Entité/Association à un modèle
relationnel.
Le TD n°4 sera consacré aux exercices sur la normalisation et les formes normales d’une base
de données relationnelle.
Par la suite, on a un TD n°5 qui étudie des exercices d’application de l’algèbre relationnel.
Je terminerai à la fin par le TD n°6 qui sera consacré pour le langage SQL.
Avant d’assister à la séance de TD, chaque étudiant doit préparer sérieusement le TD se
rapportant à la manipulation qu’il va effectuer et ce à l’aide du cours (Cours Base de données).
Enfin, J’espérai que le présent fascicule aura le mérite d’être un bon support pédagogique pour
l’enseignant et un document permettant une concrétisation expérimentale pour l’étudiant.
L’auteur
Natija BOUZIDI
Travaux Dirigés Base de Données ISET Sidi Bouzid
Fiche matière
PRE REQUIS
UE : Programmation structurée et UE : Programmation et structures dynamiques.
OBJECTIFS GENERAUX
A la fin de ce module, l’étudiant doit être capable de :
Découvrir et comprendre l'ensemble des concepts sous-jacents aux bases de données.
Approfondir les concepts de modélisation, de conception et d’implémentation de BD.
Analyser une étude de cas donné afin de dégager le modèle entités/associations et le
modèle relationnel associé.
Concevoir une base de données en respectant les règles et les normes des modèles de
données.
Etudier l’algèbre relationnel à travers différents opérateurs (spécifiques et
ensemblistes)
Appliquer les opérations de l’algèbre relationnelle pour interroger une base.
Apprendre à utiliser un langage normalisé d’accès aux données (SQL).
POPULATION
Profil : Licence
Spécialité : Technologies de l’informatique.
Niveau : L2(S3)
Option : MDW (Multimédia et Développement Web) et RSI (Réseaux et Services
Informatiques)
DEROULEMENT
Volume horaire : 1h 30 de cours intégré /semaine
Durée : 15 semaines
EVALUATION
Tests
Interrogation Orale
Devoir de contrôle et devoir de synthèse
MOYEN PEDAGOGIQUE
Tableau
Polycopiés de Travaux Dirigés
Travaux Dirigés Base de Données ISET Sidi Bouzid
QCM : ..................................................................................................................................... 1
Exercice n°2:......................................................................................................................... 12
Exercice n°3:......................................................................................................................... 12
Exercice n°4:......................................................................................................................... 13
Exercice n°2:......................................................................................................................... 15
Exercice n°4:........................................................................................................................ 17
Exercice n°5:......................................................................................................................... 21
Exercice n°6:......................................................................................................................... 22
QCM : ................................................................................................................................... 23
Exercice n°1:......................................................................................................................... 31
Exercice n°2:......................................................................................................................... 39
Exercice n°4:........................................................................................................................ 42
Bibliographies .......................................................................................................................... 53
Travaux Dirigés Base de Données ISET Sidi Bouzid
QCM :
Cocher la (les) réponse(s) correcte(s)
1. SGBD signifie :
a. Service de gestion des bases de données
b. Système de gestion des bases de données
c. Système de gestion des bandes de données
2. Un SGBD est un :
a. Logiciel de gestion de stock
b. Fichier de gestion des bases de données
c. Logiciel de gestion des bases de données
3. Une base de données est :
a. Ensemble structuré de données enregistrées sur des supports
accessibles par l’ordinateur.
b. Ensemble de données avec un objectif commun.
c. Fichier de données avec un objectif commun.
4. Une base de données peut être :
a. Relationnel
b. En réseau
c. En anneau
5. Dans une base de données relationnelle :
a. Les données sont stockées sous forme d'objets, de structures
appelées classes.
b. Les données sont enregistrées dans des tableaux à deux dimensions.
c. Les données sont enregistrées dans une structure arborescente.
6. Les SGBD relationnels sont apparus dans les années :
a. 1970
b. 1980
c. 1990
7. Un administrateur de base de données a pour rôle :
a. La définition, la description et la création de la base.
b. La gestion de la base.
c. L’installation d’un SGBD.
8. Les fonctions d’un SGBD sont :
a. LLD, LMD, LDM
b. LMD, LCD, LDD
c. LDD, LMD, LDC
9. LMD signifie :
a. Langage de modélisation des données
b. Liste de modèle de données
c. Langage de manipulation des données
10. Le langage de Contrôle de Données permet :
a. La connexion et l’utilisation de la base de données.
b. La création de la base de données.
c. Le contrôle et la sécurité des données.
11. Les niveaux de description des données dans un SGBD sont :
a. Niveau externe, niveau création, niveau interne.
b. Niveau haut, niveau bas, niveau au milieu.
c. Niveau externe, niveau conceptuel, niveau interne.
12. Le niveau qui prend en charge le stockage des données est :
a. Niveau externe,
b. Niveau conceptuel,
c. Niveau interne.
13. Le niveau qui prend en charge le problème du dialogue avec les utilisateurs est :
a. Niveau externe,
b. Niveau conceptuel,
c. Niveau interne.
14. Le niveau qui prend en charge la description de la structure de toutes les données est :
a. Niveau externe,
b. Niveau conceptuel,
c. Niveau interne.
15. Le niveau conceptuel de l’architecture ANSI/SPARC permet :
a. Le stockage des données.
b. La création de la base de données.
c. La description de la structure des données.
16. Le modèle qui nécessite la spécification d’un SGBD est :
a. Modèle physique
b. Modèle conceptuel
c. Modèle logique
17. La modélisation qui représente les structures de stockage internes et détaille
l’organisation des fichiers est :
a. Modélisation physique
b. Modélisation conceptuel
c. Modélisation logique
18. La modélisation qui traduit le modèle conceptuel dans le modèle du SGBD est :
a. Modélisation physique
b. Modélisation conceptuel
c. Modélisation logique.
19. Dans le processus de conception d’une base de données, la conception physique
c’est le :
a. Passage du modèle logique au modèle conceptuel
b. Passage du modèle logique au modèle physique
c. Passage du modèle conceptuel au modèle logique
20. Dans le processus de conception d’une base de données, l’ordre de conception d’une
base est :
a. Modèle physique, Modèle conceptuel, Modèle logique
b. Modèle physique, Modèle conceptuel, Modèle logique
c. Modèle conceptuel, Modèle logique, Modèle physique
Questions de cours :
1. Donner 2 avantages d'un SGBD par rapport à un système de gestion de fichiers
classique.
2. Qui intervient sur une base de données ?
3. Présenter le rôle de chaque intervenant sur une base de données.
4. Soit la figure suivante :
Personne Chapitre
Un enseignant, identifié par son matricule, peut enseigner plusieurs matières à une même
classe. Le coefficient d’une matière peut changer d’un niveau à un autre et d’une discipline à
une autre. L’institut conserve pour chaque étudiant, la note du devoir surveillé ainsi que la note
obtenue à l’examen final de chacune des matières étudiées.
L’institut mémorise pour chaque enseignant son nom, son adresse, son numéro de
téléphone et son relevé d’identité bancaire (RIB).
Etablir le schéma Entité/Association de cette base de données.
Exercice n°1 :
Transformer le modèle Entité/Association suivant en modèle relationnel :
Exercice n°2 :
Soit le schéma E /A donnée ci-dessous représentant des visites dans un hôpital. Répondez
aux questions suivantes en fonction des caractéristiques de ce schéma.
Médicament
0,N
Codem Prescrire
Nb_prise
Libellé
0,N
Médecin Consultation
Patient
1,N
Nump Assister
NomP
Exercice n°3 :
On souhaite gérer des réservations dans une compagnie d'hôtels. On considère donc le
diagramme entité-association suivant (les attributs soulignes sont les identifiants des entités) :
1. A partir de ce diagramme, répondez aux questions suivantes par Oui ou Non en justifiant
votre réponse.
a. Est-il possible d'avoir des clients homonymes ?
b. Un client peut-il réserver plusieurs chambres à une date donnée ?
c. Est-il possible de réserver une chambre sur plusieurs jours ?
d. Est-il possible de savoir si une chambre est libre à une date donnée ?
e. Est-il possible de réserver plusieurs fois une chambre à une date donnée ?
2. Proposez un schéma de base (un modèle relationnel) correspondant au diagramme
(Soulignez les attributs identifiants des relations et ajoutez le caractère « # » avant les
attributs identifiants externes).
Exercice n°4 :
Soit le schéma entité-association suivant :
Exercice n°5 :
Soit le schéma entité-association suivant :
La clé de produits est CODE, de Fournisseur est NOM, et celle de magazine est TITRE.
Questions :
1. Donner le schéma relationnel correspondant.
2. Est-ce qu’un magazine peut donner plusieurs notes pour le même produit ? Justifier
votre réponse.
TD n°4 : Normalisation
Objectifs :
Exercice n°1 :
Exercice n°2:
Soit le schéma de la relation R(A, B, C, D, E, G) et un ensemble donné de dépendances
fonctionnelles DF pour cette relation:
DF = {A → B,C ; A,C → E ; A,D,E → B,G ; C,G → D ; B,G → C ; C → B}
Exercice n°3:
On considère une relation R construite sur les attributs Propriétaire, Occupant, Adresse,
Noapt, Nbpièces, Nbpersonnes, un nuplet (P, O, A, N, NB1, NB2) ayant la signification
suivante :
la personne O habite avec NB2 personnes l'appartement de numéro N ayant NB1 pièces dont
le propriétaire est P et l’adresse A.
Une analyse de cette relation nous fournit un ensemble initial E de dépendances fonctionnelles :
E = {O → A ; O → N; O → NB2 ; A, N → P ; A, N → O ; A, N → NB1}
1. Donner l'ensemble des dépendances fonctionnelles élémentaires engendrées par E.
2. Quelles sont les clés potentielles de R ?
3. R est-elle en 3ème forme normale ?
Exercice n°4:
Exercice n°5 :
Soit la relation « Client » qui possède le schéma suivant :
Exercice n°6 :
Soit R une relation et X, Y, Z et W sont les ensembles d’attributs associés : R(X, Y, Z, W).
A-t-on les implications logiques suivantes ? Si la réponse est vrai préciser les axiomes
d’Armstrong ou les propriétés utilisés ?
1- {X → Y ; Z → W} => XZ → YW
2- {XY → Z ; Z → X} => Z → Y
3- {X → Y ; W → Z} et Y W => X → Z
4- {W → Y ; X → Z} => WX → Y
5- {XY → Z ; Y → X} => XW → Z
6- {X → Y ; X → W ; WY → Z} => X → Z
Exercice n°1 :
Exercice n°2:
A. Donnez les résultats des requêtes suivantes, et indiquer leur type (sélection ou
projection):
a. σ (Personne)
age =30
b. π Age (Personne)
c. π Age (σ<Nom=’Serge’> (Personne))
Exercice n°3 :
a. R 3 = R1 ∪ R2
b. R 4 = R2 ∪ R1
c. R 5 = R2 – R1
d. R 7 = 𝜋 A (R1)
a. Donnez la liste des avions dont la capacité est supérieure à 350 passagers.
b. Quels sont les numéros et noms des avions localisés à Nice ?
c. Donnez toutes les informations sur les pilotes de la compagnie.
d. Quel est le nom des pilotes domiciliés à Paris dont le salaire est supérieur à 15000F?
Exercice n°4:
Soit un schéma relationnel composé de la relation Passager (nom, age, ville), on propose
l’extension suivante de la relation suivante :
Passager
Nom Age Ville
Catherine 32 Lyon
Sophie 54 Paris
Claude 13 Montpellier
Serge 40 Lyon
1. Donnez les résultats des requêtes suivantes, et indiquer leur type (sélection ou projection):
a. σ (Passager)
Nom=Claude
b. π (Passager)
Ville
c. π (σ (Passager))
Nom Age=30
Exercice n°1 :
Soit un schéma relationnel composé de la relation Frs (numf, ville) et la relation Article
(code, prix, qte, #numf), on propose l’extension suivante des relations suivantes :
Frs Article
numf ville Code prix qte numf
F1 SBZ A1 1200 20 F2
F2 Sfax A2 3200 100 F3
F3 SBZ A3 450 50 F2
1. Donner la requête SQL correspondante à la création de la table Article. (code, numf, ville :
des chaines de caractères de taille maximale 30, prix et qte des entiers de taille maximale
20)
2. Donner la requête SQL correspondante à l’insertion des enregistrements de la table Frs
3. Donner la commande SQL pour augmenter la quantité des Article de 10 du fournisseur
F2 .
4. Donner la commande SQL pour afficher le nombre des articles fournit par le fournisseur
F2.
5. Donner la commande SQL pour supprimer les articles de numéro A2.
6. Donner la commande SQL pour supprimer la table Article et la table Frs (Respectez
l’ordre).
Exercice n°2 :
Soit la table de données Personne: Personne (Nom, Age, Ville)
Nom Age Ville
Ali 29 Sidi Bouzid
Salem 32 Sousse
Mohamed 40 Sousse
1. Donner les phrases correspondantes aux requêtes suivantes :
a. Requête 1 : σ<Age>32> (Personne)
b. Requête 2 : π *(σ<Ville=’Sidi Bouzid’> (Personne))
c. Requête 3 : π Ville (σ<Nom=’Ali’ ou Nom=’Salem’> (Personne))
Exercice n°3 :
Exercice n°4 :
Vous travaillez dans une agence immobilière qui a mis en place un modèle relationnel
afin de gérer son portefeuille client.
Le modèle relationnel est le suivant :
Client (codeclt, nomclt, prenomclt, villeclt)
Representant (coderep, nomrep, prenomrep)
Representant
coderep Nomrep prenomrep
R1 Tounsi Ala
R2 Sfaxi hedi
R3 Gabsi amine
Appartement
ref superficie prix Coderep codecl
A1 500 100 R2 C1
A2 700 50 R1 C1
A3 900 150 R2 C3
Exercice n°5:
Avec :
NumD, Salaire, Comm : entier de 20 chiffres
NomD, Lieu, NomE, Fonction : chaine de 30 caractères (au maximum).
Embauche : date
Travail demandé :
1- Ecrire les requêtes SQL nécessaires à la création de la Base de Données décrites ci-dessus,
tout en respectant le type et la longueur donnée ci-dessus pour les différents attributs, et en
spécifiant les contraintes clés primaires et clés étrangères.
2- Ecrire les commandes nécessaires à l’insertion des extensions suivantes pour chaque table
de la base de données.
3- Ecrire les requêtes suivantes en langage SQL:
a. Donnez la liste des employés ayant une commission (Comm) (non NULL) classé par
commission décroissante
b. Donnez les noms des personnes embauchées depuis le 01-09-2006
c. Donnez la liste des employés travaillant à Créteil
d. Donnez la liste des subordonnés de "Anas"
e. Donnez la moyenne des salaires.
f. Donnez le nombre de commissions non NULL.
g. Donnez la liste des employés gagnant plus que la moyenne des salaires de l’entreprise
Exercice n°6:
Soit le modèle relationnel suivant relatif à une base de données sur des représentations
musicales :
REPRESENTATION (num_représentation, titre_représentation, lieu)
MUSICIEN (nom, #num_représentation)
PROGRAMMER (#nom, #num_représentation, tarif, date)
QCM :
1. SGBD signifie :
d. Service de gestion des bases de données
e. Système de gestion des bases de données x
f. Système de gestion des bandes de données
2. Un SGBD est un :
d. Logiciel de gestion de stock
e. Fichier de gestion des bases de données
f. Logiciel de gestion des bases de données x
3. Une base de données est :
d. Ensemble structuré de données enregistrées sur des supports x
accessibles par l’ordinateur.
e. Ensemble de données avec un objectif commun. x
f. Fichier de données avec un objectif commun.
4. Une base de données peut être :
d. Relationnel x
e. En réseau x
f. En anneau
5. Dans une base de données relationnelle :
d. Les données sont stockées sous forme d'objets, de structures
appelées classes.
e. Les données sont enregistrées dans des tableaux à deux dimensions. x
f. Les données sont enregistrées dans une structure arborescente.
6. Les SGBD relationnels sont apparus dans les années :
d. 1970 x
e. 1980
f. 1990
7. Un administrateur de base de données a pour rôle :
Questions de cours :
Voire cours Chapitre n°1
Personne Chapitre
1,N
Livre
1,1
NumL Composé de
Titre
5. Les cardinalités :
Lecteur – emprunter : 1-1
Exemplaire – emprunter : 1-N
Auteur – écrire :1-N
Ouvrage – écrire :1-N
Ouvrage – avoir :1-1
Exemplaire – avoir : 1-N
6. Enfin, le modèle E/A se présente comme suit :
1. Dictionnaire de données :
5. Les cardinalités :
Cours – Fait l’objet de: 1-N
Session – Fait l’objet de: 1-1
Session – Suit : 1-N
Participant – Suit : 20-N
Session – Intervient : 1-N
Animateur – Intervient : 1-N
Exercice n°1:
Exercice n°2 :
1- Deux médecins différents peuvent-ils prescrire le même médicament ? O / N
2- Un médecin peut-il recevoir plusieurs patients dans la même consultation ? O / N
3- Un patient peut-il effectuer plusieurs visites ? O / N
4- Peut-on prescrire plusieurs médicaments dans une même consultation ? O / N
5- Le schéma relationnel correspondant au schéma E/A :
Patient (nump, nom)
Médicament (code, libellé)
Consultation (num, date, #matricule, #nump)
Prescrire (#code, #num, nb_prise)
Médecin (matricule, nom)
Exercice n°3 :
Ville (nom_ville)
Exercice n°4 :
Exercice n°5 :
La clé de produits est CODE, de Fournisseur est NOM, et celle de magazine est TITRE.
Questions :
1. Donner le schéma relationnel correspondant.
Produits (Code, Marque, Designation, Desription)
Fournisseur (Nom)
Magazine (Titre)
Fournit (#Code, #Nom, Prix)
Rapport (#Code, #Titre, Note)
2. Est-ce qu’un magazine peut donner plusieurs notes pour le même produit ? Justifier
votre réponse.
Oui, qu’un magazine peut donner plusieurs notes pour le même produit. Cardinalité 0,n
Exercice n°1 :
DF = { AB → D, B → C, D → E, D → F
2. La clé de cette relation est (A,B). Cette relation est en première forme normale mais pas en
deuxième forme normale car il y a un attribut qui ne fait pas partie de la clé (l’attribut C)
qui dépend d'une partie de la clé (l’attribut B).
3. La relation R11 (A, B, D, E, F) est en deuxième forme normale et pas en troisième normale
car il subsiste une dépendance transitive. La relation R12(B,C) est en BCNF.
4. On peut décomposer R11 en R112 (D, E, F) et R112(A,B,D) sans perte d'information.
Exercice n°2 :
1. Couverture minimale des dépendances fonctionnelles de R :
Avec A → C et A, C →E, on constate que A, C → E n'est pas élémentaire et que l'on
peut la remplacer par A →E sans perte de dépendance.
Avec A →E et A, D, E → B, G, on constate que A, D, E → B, G n'est pas élémentaire
et que l'on peut la remplacer par A, D → B, G sans perte de dépendance.
Avec A → B et A, D → B, on constate que A, D → B est redondante et que l'on peut la
supprimer.
Avec A → B, C → B et A →C, on constate que A → B peut être déduite et que l'on
peut donc la supprimer.
L'ensemble minimum des dépendances fonctionnelles de R est donc le suivant :
A → C, E
A, D → G
C, G → D
B, G → C
C→B
Exercice n°3 :
1. Fermeture transitive de E :
On a : O → A ; O → N donc O → A, N
Par transitivité on a donc : O → P et O → NB1
On a donc : O → A, N, NB2, P, NB1 et A, N → P, O, NB1, NB2
La DF A, N → NB2 est obtenue par transitivité avec O
2. Clés potentielles de R?
Une clé est un attribut (ou ensemble d’attribut) qui dérive tous les autres. Si on regarde la
fermeture transitive de E, on voit que :
O ainsi que A, N sont dans ce cas. Il y a donc deux clés potentielles.
3. Forme normale de R :
Pour déterminer la forme normale de R, il faut d'abord distinguer les attributs clés des attributs
non clés :
Attributs clés : A, O, N
Attributs non clés : NB2, P, NB1
Une relation est forcément en 1FN. Elle est en 2FN si tous les attributs non clés dépendent
pleinement des clés. Ici c'est le cas, aucun attribut non clé ne dépend que de A ou N.
Une relation est en 3eme forme normale s'il n'existe pas de dépendance fonctionnelle entre deux
attributs non clés. C'est le cas ici. R est donc en 3FN.
Exercice n°4 :
1. Fermeture transitive de E :
C → P et H, P → S donc H, C → S
H, S → C et C → P donc H, S → P
H, P → S et H, S → C donc H, P → C
H, E → S et H, S → C donc H, E → C donc H, E → P
H, E → C et C, E → N donc H, E → N
En résumé on a :
C→P
H, C → S
H, S → C, P
H, P → S, C
C, E → N
H, E → S, C, P, N
2. Clé de R :
De la fermeture transitive on déduit que H, E est une clé potentielle (dérive tous les autres
attributs).
Elle est unique car H, E sont les seuls attributs qui ne sont pas en partie droite de DF. Donc ils
appartiennent forcément à toutes les clés.
Comme H, E est déjà une clé, il ne peut y en avoir d'autres.
3. Décomposition de R :
R1, R2, R3 et R4 sont obtenues en décomposant R :
R1 est obtenue en décomposant le schéma initial selon la DF C, E → N.
C'est la seule DF de R1 donc la clé est C, E. R1 est bien évidemment en 3FN (une seule DF).
R2 est obtenue par la DF C → P. Là encore une seule DF, donc C est la clé de R2 et R2
est en 3FN.
R3 est obtenue par la DF H, S → C ou la DF H, C → S. Deux clés possibles H, S ou
bien H, C. R3 est aussi en 3FN.
R4 est obtenue par la DF H, E → C. La clé est donc H, E et R4 est en 3FN.
Exercice n°5 :
1FN : La relation « Client » est en 1FN puisqu’elle ne contient aucun attribut composé
ou multivalué.
2FN : La relation « Client » n’est pas en 2FN étant donné que la DF :
numcli, codepost → ville n’est pas élémentaire (seul le code postal suffit pour
déterminer la ville).
Pour éviter ce problème, on peut réduire la clé au numéro du client. Le schéma de la
relation Client devient ainsi :
Client1 (numcli, nom, prenom, tel, ville, # codepostal)
3FN : La relation « Client1 » n’est pas en 3FN étant donné que la DF numcli → ville
n’est pas directe (numcli → codepostal et codepostal → ville).
Pour faire passer la relation « Client1 » en 3FN, il faut la décomposer en deux, ce qui
donne les deux schémas suivants :
Client2 (numcli, nom, prenom, tel, # codepostal)
Adresse (codepostal, ville)
BCFN : les deux relations « Client2 » et « Adresse » sont en BCFN (aucun attribut
autre que la clé n’est déterminant)
Exercice n°6 :
Soit R une relation et X, Y, Z et W sont les ensembles d’attributs associés : R(X, Y, Z, W).
A-t-on les implications logiques suivantes ? Si la réponse est vrai préciser les axiomes
d’Armstrong ou les propriétés utilisés ?
1- {X → Y ; Z → W} => XZ → YW
2- {XY → Z ; Z → X} => Z → Y
3- {X → Y ; W → Z} et Y W => X → Z
4- {W → Y ; X → Z} => WX → Y
5- {XY → Z ; Y → X} => XW → Z
6- {X → Y ; X → W ; WY → Z} => X → Z
Exercice n°1 :
Soient les trois relations R1, R2 et R3 :
R2 et R3 :
R2∪ R3 = nul
R2∩ R3 = nul
R2– R3 = nul
On ne peut pas faire l’union, l’intersection et la différence entre R2 et R3 car ces
deux relations n’ont pas le même schéma.
2- Déterminer les relations R4, R5, R6, R7 et R8 comme suit :
R4 = π X, Y(R3)
R4 X Y
x1 y1
x2 y3
R5 = R2 x R4
R5 A B X Y
a1 b1 x1 y1
a2 b2 x1 y1
a3 b1 x1 y1
a1 b1 x2 y3
a2 b2 x2 y3
a3 b1 x2 y3
R6 = π B, X, Y(R2 ><R4)
R7 = R2 ÷ π A (R1)
R2 A B π A (R1) A
a1 b1 a1
a2 b2 a3
a3 b1
R7 B
b2
R8 = σ<X=’x1’> R5
R8 A B X Y
a1 b1 x1 y1
a2 b2 x1 y1
a3 b1 x1 y1
Exercice n°2:
A. Donnez les résultats des requêtes suivantes, et indiquer leur type (sélection ou
projection):
a. σ (Personne) = nul (c’est une sélection)
age =30
Requête 2: L'ensemble des informations concernant les personnes qui ont moins
de 30 ans.
Select * from Personne where Age < 30 ;
Requête 2 : σ<Age=30> (Personne)
Requête 2 : nul
Requête 3: Les villes identifiées dans la Table de Données.
Select Ville from Personne ;
Requête 3 : π Ville(Personne)
Ville
Paris
Lyon
Montpellier
Exercice n°3 :
a. R 3 = R1 ∪ R2
R3 A B
a1 b1
a1 b2
a1 b3
a2 b2
b. R 4 = R2 ∪ R1 = R 3
c. R 5 = R2 – R1
R5 A B
a1 b2
a1 b3
d. R 7 = 𝜋 A (R1)
R7 A
a1
R8 A B
a1 b1
a1 b3
e. Donnez la liste des avions dont la capacité est supérieure à 350 passagers.
Select * from Avion where capacite > 350 ;
𝝈<capacite> 350> (Avion)
f. Quels sont les numéros et noms des avions localisés à Nice ?
Select numav, nomav from Avion where loc = ‘Nice’ ;
𝝅* (Pilote)
h. Quel est le nom des pilotes domiciliés à Paris dont le salaire est supérieur à 15000F?
Select nompil from Pilote where adr = ‘Paris’ and sal > 15000 ;
Exercice n°4:
Soit un schéma relationnel composé de la relation Passager (nom, age, ville), on propose
l’extension suivante de la relation suivante :
Passager
Nom Age Ville
Catherine 32 Lyon
Sophie 54 Paris
Claude 13 Montpellier
Serge 40 Lyon
3. Donnez les résultats des requêtes suivantes, et indiquer leur type (sélection ou projection):
a. σ (Passager)
Nom=Claude
Passager
Nom Age Ville
Serge 40 Lyon
b. π (Passager)
Ville
Passager
Ville
Lyon
Paris
Montpellier
c. π (σ (Passager)) = nul
Nom Age=30
Passager
Nom Age Ville
Claude 13 Montpellier
Serge 40 Lyon
𝝅<ville>(Pilote)
Passager
Ville
Lyon
Paris
Montpellier
Passager
Nom
Sophie
Frs Article
numf ville Code prix qte numf
F1 SBZ A1 1200 20 F2
F2 Sfax A2 3200 100 F3
F3 SBZ A3 450 50 F2
7. Donner la requête SQL correspondante à la création de la table Article. (code, numf, ville :
des chaines de caractères de taille maximale 30, prix et qte des entiers de taille maximale
20)
Create table Article (
Code varcher2(30), prix number(20), qte number(20), numf varchar2(30),
Constraint pk_article primary key (code),
Constraint fk_art_frs foreign key (numf) references Frs (numf)
);
8. Donner la requête SQL correspondante à l’insertion des enregistrements de la table Frs
Insert into Frs values (‘F1’, ‘SBZ’) ;
Insert into Frs values (‘F2’, ‘Sfax’) ;
Insert into Frs values (‘F3’, ‘SBZ’) ;
9. Donner la commande SQL pour augmenter la quantité des Article de 10 du fournisseur F2.
Update Article set qte=qte+10 where numf=’F2’;
10. Donner la commande SQL pour afficher le nombre des articles fournit par le fournisseur
F2.
Select count(*) from Article where numf=’F2’ group by numf;
11. Donner la commande SQL pour supprimer les articles de numéro A2.
Delete from Article where numf=’F2’ ;
12. Donner la commande SQL pour supprimer la table Article et la table Frs (Respectez
l’ordre).
Drop table Article ;
Drop table Frs ;
Exercice n°2 :
Exercice n°3 :
Vous travaillez dans une agence immobilière qui a mis en place un modèle relationnel
afin de gérer son portefeuille client.
Le modèle relationnel est le suivant :
Client (codeclt, nomclt, prenomclt, villeclt)
Representant (coderep, nomrep, prenomrep)
Appartement (ref, superficie, prix, #coderep, #codeclt)
Exercice n°4 :
Nomrep varchar2(30),
Prenomrep varchar2(30),
Constraint pk_rep primary key (coderep)
);
Table 3 : Appartement (ref, superficie, prix, #coderep, #codeclt)
Create table Appartement (
Ref varchar2(30),
Superficie number(15),
Prix number(15),
Coderep varchar2(30),
Codeclt varchar2(30),
Constraint pk_app primary key (ref),
Constraint fk_app_rep foreign key (coderep) references Representant
(coderep),
Constraint fk_app_clt foreign key (codeclt) references Client (codeclt)
);
2- Ecrire les commandes nécessaires à l’insertion des extensions suivantes pour chaque table
de la base de données :
Client
codeclt nomcl Prenomcl Villecl
C1 jerbi Ali Tunis
C2 ayadi Sami Sfax
C3 zaydi Hela Sousse
Appartement
ref superficie prix Coderep codecl
A1 500 100 R2 C1
A2 700 50 R1 C1
A3 900 150 R2 C3
Exercice n°5 :
Soit les relations suivantes de la société Gavasoft
Avec :
NumD, Salaire, Comm : entier de 20 chiffres
NomD, Lieu, NomE, Fonction : chaine de 30 caractères (au maximum).
Embauche : date
Travail demandé :
1- Ecrire les requêtes SQL nécessaires à la création de la Base de Données décrites ci-dessus,
tout en respectant le type et la longueur donnée ci-dessus pour les différents attributs, et en
spécifiant les contraintes clés primaires et clés étrangères.
Même principe que l’exercice 1
2- Ecrire les commandes nécessaires à l’insertion des extensions suivantes pour chaque table
de la base de données.
Même principe que l’exercice 1
3- Ecrire les requêtes suivantes en langage SQL:
a. Donnez la liste des employés ayant une commission (Comm) (non NULL) classé par
commission décroissante.
SELECT * FROM Emp WHERE Comm IS NOT NULL AND Comm!=0 ORDER
BY Comm DESC ;
b. Donnez les noms des personnes embauchées depuis le 01-09-2006
SELECT NomE FROM Emp WHERE Embauche > ’01/10/2006’ ;
c. Donnez la liste des employés travaillant à Créteil
Exercice n°6 :
Soit le modèle relationnel suivant relatif à une base de données sur des représentations
musicales :
REPRESENTATION (num_représentation, titre_représentation, lieu)
MUSICIEN (nom, #num_représentation)
PROGRAMMER (#nom, #num_représentation, tarif, date)
Bibliographies