exercices corrigés : Algorithmique

Embed Size (px)

Citation preview

  • 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