Vous êtes sur la page 1sur 3

EXAMEN FINAL

Année universitaire : 2022/2023

Module : Bases de données (SQL, PLSQL ORACLE)


Filière : 3ème IIR - Durée : 1h30
Prof. Zakaria KHATAR

MISE EN SITUATION :

En tant qu'administrateur de la base de données pour l'entreprise de location de voitures de luxe


"AutoLocation", vous jouez un rôle crucial dans son fonctionnement. Vous gérez les informations
stockées dans les tables "VEHICULE", "CLIENT" et "LOCATION".

Le schéma relationnel de la base de données de l’entreprise :

VEHICULE (ID_VEHICULE, MARQUE, MODELE, ANNEE)


CLIENT (ID_CLIENT, PRENOM, NOM, EMAIL)
LOCATION (ID_LOCATION, #ID_VEHICULE, #ID_CLIENT, DATE_DEBUT, DATE_FIN)

 La table "VEHICULE" enregistre les détails sur chaque véhicule de luxe disponible à la location,
tels que l'identifiant unique (ID_VEHICULE), la marque, le modèle et l'année de fabrication.
Structurée de la manière suivante :

Attribut Type de données Contraintes d'intégrité


ID_VEHICULE Number PRIMARY KEY
MARQUE varchar2 NOT NULL
MODELE varchar2 NOT NULL
ANNEE Number NOT NULL

1
 La table "CLIENT" contient les informations sur les clients qui louent ces véhicules haut de
gamme, y compris leur identifiant unique (ID_CLIENT), leur prénom, leur nom et leur adresse
électronique. Structurée de la manière suivante :

Attribut Type de données Contraintes d'intégrité


ID_CLIENT Number PRIMARY KEY
PRENOM varchar2 NOT NULL
NOM varchar2 NOT NULL
EMAIL varchar2 NOT NULL

 La table "LOCATION" stocke les informations sur les locations en cours, notamment l'identifiant
unique de la location (ID_LOCATION), l'identifiant du véhicule et l'identifiant du client, ainsi que
les dates de début et de fin de la location. Structurée de la manière suivante :

Attribut Type de données Contraintes d'intégrité


ID_LOCATION Number PRIMARY KEY
ID_VEHICULE Number FOREIGN KEY
ID_CLIENT Number FOREIGN KEY
DATE_DEBUT Date NOT NULL
DATE_FIN Date NOT NULL

EXERCICE 1 - Langage De Manipulation des Données (LMD) : 5pts

1) L'entreprise "AutoLocation" a récemment acheté un parc de voitures de luxe et vous êtes en charge
de les enregistrer dans la base de données. Écrivez la requête SQL pour insérer les informations de ces
nouvelles voitures (dans le tableau ci-dessous) dans la table "VEHICULE".
Voici les informations relatives à ces nouvelles voitures :

ID_VEHICULE MARQUE MODELE ANNEE


91 Porsche 911 2023
92 Audi R8 2023

2) Écrivez la requête SQL qui supprime les informations des voitures ayant eu un accident, identifiées par
les ID_VEHICULE suivants : 84, 45 et 17.

3) Désactivez l’AUTOCOMMIT et écrivez la requête SQL qui met à jour la marque des voitures qui ont la
marque VOLKSWAGEN en VW. Ensuite, validez la transaction.
2
EXERCICE 2 – Langage d'Interrogation des Données (LID) : 7pts

4) Écrivez la requête SQL qui affiche les informations sur tous les clients portant le nom de famille
"Alami".

5) Écrivez la requête SQL qui affiche le nombre total de véhicules dont l'année de fabrication est
inférieure ou égal à 2020 ?

6) Écrivez la requête SQL qui affiche les clients (ID_CLIENT, PRENOM, NOM) qui ont loué un véhicule
entre les dates 01/01/2022 et 31/12/2022.

7) Écrivez la requête SQL qui affiche le prénom, nom et email de tous les clients, y compris ceux qui
n'ont pas effectué de location.

EXERCICE 3 – Langage Procédural (PL/SQL) : 8pts

Mise en situation :
Dans l'entreprise de location de voitures "AutoLocation", les clients VIP sont identifiés par un ID_CLIENT
compris entre 7000 et 8000. L'entreprise souhaite gérer de manière spécifique ces clients VIP en utilisant
les blocs PL/SQL.

8) Écrivez un bloc PL/SQL qui affiche les informations sur le client VIP qui a l'ID_CLIENT = 7197, sous la
forme suivante :
"Le client VIP [PRENOM] [NOM] a loué une voiture. "

9) Écrivez une procédure PL/SQL qui vérifie si un client est un VIP ou non en se basant sur l'ID_CLIENT.
 Si le client est un VIP, affichez le message "Client VIP"
 Si le client n'est pas un VIP, affichez le message "Client standard".

10) Écrivez une fonction PL/SQL qui prend en entrée un ID_VEHICULE et qui retourne l'année de
fabrication du véhicule correspondant (Attribut ANNEE de la table VHICULE).

11) Écrivez un bloc PL/SQL qui utilise un curseur pour parcourir tous les clients VIP (dont l'ID_CLIENT est
compris entre 7000 et 8000) et afficher leur nom et prénom.

Vous aimerez peut-être aussi