exercices corrigés : Algorithmique
-
Author
nnasri-matlablog -
Category
Documents
-
view
278 -
download
1
Embed Size (px)
Transcript of exercices corrigés : Algorithmique
-
8/9/2019 exercices corrigs : Algorithmique
1/21
L i c e n c e M I 2 E 2 0 0 7 - 2 0 0 8
B a s e s d e D o n n e s : e x e r c i c e s c o r r i g s
M a u d e M a n o u v r i e r
L a r e p r o d u c t i o n d e c e d o c u m e n t p a r t o u t m o y e n q u e c e s o i t e s t i n t e r d i t e
c o n f o r m m e n t a u x a r t i c l e s L 1 1 1 - 1 e t L 1 2 2 - 4 d u c o d e d e l a p r o p r i t i n t e l l e c t u e l l e
A t t e n t i o n , c e d o c u m e n t p e u t c o m p o r t e r d e s e r r e u r s , u t i l i s e r d o n c e n
c o n n a i s s a n c e d e c a u s e ! !
1
-
8/9/2019 exercices corrigs : Algorithmique
2/21
P a s s a g e a u r e l a t i o n n e l
E x e r c i c e 1
E n o n c d e l ' e x e r c i c e
QuestionIDIntitulRponseNiveauDifficultThme
QUESTION
ClientIDNomPrnomAdresseDateNaissance
CLIENT
PassageCodeIDDateHeureLieuExamen
EXAMEN_CODE
NombreFautes
RESULTAT_SEANCE
NombreFautes
RESULTAT_EXAM
SEANCEIDDATEHEURE
SEANCECODE
Numro
POSITION_QUESTION
CDROM
CdRomID
Editeur
NombreFautes
EST_AUTORISEA PASSER
ASSISTE_A
NombreFautes
EST_COMPOSE_DE
CDROM
CdRomIDEditeur
QuestionIDIntitulRponseNiveauDifficultThme
QUESTION
CONTIENT
Numro
SERIE
SrieID
ClientIDNomPrnomAdresseDateNaissance
CLIENT
PassageCodeIDDateHeureLieuExamen
EXAMEN_CODE
PENDANTEST_DIFFUSE
SEANCEIDDATEHEURE
SEANCECODE
MODELISATION UMLMODELISATION ENTITE ASSOCIATION
ASSISTE_A
E S T
_ A U T O R I S E
_ A
_ P A S S E R
*
CONTIENT
0:N 1:M
1:N
0:N
6:6
6
40
40:40
1:1
SERIE
SrieID
SrieID
D E
C O M P O S E
E S T
1:1
0:N
E S T
_ D I F F U S E
_ P E N D A N T
1
*
0..8
0:8
* 1..*
1
1..*
F i g u r e 1 : M o d l i s a t i o n E / A e t U M L d e l a b a s e d e d o n n e s d ' u n e l ' a u t o - c o l e .
U n e a u t o - c o l e s o u h a i t e c o n s t r u i r e u n e b a s e d e d o n n e s p o u r g r e r l e s e x a m e n s t h o r i q u e s d u
c o d e d e l a r o u t e d e s e s l v e s . C h a q u e l v e e s t i d e n t i p a r u n n u m r o u n i q u e e t e s t c a r a c t r i s p a r
u n n o m , u n p r n o m , u n e a d r e s s e e t u n e d a t e d e n a i s s a n c e . C h a q u e l v e a s s i s t e p l u s i e u r s s a n c e s
d e c o d e ( a u t a n t q u ' i l l e s o u h a i t e ) . C h a q u e s a n c e e s t c a r a c t r i s e p a r u n e d a t e e t u n e h e u r e . A
c h a q u e s a n c e d e c o d e , l e d i r e c t e u r d e l ' a u t o - c o l e c h o i s i t u n e s r i e d e q u e s t i o n s s u r u n C D - R O M .
C h a q u e C D - R O M e s t i d e n t i p a r u n n u m r o e t e s t c a r a c t r i s p a r u n n o m d ' d i t e u r . C h a q u e
C D - R O M e s t c o m p o s d e 6 s r i e s , n u m r o t e s d e 1 6 . C h a q u e s r i e e s t c o m p o s e d e 4 0 q u e s t i o n s .
C h a q u e q u e s t i o n e s t i d e n t i e p a r u n i n t i t u l e t e s t c a r a c t r i s e p a r u n e r p o n s e , u n n i v e a u d e
d i c u l t e t u n t h m e . U n e m m e q u e s t i o n p e u t a p p a r a t r e d a n s p l u s i e u r s s r i e s a v e c u n n u m r o
d ' o r d r e p o u r c h a q u e s r i e ; p a r e x e m p l e u n e m m e q u e s t i o n p e u t a p p a r a t r e c o m m e q u e s t i o n N
2
d a n s l a s r i e 5 d u C D - R O M 1 5 e t c o m m e q u e s t i o n N
1 2 d a n s l a s r i e 3 d u C D - R O M 4 . U n e m m e
s r i e p e u t t r e p r o j e t e p l u s i e u r s f o i s d e s s a n c e s d i r e n t e s . L o r s q u ' u n l v e a s s i s t e u n e s a n c e ,
i l o b t i e n t l e n o m b r e d e f a u t e s ( u n e n o t e s u r 4 0 ) q u ' i l a f a i t p o u r l a s r i e p a s s e p e n d a n t l a s a n c e .
2
-
8/9/2019 exercices corrigs : Algorithmique
3/21
L o r s q u ' u n l v e a o b t e n u , a u c o u r s d e s q u a t r e d e r n i r e s s a n c e s a u x q u e l l e s i l a a s s i s t e s , u n n o m b r e
d e f a u t e s i n f r i e u r o u g a l 5 , l e d i r e c t e u r d e l ' a u t o - c o l e l ' a u t o r i s e p a s s e r l ' e x a m e n t h o r i q u e d u
c o d e d e l a r o u t e u n e d a t e d o n n e ( u n s e u l e x a m e n p o u r u n e d a t e d o n n e ) . L ' a u t o - c o l e n e p e u t
p r s e n t e r q u e 8 l v e s m a x i m u m c h a q u e d a t e d ' e x a m e n . L e s l v e s a y a n t o b t e n u p l u s d e 5 f a u t e s
l ' e x a m e n s o n t r e c a l s e t d o i v e n t a s s i s t e r d e n o u v e a u d e s s a n c e s d e c o d e a v a n t d e p o u v o i r s e
r e p r s e n t e r l ' e x a m e n .
L a b a s e d e d o n n e s d o i t p e r m e t t r e d e r p o n d r e d e s r e q u t e s t e l l e s q u e " Q u e l e s t l e n o m b r e m o y e n
d e f a u t e s p o u r l a s r i e 5 d u C D - R O M 14? " , " Q u e l s l v e s p e u v e n t s e p r s e n t e r a u p r o c h a i n e x a m e n d u c o d e d e l a r o u t e ? " , " Q u e l s l v e s o n t c h o u a u m o i n s u n e f o i s l ' e x a m e n ? " e t c .
L a g u r e 1 p r s e n t e l a m o d l i s a t i o n E n t i t / A s s o c i a t i o n ( f o r m a t M e r i s e ) e t l a m o d l i s a t i o n U M L
d e l ' n o n c . L e s e x p l i c a t i o n s n e s o n t d o n n e s q u e p o u r l e s c h m a E / A m a i s p e u v e n t t r e a d a p t e s
a u s c h m a U M L . P o u r u n e c o m p r h e n s i o n d e l a d i r e n c e e n t r e u n e m o d l i s a t i o n E / A o u U M L e t
l e p a s s a g e a u r e l a t i o n n e l , v o u s p o u v e z v o u s r e p o r t e r l ' o u v r a g e [ 4 ] . L e s s c h m a s d e m o d l i s a t i o n
c i - a v a n t s o n t s m a n t i q u e m e n t c l a i r s . N a n m o i n s , q u e l s p o i n t s n c e s s i t e n t d ' t r e p r c i s s .
L ' e n s e m b l e d ' e n t i t s S e r i e e s t u n e n s e m b l e d ' e n t i t s f a i b l e s d e C D - R O M , a u f o r m a t M e r i s e ( o u u n e a s s o c i a t i o n q u a l i e e n U M L ) . E n e e t , c e c h o i x d e m o d l i s a t i o n a t f a i t p o u r
r e p r s e n t e r l e f a i t q u e l e n u m r o d ' u n e s r i e e s t r e l a t i f a u C D - R O M a u q u e l l a s r i e a p p a r t i e n t .
L e s c a r d i n a l i t s d e l ' a s s o c i a t i o n e n t r e l e s e n s e m b l e s d ' e n t i t s S e r i e e t C D - R O M s o n t 1 : 1 - 6 : 6 , c a r u n e s r i e a p p a r t i e n t u n u n i q u e C D - R O M e t u n C R - R O M c o n t i e n t e x a c t e m e n t 6 s r i e s
d e q u e s t i o n s . L e p r i n c i p e e s t l e m m e p o u r l e s c a r d i n a l i t s d e l ' a s s o c i a t i o n e n t r e S e r i e e t
Q u e s t i o n : u n e s r i e c o n t i e n t e x a c t e m e n t 4 0 q u e s t i o n s ( c a r d i n a l i t 40 : 40) . E n r e v a n c h e , u n e m m e q u e s t i o n p e u t a p p a r a t r e d a n s p l u s i e u r s s r i e s a v e c u n n u m r o d ' o r d r e d i r e n t
c h a q u e f o i s , d ' o l a c a r d i n a l i t 1 : N e t l ' a t t r i b u t N u m r o q u i c a r a c t r i s e l ' a s s o c a t i o n c o n t i e n t .
L ' a t t r i b u t N o m b r e F a u t e s e s t u n a t t r i b u t d e l ' a s s o c i a t i o n e n t r e l e s e n s e m b l e s d ' e n t i t s C l i e n t e t E x a m e n _ C o d e e t d e l ' a s s o c i a t i o n e n t r e l e s e n s e m b l e s d ' e n t i t s C l i e n t e t S e a n c e _ C o d e . E n
e e t , c e t a t t r i b u t c a r a c t r i s e l ' a s s o c i a t i o n e t n o n p a s u n c l i e n t , u n e s a n c e d e c o d e o u e n c o r e
u n e x a m e n d e c o d e . I l c a r a c t r i s e l e l i e n e n t r e d e u x e n t i t s d e c e s e n s e m b l e s .
D d u i s e z l e s c h m a r e l a t i o n n e l d e l a b a s e d e d o n n e s c o r r e s p o n d a n t e .
V o u s p r c i s e r e z l e s c l s p r i m a i r e s d e s r e l a t i o n s e n l e s s o u l i g n a n t a i n s i q u e l e s c l s t r a n g r e s e n
l e s s i g n a l a n t p a r u n # e t e n p r c i s a n t q u o i e l l e s f o n t r f r e n c e .
D a n s v o t r e s c h m a r e l a t i o n n e l , c h a q u e r e l a t i o n d o i t t r e s p c i e d e l a m a n i r e s u i v a n t e :
Nom ( att 1 , . . . , att n ) o Nom e s t l e n o m d e l a r e l a t i o n e t att 1 , . . . , att n s o n t d e s n o m s d ' a t t r i b u t s . L e n o m d e l a r e l a t i o n d o i t o b l i g a t o i r e m e n t a v o i r u n l i e n a v e c l e s n o m s d e s e n s e m b l e s d ' e n t i t s
( c l a s s e s ) o u d e s a s s o c i a t i o n s d u s c h m a d e m o d l i s a t i o n d e l a q u e s t i o n 1 .
V o u s d o n n e r e z d e s e x p l i c a t i o n s c l a i r e s e t c o n c i s e s d u p a s s a g e a u r e l a t i o n n e l . V o u s p r c i s e r e z n o -
t a m m e n t p o u r q u o i e t c o m m e n t v o u s c r e z o u m o d i e z c e r t a i n e s r e l a t i o n s ( 1 l i g n e m a x i m u m p a r
r e l a t i o n ) .
C o r r e c t i o n d e l ' e x e r c i c e 1
L e m o d l e r e l a t i o n n e l d d u i t d e l a m o d l i s a t i o n c i - d e s s u s e s t l e s u i v a n t . L e s c l s p r i m a i r e s s o n t
s o u l i g n e s . L e s c l s t r a n g r e s s o n t p r c d e s d ' u n ' # ' . P o u r u n r a p p e l d e c e s n o t i o n s , v o u s
p o u v e z v o u s r f r e r a u x p a g e s 5 6 6 0 d e [ 2 ] . L e p a s s a g e d ' u n s c h m a d e m o d l i s a t i o n u n m o d l e
r e l a t i o n n e l e s t r a p p e l a u x p a g e s 1 2 0 1 4 3 d e [ 4 ] .
C l i e n t ( C l i e n t I D , N o m , P r n o m , A d r e s s e , D a t e N a i s s a n c e )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) C l i e n t .
C D - R O M ( C d R o m I D , E d i t e u r )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) C D -
R O M .
3
-
8/9/2019 exercices corrigs : Algorithmique
4/21
Q u e s t i o n ( Q u e s t i o n I D , I n t i t u l , R p o n s e , N i v e a u D i c u l t , T h m e )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) Q u e s -
t i o n .
S e r i e ( S e r i e I D , # C d R o m I D )
C e t t e r e l a t i o n e s t i s s u e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( c l a s s e s ) S e r i e .
E n m o d l i s a t i o n E / A , l ' e n s e m b l e d ' e n t i t s S e r i e t a n t u n e n s e m b l e d ' e n t i t s f a i b l e s d e C R -
R O M , l a c l p r i m a i r e d e l a r e l a t i o n S e r i e e s t c o m p o s e d e l ' i d e n t i c a t e u r d e l a s r i e e t d e
l ' i d e n t i c a t e u r d u C D - R O M a u q u e l l a s r i e a p p a r t i e n t .
C o n t e n u S e r i e ( # Q u e s t i o n I D , S e r i e I D , # C d R o m I D , N u m r o )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n C o n t i e n t . L e c o u -
p l e d ' a t t r i b u t s # C d R o m I D , # S e r i e I D f a i t r f r e n c e l a c l p r i m a i r e d e l a r e l a t i o n S e r i e .
L ' a t t r i b u t # Q u e s t i o n I D f a i t r f r e n c e l a c l p r i m a i r e d e l a r e l a t i o n Q u e s t i o n . I l n e f a u t
p a s o u b l i e r l ' a t t r i b u t N u m r o q u i c a r a c t r i s e l ' a s s o c i a t i o n c o n t i e n t . S e a n c e _ C o d e ( S e a n c e I D ,
D a t e , H e u r e , # C d R o m I D , # S e r i e I D )
C e t t e r e l a t i o n e s t i s s u e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( c l a s s e s ) S e a n c e _ C o d e .
L e c o u p l e d ' a t t r i b u t s # C d R o m I D e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e
d e l a r e l a t i o n S e r i e . C e c o u p l e d ' a t t r i b u t s a t a j o u t l o r s d u p a s s a g e a u r e l a t i o n e l d e
l ' a s s o c i a t i o n e s t _ d i u s e _ p e n d a n t , u n e s e u l e s r i e ( d ' u n C R - R O M d o n n ) t a n t d i u s e p e n -
d a n t u n e s a n c e d e c o d e ( c a r d i n a l i t 1 : 1 ) .
P a r t i c i p a t i o n ( # C l i e n t I D , # S e a n c e I D , N o m b r e F a u t e s )
C e t t e r e l a t i o n e s t i s s u e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n a s s i s t e _ . L e s a t t r i b u t s
# C l i e n t I D e t # S e a n c e I D s o n t d e s c l s t r a n g r e s q u i f o n t r e s p e c t i v e m e n t r f r e n c e s a u x c l s
p r i m a i r e s d e s r e l a t i o n s C l i e n t e t S e a n c e . E n e e t , u n c l i e n t p e u t a s s i s t e r p l u s i e u r s s a n c e s
e t , l o r s d ' u n e s a n c e , i l y a p l u s i e u r s c l i e n t s . I l n e f a u t p a s o u b l i e r l ' a t t r i b u t N o m b r e F a u t e s
q u i c a r a c t r i s e l ' a s s o c i a t i o n a s s i s t e _ .
E x a m e n _ C o d e ( P a s s a g e C o d e I D , D a t e , H e u r e , L i e u E x a m e n )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) E x a -
m e n _ C o d e .
P a s s a g e C o d e ( # P a s s a g e C o d e I D , # C l i e n t I D , N o m b r e F a u t e s )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n e s t _ a u t o r i s _ _ p a s s e r .
L e s a t t r i b u t s # P a s s a g e C o d e I D e t # C l i e n t I D f o n t r f r e n c e a u x c l s p r i m a i r e s d e s r e l a t i o n s
E x a m e n - C o d e e t C l i e n t .
E x e r c i c e 2
E n o n c d e l ' e x e r c i c e
O n s o u h a i t e c o n s t r u i r e u n e b a s e d e d o n n e s g r a n t d e s r e v u e s e t l e s a r t i c l e s d e c e s r e v u e s . U n e
r e v u e e s t c a r a c t r i s e p a r u n n o m e t u n e p r i o d i c i t . C h a q u e r e v u e p a r a i t s o u s l a f o r m e d e n u m r o s ,
c h a q u e n u m r o t a n t i d e n t i p a r u n n o m b r e r e l a t i f l a r e v u e e t l ' a n n e e n c o u r s ( e x . l e n u m r o
N
1 2 d e L i n u x M a g a z i n e e n 2 0 0 3 e s t d i r e n t d u n u m r o N
1 2 d e L i n u x M a g a z i n e e n 2 0 0 4 ) . U n
n u m r o e s t g a l e m e n t c a r a c t r i s p a r u n n o m b r e d e p a g e s . C h a q u e n u m r o c o n t i e n t d e s a r t i c l e s
c r i t s p a r u n o u p l u s i e u r s a u t e u r s . U n a u t e u r e s t c a r a c t r i s p a r u n n o m , u n p r n o m , a i n s i q u ' u n
e m a i l . C h a q u e a r t i c l e p o s s d e u n t i t r e e t u n c o n t e n u . U n m m e a r t i c l e p e u t a p p a r a t r e d a n s
p l u s i e u r s p l u s i e u r s n u m r o s d ' u n e m m e r e v u e o u d e d i r e n t e s r e v u e s . L o r s q u ' u n a r t i c l e a p p a r a t
d a n s u n n u m r o d ' u n e r e v u e , i l a u n e p a g e d e d b u t e t u n e p a g e d e n . U n a r t i c l e p e u t f a i r e
r f r e n c e d ' a u t r e s a r t i c l e s , e n p r c i s a n t l e n u m r o e t l a r e v u e d a n s l e s q u e l s l ' a r t i c l e r f r e n c a
t p u b l i .
4
-
8/9/2019 exercices corrigs : Algorithmique
5/21
Nom
Revue
ID
NbPagesAnne
Numro
comporte
Titre
Contenu
Article
fait rfrence
crit
Nom
Revue
Titre
Contenu
Article
Email
PrnomNom
ID
Auteur
ID
NbPagesAnne
Numro
Publication
PageDbutPageFin
Modlisation Entit / Association
Priodicit
1:M 1:N
1:M 1:1
0:N
0:M
Auteur
EmailPrnom
ID
Nom
PageDbutPageFin
1:N
1:N
Modlisation UML
Priodicit
1
c r i
t
1..*
1..* 1..*
1..* 1..*est publi dans
*
*
NumroID
r f r e n c e
fait
c o m p o r t e
est publidans
F i g u r e 2 : M o d l i s a t i o n E / A e t U M L d ' u n e b a s e d e d o n n e s g r a n t d e s r e v u e s .
L a b a s e d e d o n n e s d o i t p e r m e t t r e d e r p o n d r e d e s r e q u t e s t e l l e s q u e " C o m b i e n d e n u m r o s
d e L i n u x M a g a z i n e s o n t p a r u s e n 2 0 0 4 ? " , " Q u e l s s o n t l e s t i t r e s d e s a r t i c l e s p a r u s d a n s a u m o i n s
d e u x r e v u e s d i r e n t e s ? " , " Q u e l s s o n t l e s a u t e u r s a y a n t p u b l i s d a n s l e n u m r o 3 d e l a r e v u e
L ' H i s t o i r e e n 2 0 0 4 ? " e t c .
L a g u r e 2 p r s e n t e l a m o d l i s a t i o n E n t i t / A s s o c i a t i o n ( f o r m a t M e r i s e ) e t l a m o d l i s a t i o n U M L
d e l ' n o n c . L e s e x p l i c a t i o n s n e s o n t d o n n e s q u e p o u r l e s c h m a E / A m a i s p e u v e n t t r e a d a p t e s
a u s c h m a U M L . P o u r u n e c o m p r h e n s i o n d e l a d i r e n c e e n t r e u n e m o d l i s a t i o n E / A o u U M L e t
l e p a s s a g e a u r e l a t i o n n e l , v o u s p o u v e z v o u s r e p o r t e r l ' o u v r a g e [ 4 ] . L e s s c h m a s d e m o d l i s a t i o n
c i - a v a n t s o n t s m a n t i q u e m e n t c l a i r s . N a n m o i n s , q u e l s p o i n t s n c e s s i t e n t d ' t r e p r c i s s .
L ' e n s e m b l e d ' e n t i t s N u m r o e s t u n e n s e m b l e d ' e n t i t s f a i b l e s d e R e v u e a u f o r m a t M e r i s e ( o u u n e a s s o c i a t i o n q u a l i e e n U M L ) . E n e e t , c e c h o i x d e m o d l i s a t i o n a t f a i t p o u r
r e p r s e n t e r l e f a i t q u e l ' i d e n t i c a t e u r d ' u n n u m r o e s t r e l a t i f l a r e v u e l a q u e l l e l e n u m r o
a p p a r t i e n t . U n n u m r o d ' u n e r e v u e d o n n e t a n t i d e n t i p a r u n n o m b r e e t u n e a n n e , c e s
d e u x a t t r i b u t s ( I D e t A n n e ) s o n t s o u l i g n s .
L e s c a r d i n a l i t s d e l ' a s s o c i a t i o n e n t r e l e s e n s e m b l e s d ' e n t i t s N u m r o e t A r t i c l e s o n t 1 : N - 1 : M , c a r u n a r t i c l e p e u t a p p a r a t r e d a n s p l u s i e u r s n u m r o s e t u n n u m r o c o n t i e n t p l u s i e u r s a r t i c l e s .
L e p r i n c i p e e s t l e m m e p o u r l e s c a r d i n a l i t s d e l ' a s s o c i a t i o n e n t r e A u t e u r e t A r t i c l e .
L e s a t t r i b u t s P a g e D b u t e t P a g e F i n c a r a c t r i s e n t l ' a s s o c i a t i o n e n t r e A r t i c l e e t N u m r o ( u n n u m r o t a n t r e l a t i f u n e r e v u e , i l e s t i n u t i l e d e f a i r e u n e a s s o c i a t i o n a v e c R e v u e ) . E n e e t ,
l a p a g e d e d b u t e t l a p a g e d e n p e u v e n t v a r i e r , p o u r u n m m e a r t i c l e , l o r s q u ' i l p a r a t d a n s
p l u s i e u r s n u m r o s d i r e n t s .
U n a r t i c l e p e u t f a i r e r f r e n c e u n a u t r e a r t i c l e . L e n u m r o e t l a r e v u e d a n s l e s q u e l s l ' a r t i c l e r f r e n c a p p a r a t d o i v e n t t r e p r c i s s d a n s l ' a r t i c l e r f r e n a n t . P a r e x e m p l e , l ' a r t i c l e i n -
t i t u l " C o r r e c t i o n d ' e x e r c i c e s e n b a s e s d e d o n n e s " p e u t f a i r e r f r e n c e l ' a r t i c l e " C o n c e p t s
g n r a u x e n B D r e l a t i o n n e l l e " d u n u m r o 1 2 d e l ' a n n e 2 0 0 4 d e l a r e v u e " I n f o r m a t i q u e m a g -
a z i n e " . A c e t e e t , l e s e n s e m b l e s d ' e n t i t s N u m r o e t A r t i c l e o n t t r e g r o u p s a u s e i n d ' u n
a g r g a t a u f o r m a t M e r i s e ( o u d ' u n e c l a s s e - a s s o c i a t i o n e n U M L ) . C e t a g r g a t ( o u c e t t e c l a s s e -
a s s o c i a t i o n ) r e p r s e n t e l ' a r t i c l e r f r e n c , c ' e s t - - d i r e l ' a r t i c l e e t l e n u m r o d e l a r e v u e o i l
a t p u b l i ( i l e s t i n u t i l e d ' a j o u t e r l a r e v u e l ' a g r g a t p u i s q u e N u m r o e s t u n e n s e m b l e
d ' e n t i t s f a i b l e s d e R e v u e ) . C e t a g r g r a t ( o u c e t t e c l a s s e - a s s o c i a t i o n ) e s t a s s o c i e A r t i c l e ,
5
-
8/9/2019 exercices corrigs : Algorithmique
6/21
c ' e s t - - d i r e l ' a r t i c l e r f r e n a n t , d o n t o n n e p r c i s e p a s l e n u m r o e t l a r e v u e . L e s c a r d i -
n a l i t s o n t p o u r b o r n e i n f r i e u r e 0 c a r u n a r t i c l e p e u t n e r f r e n c e r a u c u n a u t r e a r t i c l e e t u n
a r t i c l e p e u t n e j a m a i s t r e r f r e n c . P o u r p l u s d e d t a i l s s u r l ' a g r g a t i o n , v o u s p o u v e z v o u s
r f r e r l a p a g e 3 7 d e l ' o u v r a g e [ 2 ] o u a u x p a g e s 5 5 - 5 6 d e [ 3 ] .
D d u i s e z l e s c h m a r e l a t i o n n e l d e l a b a s e d e d o n n e s c o r r e s p o n d a n t e .
V o u s p r c i s e r e z l e s c l s p r i m a i r e s d e s r e l a t i o n s e n l e s s o u l i g n a n t a i n s i q u e l e s c l s t r a n g r e s e n l e s
s i g n a l a n t p a r u n # e t e n p r c i s a n t q u o i e l l e s f o n t r f r e n c e .
D a n s v o t r e s c h m a r e l a t i o n n e l , c h a q u e r e l a t i o n d o i t t r e s p c i e d e l a m a n i r e s u i v a n t e :
R Nom ( att 1 , . . . , att n ) o R Nom e s t l e n o m d e l a r e l a t i o n e t att 1 , . . . , att n s o n t d e s n o m s d ' a t t r i b u t s . L e n o m d e l a r e l a t i o n d o i t o b l i g a t o i r e m e n t a v o i r u n l i e n a v e c l e s n o m s d e s e n s e m b l e s d ' e n t i t s
( c l a s s e s ) o u d e s a s s o c i a t i o n s d u s c h m a d e m o d l i s a t i o n d e l a q u e s t i o n 1 .
V o u s d o n n e r e z d e s e x p l i c a t i o n s c l a i r e s e t c o n c i s e s d u p a s s a g e a u r e l a t i o n n e l . V o u s p r c i s e r e z n o -
t a m m e n t p o u r q u o i e t c o m m e n t v o u s c r e z o u m o d i e z c e r t a i n e s r e l a t i o n s ( 1 l i g n e m a x i m u m p a r
r e l a t i o n ) .
C o r r e c t i o n d e l ' e x e r c i c e 2
L e m o d l e r e l a t i o n n e l d d u i t d e l a m o d l i s a t i o n c i - d e s s u s e s t l e s u i v a n t . L e s c l s p r i m a i r e s s o n t
s o u l i g n e s . L e s c l s t r a n g r e s s o n t p r c d e s d ' u n ' # ' . P o u r u n r a p p e l d e c e s n o t i o n s , v o u s
p o u v e z v o u s r f r e r a u x p a g e s 5 6 6 0 d e [ 2 ] . L e p a s s a g e d ' u n s c h m a d e m o d l i s a t i o n u n m o d l e
r e l a t i o n n e l e s t r a p p e l a u x p a g e s 1 2 0 1 4 3 d e [ 4 ] .
R e v u e ( N o m , P r i o d i c i t )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) R e v u e .
N u m r o ( I D , A n n e , # N o m R e v u e , N b P a g e s )
C e t t e r e l a t i o n e s t i s s u e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( c l a s s e s ) N u m r o , q u i
e s t u n e n s e m b l e d ' e n t i t s f a i b l e s ( o u u n e a s s o c i a t i o n q u a l i e ) d e R e v u e . L a c l p r i m a i r e d e l a
r e l a t i o n N u m r o e s t d o n c c o m p o s e d u c o u p l e ( I D , A n n e ) q u i i d e n t i e u n n u m r o p o u r u n e
r e v u e d o n n e e t d e l ' a t t r i b u t # N o m R e v u e , c l t r a n g r e f a i s a n t r f r e n c e l a c l p r i m a i r e d e
l a r e l a t i o n R e v u e ( c ' e s t - - d i r e f a i s a n t r f r e n c e l a r e v u e l a q u e l l e l e n u m r o e s t r e l a t i f ) .
A u t e u r ( I D , N o m , P r n o m , E m a i l )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) A u t e u r .
A r t i c l e ( T i t r e , C o n t e n u )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' e n s e m b l e d ' e n t i t s ( o u c l a s s e ) A r t i c l e .
E c r i t u r e ( # T i t r e , # I D A u t e u r )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n e n t r e A r t i c l e e t A u t e u r .
E n e e t , u n a r t i c l e p e u t t r e c r i t p a r p l u s i e u r s a u t e u r s e t u n a u t e u r p e u t c r i r e p l u s i e u r s
a r t i c l e s . L ' a t t r i b u t # T i t r e e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e d e l a
r e l a t i o n T i t r e . L ' a t t r i b u t # I D A u t e u r e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e
d e l a r e l a t i o n A u t e u r .
P u b l i c a t i o n ( # T i t r e , # N o m R e v u e , # I D N u m r o , # A n n e N u m r o , P a g e D b u t , P a g e F i n )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n e n t r e A r t i c l e e t N u m r o s .
L a c l p r i m a i r e d e l a r e l a t i o n e s t c o m p o s e d u t i t r e d e l ' a r t i c l e p u b l i ( i d e n t i p a r # T i t r e )
e t d u n u m r o d a n s l e q u e l l ' a r t i c l e a p p a r a t ( i d e n t i p a r l e t r i p l e t # N o m R e v u e , # I D N u m r o ,
# A n n e N u m r o ) . L ' a t t r i b u t # T i t r e e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e
d e l a r e l a t i o n T i t r e . L e s a t t r i b u t s ( # N o m R e v u e , # I D N u m r o , # A n n e N u m r o ) f o r m e n t u n e
c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e d e l a r e l a t i o n N u m r o . I l f a u t b i e n n o t e r ,
i c i , q u ' u n e c l t r a n g r e f a i t t o u j o u r s r f r e n c e l a c l p r i m a i r e d ' u n e a u t r e r e l a t i o n . O r ,
d a n s c e t e x e m p l e , l a c l p r i m a i r e d e l a r e l a t i o n N u m r o e s t c o m p o s e d e t r o i s a t t r i b u t s q u i
d o i v e n t g a l e m e n t a p p a r a t r e d a n s t o u t e s c l s t r a n g r e s y f a i s a n t r f r e n c e . I l n e f a u t p a s
6
-
8/9/2019 exercices corrigs : Algorithmique
7/21
n o n p l u s o u b l i e r d ' a j o u t e r d a n s l a r e l a t i o n P u b l i c a t i o n l e s a t t r i b u t s P a g e D b u t e t P a g e F i n q u i
c a r a c t r i s e l ' a s s o c i a t i o n e s t _ p u b l i _ d a n s .
R f r e n c e ( # T i t r e A r t i c l e R f r e n a n t , # T i t r e A r t i c l e R f r e n c , # N o m R e v u e A r t i c l e R f r e n c ,
# I D N u m r o A r t i c l e R f r e n c , # A n n e N u m r o A r t i c l e R f r e n c )
C e t t e r e l a t i o n e s t d d u i t e d u p a s s a g e a u r e l a t i o n n e l d e l ' a s s o c i a t i o n e n t r e l ' e n s e m b l e d ' e n t i t s
( o u l a c l a s s e ) A r t i c l e e t l ' a g r g a t ( o u l a c l a s s e - a s s o c i a t i o n ) r e g r o u p a n t N u m r o e t A r t i c l e . L e s
n o m s d e s a t t r i b u t s s o n t p a r t i c u l i r e m e n t l o n g s p o u r q u e l a s m a n t i q u e s o i t c l a i r e . L ' a t t r i b u t
# T i t r e A r t i c l e R f r e n a n t e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e d e l a r e l a -
t i o n A r t i c l e . C e t a t t r i b u t r e p r s e n t e l e t i t r e d e l ' a r t i c l e r f r e n a n t ( c o n t e n a n t u n e r f r e n c e
u n a r t i c l e p u b l i d a n s u n n u m r o ) . L ' a t t r i b u t # T i t r e A r t i c l e R f r e n c e s t u n e c l t r a n g r e
q u i f a i t r f r e n c e l a c l p r i m a i r e d e l a r e l a t i o n A r t i c l e . C e t a t t r i b u t r e p r s e n t e l e t i t r e d e
l ' a r t i c l e r f r e n . L e s a t t r i b u t s ( # N o m R e v u e A r t i c l e R f r e n c , # I D N u m r o A r t i c l e R f r e n c ,
# A n n e N u m r o A r t i c l e R f r e n c ) f o r m e n t u n e c l t r a n g r e q u i f a i t r f r e n c e l a c l p r i m a i r e
d e l a r e l a t i o n N u m r o . I l s r e p r s e n t e n t l e n u m r o d e l a r e v u e d a n s l e q u e l a t p u b l i l ' a r t i c l e
r f r e n c .
7
-
8/9/2019 exercices corrigs : Algorithmique
8/21
L a n g a g e d ' i n t e r r o g a t i o n
E x e r c i c e 3
E n o n c d e l ' e x e r c i c e
O n s u p p o s e q u ' u n e b i b l i o t h q u e g r e u n e b a s e d e d o n n e s d o n t l e s c h m a e s t l e s u i v a n t ( l e s c l s
p r i m a i r e s d e s r e l a t i o n s s o n t s o u l i g n e s ) :
E m p r u n t ( P e r s o n n e , L i v r e , D a t e E m p r u n t , D a t e R e t o u r P r e v u e , D a t e R e t o u r E e c t i v e )
R e t a r d ( P e r s o n n e , L i v r e , D a t e E m p r u n t , P e n a l i t R e t a r d )
E x p r i m e r , l o r s q u e c e l a e s t p o s s i b l e , l e s r e q u t e s s u i v a n t e s e n a l g b r e r e l a t i o n n e l l e , e n c a l c u l v a r i a b l e n u p l e t
e t e n S Q L .
1 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t e m p r u n t l e l i v r e " R e c u e i l E x a m e n s B D " ?
2 . Q u e l l e s s o n t l e s p e r s o n n e s n ' a y a n t j a m a i s r e n d u d e l i v r e e n r e t a r d ?
3 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t e m p r u n t t o u s l e s l i v r e s ( e m p r u n t s a u m o i n s u n e f o i s ) ?
4 . Q u e l s s o n t l e s l i v r e s a y a n t t e m p r u n t s p a r t o u t l e m o n d e ( i . e . t o u s l e s e m p r u n t e u r s ) ?
5 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t t o u j o u r s r e n d u e n r e t a r d l e s l i v r e s q u ' e l l e s o n t e m p r u n t s ?
C o r r e c t i o n d e l ' e x e r c i c e 3
D a n s c e t e x e r c i c e , l e s c h m a r e l a t i o n n e l e s t p a r t i c u l i r e m e n t s i m p l e , a n q u e l ' e x p r e s s i o n d e s r e -
q u t e s s o i t f a c i l e e x p r i m e r . I l s ' a g i t n a n m o i n s d e r e q u t e s c o m p l e x e s . V o u s p o u v e z v o u s e n t r a n e r
e x p r i m e r c e s r e q u t e s e n a m l i o r a n t l e s c h m a , c ' e s t - - d i r e e n a j o u t a n t d e u x r e l a t i o n s P e r s o n n e
e t L i v r e e t p r c i s a n t l e s c l s t r a n g r e s d a n s l e s r e l a t i o n s E m p r u n t e t R e t a r d f a i s a n t r f r e n c e u n e
p e r s o n n e e t u n l i v r e .
1 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t e m p r u n t l e l i v r e " R e c u e i l E x a m e n s B D " ?
E n a l g b r e r e l a t i o n n e l l e : P ersonne (Livre = Recueil... (Emprunt ))
L ' a l g b r e r e l a t i o n n e l l e e s t u n l a n g a g e c o m p o s d ' o p r a t i o n s e n s e m b l i s t e s . I l p e r m e t d ' i n d i q u e r
c o m m e n t l e r s u l t a t d e l a r e q u t e e s t c a l c u l e n t e r m e s d ' o p r a t i o n s e n s e m b l i s t e s s u r d e s e n -
s e m b l e s d e n u p l e t s ( l e s r e l a t i o n s ) . D a n s c e t t e r e q u t e p a r e x e m p l e , l e r s u l t a t e s t c a l c u l
e n p a r c o u r a n t t o u s l e s n u p l e t s d e l a r e l a t i o n E m p r u n t , e n y s l e c t i o n n a n t l e s n u p l e t s d o n t
l ' a t t r i b u t L i v r e a p o u r v a l e u r ' R e c u e i l . . . ' e t e n p r e n a n t u n i q u e m e n t l e s v a l e u r s d e l ' a t t r i b u t
P e r s o n n e ( i . e . e n p r o j e t a n t s u r l ' a t t r i b u t P e r s o n n e ) .
E n c a l c u l r e l a t i o n n e l :
{t.Personne | Emprunt (t) (u.Livre = Recueil... ) }
L e c a l c u l r e l a t i o n n e l d c r i t , s o u s f o r m e l o g i q u e , l e r s u l t a t d e l a r e q u t e ( s a n s p r c i s e r c o m -
m e n t o n l e c a l c u l e ) . L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e l ' a t t r i b u t Livre c o r r e s p o n d e ' R e c u e i l E x a m e n s
8
-
8/9/2019 exercices corrigs : Algorithmique
9/21
B D ' .
E n S Q L :
S E L E C T P e r s o n n e
F R O M E m p r u n t W H E R E L i v r e = ' R e c u e i l . . . '
I l a u r a i t g a l e m e n t t p o s s i b l e d e r e m p l a c e r l a c l a u s e W H E R E p a r W H E R E L i v r e L I K E ' R e c u e i l % '
i n d i q u a n t q u e l ' o n r e c h e r c h e l e s e m p r u n t e u r s d e s o u v r a g e s d o n t l e t i t r e c o m m e n c e p a r ' R e -
c u e i l ' .
2 . Q u e l l e s s o n t l e s p e r s o n n e s n ' a y a n t j a m a i s r e n d u d e l i v r e e n r e t a r d ?
E n a l g b r e r e l a t i o n n e l l e : P ersonne (Emprunt ) P ersonne (Retard )
L a r s u l t a t d e l a r e q u t e e s t c a l c u l e n p r e n a n t t o u t e s l e s v a l e u r s d e l ' a t t r i b u t P e r s o n n e
d a n s l a r e l a t i o n E m p r u n t e t e n l i m i n a n t l e s v a l e u r s d e c e m m e a t t r i b u t a p p a r a i s s a n t g a l e -
m e n t d a n s l a r e l a t i o n R e t a r d . I l s ' a g i t d ' u n e d i r e n c e e n t r e d e u x e n s e m b l e s .
E n c a l c u l r e l a t i o n n e l :
{t.Personne | Emprunt (t) [ u Retard (u) (u.Personne = t.Personne ) )]}
L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt ( d o n c d e s p e r s o n n e s e m p r u n t a n t ) t e l s q u ' i l n ' e x i s t e p a s d e n u p l e t s u d a n s l a r e l a t i o n Retard a v e c l a m m e v a l e u r p o u r l ' a t t r i b u t Personne ( d o n c t e l l e s q u ' i l n ' e x i s t e p a s d e r e t a r d s a s s o c i s c e s p e r s o n n e s ) .
E n S Q L , d e u x m a n i r e s p o s s i b l e s , p a r s i m p l e t r a d u c t i o n e n S Q L d e l a r e q u t e e n c a l c u l
r e l a t i o n n e l ( l e c a l c u l r e l a t i o n n e l t a n t l ' o r i g i n e d e l a s y n t a x e d e S Q L ) :
S E L E C T t . P e r s o n n e F R O M E m p r u n t t S E L E C T P e r s o n n e F R O M E m p r u n t
W H E R E N O T E X I S T S ( S E L E C T * F R O M R e t a r d u W H E R E P e r s o n n e N O T I N
W H E R E u . P e r s o n n e = t . P e r s o n n e ( S E L E C T P e r s o n n e F R O M R e t a r d )
)
L e s v a r i a b l e s n u p l e t ( e x . t e t u ) n e s o n t n c e s s a i r e q u e l o r s q u ' i l y a a m b i g u t a u n i v e a u d e s n o m s d ' a t t r i b u t s ( c f . r e q u t e d e g a u c h e ) .
3 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t e m p r u n t t o u s l e s l i v r e s ( e m p r u n t s a u m o i n s
u n e f o i s ) ?
E n a l g b r e r e l a t i o n n e l l e : P ersonne,Livre (Emprunt ) Livre (Emprunt )L e r s u l t a t d e c e t t e r e q u t e e s t c a l c u l e n u t i l i s a n t l ' o p r a t e u r d e d i v i s i o n . P o u r u n e b o n n e
c o m p r h e n s i o n d e l a d i v i s i o n , v o u s p o u v e z v o u s r e p o r t e r l a p a g e 9 9 d e [ 2 ] .
L a s o u s - r e q u t e Livre (Emprunt ) c o r r e s p o n d l a l i s t e d e s l i v r e s e m p r u n t s . L e r s u l t a t d e l a s o u s - r e q u t e P ersonne,Livre (Emprunt ) c o n t i e n t t o u s l e s c o u p l e s ( P e r s o n n e , L i v r e e m p r u n t a u m o i n s u n e f o i s p a r c e t t e p e r s o n n e ) . L e r s u l t a t d e l a d i v i s i o n s e r a d o n c l a l i s t e d e s p e r s o n -
n e s a s s o c i e s , d a n s l e r s u l t a t d e P ersonne,Livre (Emprunt ) , c h a c u n d e s l i v r e s a p p a r a i s s a n t d a n s l e r s u l t a t d e l a r e q u t e Livre (Emprunt ) .
9
-
8/9/2019 exercices corrigs : Algorithmique
10/21
E n c a l c u l r e l a t i o n n e l :
{t.Personne | Emprunt (t ) [ u (Emprunt (u)) = ( v Emprunt (v) (v.Personne =t.Personne ) (u.Livre = v.Livre ) )]}L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t s ' i l s ' a g i t d ' u n l i v r e e m p r u n t ( d o n c d ' u n n u p l e t u d a n s Emprunt ) a l o r s o n t r o u v e u n n u p l e t v d a n s Emprunt a s s o c i a n t c e t t e p e r s o n n e c e l i v r e ( c ' e s t - - d i r e v.Personne = t.Personne e t u.Livre = v.Livre ) .
O n p e u t g a l e m e n t l ' c r i r e d e l a m a n i r e s u i v a n t e :
{t.Personne | Emprunt (t) [ u (Emprunt (u)) ( v Emprunt (v) (v.Personne =t.Personne ) (u.Livre = v.Livre ) )]}
C e q u i s i g n i e q u e l e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t u s o i t c ' e s t n ' e s t p a s u n n u p l e t d e
Emprunts o i t ( i m p l i c i t e m e n t c ' e s t u n n u p l e t d e
Emprunte t ) o n t r o u v e u n n u p l e t
v d a n s Emprunt a s s o c i a n t c e t t e p e r s o n n e c e l i v r e ( c ' e s t - - d i r e v.Personne = t.Personnee t u.Livre = v.Livre ) .
D ' o d i t d e m a n i r e n g a t i v e :
{t.Personne | Emprunt (t) [u Emprunt (u ) (v Emprunt (v)(v.Personne = t.Personne )(u.Livre = v.Livre ) )]}
E n S Q L , s i m p l e t r a d u c t i o n d e l a r e q u t e e n c a l c u l r e l a t i o n n e l :
S E L E C T t . P e r s o n n e
F R O M E m p r u n t t
W H E R E N O T E X I S T S ( S E L E C T *
F R O M E m p r u n t u W H E R E N O T E X I S T S ( S E L E C T *
F R O M E m p r u n t v
W H E R E v . P e r s o n n e = t . P e r s o n n e
A N D v . L i v r e = u . L i v r e
)
)
4 . Q u e l s s o n t l e s l i v r e s a y a n t t e m p r u n t s p a r t o u t l e m o n d e ( i . e . t o u s l e s e m -
p r u n t e u r s ) ?
E n a l g b r e r e l a t i o n n e l l e :
P ersonne,Livre (Emprunt ) P ersonne (Emprunt )
L e r s u l t a t d e c e t t e r e q u t e e s t c a l c u l e n u t i l i s a n t g a l e m e n t l ' o p r a t e u r d e d i v i s i o n .
L a s o u s - r e q u t e P ersonne (Emprunt ) c o r r e s p o n d l a l i s t e d e s e m p r u n t e u r s . L e r s u l t a t d e l a s o u s - r e q u t e P ersonne,Livre (Emprunt ) c o n t i e n t t o u s l e s c o u p l e s ( P e r s o n n e a y a n t e m p r u n t a u m o i n s u n e f o i s , L i v r e e m p r u n t a u m o i n s u n e f o i s p a r c e t t e p e r s o n n e ) . L e r s u l t a t d e l a
d i v i s i o n s e r a d o n c l a l i s t e d e s l i v r e s a s s o c i s , d a n s l e r s u l t a t d e P ersonne,Livre (Emprunt ) , c h a c u n d e s e m p r u n t e u r s a p p a r a i s s a n t d a n s l e r s u l t a t d e l a r e q u t e P ersonne (Emprunt ) .
E n c a l c u l r e l a t i o n n e l :
{t.Livre | Emprunt (t ) [ u (Emprunt (u)) = ( v Emprunt (v) (u.Livre = t.Livre ) (v.Personne = u.Personne ) )]}
L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Livre d e s n u p l e t s t d e l a r e l a - t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t s ' i l s ' a g i t d ' u n e m p r u n t e u r ( d o n c d ' u n n u p l e t ud a n s Emprunt ) a l o r s o n t r o u v e u n n u p l e t v d a n s Emprunt a s s o c i a n t c e l i v r e c e t e m p r u n t e u r
1 0
-
8/9/2019 exercices corrigs : Algorithmique
11/21
( c ' e s t - - d i r e u.Livre = t.Livre e t v.Personne = u.Personne ) .
O n p e u t g a l e m e n t l ' c r i r e d e l a m a n i r e s u i v a n t e :
{t.Livre | Emprunt (t) [ u (Emprunt (u)) ( v Emprunt (v) (u.Livre = t.Livre ) (v.Personne = u.Personne ) )]}
C e q u i s i g n i e q u e l e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Livre d e s n u - p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t s o i t i l n e s ' a g i t p a s d ' u n n u p l e t u d a n s Emprunt s o i t ( i l s ' a g i t d ' u n d ' u n n u p l e t u d a n s Emprunt e t ) i l e x i s t e u n n u - p l e t v d a n s Emprunt a s s o c i a n t c e l i v r e c e t e m p r u n t e u r ( c ' e s t - - d i r e u.Livre = t.Livre e t v.Personne = u.Personne ) . D ' o d i t d e m a n i r e n g a t i v e : {t.Livre | Emprunt (t) [ u Emprunt (u ) ( v Emprunt (v) (u.Livre = t.Livre ) (v.Personne = u.Personne ) )]}
E n S Q L , s i m p l e t r a d u c t i o n d e l a r e q u t e e n c a l c u l r e l a t i o n n e l :
S E L E C T t . L i v r e F R O M E m p r u n t t
W H E R E N O T E X I S T S ( S E L E C T * F R O M E m p r u n t u
W H E R E N O T E X I S T S ( S E L E C T * F R O M E m p r u n t v
W H E R E u . L i v r e = t . L i v r e A N D v . P e r s o n n e = u . P e r s o n n e
)
)
5 . Q u e l l e s s o n t l e s p e r s o n n e s a y a n t t o u j o u r s r e n d u e n r e t a r d l e s l i v r e s q u ' e l l e s o n t
e m p r u n t s ?
E n a l g b r e r e l a t i o n n e l l e : I l n ' e s t p a s p o s s i b l e d ' e x p r i m e r c e t t e r e q u t e p a r u n e d i v i s i o n .
L a r e q u t e e s t d o n c d c o m p o s e e n d e u x s o u s - r e q u t e s . L a r e q u t e , R 1 , c i - d e s s o u s , r e t o u r n e l a l i s t e d e s p e r s o n n e s a y a n t e m p r u n t a u m o i n s u n l i v r e s a n s l e r e n d r e e n r e t a r d .
R 1 = P ersonne [P ersonne,Livre,DateEmprunt (Emprunt ) P ersonne,Livre,DateEmprunt (Retard )]
L a r e q u t e c i - d e s s o u s e n l v e d e l a l i s t e d e s p e r s o n n e s q u i e m p r u n t e n t d e s l i v r e s ( s o u s - r e q u t e
d e g a u c h e ) l a l i s t e d e s p e r s o n n e s a y a n t r e n d u a u m o i n s u n l i v r e s a n s r e t a r d ( r e q u t e R 1 ) . C e l a c o r r e s p o n d c o m m e n t c a l c u l e r l e r s u l t a t d e l a r e q u t e q u e l ' o n r e c h e r c h e .
P ersonne (Emprunt ) R 1
E n c a l c u l r e l a t i o n n e l :
{t.Personne | Emprunt (t) [ u [Emprunt (u) (u.Personne = t.Personne )] = ( vRetard (v) (v.Personne = u.Personne ) (u.Livre = v.Livre ) )]}
L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t s ' i l s ' a g i t d ' u n l i v r e e m p r u n t p a r c e t t e p e r s o n n e ( d o n c d ' u n n u p l e t u d a n s Emprunt t e l q u e u.Personne = t.Personne ) a l o r s o n t r o u v e u n n u - p l e t v d a n s Retard a s s o c i a n t c e t t e p e r s o n n e c e l i v r e ( c ' e s t - - d i r e v.Personne = u.Personnee t u.Livre = v.Livre ) .
O n p e u t g a l e m e n t c i r e :
{t.Personne | Emprunt (t ) [ u [Emprunt (u) (u.Personne = t.Personne )] ( vRetard (v) (v.Personne = u.Personne ) (u.Livre = v.Livre ) )]}
L e r s u l t a t d e l a r e q u t e c o n t i e n t l e s v a l e u r s d e l ' a t t r i b u t Personne d e s n u p l e t s t d e l a r e l a t i o n Emprunt t e l s q u e q u e l q u e s o i t u n n u p l e t s o i t i l n e s ' a g i t p a s d ' u n l i v r e e m p r u n t p a r c e t t e p e r s o n n e ( d o n c d ' u n n u p l e t u d a n s Emprunt t e l q u e u.Personne = t.Personne )
1 1
-
8/9/2019 exercices corrigs : Algorithmique
12/21
s o i t o n t r o u v e u n n u p l e t v d a n s Retard a s s o c i a n t c e t t e p e r s o n n e c e l i v r e ( c ' e s t - - d i r e v.Personne = u.Personne e t u.Livre = v.Livre ) .
D ' o d i t d e m a n i r e n g a t i v e :
{t.Personne | Emprunt (t) [u Emprunt (u )(u.Personne = t.personne ) (v Retard (v)(v.Personne = u.Personne ) (u.Livre = v.Livre ) )]}
E n S Q L , l e n c o r e , s i m p l e t r a d u c t i o n d e l a r e q u t e e n c a l c u l r e l a t i o n n e l :
S E L E C T t . P e r s o n n e
F R O M E m p r u n t t
W H E R E N O T E X I S T S ( S E L E C T * F R O M E m p r u n t u W H E R E u . P e r s o n n e = t . P e r s o n n e
A N D N O T E X I S T S ( S E L E C T * F R O M R e t a r d v W H E R E v . P e r s o n n e = u . P e r s o n n e
A N D v . L i v r e = u . L i v r e )
)
E x e r c i c e 4
E n o n c d e l ' e x e r c i c e
U n o r g a n i s m e d e g e s t i o n d e s p e c t a c l e s , d e s a l l e s d e c o n c e r t e t d e v e n t e d e b i l l e t s d e s p e c t a c l e s g r e
u n e b a s e d e d o n n e s d o n t l e s c h m a r e l a t i o n n e l e s t l e s u i v a n t :
S p e c t a c l e ( S p e c t a c l e _ I D , T i t r e , D a t e D b , D u r e , S a l l e _ I D , C h a n t e u r )
C o n c e r t ( C o n c e r t _ I D , D a t e , H e u r e , S p e c t a c l e _ I D )
S a l l e ( S a l l e _ I D , N o m , A d r e s s e , C a p a c i t )
B i l l e t ( B i l l e t _ I D , C o n c e r t _ I D , N u m _ P l a c e , C a t g o r i e , P r i x )
V e n t e ( V e n t e _ I D , D a t e _ V e n t e , B i l l e t _ I D , M o y e n P a i e m e n t )
L e s a t t r i b u t s s o u l i g n s s o n t l e s a t t r i b u t s a p p a r t e n a n t l a c l p r i m a i r e . I l s s o n t d e t y p e e n t i e r .
L ' a t t r i b u t S a l l e _ I D d e l a r e l a t i o n S p e c t a c l e e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l ' a t t r i b u t d e
m m e n o m d e l a r e l a t i o n S a l l e . L ' a t t r i b u t S p e c t a c l e _ I D d e l a r e l a t i o n C o n c e r t e s t u n e c l t r a n g r e
q u i f a i t r f r e n c e l ' a t t r i b u t d e m m e n o m d e l a r e l a t i o n S p e c t a c l e . L ' a t t r i b u t C o n c e r t _ I D d e l a
r e l a t i o n B i l l e t e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l ' a t t r i b u t d e m m e n o m d e l a r e l a t i o n C o n -
c e r t . L ' a t t r i b u t B i l l e t _ I D d e l a r e l a t i o n V e n t e e s t u n e c l t r a n g r e q u i f a i t r f r e n c e l ' a t t r i b u t
d e m m e n o m d e l a r e l a t i o n B i l l e t .
E x p r i m e z , l o r s q u e c e l a e s t p o s s i b l e , l e s r e q u t e s s u i v a n t e s e n a l g b r e r e l a t i o n n e l l e ,
e n c a l c u l r e l a t i o n n e l v a r i a b l e n u p l e t e t e n S Q L .
1 . Q u e l l e s s o n t l e s d a t e s d u c o n c e r t d e C o r n e i l l e a u Z e n i t h ?
2 . Q u e l s s o n t l e s n o m s d e s s a l l e s a y a n t l a p l u s g r a n d e c a p a c i t ?
3 . Q u e l s s o n t l e s c h a n t e u r s n ' a y a n t j a m a i s r a l i s d e c o n c e r t l a C y g a l e ?
4 . Q u e l s s o n t l e s c h a n t e u r s a y a n t r a l i s a u m o i n s u n c o n c e r t d a n s t o u t e s l e s s a l l e s ?
5 . Q u e l s s o n t l e s d a t e s e t l e s i d e n t i c a t e u r s d e s c o n c e r t s p o u r l e s q u e l s i l n e r e s t e a u c u n b i l l e t
i n v e n d u ?
C o r r e c t i o n d e l ' e x e r c i c e 4
1 . Q u e l l e s s o n t l e s d a t e s d u c o n c e r t d e C o r n e i l l e a u Z e n i t h ?
E n a l g b r e r e l a t i o n n e l l e : Date [Concert Chanteur = Corneille (Spectacle ) Nom = Zenith (Salle )]
1 2
-
8/9/2019 exercices corrigs : Algorithmique
13/21
C e t t e r e q u t e c o m p o r t e d e u x j o i n t u r e s n a t u r e l l e s . L a p r e m i r e j o i n t u r e , e n t r e l e s r e l a t i o n s
C o n c e r t e t S p e c t a c l e , a s s o c i e l e s n u p l e t s d e S p e c t a c l e , c o r r e s p o n d a n t a u x s p e c t a c l e s d u c h a n t e u r
` C o r n e i l l e ' ( p u i s q u ' i l y a u n e s l e c t i o n a v a n t ) , a v e c l e s n u p l e t s d e l a r e l a t i o n C o n c e r t a y a n t l a
m m e v a l e u r p o u r l ' a t t r i b u t S p e c t a c l e _ I D . L a j o i n t u r e s e f a i t n a t u r e l l e m e n t s u r l ' a t t r i b u t d e
m m e n o m , S p e c t a c l e _ I D . L a d e u x i m e j o i n t u r e a s s o c i e l e s n u p l e t s r s u l t a t s d e l a p r e m i r e
j o i n t u r e ( d o n c l e s c o n c e r t s d e s s p e c t a c l e s d e ' C o r n e i l l e ' ) a v e c l e n u p l e t s c o r r e s p o n d a n t l a
s a l l e d u ' Z e n i t h ' ( r s u l t a t d e l a r e q u t e d e s l e c t i o n Nom = Zenith (Salle ) ) . L a j o i n t u r e s e f a i t n a t u r e l l e m e n t s u r l ' a t t r i b u t c o m m u n S a l l e _ I D . L a p r o j e c t i o n n a l e s e f a i t s u r l ' a t t r i b u t D a t e .
E n c a l c u l r e l a t i o n n e l :
{t.Date | Concert (t) [u, v Spectacle (u) Salle (v) (u.Spectacle _ ID = t.Spectacle _ ID ) (u.Chanteur = Corneille ) (v.Nom = Zenith ) (u.Salle _ ID = v.Salle _ ID ) ] }
L a r e q u t e r e t o u r n e l e s d a t e s d e s c o n c e r t s p o u r l e s q u e l s i l e x i s t e u n s p e c t a c l e d e ' C o r n e i l l e '
a s s o c i l a s a l l e d u ' Z e n i t h ' . L e r s u l t a t d e l a r e q u t e c o n t i e n t d o n c l e s v a l e u r s d e l ' a t t r i b u t
Date d e s n u p l e t s t d e l a r e l a t i o n Concert t e l s q u ' i l e x i s t e u n n u p l e t u d a n s S p e c t a c l e , c o r - r e s p o n d a n t u n s p e c t a c l e d e ' C o r n e i l l e ' ( c ' e s t - - d i r e d o n t l ' a t t r i b u t C h a n t e u r a p o u r v a l e u r
' C o r n e i l l e ' ) , a v e c l a m m e v a l e u r p o u r l ' a t t r i b u t S p e c t a c l e _ I D q u e l e n u p l e t t e t t e l s q u ' i l e x i s t e a u s s i u n n u p l e t v d a n s l a r e l a t i o n S a l l e , c o r r e s p o n d a n t l a s a l l e d u ' Z e n i t h ' ( d o n t l ' a t t r i b u t N o m a p o u r v a l e u r ' Z e n i t h ' ) , a v e c l a m m e v a l e u r p o u r l ' a t t r i b u t S a l l e _ I D q u e c e l l e
d e l ' a t t r i b u t S a l l e _ I D d u n u p l e t u .
E n S Q L , p a r t r a d u c t i o n i m m d i a t e d e l a r e q u t e e n c a l c u l v a r i a b l e n u p l e t :
S E L E C T D a t e
F R O M C o n c e r t t , S p e c t a c l e u , S a l l e v
W H E R E t . S p e c t a c l e _ I D = u . S p e c t a c l e _ I D
A N D u . C h a n t e u r = ' C o r n e i l l e '
A N D u . S a l l e _ I D = v . S a l l e _ I D
A N D v . N o m = ' Z e n i t h '
2 . Q u e l s s o n t l e s n o m s d e s s a l l e s a y a n t l a p l u s g r a n d e c a p a c i t ?
E n a l g b r e r e l a t i o n n e l l e : C e t t e r e q u t e n e p e u t p a s s ' c r i r e e n a l g b r e r e l a t i o n n e l l e n o n t e n -
d u e . I l f a u t u n o p r a t e u r m a x i m u m . P o u r p l u s d e d t a i l s s u r l ' a l g b r e r e l a t i o n n e l l e t e n d u e ,
v o u s p o u v e z v o u s r e p o r t e r a u x p a g e s 1 0 3 1 1 1 d e [ 3 ] o u a u x p a g e s 2 2 1 2 3 0 d e [ 1 ] .
E n a l g b r e r e l a t i o n n e l l e t e n d u e
1
, l a r e q u t e s ' e x p r i m e p a r :
Nom ((Capacite> = CapaciteMax ) Salle _ ID,CapacitMax [Salle (MAX (Capacite ) CapaciteMax ) (Salle ))])
L a r e q u t e Salle _ ID,CapacitMax [Salle (MAX (Capacite ) CapaciteMax ) (Salle ))] r e t o u r n e u n e r e l a t i o n t e m p o r a i r e d e d e u x c o l o n n e s , l a p e m i r e c o n t e n a n t l e s v a l e u r s d e l ' a t t r i b u t S a l l e _ I D
d e l a r e l a t i o n S a l l e e t l a d e u x i m e c o l o n n e c o n t e n a n t u n e s e u l e v a l e u r ( r e p t e p o u r t o u t e s
l e s v a l e u r s d e S a l l e _ I D ) c o r r e s p o n d a n t l a v a l e u r m a x i m a l e d e l ' a t t r i b u t C a p a c i t ( c a l c u l e
p a r l a f o n c t i o n d ' a g r g a t i o n M A X e t r e n o m m e e n C a p a c i t e M A X ) . L ' o p r a t e u r u t i l i s e s t l e
p r o d u i t c a r t s i e n ( ) . P o u r o b t e n i r l e n o m d e s s a l l e s a v e c l a p l u s g r a n d e c a p a c i t , i l s u t d o n c d e j o i n d r e c e t t e r e l a t i o n t e m p o r a i r e l a r e l a t i o n S a l l e e t d e s l e c t i o n n e r l e s n u p l e t s
a y a n t u n e v a l e u r d e C a p a c i t s u p e r i e u r e o u g a l e c e l l e d e l ' a t t r i b u t C a p a c i t e M a x .
E n c a l c u l r e l a t i o n n e l :
{t.Nom | Salle (t) [ u Salle (u) (u.Capacite > = t.Capacite ) ] }
C e t t e r e q u t e r e t o u r n e l e s v a l e u r s d e l ' a t t r i b u t N o m d e s n u p l e t s t d e l a r e l a t i o n S a l l e p o u r 1
L ' a l g b r e r e l a t i o n n e l l e t e n d u e n ' e s t p a s a u p r o g r a m m e d e l ' e x a m e n .
1 3
-
8/9/2019 exercices corrigs : Algorithmique
14/21
l e s q u e l s i l n ' e x i s t e p a s d e n u p l e t s u d a n s S a l l e a v e c u n e v a l e u r d e l ' a t t r i b u t C a p a c i t s u p r i e u r e o u g a l e .
E n S Q L :
I l e s t p o s s i b l e d e t r a d u i r e d i r e c t e m e n t l a r e q u t e e x p r i m e e n c a l c u l r e l a t i o n n e l , c o m m e c i -
d e s s o u s .
S E L E C T N o m
F R O M S a l l e t
W H E R E N O T E X I S T S ( S E L E C T *
F R O M S a l l e u
W H E R E u . C a p a c i t > = t . C a p a c i t )
I l e s t g a l e m e n t p o s s i b l e d ' u t i l i s e r l ' o p r a t e u r d ' a g r g a t i o n MAX , c o m m e p o u r l a r e q u t e s u i v a n t e .
S E L E C T N o m
F R O M S a l l e
W H E R E C a p a c i t > = ( S E L E C T ( M A X ( C a p a c i t )
F R O M S a l l e
)
I l e s t g a l e m e n t p o s s i b l e d ' u t i l i s e r l e m o t - c l A L L :
S E L E C T N o m
F R O M S a l l e
W H E R E C a p a c i t > = A L L ( S E L E C T C a p a c i t
F R O M S a l l e
)
3 . Q u e l s s o n t l e s c h a n t e u r s n ' a y a n t j a m a i s r a l i s d e c o n c e r t l a C y g a l e ?
E n a l g b r e r e l a t i o n n e l l e : Chanteur (Spectacle ) Chanteur [Spectacle (Nom = Cygale ) (Salle )]
L a r e q u t e Chanteur [Spectacle (Nom = Cygale ) (Salle )] r e t o u r n e l e s c h a n t e u r s a y a n t c h a n t a u m o i n s u n e f o i s d a n s l a s a l l e d e l a ' C y g a l e ' . L e r s u l t a t d e l a r e q u t e f n a l e e s t o b t e n u e n
s u p p r i m a n t c e s c h a n t e u r s d e l a l i s t e d e t o u s l e s c h a n t e u r s .
E n c a l c u l r e l a t i o n n e l :
{t.Chanteur | Spectacle (t) [ u, v Spectacle (u) Salle (v) (v.Nom = Cygale ) (u.Chanteur = t.Chanteur ) (u.Salle _ ID = v.Salle _ ID ) ] }
L a r e q u t e r e t o u r n e l e s v a l e u r s d e l ' a t t r i b u t C h a n t e u r d e s n u p l e t s t d e l a r e l a t i o n S p e c t a - c l e t e l s q u ' i l n e s o i t p a s p o s s i b l e d e t r o u v e r u n s p e c t a c l e d e c e m m e c h a n t e u r l a ' C y g a l e '
( i . e . d e t r o u v e r u n n u p l e t u d a n s S p e c t a c l e a v e c l a m m e v a l e u r p o u r l ' a t t r i b u t C h a n t e u r e t u n n u p l e t v d a n s S a l l e a v e c ' C y g a l e ' c o m m e v a l e u r d e l ' a t t r i b u t N o m e t a v e c l a m m e v a l e u r q u e u.Salle _ ID p o u r l ' a t t r i b u t S a l l e _ I D ) .
E n S Q L :
S E L E C T C h a n t e u r
F R O M S p e c t a c l e
W H E R E C h a n t e u r N O T I N ( S E L E C T C h a n t e u r
1 4
-
8/9/2019 exercices corrigs : Algorithmique
15/21
F R O M S p e c t a c l e u , S a l l e v
W H E R E u . S a l l e _ I D = v . S a l l e _ I D
A N D v . N o m = ' C y g a l e '
)
C e t t e r e q u t e p e u t a u s s i s ' e x p r i m e r a v e c u n N O T E X I S T S e n u t i l i s a n t u n e v a r i a b l e n u p l e t td a n s l e p r e m i e r FROM , p a r u n e s i m p l e t r a d u c t i o n d u c a l c u l r e l a t i o n n e l :
S E L E C T C h a n t e u r
F R O M S p e c t a c l e t
W H E R E C h a n t e u r N O T E X I S T S ( S E L E C T *
F R O M S p e c t a c l e u , S a l l e v
W H E R E u . S a l l e _ I D = v . S a l l e _ I D
A N D v . N o m = ' C y g a l e '
A N D t . C H a n t e u r = u . C h a n t e u r
)
4 . Q u e l s s o n t l e s c h a n t e u r s a y a n t r a l i s a u m o i n s u n c o n c e r t d a n s t o u t e s l e s s a l l e s
?
E n a l g b r e r e l a t i o n n e l l e : Chanteur,Salle _ ID (Spectacle Salle ) Salle _ ID (Salle )
L a r e q u t e Salle _ ID (Salle ) r e t o u r n e t o u s l e s i d e n t i c a t e u r s d e s a l l e . L a r e q u t e Chanteur,Salle _ ID (Spectacle Salle ) r e t o u r n e u n e r e l a t i o n a s s o c i a n t c h a q u e c h a n t e u r l ' i d e n t i c a t e u r d e l a s a l l e d a n s l a q u e l l e i l a r a l i s a u m o i n s u n s p e c t a c l e .
L a d i v i s i o n v a d o n c r e t o u r n e r l e s c h a n t e u r s a s s o c i s a u m o i n s u n e f o i s t o u t e s l e s s a l l e s d e l a
b a s e .
E n c a l c u l r e l a t i o n n e l :
{t.Chanteur | Spectacle (t) [u (Salle (u)) = (v Spectacle (v) (v.Chanteur = t.Chanteur ) (u.Salle _ ID = v.Salle _ ID ) ) ] }
L a r e q u t e r e t o u r n e l e s v a l e u r s d e l ' a t t r i b u t C h a n t e u r d e s n u p l e t s t d e l a r e l a t i o n S p e c t a - c l e t e l s q u e p o u r q u e l q u e s o i t u n n u p l e t , s ' i l s ' a g i t d ' u n e s a l l e ( d o n c u n n u p l e t u p r i s d a n s S a l l e ) , a l o r s i l e x i s t e u n s p e c t a c l e d e c e c h a n t e u r d a n s c e t t e s a l l e ( d o n c i l e x i s t e u n n u p l e t vd a n s S p e c t a c l e c o r r e s p o n d a n t c e c h a n t e u r , a v e c v.Chanteur = t.Chanteur , e t c e t t e s a l l e , a v e c u.Salle _ ID = v.Salle _ ID ) .
O n p e u t g a l e m e n t c r i r e :
{t.Chanteur | Spectacle (t) [u (Salle (u)) (v Spectacle (v) (v.Chanteur = t.Chanteur ) (u.Salle _ ID = v.Salle _ ID ) ) ] }
L a r e q u t e r e t o u r n e l e s v a l e u r s d e l ' a t t r i b u t C h a n t e u r d e s n u p l e t s t d e l a r e l a t i o n S p e c t a c l e t e l s q u e p o u r q u e l q u e s o i t u n n u p l e t , s o i t i l n e s ' a g i t p a s d ' u n e s a l l e ( d o n c i l n e s ' a g i t p a s d ' u n
n u p l e t u d e S a l l e ) , s o i t ( i m p l i c i t e m e n t i l s ' a g i t d ' u n n u p l e t u d e S a l l e e t ) i l e x i s t e u n s p e c t a c l e d e c e c h a n t e u r d a n s c e t t e s a l l e ( d o n c i l e x i s t e u n n u p l e t v d a n s S p e c t a c l e c o r r e s p o n d a n t c e c h a n t e u r , a v e c v.Chanteur = t.Chanteur , e t c e t t e s a l l e , a v e c u.Salle _ ID = v.Salle _ ID ) .
D ' o d i t d e m a n i r e n g a t i v e :
{t.Chanteur
|Spectacle
(t) [
u Salle(u
) (v Spectacle
(v
) (v.Chanteur
=t.Chanteur
) (u.Salle _ ID = v.Salle _ ID ) ) ] }
E n S Q L :
S E L E C T C h a n t e u r F R O M S p e c t a c l e t W H E R E N O T E X I S T S
1 5
-
8/9/2019 exercices corrigs : Algorithmique
16/21
( S E L E C T * F R O M S a l l e u W H E R E N O T E X I S T S
( S E L E C T * F R O M S p e c t a c l e v
W H E R E v . C h a n t e u r = t . C h a n t e u r A N D u . S a l l e _ I D = v . S a l l e _ I D
)
)
5 . Q u e l s s o n t l e s d a t e s e t l e s i d e n t i c a t e u r s d e s c o n c e r t s p o u r l e s q u e l s i l n e r e s t e
a u c u n b i l l e t i n v e n d u ?
E n a l g b r e r e l a t i o n n e l l e : C e t t e r e q u t e t a n t c o m p l e x e e t n e p e u t p a s s ' e x p r i m e r l ' a i d e
d ' u n e d i v i s i o n . I l e s t p l u s s i m p l e d e l ' c r i r e e n l a d c o m p o s a n t . U n e p r e m i r e s o u s - r e q u t e
R 1 v a p e r m e t t r e d e d t e r m i n e r l e s b i l l e t s i n v e n d u s :
R 1 = Billet _ ID (Billet ) Billet _ ID (V ente )
L a r e q u t e R 1 s u p p r i m e d e l a l i s t e d e s b i l l e t s ( Billet _ ID (Billet ) ) , c e u x q u i o n t t v e n d u s ( Billet _ ID (V ente ) ) . P o u r o b t e n i r l e s c o n c e r t s a u x q u e l s a p p a r t i e n n e n t c e s b i l l e t s i n v e n d u s , i l f a u t f a i r e u n e j o i n t u r e a v e c l a r e l a t i o n B i l l e t ( p o u r o b t e n i r l a v a l e u r d e l ' a t t r i b u t C o n c e r t _ I D
a s s o c i a u b i l l e t ) p u i s a v e c C o n c e r t ( p o u r o b t e n i r l a d a t e d u c o n c e r t a s s o c i ) , s o i t :
R 2 = Date,Concert _ ID (Concert Billet [Billet _ ID (Billet ) Billet _ ID (V ente )]
R 1
)
A u n a l , o n s u p p r i m e l a l i s t e d e s i d e n t i c a t e u r s d e c o n c e r t s e t d e l e u r d a t e a s s o c i e a u r s u l t a t
d e l a r e q u t e R 2 , s o i t :
Date,Concert _ ID (Concert )
R 2
Date,Concert _ ID (Concert Billet [Billet _ ID (Billet ) Billet _ ID (V ente )]
R 1
)
E n c a l c u l r e l a t i o n n e l :
{t.Concert _ ID, t.Date | Concert (t) [ u Billet (u) (u.Concert _ ID = t.Concert _ ID ) (v V ente (v) (v.Billet _ ID = u.Billet _ ID ) ) ] }
L a r e q u t e r e t o u r n e l e s v a l e u r s d e s a t t r i b u t s C o n c e r t _ I D e t D a t e d e s n u p l e t s t d e l a r e l a - t i o n C o n c e r t t e l s q u e p o u r t o u s l e s b i l l e t s d e c e c o n c e r t ( d o n c p o u r t o u s l e s n u p l e t s u d a n s B i l l e t t e l s q u e u.Concert _ ID = t.Concert _ ID ) , i l e x i s t e u n e v e n t e d e c e b i l l e t ( d o n c i l e x i s t e u n n u p l e t v d a n s V e n t e c o r r e s p o n d a n t c e b i l l e t , i . e . t e l q u e v.Billet _ ID = u.Billet _ ID ) .
D ' o d i t d e m a n i r e n g a t i v e :
{t.Concert _ ID, t.Date | Concert (t ) [ u Billet (u) (u.Concert _ ID = t.Concert _ ID )( v V ente (v) (v.Billet _ ID = u.Billet _ ID ) ) ] }
E n S Q L :
S E L E C T C o n c e r t _ I D , D a t e
F R O M C o n c e r t t
W H E R E N O T E X I S T S ( S E L E C T * F R O M B i l l e t u
W H E R E u . C o n c e r t _ I D = t . C o n c e r t _ I D
A N D N O T E X I S T S ( S E L E C T * F R O M V e n t e v
W H E R E u . B i l l e t _ I D = v . B i l l e t _ I D
)
)
1 6
-
8/9/2019 exercices corrigs : Algorithmique
17/21
D p e n d a n c e s f o n c t i o n n e l l e s e t
n o r m a l i s a t i o n
E x e r c i c e 5
E n o n c d e l ' e x e r c i c e
S o i t u n s c h m a d e b a s e s d e d o n n e s c o n t e n a n t l e s r e l a t i o n s u i v a n t e s :
B u r e a u ( N u m B u r e a u , N u m T e l e p h o n e , T a i l l e ) a v e c
F Bureau = { NumBureau NumT elephone,T aille ; NumTelephone NumBureau ; }O c c u p a n t ( N u m B u r e a u , P e r s o n n e I D ) a v e c F Occupant = { NumBureau PersonneID }M a t e r i e l ( N u m B u r e a u , N u m P C ) a v e c F Materiel = { NumPC NumBureau }
1 . L e s c o n t r a i n t e s c i - d e s s o u s s o n t - e l l e s v r i e s p a r c e s c h m a d e b a s e s d e d o n n e s ? S i l a r p o n s e
e s t p o s i t i v e , e x p l i q u e z p o u r q u o i . S i l a r p o n s e e s t n g a t i v e , i n d i q u e z q u e l l e ( s ) d p e n d a n c e ( s )
f o n c t i o n n e l l e ( s ) i l f a u t a j o u t e r / s u p p r i m e r o u m o d i e r p o u r q u e l a c o n t r a i n t e s o i t v r i e .
( a ) " U n b u r e a u p e u t c o n t e n i r p l u s i e u r s p o s t e s t l p h o n i q u e s . "
( b ) " I l y a u n e e t u n e s e u l e p e r s o n n e p a r b u r e a u . "
( c ) " U n b u r e a u c o n t i e n t u n s e u l o r d i n a t e u r . "
2 . A p a r t i r d e s f a m i l l e s d e d p e n d a n c e s f o n c t i o n n e l l e s i n i t i a l e s d o n n e s d a n s l ' n o n c , i n d i q u e z
q u e l l e s s o n t l e s c l s m i n i m a l e s p o s s i b l e s d e c h a q u e r e l a t i o n .
C o r r e c t i o n d e l ' e x e r c i c e 5
1 . V r i c a t i o n d e s c o n t r a i n t e s e x p r i m e s p a r d e s d p e n d a n c e s f o n c t i o n n e l l e s :
( a ) " U n b u r e a u p e u t c o n t e n i r p l u s i e u r s p o s t e s t l p h o n i q u e s "
C e t t e c o n t r a i n t e n ' e s t p a s v r i e c a r F Bureau c o n t i e n t l a d p e n d a n c e f o n c t i o n n e l l e NumBureau NumTelephone d o n c u n b u r e a u e s t a s s o c i u n e t u n s e u l n u m r o d e t l p h o n e . P o u r q u e l a c o n t r a i n t e s o i t v r i e , i l f a u d r a i t s u p p r i m e r c e t t e d p e n d a n c e s
f o n c t i o n n e l l e .
( b ) " I l y a u n e e t u n e s e u l e p e r s o n n e p a r B u r e a u . "
C e t t e c o n t r a i n t e e s t v r i e c a r F Occupant c o n t i e n t l a d p e n d a n c e f o n c t i o n n e l l e NumBureau PersonneID , d o n c u n n u m r o d e b u r e a u e s t a s s o c i e u n e e t u n e s e u l e p e r s o n n e .
( c ) " U n b u r e a u c o n t i e n t u n s e u l o r d i n a t e u r . "
C e t t e c o n t r a i n t e n ' e s t p a s v r i e c a r i l y a j u s t e l ' i n f o r m a t i o n q u ' u n o r d i n a t e u r e s t d a n s
u n s e u l b u r e a u ( NumPC NumBureau ) m a i s p a s l ' i n v e r s e . P o u r q u e l a c o n t r a i n t e s o i t v r i e , i l f a u d r a i t a j o u t e r l a d p e n d a n c e f o n c t i o n n e l l e NumBureau NumPC .
1 7
-
8/9/2019 exercices corrigs : Algorithmique
18/21
2 . D t e r m i n a t i o n d e s c l s m i n i m a l e s d e s r e l a t i o n s :
F Bureau = { NumBureau NumT elephone,T aille ; NumTelephone NumBureau ; }L a r e l a t i o n Bureau a d o n c d e u x c l s m i n i m a l e s p o s s i b l e s : NumBureau e t NumTelephone .
E n e e t , p a r t i r d e l ' a t t r i b u t NumBureau i l e s t p o s s i b l e d e d d u i r e l e s d e u x a u t r e s a t t r i b u t s d e l a r e l a t i o n ( p a r l a p r e m i r e d p e n d a n c e f o n c t i o n n e l l e ) . P a r l ' a t t r i b u t NumTelephone , i l e s t p o s s i b l e d e d d u i r e NumBureau ( 2 m e d p e n d a n c e f o n c t i o n n e l l e ) e t d o n c l ' a t t r i b u t Taille( p a r l a p r e m i r e d p e n d a n c e f o n c t i o n n e l l e ) . O n a d o n c :
[NumBureau ]+ = {NumBureau, NumT elephone,T aille } c a r NumBureau NumTelephone, T aille . e t [NumTelephone ]+ = {NumT elephone,N umBureau, T aille } , c a r NumTelephone NumBureaue t d o n c p a r t r a n s i t i v i t a v e c NumBureau Taille , o n o b t i e n t NumTelephone Taille .
F Occupant = { NumBureau PersonneID }L a r e l a t i o n Occupant a d o n c u n e s e u l e c l m i n i m a l e p o s s i b l e : NumBureau .
F Materiel = { NumPC NumBureau }L a r e l a t i o n Materiel a d o n c u n e s e u l e c l m i n i m a l e p o s s i b l e : NumPC .
P o u r p l u s d e d t a i l s s u r l e s d p e n d a n c e s f o n c t i o n n e l l e s , v o u s p o u v e z v o u s r e p o r t e r a u x p a g e s
4 2 2 4 3 0 d e [ 2 ] .
E x e r c i c e 6
E n o n c d e l ' e x e r c i c e
S o i t R u n e r e l a t i o n d o n t l e s c h m a e s t l e s u i v a n t : R ( U t i l i s a t e u r I D , N o m , P r n o m , A d r e s s e E m a i l , L o g i n , P a s s w d , S e r v e u r M a i l ) .
1 . E x p r i m e r , l ' a i d e d e d p e n d a n c e s f o n c t i o n n e l l e s , l e s c o n t r a i n t e s s u i v a n t e s q u e d o i v e n t v r i e r
l e s i n s t a n c e s d e l a r e l a t i o n R :
( a ) " O n p e u t d d u i r e l e n o m e t l e p r n o m d ' u n u t i l i s a t e u r p a r t i r d e s o n i d e n t i c a t e u r . "
( b ) " U n u t i l i s a t e u r ( i d e n t i p a r s o n i d e n t i c a t e u r ) p o s s d e u n s e u l l o g i n e t u n s e u l p a s s w o r d
p a r s e r v e u r d e m a i l s . "
( c ) " U n e a d r e s s e e m a i l e s t a s s o c i e u n e t u n s e u l i d e n t i c a t e u r d ' u t i l i s a t e u r . "
A t t e n t i o n : u n u t i l i s a t e u r p e u t a v o i r p l u s i e u r s a d r e s s e s d e m a i l s .
( d ) " U n e a d r e s s e e m a i l e s t a s s o c i e u n e t u n s e u l s e r v e u r d e m a i l s . "
2 . I n d i q u e r , p a r t i r d e l a f a m i l l e d e d p e n d a n c e s f o n c t i o n n e l l e s , i s s u e d e l a q u e s t i o n 1 , q u e l l e s
s o n t l e s c l s m i m i m a l e s d e R .
3 . I n d i q u e r , p a r t i r d e l a f a m i l l e d e d p e n d a n c e s f o n c t i o n n e l l e s , i s s u e d e l a q u e s t i o n 1 , e n q u e l l e
f o r m e n o r m a l e e s t l a r e l a t i o n R .
1 8
-
8/9/2019 exercices corrigs : Algorithmique
19/21
C o r r e c t i o n d e l ' e x e r c i c e 6
1 . E x p r e s s i o n d e c o n t r a i n t e s p a r d e s d p e n d a n c e s f o n c t i o n n e l l e s :
( a ) " O n p e u t d d u i r e l e n o m e t l e p r n o m d ' u n u t i l i s a t e u r p a r t i r d e s o n i d e n t i c a t e u r . "
C e t t e c o n t r a i n t e s ' e x p r i m e p a r l a d p e n d a n c e f o n c t i o n n e l l e :
U t i l i s a t e u r I D N o m , P r n o m E n e e t , u n i d e n t i c a t e u r d ' u t i l i s a t e u r e s t a s s o c i u n e t u n s e u l n o m e t u n e t u n s e u l
p r n o m .
( b ) " U n u t i l i s a t e u r ( i d e n t i p a r s o n i d e n t i c a t e u r ) p o s s d e u n s e u l l o g i n e t u n s e u l p a s s w o r d
p a r s e r v e u r d e m a i l s . "
C e t t e c o n t r a i n t e s ' e x p r i m e p a r l a d p e n d a n c e f o n c t i o n n e l l e :
U t i l i s a t e u r I D , S e r v e u r M a i l L o g i n , P a s s w d E n e e t p o u r u n c o u p l e ( i d e n t i c a t e u r d ' u t i l i s a t e u r , s e r v e u r d e m a i l ) e s t a s s o c i u n e t
u n s e u l l o g i n e t u n e t u n s e u l m o t d e p a s s e .
( c ) " U n e a d r e s s e e m a i l e s t a s s o c i e u n e t u n s e u l i d e n t i c a t e u r d ' u t i l i s a t e u r . "
A t t e n t i o n : u n u t i l i s a t e u r p e u t a v o i r p l u s i e u r s a d r e s s e s d e m a i l s .
C e t t e c o n t r a i n t e s ' e x p r i m e p a r l a d p e n d a n c e f o n c t i o n n e l l e :
A d r e s s e E m a i l U t i l i s a t e u r I D E n e e t , u n e a d r e s s e m a i l e s t a s s o c i e u n e t u n s e u l i d e n t i c a t e u r d ' u t i l i s a t e u r .
( d ) " U n e a d r e s s e e m a i l e s t a s s o c i e u n e t u n s e u l s e r v e u r d e m a i l s . "
C e t t e c o n t r a i n t e s ' e x p r i m e p a r l a d p e n d a n c e f o n c t i o n n e l l e :
A d r e s s e E m a i l S e r v e u r M a i l E n e e t , u n e a d r e s s e m a i l e s t a s s o c i e u n e t u n s e u l s e r v e u r d e m a i l s .
2 . I d e n t i c a t i o n d e s c l s m i n i m a l e s d e l a r e l a t i o n R
L a f a m i l l e d e d p e n d a n c e s f o n c t i o n n e l l e s a s s o c i e s R e s t :
F = { U t i l i s a t e u r I D N o m , P r n o m ; U t i l i s a t e u r I D , S e r v e u r M a i l L o g i n , P a s s w d ; A d r e s s e E m a i l U t i l i s a t e u r I D ; A d r e s s e E m a i l S e r v e u r M a i l }
L ' a t t r i b u t A d r e s s e E m a i l n e p e u t t r e d d u i t d ' a u c u n a u t r e a t t r i b u t , i l d o i t d o n c a p p a r t e n i r
t o u s l e s c l s m i n i m a l e s p o s s i b l e s d e l a r e l a t i o n . A p a r t i r d e l ' a t t r i b u t A d r e s s e E m a i l o n
p e u t d d u i r e l ' i d e n t i c a t e u r d e l ' U t i l i s a t e u r e s t d o n c , p a r t r a n s i t i v i t , l e n o m e t l e p r n o m
d e l ' u t i l i s a t e u r : A d r e s s e E m a i l U t i l i s a t e u r I D N o m , P r n o m . A p a r t i r d e c e m m e a t t r i b u t , o n p e u t e n d d u i r e a u s s i l e n o m d u s e r v e u r d e m a i l e t d o n c a v e c l ' i d e n t i c a t e u r
d ' u t i l i s a t e u r , l e l o g i n e t l e m o t d e p a s s e d e l ' u t i l i s a t e u r :
A d r e s s e E m a i l U t i l i s a t e u r I D , S e r v e u r M a i l L o g i n , P a s s w d D ' o : [AdresseEmail ]+ = { A d r e s s e E m a i l , U t i l i s a t e u r I D , N o m , P r n o m , S e r v e u r M a i l , L o - g i n , P a s s w d } = R
L a r e l a t i o n R a d o n c u n e s e u l e c l m i n i m a l e p o s s i b l e : AdresseEmail .
3 . D d u c t i o n d e l a f o r m e n o r m a l e d u s c h m a d e l a r e l a t i o n R
L e s d e u x d e r n i r e s d p e n d a n c e s f o n c t i o n n e l l e s s o n t d e l a f o r m e c l p r i m a i r e a u t r e a t t r i b u t , e t v r i e n t d o n c l e s p r o p r i t s d e l a f o r m e n o r m a l e B C N F . E n r e v a n c h e , l e s d e u x p r e m i r e s
d p e n d a n c e s f o n c t i o n n e l l e s s o n t t r a n s i t i v e s p u i s q u ' e l l e s n e s o n t c o m p o s e s q u e d ' a t t r i b u t s
n ' a p p a r t e n a n t p a s u n e c l . P a r c o n s q u e n t , l e s c h m a d e l a r e l a t i o n R e s t e n d e u x i m e f o r m e n o r m a l e .
1 9
-
8/9/2019 exercices corrigs : Algorithmique
20/21
P o u r p l u s d e d t a i l s s u r l e s f o r m e s n o r m a l e s , v o u s p o u v e z v o u s r f r e r a u x p a g e s 1 0 0 1 1 7
d e l ' o u v r a g e [ 1 ] , a u c h a p i t r e 1 5 d e l ' o u v r a g e [ 2 ] o u a u c h a p i t r e 7 d e l ' o u v r a g e [ 3 ] .
2 0
-
8/9/2019 exercices corrigs : Algorithmique
21/21
B i b l i o g r a p h y
[ 1 ] H . G a r c i a - M o l i n a , J . D . U l m a n n e t J . W i d o w , D a t a b a s e S y s t e m s - T h e C o m p l e t e B o o k ,
P r e n t i c e H a l l , 2 0 0 2
[ 2 ] R . R a m a k r i s h n a n e t J . G e h r k e , D a t a b a s e M a n a g e m e n t S y s t e m s , S e c o n d E d i t i o n ; M c G r a w -
H i l l , 2 0 0 0 , I S B N : 0 - 0 7 - 2 3 2 2 0 6 - 3
[ 3 ] A . S i l b e r s c h a t z , H . F . K o r t h e t S . S u d a r s h a n , D a t a b a s e S y s t e m C o n c e p t s , 4 t h E d i t i o n ,
M c G r a w - H i l l , 2 0 0 2 , I S B N : 0 - 0 7 - 2 2 8 3 6 3 - 7
[ 4 ] C . S o u t o u , D e U M L S Q L - C o n c e p t i o n d e b a s e s d e d o n n e s , E y r o l l e s , 2 0 0 2 , I S B N : 2 - 2 1 2 -
1 1 0 9 8 - 7