Vous êtes sur la page 1sur 13

Chapitre 1

Conception
1.1 Interprtation de schmas entit/association
1.1.1

Centre mdical

On vous donne un schmas E/A (figure 1.1) reprsentant des visites dans un centre mdical. Rpondez aux
questions suivantes en fonction des caractristiques de ce schma (i.e. : indiquez si la situation dcrite est
reprsentable, indpendamment de sa vraissemblance).

Patient

Medecin
Matricule
Nom
Medicament
Code
Libelle

No SS
Nom

0,n
1,n

Donne

0,n

Assiste

Prescrit
Nb prises

1,1

0,n

Consultation
No
Date

1,1

F IGURE 1.1 Centre mdical


Exercice A :
Exercice B :
Exercice C :
Exercice D :

Un patient peut-il effectuer plusieurs visites ?


Un mdecin peut-il recevoir plusieurs patients dans la mme consultation ?
Peut-on prescrire plusieurs mdicaments dans une mme consultation ?
Deux mdecins diffrents peuvent-ils prescrire le mme mdicament ?

Solution :
NFP 107 et 107J - Exercices dirigs

1.1. INTERPRTATION DE SCHMAS ENTIT/ASSOCIATION

CHAPITRE 1. CONCEPTION

1. Bien sr.
2. Non (un patient par consultation).
3. Oui.
4. Oui (pas de rapport entre un mdecin et une consultation).

1.1.2

Tournoi de tennis

Le second schma (figure 1.2) reprsente des rencontres dans un tournoi de tennis.

Joueur
No carte
Nom

0,n

Gagne
Score
1,1

0,n

Participe

Match
No

Se joue sur

1,1

2,2

Horaire

0,n

Terrain
No
Surface

F IGURE 1.2 Tournoi de tennis

Exercice A : Peut-on jouer des matchs de double ?


Exercice B : Un joueur peut-il gagner un match sans y avoir particip ?
Exercice C : Peut-il y avoir deux matchs sur le mme terrain la mme heure ?
Solution :
1. Non (cardinalit 2,2)
2. Oui (pas de lien participe / Gagne)
3. Oui (pas de contrainte sur lhoraire entre 2 matchs)

1.1.3

Un journal

Pour vous entraner : voici le schma E/A (figure 1.3 du systme dinformation (trs simplifi) dun quotidien.
Exercice A : Un article peut-il tre rdig par plusieurs journalistes ?
Exercice B : Un article peut-il tre publi plusieurs fois dans le mme numro ?
NFP 107 et 107J - Exercices dirigs

1.1. INTERPRTATION DE SCHMAS ENTIT/ASSOCIATION

PERSONNALITE

JOURNALISTE
1,n

ID
Nom
Date naiss.

1,n
Interview

1,n

ID
Nom
Prenom
Nation.

1,n
A travaille pour
Redige
1,n
1,1

JOURNAL
ID
Titre
Adresse

ARTICLE
0,n
Parait dans

ID
Contenu

1,n

1,1
SUJET

NUMERO
Relatif a

CHAPITRE 1. CONCEPTION

0,n

ID
Libelle

ID
Date
F IGURE 1.3 Journal

NFP 107 et 107J - Exercices dirigs

1.2. MODLE RELATIONNEL (RAPPEL CYCLE A)

CHAPITRE 1. CONCEPTION

Exercice C : Peut-il y avoir plusieurs articles sur le mme sujet dans le mme numro ?
Solution :
1. Non (1,1)
2. Non (lien unique)
3. Oui (pas de lien dunicit numro / sujet)

1.2 Modle relationnel (rappel cycle A)


Exercice A : Pour chacun des schmas E/A donns prcdemment, construire le schma relationnel correspondant. Indiquez prcisment :
La cl primaire.
Les cls trangres.
Les contraintes ventuelles.
Solution :
Exemple pour le centre mdical :
Mdicament (Code, Libell)
Consultation (ID-consultation, Matricule, No-SS, Date). Matricule et No-SS sont les cls trangres
Prescription (Code-mdicament, ID-consultation, Nb-prises)
Mdecin (Matricule, Nom)
Patient (No-SS, Nom)
Exemple pour le tournoi de tennis :
Joueur(No-carte, Nom)
Terrain(No-terrain, Surface)
Match(No-match, Horaire, No-participant1, No-participant2, No-gagnant, Score, No-terrain).
No-participant1, No-participant2, No-gagnant et No-terrain sont cls trangres.
Exemple pour le journal :
Journal(IDJournal, titre, adresse)
Journaliste (IDJournaliste, Nom , DateNaissance)
Personnalite (IDPersonnalite, Nom, Prnom, Nationalite)
Interview (IDJournaliste, IDPersonnalite)
Article (IDArticle, IDJournaliste, IDSujet, Contenu)
Sujet (IDSujet, Libelle)
Numro (IDNumero, Date)
ParaitDans (IDArticle, IDNumro)
Travail (IDJournaliste, IDJournal)
Exercice B : Donnez la commande Create Table pour les tables Consultation et M atch.
Solution :
Exemple pour la table Consultation :
Create Table Consultation
(Id-consultation
NUMBER(10),
Matricule
NUMBER(10),
NO-SS
NUMBER(10),
Date-consultation DATE,
PRIMARY KEY (Id-consultation),
FOREIGN KEY Matricule REFERENCES Mdecin,
FOREIGN KEY NO-SS REFERENCES Patient)
NFP 107 et 107J - Exercices dirigs

1.3. RTRO-CONCEPTION

CHAPITRE 1. CONCEPTION

1.3 Rtro-conception
On trouve dans un SGBD relationnel les relations ci-dessous. Les cls primaires sont soulignes, mais pas
les cls trangres.
IMMEUBLE (Adresse, Nb-tages, Date-construction, Nom-Grant)
APPART (Adresse, Numro, Type, Superficie, Etage)
PERSONNE (Nom, Age, Code-Profession)
OCCUPANT (Adresse, Numro-Appart, Nom-Occupant, Date-arrive, Date-dpart)
PROPRIT (Adresse, Nom-Propritaire, Quote-part)
TYPE-APPART (Code, Libell)
PROFESSION (Code, Libell)
Exercice A : Identifier les cls trangres dans chaque relation.
Exercice B : Reconstruire le schma E/A.
Exercice C : Existe-t-il des contraintes dintgrit ? Lesquelles ?
Exercice D : Certaines donnes du schma relationnel rsultent-elles doptimisation ?

NFP 107 et 107J - Exercices dirigs

Chapitre 2

Algbre Relationelle
2.1 Slection et Projection
Soit la relation
PERSONNE
Nom
Age
Ville
Marc
29
Paris
Catherine
32
Lyon
Sophie
54
Paris
Claude
13
Montpellier
Serge
40
Lyon
Exercice A : Donnez les rsultats des requtes suivantes :
Requte 1 : Age=30 (P ERSON N E) (slection)
Requte 2 : Age (P ERSON N E) (projection)
Requte 3 : Age (N om= Serge (P ERSON N E)) (projection, slection)
Exercice B : Exprimez les requtes suivantes en algbre relationnelle :
Requte 1 : les personnes (nom, ge, ville) qui habitent Paris.
Solution :
V ille= P aris (P ERSON N E)
Requte 2 : les personnes (nom, ge, ville) qui ont moins de 30 ans.
Solution :
Age<30 (P ERSON N E)
Requte 3 : les villes dans la relation PERSONNE.
Solution :
V ille (P ERSON N E)
Requte 4 : les noms des personnes habitant Paris.
Solution :
N om (V ille= P aris (P ERSON N E))

NFP 107 et 107J - Exercices dirigs

2.2. JOINTURE RELATIONNELLE

CHAPITRE 2. ALGBRE RELATIONELLE

2.2 Jointure relationnelle


Exercice A : Soient R et S les relations

R
A
a
a
c
d

S
B
b
f
b
e

B
b
e
b
g

C
c
a
d
b

o les attributs A, B, C sont dfinis sur les domaines des lettres de lalphabet.
Donnez le rsultat des requtes suivantes :
Requte 1 : R 1 S (jointure naturelle).
Requte 2 : A=C (B/B (R) S) (qui-jointure).
Requte 3 : R < S = R (R 1 S) (semijoin).
Solution :

R1S
A=C (B/B (R) S)
A B C
A B B
C
a b c
a b
e
a
a b d
a
f
e
a
c b c
c
b b
c
c b d
d
e
b
d
d e a
Exercice B : Est-ce que les quations suivantes sont vraies ?

R < S
A
B
a
b
c
b
d
e

A,B (R 1 S) =

(2.1)

B,C (R 1 S) =

(2.2)

Solution :
NON :
A,B (R 1 S)
A
B
a
b
c
b
d
e

B,C (R 1 S)
B
C
b
c
b
d
e
a

2.3 Auto-Jointure et Renommage


Soit T(A,B) une relation o A et B prennent leurs valeurs dans le mme domaine. Supposons quon veuille
construire une relation TS contenant les seuls n-uplets < a, b > tels que < b, a > est galement un n-uplet de T.
Par exemple :

NFP 107 et 107J - Exercices dirigs

2.3. AUTO-JOINTURE ET RENOMMAGE

CHAPITRE 2. ALGBRE RELATIONELLE

T
A
a
a
c
c
b
e

B
b
c
a
d
a
f

TS
A B
a b
a c
c a
b a

Exprimez cette opration par une expression de lalgbre relationnelle.


Solution :
Solution 1 :
1. On fait une copie de T dans S(A,B) S := T
2. On renomme lattribut A en A1 et B en B1 S := A/A1 ,B/B1 (S)
3. S a maintenant pour schma S(A1 , B1 )
4. Le rsultat est TS = T <B=A1 A=B1 S
Solution 2 :
TS = T B/A,A/B (T)

NFP 107 et 107J - Exercices dirigs

Chapitre 3

Algbre - SQL : Employs - Dpartements


3.1 Schma
Les exemples suivants sont tirs des sources de la socit Oracle.

3.1.1

Relation des Employs (EMP)

EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO)


ENO : numro demploy, cl
ENOM : nom de lemploy
PROF : profession (directeur nest pas une profession)
DATEEMB : date dembauche
SAL : salaire
COMM : commission (un employ peut ne pas avoir de commission)
DNO : numro de dpartement auquel appartient lemploy

3.1.2

Relation des Dpartements (DEPT)

DEPT(DNO, DNOM, DIR, VILLE)


DNO : numro de dpartement, cl
DNOM : nom du dpartement
DIR : directeur du dpartement
VILLE : lieu du dpartement (ville)

3.2 Oprations Algbriques


Soit lexemple suivant :
NFP 107 et 107J - Exercices dirigs

3.2. OPRATIONS ALGBRIQUES

ENO
10
EMP 20
30
40

DNO
1
DEPT
2
3

ENOM
Joe
Jack
Jim
Lucy

CHAPITRE 3. ALGBRE - SQL : EMPLOYS - DPARTEMENTS

PROF
Ingnieur
Technicien
Vendeur
Ingnieur

DNOM
Commercial
Production
Dveloppement

DATEEMB
1.10.93
1.5.88
1.3.80
1.3.80

DIR
30
20
40

SAL
4000
3000
5000
5000

COMM
3000
2000
5000
5000

DNO
3
2
1
3

VILLE
New York
Houston
Boston

Exercice A : Calculer sal<5000 (EM P ).


Solution :
ENO
10
20

ENOM
Joe
Jack

PROF
Ingnieur
Technicien

DATEEMB
1.10.93
1.5.88

SAL
4000
3000

COMM
3000
2000

DNO
3
2

Exercice B : Calculer EMPbis = EN O/EN O (EN O,COM M (EM P ))


Solution :
ENO
10
EMPbis 20
30
40

COMM
3000
2000
5000
5000

Exercice C : Calculer EN O,SAL (EM P ) 1SAL=COM M (EM P bis)


Solution :
ENO
20
30
40
30
40

SAL
3000
5000
5000
5000
5000

ENO
10
30
40
40
30

COMM
3000
5000
5000
5000
5000

Exercice D : Exprimer par une phrase ce quon obtient en valuant les requtes prcdentes.
Solution :
Expression 1 : on obtient les employs dont le salaire est infrieur 5000.
Expression 2 : on obtient le numro et la commission des employs.
Expression 3 : on obtient les couples de numros demploys dont le premier a un salaire qui est
gal la commission du deuxime.
Exercice E : Quelle est lexpression de lalgbre relationnelle qui permettrait dobtenir le nom et la profession de lemploy de numro 10.
Solution :
EN OM,P ROF (EN O=10 (EM P ))

NFP 107 et 107J - Exercices dirigs

3.3. REQUTES

CHAPITRE 3. ALGBRE - SQL : EMPLOYS - DPARTEMENTS

Exercice F : Idem pour la liste des noms des employs qui travaillent New York.
Solution :
EN OM (EM P 1 (V ILLE= N ewY ork (DEP T )))
Exercice G : Idem pour avoir le nom du directeur du dpartement Commercial.
Solution :
EN OM (EM P 1EN O=DIR DIR (DN OM = Commercial (DEP T )))

3.3 Requtes
Exprimer les requtes Q1 Q18 laide de lalgbre relationnelle.
Exprimer en SQL les requtes Q1 Q24.

3.3.1

Interrogation dune seule Relation

Requte 1 : Donner tous les n-uplets de DEPT.


Solution :
Algbre : DEP T
SQL :
SELECT * FROM DEPT;
Requte 2 : Donner tous les n-uplets de EMP.
Solution :
Algbre : EM P
SQL :
SELECT * FROM EMP;
Requte 3 : Donner les noms et les salaires des employs.
Solution :
Algbre : EN OM,SAL (EM P )
SQL :
SELECT ENOM, SAL
FROM EMP;
Requte 4 : Donner les professions des employs (aprs limination des duplicats).
Solution :
Algbre : P ROF (EM P )
SQL :
SELECT DISTINCT PROF
FROM EMP;
Requte 5 : Donner les dates dembauche des techniciens.
Solution :
Algbre : DAT EEM B (P ROF = T ECHN ICIEN (EM P ))
SQL :
SELECT DATEEMB
FROM EMP
WHERE PROF=TECHNICIEN;

NFP 107 et 107J - Exercices dirigs

3.3. REQUTES

3.3.2

CHAPITRE 3. ALGBRE - SQL : EMPLOYS - DPARTEMENTS

Jointures

Requte 6 : Faire le produit cartsien entre EMP et DEPT.


Solution :
Algbre : EM P DEP T
SQL :
SELECT *
FROM EMP, DEPT;
Requte 7 : Donner les noms des employs et les noms de leur dpartement.
Solution :
Algbre : EN OM,DN OM (EM P 1 DEP T )
SQL :
SELECT ENOM, DNOM
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO;
Requte 8 : Donner les numros des employs travaillant BOSTON.
Solution :
Algbre : EN O (EM P 1 V ILLE= BOST ON (DEP T ))
SQL :
SELECT ENO
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO AND VILLE=BOSTON;
Requte 9 : Donner les noms des directeurs des dpartements 1 et 3. Attention : directeur nest pas une
profession !
Solution :
Algbre : EN OM (DN O=1DN O=3 (DEP T ) 1DIR=EN O EM P )
SQL :
SELECT ENOM
FROM EMP, DEPT
WHERE (DEPT.DNO=1 OR DEPT.DNO=3) AND DIR = ENO;
ou
SELECT ENOM
FROM EMP, DEPT
WHERE DEPT.DNO IN (1,3) AND DIR = ENO;
Requte 10 : Donner les noms des employs travaillant dans un dpartement avec au moins un ingnieur.
Solution :
Algbre :
R1 :=
R2 :=

DN O (P ROF = IN GEN IEU R (EM P ))


EN OM (EM P 1 R1)

SQL :
SELECT E2.ENOM
FROM EMP E1, EMP E2
WHERE E1.DNO = E2.DNO
AND E1.PROF = INGNIEUR;

NFP 107 et 107J - Exercices dirigs

3.3. REQUTES

CHAPITRE 3. ALGBRE - SQL : EMPLOYS - DPARTEMENTS

Requte 11 : Donner le salaire et le nom des employs gagnant plus quun (au moins un) ingnieur.
Solution :
Algbre :
R1

:=

SAL/SAL1 (SAL (P ROF = IN GEN IEU R (EM P )))

R2

:=

EN OM,SAL (EM P 1SAL>SAL1 R1)

SQL :
SELECT E1.ENOM, E1.SAL
FROM EMP E1, EMP E2
WHERE E2.PROF=INGENIEUR
AND E1.SAL > E2.SAL;
ou
SELECT ENOM, SAL FROM EMP
WHERE SAL > ANY (SELECT SAL
FROM EMP
WHERE PROF=INGENIEUR);
Requte 12 : Donner le salaire et le nom des employs gagnant plus que tous les ingnieurs.
Solution :
SQL :
SELECT ENOM, SAL FROM EMP
WHERE SAL > ALL (SELECT SAL
FROM EMP
WHERE PROF=INGENIEUR);
Requte 13 : Donner les noms des employs et les noms de leurs directeurs.
Solution :
Algbre :
R1 :=
R2 :=

EN OM/DIRN OM (EN OM,DN O (EM P 1EN O=DIR DEP T ))


EN OM,DN O EM P

R3 :=

EN OM,DIRN OM (R1 1 R2)

R1(DIRNOM,DNO) : les dpartements avec les noms de leur directeur


R2(ENOM,DNO) : les employs avec les numros de leur dpartement
R3(ENOM,DIRNOM) : les employs (ENOM) avec les noms de leur directeur
SQL :
SELECT E1.ENOM, E2.ENOM
FROM EMP E1, EMP E2, DEPT D
WHERE E1.DNO=D.DNO AND E2.ENO = D.DIR;
Requte 14 : Trouver les noms des employs ayant le mme directeur que JIM. Attention : un employ
peut tre directeur de plusieurs dpartements.
Solution :
Algbre :
R1 :=

DIR (EN OM = JIM (EM P ) 1 DEP T )

R2 :=
R3 :=

DEP T 1 R1
EN OM (EN OM <> JIM (EM P ) 1 R2)

R1(DIR) : le numro du directeur de JIM


NFP 107 et 107J - Exercices dirigs