• Aucun résultat trouvé

Algèbre relationnelle - Requêtes SQL

N/A
N/A
Protected

Academic year: 2021

Partager "Algèbre relationnelle - Requêtes SQL"

Copied!
30
0
0

Texte intégral

(1)

Algèbre relationnelle - Requêtes SQL

Ingénierie numérique et simulations

LYCÉECARNOT(DIJON), 2019 - 2020

Germain Gondor

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 1 / 20

(2)

Sommaire

1 Schéma relationnel

2 Questions préliminaires

3 Requêtes

(3)

Schéma relationnel

Sommaire

1 Schéma relationnel

2 Questions préliminaires

3 Requêtes

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 3 / 20

(4)

Schéma relationnel

On donne le schéma relationnel suivant où les clés candidates sont données engras:

• PERSONNE(idPers.,nom,prénom)

• FILM(idFilm,idRéalis.,titre,genre,année) où idRéalis. est une clé étrangère qui fait référence au schéma de la relationPERSONNE

• JOUER(idAct.,idFilm,rôle) où idAct. et idFilm sont des clés étrangères qui font respectivement référence aux schémas de relationPERSONNEetFILM

• CINEMA(idCiné,nom,adresse)

• PROJECTION(idCiné,idFilm,jour) où idCiné et idFilm sont des clés étrangères qui font respectivement référence aux schémas de la relationCINEMAetFILM

(5)

Schéma relationnel

JOUER : idAct. idFilm rôle

1 5 Grâce

2 5 Tom Edison

3 4 Bess

4 4 Jan

5 3 Vincent Vega

6 3 Jules Winnfield 7 3 Butch Coolidge 8 2 Beverly & Elliot Mantle 9 1 James Ballard 10 1 Helen Remington 11 1 Gabrielle

4 5 Chuck

16 7 May Day

19 8 John Wilson 20 9 Jim Williams 20 10 Lester Burnham

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 5 / 20

(6)

Schéma relationnel

PERSONNE : idPers. nom prénom

1 Kidman Nicole

2 Bettany Paul

3 Watson Emily

4 Skarsgard Stellan 5 Travolta John 6 L. Jackson Samuel

7 Willis Bruce

8 Irons Jeremy

9 Spader James

10 Hunier Holly 11 Arquette Rosanna

12 Wayne John

13 von Trier Lars 14 Tarantino Quentin 15 Cronenberg David 16 Mazursky Paul

17 Jones Grâce

18 Glen John

19 Eastwood Clint

20 Spacey Kevin

21 Mendes Sam

22 Jolie Angelina

(7)

Schéma relationnel

FILM : idFilm idRéalis. titre genre année

1 15 Crash Drame 1996

2 15 Faux-Semblants Epouvante 1988

3 14 Pulp Fiction Policier 1994

4 13 Breaking the waves Drame 1996

5 13 Dogville Drame 2002

6 12 Alamo Western 1960

7 18 Dangereusement vôtre Espionnage 1985 8 19 Chasseur blanc, coeur noir Drame 1989

10 21 American Beauty Drame 1999

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 7 / 20

(8)

Schéma relationnel

CINEMA : idCiné. nom adresse

2 le Fontenelle 78160 Marly-le-Roi 1 le Renoir 13100 Aix-en-Provence 3 Gaumont Wilson 31000 Toulouse

4 Espace Ciné 93800 Epinay-sur-Seine

(9)

Schéma relationnel

PROJECTION :IdCiné IdFilm jour

3 6 09/11/1960

1 6 05/07/1980

2 7 09/05/1985

1 2 12/03/1988

2 8 01/02/1989

3 6 02/12/1990

2 2 08/12/1990

1 3 02/03/1994

4 3 08/04/1994

2 3 05/07/1994

3 3 05/11/1994

4 3 06/11/1994

1 1 07/05/1996

1 4 02/08/1996

2 4 02/09/1996

2 4 02/12/1996

2 1 11/05/1997

2 10 03/10/2000

2 5 02/05/2002

2 5 03/05/2002

4 6 01/08/2002

2 6 01/08/2002

2 11 02/03/2004

2 9 02/12/2008

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 9 / 20

(10)

Questions préliminaires

Sommaire

1 Schéma relationnel

2 Questions préliminaires

3 Requêtes

(11)

Questions préliminaires

Q - 1 : Déterminer une clé candidate pour la relation PROJECTION.

Une clé candidate est un ensemble minimal d’attributs permettant d’identifier de façon unique chaque tuple.

• Dans la relationPROJECTION, les deux premiers tuples montrent que les attributsidCinéetidFilmne suffisent pas à définir une clé candidate.

• Il existe deux tuples ayant pour attributjour01/08/2002 et pour attributidFilm6. AinsijouretidFilmne peuvent former une clé candite pourPROJECTION.

• Enfin, il n’existe pas deux tuples ayant le même attributidFilmet jour. Ces deux derniers attributs peuvent servir de clé candidate pour la relationPROJECTION.

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 11 / 20

(12)

Questions préliminaires

Q - 1 : Déterminer une clé candidate pour la relation PROJECTION.

Une clé candidate est un ensemble minimal d’attributs permettant d’identifier de façon unique chaque tuple.

• Dans la relationPROJECTION, les deux premiers tuples montrent que les attributsidCinéetidFilmne suffisent pas à définir une clé candidate.

• Il existe deux tuples ayant pour attributjour01/08/2002 et pour attributidFilm6. AinsijouretidFilmne peuvent former une clé candite pourPROJECTION.

• Enfin, il n’existe pas deux tuples ayant le même attributidFilmet jour. Ces deux derniers attributs peuvent servir de clé candidate pour la relationPROJECTION.

(13)

Questions préliminaires

Q - 2 :Quelle particularité de tuples pourrait faire que les attri- butsidAct.etidFilmde la relationJOUERne soient plus une clé candidate pour cette relation ?

Si un acteur joue deux rôles dans le même film alors idAct. etidFilm cessent d’être clé candidate.

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 12 / 20

(14)

Questions préliminaires

Q - 2 :Quelle particularité de tuples pourrait faire que les attri- butsidAct.etidFilmde la relationJOUERne soient plus une clé candidate pour cette relation ?

Si un acteur joue deux rôles dans le même film alors idAct. etidFilm cessent d’être clé candidate.

(15)

Questions préliminaires

Q - 3:Est-ce querôlepourrait être une clé primaire de la relation JOUER?

Avec les éléments actuels de la relationJOUER,rôle pourrait être une clé primaire de la relation. Cependant, si deux acteurs jouent le même rôle dans le film (remplaçant, doublure) ou si deux films ont un rôle commun ( Rocky Balboa dans les Films Rocky 1, Rocky 2,. . . ).

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 13 / 20

(16)

Questions préliminaires

Q - 3:Est-ce querôlepourrait être une clé primaire de la relation JOUER?

Avec les éléments actuels de la relationJOUER,rôle pourrait être une clé primaire de la relation. Cependant, si deux acteurs jouent le même rôle dans le film (remplaçant, doublure) ou si deux films ont un rôle commun ( Rocky Balboa dans les Films Rocky 1, Rocky 2,. . . ).

(17)

Requêtes

Sommaire

1 Schéma relationnel

2 Questions préliminaires

3 Requêtes

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 14 / 20

(18)

Requêtes

Dans toutes les questions suivantes, proposer une requête enalgèbre relationnellepuis enlangage SQLpermettant d’apporter une réponse à la question.

(19)

Requêtes

Q - 4:Quels sont les titres des films de la relationFILM?

SELECT t i t r e FROM FILM ;

πtitre(FILM)

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 16 / 20

(20)

Requêtes

Q - 4:Quels sont les titres des films de la relationFILM? SELECT t i t r e FROM FILM ;

πtitre(FILM)

(21)

Requêtes

Q - 5 : Quels sont les titres des films dont le genre est Epou- vante ?

SELECT t i t r e FROM FILM WHERE genre= " Epouvante " ;

πtitre

σgenre="Epouvante"(FILM)

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 17 / 20

(22)

Requêtes

Q - 5 : Quels sont les titres des films dont le genre est Epou- vante ?

SELECT t i t r e FROM FILM WHERE genre= " Epouvante " ;

πtitre

σgenre="Epouvante"(FILM)

(23)

Requêtes

Q - 6:Qui jouait le rôle de Grace ? Dans quel film était-ce ?

SELECT nom , p r énom FROM PERSONNE pe

JOIN JOUER j o ON pe . i d P e r s = j o . i d A c t WHERE r o l e= " Grace " ; πnom,prénom

σrôle="Grâce"

PERSONNE Z

PERSONNE.idPers=JOUER.idActJOUER

SELECT t i t r e FROM FILM f i

JOIN JOUER j o ON f i . i d F i l m = j o . i d F i l m WHERE r o l e= " Grace " ;

πtitre

σrôle="Grâce"

FILM Z

FILM.idFilm=JOUER.IdFilmJOUER

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 18 / 20

(24)

Requêtes

Q - 6:Qui jouait le rôle de Grace ? Dans quel film était-ce ?

SELECT nom , p r énom FROM PERSONNE pe

JOIN JOUER j o ON pe . i d P e r s = j o . i d A c t WHERE r o l e= " Grace " ;

πnom,prénom

σrôle="Grâce"

PERSONNE Z

PERSONNE.idPers=JOUER.idActJOUER

SELECT t i t r e FROM FILM f i

JOIN JOUER j o ON f i . i d F i l m = j o . i d F i l m WHERE r o l e= " Grace " ;

πtitre

σrôle="Grâce"

FILM Z

FILM.idFilm=JOUER.IdFilmJOUER

(25)

Requêtes

Q - 6:Qui jouait le rôle de Grace ? Dans quel film était-ce ?

SELECT nom , p r énom FROM PERSONNE pe

JOIN JOUER j o ON pe . i d P e r s = j o . i d A c t WHERE r o l e= " Grace " ;

πnom,prénom

σrôle="Grâce"

PERSONNE Z

PERSONNE.idPers=JOUER.idActJOUER

SELECT t i t r e FROM FILM f i

JOIN JOUER j o ON f i . i d F i l m = j o . i d F i l m WHERE r o l e= " Grace " ;

πtitre

σrôle="Grâce"

FILM Z

FILM.idFilm=JOUER.IdFilmJOUER

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 18 / 20

(26)

Requêtes

Q - 6:Qui jouait le rôle de Grace ? Dans quel film était-ce ?

SELECT nom , p r énom FROM PERSONNE pe

JOIN JOUER j o ON pe . i d P e r s = j o . i d A c t WHERE r o l e= " Grace " ;

πnom,prénom

σrôle="Grâce"

PERSONNE Z

PERSONNE.idPers=JOUER.idActJOUER

SELECT t i t r e FROM FILM f i

JOIN JOUER j o ON f i . i d F i l m = j o . i d F i l m WHERE r o l e= " Grace " ;

πtitre

σrôle="Grâce"

FILM Z

FILM.idFilm=JOUER.IdFilmJOUER

(27)

Requêtes

Q - 7:Quels ont-été les jours de projection au cinéma le Fonte- nelle ?

SELECT j o u r FROM CINEMA c i JOIN PROJECTION p r

ON c i . i d C i n e = p r . I d C i n e WHERE nom= " l e F o n t e n e l l e " ;

πjour σnom="le Fontenelle" CINEMA Z idCiné

PROJECTION

!!

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 19 / 20

(28)

Requêtes

Q - 7:Quels ont-été les jours de projection au cinéma le Fonte- nelle ?

SELECT j o u r FROM CINEMA c i JOIN PROJECTION p r

ON c i . i d C i n e = p r . I d C i n e WHERE nom= " l e F o n t e n e l l e " ;

πjour σnom="le Fontenelle" CINEMA Z idCiné

PROJECTION

!!

(29)

Requêtes

Q - 8:Quels ont-été les films projetés au cinéma le Fontenelle ?

SELECT t i t r e FROM

CINEMA c i JOIN PROJECTION p r

ON c i . i d C i n e = p r . I d C i n e JOIN FILM f i ON f i . i d F i l m = p r . I d F i l m

WHERE nom= " l e F o n t e n e l l e " ;

πtitreσnom="le Fontenelle"CINEMA Z

idCinéPROJECTION Z

PROJECTION.idFilm=FILM.IdFIlmFILM

!!

Informatique (MPSI & PCSI) Td-1 BDD-1 Année 2019 - 2020 20 / 20

(30)

Requêtes

Q - 8:Quels ont-été les films projetés au cinéma le Fontenelle ?

SELECT t i t r e FROM

CINEMA c i JOIN PROJECTION p r

ON c i . i d C i n e = p r . I d C i n e JOIN FILM f i ON f i . i d F i l m = p r . I d F i l m

WHERE nom= " l e F o n t e n e l l e " ;

πtitreσnom="le Fontenelle" CINEMA Z

idCinéPROJECTION Z

PROJECTION.idFilm=FILM.IdFIlmFILM

!!

Références

Documents relatifs

Précondition : les deux relations ont au moins un attribut en commun.. Précondition: les deux relations n’ont pas d’attributs

Pour illustrer l’intérêt du transfert de coûts entre tuples de différentes contraintes (non unaires), considérons un WCN contenant 4 variables x, y, z et t avec pour chaque

In the join refinement step, the suppression of joins can generate additional tuples in the target instance. For such a reason, similarly to the generation of questions in the

Le serveur de données intègre un Système de Gestion de Base de Données SGBD (logiciel) ainsi qu’un espace de stockage des données (support physique).. E XEMPLE :

• PROJECTION(idCiné,idFilm,jour) où idCiné et idFilm sont des clés étrangères qui font respectivement référence aux schémas de la relation CINEMA et FILM. 2

As seen in the proof of Theorem 11, a s-orbit associated to an anisoclinic regular p-tuple of 3-spaces of degree 1 contains exactly four s-pairs, and exactly one of them such that U

toute expression logique de prédicat de 1-er ordre – note: seulement 5 sont primitives (lesquels ?). • La puissance expressive de l'algèbre

La projection de R1 sur une partie de ses attributs {A1, A2, ...} produit une relation R2 dont le schéma est restreint aux attributs mentionnés en opérande, comportant les