Exercice 2 - Bases de données relationnelles et S… · Bac Numérique et Sciences Informatiques Métropole 2024 (sujet 1)

Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Métropole France 1 (2024)

Énoncé

Cet exercice traite de protocoles de routage, de sécurité des communications et de base de données relationnelle.

Une agence de voyage propose des croisières en bateau. Chaque croisière a un nom unique et passe par quatre escales correspondant à des villes qui ont elles aussi des noms différents.

Pour gérer les réservations de ses clients, l'agence utilise une base de données. Voici la description des trois relations de cette base dont les clés primaires ont été soulignées et les clés étrangères indiquées par un #:

Remarque: l'énoncé de cet exercice utilise tout ou une partie des mots suivants du langage SQL: SELECT, FROM, WHERE, JOIN ON, INSERT INTO, VALUES, UPDATE SET, OR, AND.

Partie A

L'agence de voyage possède deux bureaux distincts.

Elle passe par un prestataire de service qui héberge sa base de données et utilise un système de gestion de base de données relationnelle.

Vous trouverez ci-après un schéma du réseau entre les deux bureaux de l'agence de voyage et le prestataire.

On peut y voir les différents routeurs (nommés de A à I) ainsi que le coût des liaisons entre eux.

1.

Donner deux services rendus par un système de gestion de bases de données relationnelles.

Partie B

4.

Expliquer pourquoi l'attribut id_client a été choisi comme clé primaire dans la relation clients.

5.

Définir ce qu'est une clé étrangère. Donner la ou les clés étrangères de chaque relation qui en a en précisant la clé primaire qu'elles référencent.

L'agence a obtenu l'autorisation de faire escale dans quatre nouvelles villes: Puerto saibo, Puerto kifecho, Puerto kifebo et Puerto repo. Elle souhaite créer une nouvelle croisière qui passera par ces quatre villes. Un stagiaire de l'agence demande de l'aide à une Intelligence Artificielle (IA):

Il tape alors la requête proposée mais obtient le message d'erreur suivant du SGBD (Systèmes de Gestion de Bases de Données): FOREIGN KEY constraint failed.

6.

Expliquer l'erreur commise et proposer une solution.

Partie C

7.

Jean Barc, un allemand né le 29 juin 1972, demande un geste commercial en raison de sa fidélité à l'agence. Expliquer les requêtes SQL suivantes saisies par le gestionnaire:

SELECT id FROM clients

WHERE nom = 'Barc' AND prenom = 'Jean' AND date_naissance = '1972/06/29' AND pays = 'Allemagne';

SELECT id_reservation FROM reservations

WHERE id_client = 1243;

8.

Écrire les deux requêtes de la question 7. sous la forme d'une requête unique.

9.

Un client souhaite modifier sa réservation d'identifiant 20456. Il souhaite remplacer la croisière de cette réservation par la toute dernière offre de l'agence: la Croisière Puerto. Écrire une requête SQL qui permet de mettre à jour la base de données pour lui donner satisfaction.

10.

Donner une requête SQL permettant d'obtenir les noms, prénoms et dates de naissance des clients ayant choisi la croisière nommée Croisière Piano ou celle nommée Croisière Puerto.

Énoncé: Exercice 2 - Bases de données relationnelles et S… · Bac Numérique et Sciences Informatiques Métropole 2024 (sujet 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Donner deux services rendus par un système de gestion de bases de données relationnelles.

Réponse : Deux services parmi : - Assurer la persistance et la sauvegarde des données. - Garantir la cohérence et l'intégrité des données (contraintes d'intégrité, clés primaires et étrangères). - Gérer les accès concurrents aux données (transactions, verrouillage). - Gérer les autorisations et la sécurité des accès utilisateurs. - Offrir une interface d'interrogation et de manipulation efficace des données via un langage standardisé (SQL).

4. Expliquer pourquoi l'attribut id_client a été choisi comme clé primaire dans la relation clients.

Réponse : L'attribut `id_client` permet d'identifier chaque client de manière unique, ce qui évite les risques d'homonymie (deux clients différents pouvant avoir le même nom, le même prénom et la même date de naissance).

5. Définir ce qu'est une clé étrangère. Donner la ou les clés étrangères de chaque relation qui en a en précisant la clé primaire qu'elles référencent.

Réponse : Une clé étrangère est un attribut (ou groupe d'attributs) d'une relation dont les valeurs doivent correspondre aux valeurs de la clé primaire d'une autre relation (ou être nulles), assurant ainsi l'intégrité référentielle. Dans cette base : - Dans la relation `reservations` : - `#id_client` est une clé étrangère qui référence la clé primaire `id_client` de la relation `clients`. - `#nom_croisiere` est une clé étrangère qui référence la clé primaire `nom` de la relation `croisieres`. - Dans la relation `croisieres` : - `#escale_1`, `#escale_2`, `#escale_3` et `#escale_4` sont des clés étrangères qui référencent chacune la clé primaire `nom` de la relation `villes`.

6. Expliquer l'erreur commise et proposer une solution.

Réponse : Deux erreurs expliquent l'échec de la contrainte de clé étrangère : 1. Les nouvelles villes d'escale ne sont pas encore enregistrées dans la relation `villes`. Comme chaque escale référence la clé primaire `nom` de `villes`, insérer une croisière avec des villes inexistantes viole l'intégrité référentielle. 2. L'IA a écrit `'Puerto sebo'` au lieu de `'Puerto saibo'`. Solution : Il faut d'abord insérer les quatre nouvelles villes dans la table `villes` (avec leurs coordonnées géographiques) à l'aide de requêtes `INSERT INTO villes ...`, puis insérer la nouvelle croisière dans `croisieres` en veillant à orthographier correctement `'Puerto saibo'` pour la première escale.

Les réponses des 4 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 - Bases de données · Métropole 2 remplacement 2025 · Exercice 1 · Métropole 1 remplacement 2024 ›

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