Location d'appartements

[20 min]

Soit le schéma relationnel suivant gérant le fonctionnement d'une agence de location d'appartements.

1
APPARTEMENT(#code_appt:String, adresse:String, type:{studio,F1,F2,F3,F4,F5+}, prix_loyer:Real)
2
LOCATAIRE(#code_loc:String, nom:String, prenom:String)
3
LOCATION(#code_loc=>Locataire, #code_appt=>Appartement)
4
PAIEMENT_LOYER(#code_loc=>Locataire, #code_appt=>Appartement, #date_payement:Date, prix_paye:Real)

Question

En algèbre relationnelle et en SQL afficher tous les paiements effectués par un locataire avec le code X.

Solution

1
R1=Restriction(PAIEMENT_LOYER,code_loc=X)
2
R2=Projection(R1,prix_paye)
1
SELECT prix_paye
2
FROM PAIEMENT_LOYER
3
WHERE code_loc='X' 

Question

En algèbre relationnelle et en SQL afficher l'adresse de l'appartement loué par un locataire avec le code X.

Solution

1
R1=Restriction(LOCATION,Code_loc=X)
2
R2=Jointure(R1,APPARTEMENT, R1.code_appt=APPARTEMENT.code_appt)
3
R3=Projection(R2,adresse)
1
SELECT adresse 
2
FROM LOCATION l JOIN APPARTEMENT a
3
ON l.code_appt=a.code_appt 
4
WHERE l.code_loc='X'

Question

En algèbre relationnelle et en SQL proposer une requête qui affiche tous les appartements libres.

Solution

1
R1=JointureExterneGauche(APPARTEMENT,LOCATION, APPARTEMENT.code_appt=LOCATION.code_appt)
2
R2=Restriction (R1, code_loc=NULL)
1
SELECT *
2
FROM APPARTEMENT a LEFT JOIN LOCATION l   
3
ON l.code_appt=a.code_appt
4
WHERE l.code_loc IS NULL