Exercice 3 · Bac Numérique et Sciences Informatiques La Réunion 2023 (jour 2)

Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 2 (2023)

Énoncé

EXERCICE 3 (4 points)

Cet exercice porte sur les bases de données relationnelles et le langage SQL.

Dans cet exercice, on pourra utiliser les mots clés suivants du langage SQL: SELECT, FROM, WHERE, JOIN...ON, INSERT INTO...VALUES, UPDATE...SET, COUNT, ORDER BY.

On pourra également utiliser la requête SELECT COUNT(*) FROM table qui renvoie le nombre d'enregistrements de la relation table.

Le gestionnaire d'une agence de locations de voitures a mis en place une base de données relationnelle afin de pouvoir gérer au mieux son parc automobile et ses locations.

Pour cela, il crée trois relations ( vehicule, utilisateur et location) dont on donne un extrait ci-dessous:

Relation vehicule:

id_vehicule

immatriculation

marque

modele

type

carburant

1 · AB – 135 – YZ · Peugeot · 208 · citadine · diesel

2 · EC – 246 – TP · Renault · Zoe · citadine · electrique

3 · LC – 231 – MG · Tesla · Model X · SUV · electrique

4 · ML – 128 – VM · Citroën · C3 · citadine · essence

5 · CL – 142 – CE · Citroën · C5 · berline · diesel

6 · JL – 526 – LM · Peugeot · 508 · berline · diesel

... ·... ·... ·... ·... ·...

Relation utilisateur:

id_utilisateur

nom

prenom

permis

adresse

ville

131 · MARTIN · Jeanne · 106566874 · 2 place de l'Etoile · Paris

132 · PETIT · Pierre · 75625569 · 6 rue d'Alsace · Lille

133 · DUBOIS · Louise · 1448526 · 52 rue de la Liberté · Rennes

134 · DUPONT · Paul · 1288638 · 4 boulevard Jaurès · Paris

135 · MOREAU · Violette · 14081221926 · 14 rue du 8 mai · Rouen

136 · DURAND · Kevin · 19262316811 · 20 avenue Curie · Caen

... ·... ·... ·... ·... ·...

Relation location:

id_location

id_utilisateur

id_vehicule

date_debut

date_fin

1 · 135 · 4 · 2022-04-14 · 2022-05-14

2 · 131 · 2 · 2022-06-21 · 2022-06-28

3 · 136 · 5 · 2022-06-21 · 2022-06-22

... ·... ·... ·... ·...

L'attribut id_vehicule de la relation vehicule, l'attribut id_utilisateur de la relation utilisateur et l'attribut id_location de la relation location sont des clés primaires.

Les attributs date_debut et date_fin sont de type DATE sous forme AAAA-MM-JJ où AAAA correspond à l'année, MM correspond au mois et JJ au jour du mois.

1.

a.

Écrire le résultat de la requête suivante:

SELECT id_vehicule

FROM vehicule WHERE type = 'citadine';

b.

Écrire une requête permettant d'afficher les immatriculations des véhicules diesel.

c.

Écrire le résultat de la requête suivante:

SELECT immatriculation, modele

FROM vehicule ORDER BY marque;

d.

Écrire une requête permettant de calculer le nombre de véhicules dans la table vehicule.

e.

Écrire une requête permettant d'afficher les noms et prénoms des utilisateurs par ordre alphabétique du nom.

2.

a.

Citer, en justifiant, les clés étrangères de la table location.

b.

Écrire un schéma relationnel des relations vehicule, utilisateur et location.

c.

Expliquer pourquoi la requête suivante produit une erreur:

INSERT INTO location

VALUES (1, 132, 4, '2022-05-10', '2022-05-12');

3.

Une erreur s'est glissée dans la relation utilisateur:

Louise DUBOIS habite au numéro 50 de la rue de la Liberté, et non pas au 52.

a.

Écrire une requête permettant de modifier cette information.

Un nouveau client souhaite louer une voiture. Ses informations sont les suivantes:

NOM

Prénom

n° de permis

adresse

ville

LEFEBVRE

Gabriel

124689

30 ruelle des champs

Amiens

b.

Écrire une requête permettant d'ajouter ce nouvel utilisateur.

On lui affectera un id_utilisateur de 137.

Une nouvelle location de véhicule a été effectuée: Pierre PETIT souhaite louer le véhicule de marque Tesla entre le 21 juin 2022 et le 23 juin 2022.

c.

Écrire une requête permettant d'ajouter cette information à la table location. On lui donnera un id_location égal à 4.

4.

Écrire une requête permettant de lister les modèles et les immatriculations des véhicules dont les locations ont débuté le 21 juin 2022 ainsi que les noms et prénoms des utilisateurs correspondants.

Énoncé: Exercice 3 · Bac Numérique et Sciences Informatiques La Réunion 2023 (jour 2)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. a. Écrire le résultat de la requête suivante : SELECT id_vehicule FROM vehicule WHERE type = 'citadine';

Réponse : 1 2 4

1. b. Écrire une requête permettant d'afficher les immatriculations des véhicules diesel.

Réponse : ```sql SELECT immatriculation FROM vehicule WHERE carburant = 'diesel'; ```

1. c. Écrire le résultat de la requête suivante : SELECT immatriculation, modele FROM vehicule ORDER BY marque ;

Réponse : ML – 128 – VM, C3 CL – 142 – CE, C5 AB – 135 – YZ, 208 JL – 526 – LM, 508 EC – 246 – TP, Zoe LC – 231 – MG, Model X

1. d. Écrire une requête permettant de calculer le nombre de véhicules dans la table vehicule.

Réponse : ```sql SELECT COUNT(*) FROM vehicule; ```

1. e. Écrire une requête permettant d'afficher les noms et prénoms des utilisateurs par ordre alphabétique du nom.

Réponse : ```sql SELECT nom, prenom FROM utilisateur ORDER BY nom; ```

2. a. Citer, en justifiant, les clés étrangères de la table location.

Réponse : Les clés étrangères sont `id_utilisateur` et `id_vehicule`.

Les réponses des 6 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

‹ Exercice 3 · La Réunion 2023 (jour 1)

Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL