Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

CORRECTION TRAVAUX DIRIGES 1

LE LANGAGE ALGEBRIQUE
Rappel du schéma relationnel de la base TRAINBASE

CONDUCTEUR (NUMCOND : D_NUMCOND, NOMCOND :D_NOMCOND,


ADR : D_VILLE, SAL : D_SAL)

RAME (NUMRAM : D_NUMRAM, NOMRAM :D_NOMRAM, CAP : D_CAP,


LOC : D_LOC)

TRAJET (NUMTRAJET : D_NUMTRAJET, NUMCOND : D_NUMCOND,


NUMRAM : D_NUMRAM, VILLE_DEP : D_VILLE, VILLE_ARR : D_VILLE,
H_DEP : D_HEURE,H_ARR : D_HEURE)

Formuler en utilisant l’algèbre relationnelle les requêtes suivantes :

1. Donnez la liste des rames dont la capacité est supérieure à 250 passagers.

R1.1 = SELECTION (RAME / CAP > 250)

2. Quels sont les numéros et noms des rames localisées à Nice ?

R2.1 = SELECTION (RAME / LOC = « NICE »)


R2.2 = PROJECTION (R2.1 / NUMRAM, NOMRAM)

3. Quels sont les numéros des conducteurs en service et les villes de départ de leurs trajets ?

R3.1 = PROJECTION (TRAJET / NUMCOND, VILLE_DEP)

4. Donner toutes les informations sur les conducteurs disponibles.

R4.1 = CONDUCTEUR

5. Quels sont les noms des conducteurs domiciliés à Paris dont le salaire est supérieur à
4000€ ?

R5.1 = SELECTION (CONDUCTEUR / ADR = « PARIS »)


R5.2 = SELECTION (R5.1 / SAL > 4000)
R5.3 = PROJECTION (R5.2 / NOMCOND)

6. Quels sont les rames localisées à Nice ou dont la capacité est inférieure à 350
passagers ?

R6.1 = SELECTION (RAME / CAP < 350)


R6.2 = UNION (R2.1, R6.1) où R2.1 est la relation temporaire générée pour la requête 2

7. Liste des trajets au départ de Nice allant à Paris après 18 heures ?

R7.1 = SELECTION (TRAJET / VILLE_DEP = « NICE »)


R7.2 = SELECTION (TRAJET / VILLE_ARR = « PARIS »)
R7.3 = SELECTION (TRAJET / H_DEP > 18.00)
R7.4 = INTERSECTION (R7.1, R7.2)
R7.5 = INTERSECTION (R7.3, R7.4)

8. Quels sont les conducteurs qui ne sont pas en service ?

R8.1 = PROJECTION (CONDUCTEUR / NUMCOND)


R8.2 = PROJECTION (TRAJET / NUMCOND)
R8.3 = DIFFERENCE (R8.1, R8.2)

9. Quels sont les trajets (numéro, ville de départ) conduits par les conducteurs de numéro 100
et 204 ?

R9.1 = SELECTION (TRAJET / NUMCOND = 100)


R9.2 = SELECTION (TRAJET / NUMCOND = 204)
R9.3 = UNION (R9.1, R9.2)
R9.4 = PROJECTION (R9.3 / NUMTRAJET, VILLE_DEP)

10. Quels sont les numéros des trajets au départ de Nice conduits par des conducteurs Niçois ?

R10.1 = SELECTION (CONDUCTEUR / ADR = « NICE »)


R10.2 = JOINTURE (R10.1, R7.1 / NUMCOND = NUMCOND) où R7.1 est générée via requête 7
R10.3 = PROJECTION (R10.2, NUMTRAJET)

11. Quels sont les trajets (numéro, ville d’arrivée et de départ) effectués par une rame qui
n’est pas localisée à Nice ?

R11.1 = SELECTION (RAME / LOC <> « NICE »)


R11.2 = JOINTURE (TRAJET, R11.1 / NUMRAM = NUMRAM)
R11.3 = PROJECTION (R11.2 / NUMTRAJET, VILLE_DEP, VILLE_ARR)

12. Quels sont les conducteurs (numéro et nom) assurant au moins un trajet au départ de Nice
avec une rame de capacité supérieure à 200 ?

R12.1 = SELECTION (RAME / CAP > 200)


R12.2 = JOINTURE (R7.1, R12.1 / NUMRAM = NUMRAM) où R7.1 est générée pour la requête 7
R12.3 = JOINTURE (R12.2, CONDUCTEUR / NUMCOND = NUMCOND)
R12.4 = PROJECTION (R12.3 / NUMCOND, NOMCOND)

13. Quels sont les noms des conducteurs domiciliés à Paris assurant un trajet au départ de
Nice avec un TGV ?

R13.1 = SELECTION (RAME / NOMRAM = « TGV »)


R13.2 = JOINTURE (R7.1, R13.1 / NUMRAM = NUMRAM) où R7.1 est générée pour la requête 7
R13.3 = JOINTURE (R13.2, R5.1 / NUMCOND = NUMCOND) où R5.1 est générée via la requête 5
R13.4 = PROJECTION (R13.3 / NOMCOND)

14. Quels sont les numéros des trajets conduits par un conducteur Niçois au départ ou à
l’arrivée de Nice avec une rame localisée à Paris ?

R14.1 = SELECTION (TRAJET / VILLE_ARR = « NICE »)


R14.2 = UNION (R14.1, R7.1) où R7.1 est générée pour la requête 7
R14.3 = SELECTION (RAME / LOC = « PARIS »)
R14.4 = JOINTURE (R14.2, R14.3 / NUMRAM = NUMRAM)
R14.5 = JOINTURE (R14.4, R10.1 / NUMCOND = NUMCOND) où R10.1 est générée requête 10
R14.6 = PROJECTION (R14.5 / NUMTRAJET)

15. Quels sont les conducteurs (numéro et nom) habitant dans la même ville que le conducteur
Dupont ?

R15.1 = SELECTION (CONDUCTEUR / NOMCOND = « DUPONT »)


R15.2 = JOINTURE (CONDUCTEUR, R15.1 / ADR = ADR)
R15.3 = PROJECTION (R15.2 / NUMCOND, NOMCOND)

16. Quels sont les numéros de conducteurs en service différents de celui de Durand ?

R16.1 = SELECTION (CONDUCTEUR / NOMCOND <> « DURAND »)


R16.2 = JOINTURE (TRAJET, R16.1 / NUMCOND = NUMCOND)
R16.3 = PROJECTION (R16.2 / NUMCOND)

17. Quelles sont les villes desservies à partir de la ville d’arrivée des trajets au départ de
Paris ?

R17.1 = SELECTION (TRAJET / VILLE_DEP = « PARIS »)


R17.2 = JOINTURE (TRAJET, R17.1 / VILLE_DEP = VILLE_ARR)
R17.3 = PROJECTION (R17.2 / VILLE_ARR)

18. Quels sont les rames (numéro) localisées dans la même ville que la rame numéro
100 ?

R18.1 = SELECTION (RAME / NUMRAM = 100)


R18.2 = JOINTURE (RAME, R18.1 / LOC = LOC)
R18.3 = SELECTION (R18.2 / NUMRAM <> 100)
R18.4 = PROJECTION (R18.3 / NUMRAM)

19. Quels sont les numéros et noms des conducteurs domiciliés dans la même ville que le
conducteur Dupont et dont le salaire est supérieur à celui de Dupont ?

R19.1 = JOINTURE (CONDUCTEUR, R15.1 / SAL > SAL) où R15.1 est générée pour la requête 15
R19.2 = PROJECTION (R19.1 / NUMCOND, NOMCOND)
R19.3 = INTERSECTION (R15.3, R19.2) où R15.3 est générée pour la requête 15

20. Quels sont les numéros et noms des conducteurs qui conduisent un trajet au départ de leur
ville de résidence ?

R20.1 = PROJECTION (CONDUCTEUR / NUMCOND, ADR)


R20.2 = INTERSECTION (R20.1, R3.1) où R3.1 est générée pour la requête 3
R20.3 = JOINTURE (R20.2, CONDUCTEUR / NUMCOND = NUMCOND)
R20.4 = PROJECTION (R20.3 / NUMCOND, NOMCOND)

21. Y a-t-il des homonymes parmi les conducteurs ? si oui donner leur numéro et nom.
R21.1 = JOINTURE (CONDUCTEUR, CONDUCTEUR / NOMCOND = NOMCOND)
R21.2 = JOINTURE (CONDUCTEUR, CONDUCTEUR / NUMCOND = NUMCOND)
R21.3 = DIFFERENCE (R21.1, R21.2)
R21.4 = PROJECTION (R21.3 / NUMCOND, NOMCOND)

Vous aimerez peut-être aussi