Exercice 1 · Bac Numérique et Sciences Informatiques Polynésie 2023 (jour 1)

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

Énoncé

EXERCICE 1 (4 points)

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

L'énoncé de cet exercice utilise les mots clefs du langage SQL suivants: SELECT, FROM, WHERE, JOIN ON, UPDATE, SET, INSERT INTO VALUES, COUNT, ORDER BY.

La ligue féminine de basket-ball publie les données relatives à chaque saison sur le site web de la ligue. On y retrouve des informations concernant les équipes participantes, les calendriers et les résultats des matchs ainsi que les statistiques des joueuses. Dans cet exercice, nous allons nous intéresser à la base de données relationnelle LFB_2021_2022 permettant le stockage et la gestion des données de la saison régulière de basket-ball féminin 2021-2022.

1. Table Equipe

Voici ci-dessous le contenu entier de la relation (table) Equipe:

id_equipe

nom

adresse

telephone

1 · Saint-Amand · 39 avenue du Clos, 59230 Saint-Amand-les-Eaux · 03 04 05 06 07

2 · Basket Landes · 15 place Saint-Roch, 40000 Mont-De-Marsan · 05 06 07 08 09

3 · Villeneuve d'Ascq · 2 rue Breughel, 59650 Villeneuve-d'Ascq · 03 02 01 00 01

4 · Tarbe · Quai de l'Adour, 65000 Tarbes · 05 04 03 02 02

5 · Lyon · 451 cours Emile Zola, 69100 Villeurbanne · 04 05 06 07 08

6 · Bourges · 6 rue du Pré Doulet, 18000 Bourges · 02 03 04 05 06

7 · Charleville-Mézières · Rue de la Vieille Meuse, 08000 Charleville-Mézières · 03 05 07 09 01

8 · Landerneau · Kerouel, 29410 Pleyber-Christ · 02 04 06 08 00

9 · Angers · 330 rue Saint-Léonard, 49000 Angers · 02 00 08 06 04

10 · Lattes Montpellier · 157 rue de la Porte Lombarde, 34970 Lattes · 04 03 02 01 00

11 · Charnay · Allée des Ecoliers, 71850 Charnay-lès-Mâcon · 03 01 09 07 05

12 · Roche Vendée · BP 151, 85004 La Roche-Sur-Yon Cedex · 02 05 08 01 04

On donne ci-contre le schéma relationnel de la table Equipe.

Dans ce schéma, un attribut souligné indique qu'il s'agit d'une clé primaire.

a.

Après le chargement de la table Equipe, expliquer pourquoi la requête suivante produit une erreur:

INSERT INTO Equipe

VALUES (11,"Toulouse","2 rue du Nord, 40100 Dax","05 04 03 02 01");

b.

Expliquer le choix du domaine pour l'attribut telephone.

c.

Donner le résultat de la requête suivante:

SELECT nom, adresse, telephone FROM Equipe WHERE id_equipe = 5;

d.

Donner et expliquer le résultat de la requête suivante:

SELECT COUNT(*) FROM Equipe;

e.

Écrire la requête SQL permettant d'afficher les noms des équipes par ordre alphabétique.

f.

Écrire la requête SQL permettant de corriger le nom de l'équipe dont l' id_equipe est égal à 4. Le nom correct est "Tarbes".

2. Table Joueuse

Sur le site web de la fédération de basket-ball féminin, nous pouvons consulter la composition des équipes. Pour chaque joueuse, on peut y lire en plus de son nom, sa date de naissance, sa taille ainsi que le poste occupé dans l'équipe. Ces informations sont présentées dans une page web dont le titre est « Fiche Joueuse », page construite à partir de la table Joueuse dont voici un extrait:

id_joueuse

nom

prenom

date_naissance

taille

poste

id_equipe

1 · Berkani · Lisa · 19/05/1997 · 176 · 2 · 7

2 · Alexander · Kayla · 05/01/1991 · 193 · 5 · 5

3 · Magarity · Regan · 30/04/1996 · 192 · 4 · 2

4 · Muzet · Johanna · 08/07/1997 · 183 · 3 · 11

5 · Kalu · Ezinne · 26/06/1992 · 173 · 2 · 8

6 · Sigmundova · Jodie Cornelie · 20/04/1993 · 193 · 5 · 9

7 · Dumerc · Céline · 09/07/1982 · 162 · 2 · 2

8 · Slonjsak · Iva · 16/04/1997 · 183 · 3 · 9

9 · Michel · Sarah · 10/01/1989 · 180 · 2 · 6

10 · Lithard · Pauline · 11/02/1994 · 164 · 1 · 1

On donne ci-contre le schéma relationnel de la table Joueuse.

Un attribut souligné indique qu'il s'agit d'une clé primaire. Le symbole # devant un attribut indique qu'il s'agit d'une clé étrangère.

La clé étrangère Joueuse.id_equipe fait référence à la clé primaire Equipe.id_equipe de la table Equipe.

a.

Expliquer pourquoi l'attribut id_equipe a été déclaré clé étrangère.

b.

On souhaite supprimer toutes les informations relatives à une équipe. Expliquer pourquoi on ne peut pas directement supprimer cette équipe dans la table Equipe.

c.

Écrire la requête SQL qui permet d'afficher les noms et les prénoms des joueuses de l'équipe d'Angers par ordre alphabétique des noms. On supposera que l'utilisateur qui écrit cette requête ne connaît pas l'identifiant de l'équipe d'Angers.

3. Résultats des matchs

Les résultats des matchs sont aussi publiés sur le site web de la ligue. Par exemple, pour le match n°10 qui a opposé l'équipe de Villeneuve d'Ascq à l'équipe de Bourges le 23/10/2021 on retrouve les informations suivantes:

Le score final du match a été de 73 points pour l'équipe de Villeneuve d'Ascq qui a joué à domicile (nom affiché à gauche sur la page) contre 78 points pour l'équipe de Bourges qui a joué en déplacement (nom affiché à droite sur la page).

a.

À partir de l'analyse de cet exemple, proposer un schéma relationnel pour la table Match. Si des clés étrangères sont définies, préciser quelles tables et quels attributs elles référencent.

b.

Écrire la requête SQL qui permet l'insertion dans la table Match de l'enregistrement correspondant à l'exemple donné ci-dessus.

4. Statistiques des joueuses

En plus du score final, sur la page web sont affichées des informations relatives aux performances des joueuses pendant le match.

Nous allons retenir ici seulement 3 critères: le nombre de points marqués, les rebonds et les passes décisives effectués.

Voici un extrait des statistiques du match n°53 qui a opposé l'équipe de Landerneau à celle de Charleville-Mézières le 16/04/2022:

a.

Proposer un schéma relationnel pour stocker les informations relatives aux statistiques des joueuses dans la base de données, telles que présentées ci-dessus.

b.

Écrire la requête SQL qui a été utilisée pour afficher la partie « Extrait des statistiques » de l'exemple ci-dessus.

Énoncé: Exercice 1 · Bac Numérique et Sciences Informatiques Polynésie 2023 (jour 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1.a. Après le chargement de la table Equipe, expliquer pourquoi la requête suivante produit une erreur

Réponse : Violation de la contrainte d'unicité de la clé primaire : l'id_equipe 11 existe déjà dans la table Equipe (attribué à Charnay).

1.b. Expliquer le choix du domaine pour l'attribut telephone.

Réponse : Un numéro de téléphone commence souvent par un zéro (qui serait perdu dans un entier), contient des séparateurs (espaces) et ne subit aucun calcul arithmétique.

1.c. Donner le résultat de la requête suivante : SELECT nom, adresse, telephone FROM Equipe WHERE id_equipe = 5;

Réponse : Lyon, 451 cours Emile Zola, 69100 Villeurbanne, 04 05 06 07 08

1.d. Donner et expliquer le résultat de la requête suivante : SELECT COUNT(*) FROM Equipe;

Réponse : 12

1.e. Écrire la requête SQL permettant d'afficher les noms des équipes par ordre alphabétique.

Réponse : ```sql SELECT nom FROM Equipe ORDER BY nom; ```

1.f. Écrire la requête SQL permettant de corriger le nom de l'équipe dont l'id_equipe est égal à 4. Le nom correct est "Tarbes".

Réponse : ```sql UPDATE Equipe SET nom = 'Tarbes' WHERE id_equipe = 4; ```

2.a. Expliquer pourquoi l'attribut id_equipe a été déclaré clé étrangère.

Réponse : Pour établir une relation entre la joueuse et l'équipe dans laquelle elle joue, en référençant la clé primaire id_equipe de la table Equipe.

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 - Partie B · Polynésie 2024 (jour 2) · Exercice 2 · Polynésie 2023 (jour 2) ›

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