Exercice 2 · Bac Numérique et Sciences Informatiques Centres étrangers (Afrique) 2023 (jour 2)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 2 (2023)
Énoncé
EXERCICE 2 (4 points)
Cet exercice porte sur les bases de données relationnelles et le langage SQL.
L'énoncé de cet exercice utilise les mots-clés du langage SQL suivants: SELECT, FROM, WHERE, JOIN...ON, UPDATE...SET, INSERT INTO...VALUES..., COUNT, ORDER BY.
La clause ORDER BY suivie d'un attribut permet de trier les résultats par ordre croissant de l'attribut.
SELECT COUNT(*) renvoie le nombre de lignes d'une requête.
Un zoo souhaite pouvoir suivre ses animaux et ses enclos. Tous les représentants d'une espèce sont réunis dans un même enclos. Plusieurs espèces, si elles peuvent cohabiter ensemble, pourront partager le même enclos.
Il crée une base de données utilisant le langage SQL avec une relation (ou table) animal qui recense chaque animal du zoo. Vous trouverez un extrait de cette relation ci-dessous (les unités des attributs age, taille et poids sont respectivement ans, m et kg):
animal
id_animal
nom
age
taille
poids
nom_espece
145 · Romy · 18 · 2.3 · 130 · tigre du Bengale
52 · Boris · 30 · 1.10 · 48 · bonobo
... ·... ·... ·... ·... ·...
225 · Hervé · 10 · 2.4 · 130 · lama
404 · Moris · 6 · 1.70 · 100 · panda
678 · Léon · 4 · 0.30 · 1 · varan
Il crée la relation enclos dont vous trouverez un extrait ci-dessous (l'unité de l'attribut surface est m²):
enclos
num_enclos
ecosysteme
surface
struct
date_entretien
40 · banquise · 50 · bassin · 04/12/2024
18 · forêt tropicale · 200 · vitré · 05/12/2024
... ·... ·... ·... ·...
24 · savane · 300 · clôture · 04/12/2024
68 · désert · 2 · vivarium · 05/12/2024
Il crée également la relation espece dont vous trouverez un extrait ci-dessous:
espece
nom_espece
classe
alimentation
num_enclos
impala · mammifères · herbivore · 15
ara de Buffon · oiseaux · granivore · 77
... ·... ·... ·...
tigre du Bengale · mammifères · carnivore · 18
caïman · reptiles · carnivore · 45
manchot empereur · oiseaux · carnivore · 40
lama · mammifères · herbivore · 13
1. Cette question porte sur la lecture et l'écriture de requêtes SQL simples.
a.
Écrire le résultat de la requête ci-dessous:
SELECT age, taille, poids FROM animal WHERE nom = 'Moris';
b.
Écrire une requête qui permet d'obtenir le nom et l'âge de tous les animaux de l'espèce bonobo, triés du plus jeune au plus vieux.
2. Cette question porte sur le schéma relationnel.
a.
Citer, en justifiant, la clé primaire et la clé étrangère de la relation espece.
b.
Donner le modèle relationnel de la base de données du zoo. On soulignera les clés primaires et on fera précéder les clés étrangères d'un #.
3. Cette question porte sur les modifications d'une table.
L'espèce ornithorynque a été entrée dans la base comme étant de la classe des oiseaux alors qu'il s'agit d'un mammifère.
a.
Écrire une requête qui corrige cette erreur dans la table espece.
Le couple de lamas du zoo vient de donner naissance au petit lama nommé "Serge" qui mesure 80 cm et pèse 30 kg.
b.
Écrire une requête qui permet d'enregistrer ce nouveau venu au zoo dans la base de données, sachant que les clés primaires de 1 à 178 sont déjà utilisées.
4. Cette question porte sur la jointure entre deux tables
a.
Recopier et compléter les [...] afin de recenser le nom et l'espèce de tous les animaux carnivores vivant en vivarium dans le zoo:
SELECT [...]
FROM animal
JOIN espece ON [...]
JOIN enclos ON [...]
WHERE enclos.struct = 'vivarium' and [...];
On souhaite connaître le nombre d'animaux dans le zoo qui font partie de la classe des oiseaux.
b.
Écrire la requête qui permet de compter le nombre d'oiseaux dans tout le zoo.

Corrigé
Corrigé proposé par AprenAI (non officiel)
1.a. Écrire le résultat de la requête ci-dessous : SELECT age, taille, poids FROM animal WHERE nom = 'Moris';
Réponse : 6, 1.70, 100
1.b. Écrire une requête qui permet d'obtenir le nom et l'âge de tous les animaux de l'espèce bonobo, triés du plus jeune au plus vieux.
Réponse : ```sql SELECT nom, age FROM animal WHERE nom_espece = 'bonobo' ORDER BY age; ```
2.a. Citer, en justifiant, la clé primaire et la clé étrangère de la relation espece.
Réponse : Clé primaire : nom_espece Clé étrangère : num_enclos
2.b. Donner le modèle relationnel de la base de données du zoo. On soulignera les clés primaires et on fera précéder les clés étrangères d'un #.
Réponse : animal(id_animal, nom, age, taille, poids, #nom_espece) enclos(num_enclos, ecosysteme, surface, struct, date_entretien) espece(nom_espece, classe, alimentation, #num_enclos)
3.a. Écrire une requête qui corrige cette erreur dans la table espece.
Réponse : ```sql UPDATE espece SET classe = 'mammifères' WHERE nom_espece = 'ornithorynque'; ```
3.b. Écrire une requête qui permet d'enregistrer ce nouveau venu au zoo dans la base de données, sachant que les clés primaires de 1 à 178 sont déjà utilisées.
Réponse : ```sql INSERT INTO animal (id_animal, nom, age, taille, poids, nom_espece) VALUES (179, 'Serge', 0, 0.8, 30, 'lama'); ```
Les réponses des 5 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 1 · Centres étrangers (Afrique) 2023 (jour 1) · Exercice 4 · Centres étrangers (Afrique) 2022 (jour 1) ›
Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL
- Exercice 3 - Bases de données relationnelles · Centres étrangers (Afrique) 2025 (jour 1)
- Exercice 1 · Centres étrangers (Afrique) 2025 (jour 2)
- Exercice 3 - Partie A · Centres étrangers (Afrique) 2024 (jour 1)
- Exercice 3 - Partie B · Centres étrangers (Afrique) 2024 (jour 2)
- Exercice 1 · Centres étrangers (Afrique) 2023 (jour 1)
- Exercice 4 · Centres étrangers (Afrique) 2022 (jour 1)
- Exercice 3 · Centres étrangers (Afrique) 2022 (jour 2)
- Exercice 4 · Centres étrangers (Afrique) 2021 (jour 2)