Exercice 3 - Partie C · Bac Numérique et Sciences Informatiques Sujets zéro et spécimens sujet 2024 (sujet 2)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Sujet 2 (2024)
Énoncé
EXERCICE 3 (8 points)
Cet exercice porte sur la programmation Python (dictionnaire), la programmation orientée objet, les bases de données relationnelles et les requêtes SQL.
Cet exercice est composé de 3 parties indépendantes.
On veut créer une application permettant de stocker et de traiter des informations sur des livres de science-fiction. On désire stocker les informations suivantes:
l'identifiant du livre ( id);
le titre ( titre);
le nom de l'auteur ( nom_auteur);
l'année de première publication ( ann_pub);
une note sur 10 ( note).
Voici un extrait des informations que l'on cherche à stocker:
Livres de science-fiction
id · titre · auteur · ann_pub · note
1 · 1984 · Orwell · 1949 · 10
2 · Dune · Herbert · 1965 · 8
14 · Fondation · Asimov · 1951 · 9
4 · Ubik · K.Dick · 1953 · 9
8 · Blade Runner · K.Dick · 1968 · 8
7 · Les Robots · Asimov · 1950 · 10
15 · Ravage · Barjavel · 1943 · 6
17 · Chroniques martiennes · Bradbury · 1950 · 7
9 · Dragon déchu · Hamilton · 2003 · 8
10 · Fahrenheit 451 · Bradbury · 1953 · 8
Partie C
On utilise maintenant une base de données relationnelle. Les commandes nécessaires ont été exécutées afin de créer une table livres. Cette table livres contient toutes les données sur les livres. On obtient donc la table suivante:
livres
id
titre
auteur
ann_pub
note
1 · 1984 · Orwell · 1949 · 10
2 · Dune · Herbert · 1965 · 8
14 · Fondation · Asimov · 1951 · 9
4 · Ubik · K.Dick · 1953 · 9
8 · Blade Runner · K.Dick · 1968 · 8
7 · Les Robots · Asimov · 1950 · 10
15 · Ravage · Barjavel · 1943 · 6
17 · Chroniques martiennes · Bradbury · 1950 · 7
9 · Dragon déchu · Hamilton · 2003 · 8
10 · Fahrenheit 451 · Bradbury · 1953 · 8
L'attribut id est la clé primaire pour la table livres.
10.
Expliquer pourquoi l'attribut auteur ne peut pas être choisi comme clé primaire.
11.
Donner le résultat renvoyé par la requête SQL suivante:
SELECT titre
FROM livres
WHERE auteur = 'K.Dick';
12.
Écrire une requête SQL permettant d'obtenir les titres des livres écrits par Asimov publiés après 1950.
13.
Écrire une requête SQL permettant de modifier la note du livre Ubik en la passant de 9/10 à 10/10.
On souhaite proposer plus d'informations sur les auteurs des livres. Pour cela, on crée une deuxième table auteurs avec les attributs suivants:
id de type INT;
nom de type TEXT;
prenom de type TEXT;
annee_naissance de type INT (année de naissance).
auteurs
id
nom
prenom
annee_naissance
1 · Orwell · George · 1903
2 · Herbert · Franck · 1920
3 · Asimov · Isaac · 1920
4 · K.Dick · Philip · 1928
5 · Bradbury · Ray · 1920
6 · Barjavel · René · 1911
7 · Hamilton · Peter · 1960
La table livres est aussi modifiée comme suit:
livres
id
titre
id_auteur
ann_pub
note
1 · 1984 · 1 · 1949 · 10
2 · Dune · 2 · 1965 · 8
14 · Fondation · 3 · 1951 · 9
4 · Ubik · 4 · 1953 · 9
8 · Blade Runner · 4 · 1968 · 8
7 · Les Robots · 3 · 1950 · 10
15 · Ravage · 6 · 1943 · 6
17 · Chroniques martiennes · 5 · 1950 · 7
9 · Dragon déchu · 7 · 2003 · 8
10 · Fahrenheit 451 · 5 · 1953 · 8
14.
Expliquer l'intérêt d'utiliser deux tables ( livres et auteurs) au lieu de regrouper toutes les informations dans une seule table.
15.
Expliquer le rôle de l'attribut id_auteur de la table livres.
16.
Écrire une requête SQL qui renvoie le nom et le prénom des auteurs des livres publiés après 1960.
17.
Décrire par une phrase en français le résultat de la requête SQL suivante:
SELECT titre
FROM livres
JOIN auteurs ON id_auteur = auteurs.id
WHERE ann_pub - annee_naissance < 30;
Un élève décide de créer une application d'annuaire pour sa classe. On pourra retrouver, grâce à cette application, différentes informations sur les élèves de la classe: nom, prénom, date de naissance, numéro de téléphone, adresse email, etc.
18.
Expliquer en quoi la réalisation de ce projet pourrait être problématique.

Corrigé
Corrigé proposé par AprenAI (non officiel)
10. Expliquer pourquoi l'attribut auteur ne peut pas être choisi comme clé primaire.
Réponse : Une clé primaire doit identifier de façon unique chaque tuple. Un auteur peut avoir écrit plusieurs livres (doublons).
11. Donner le résultat renvoyé par la requête SQL suivante : SELECT titre FROM livres WHERE auteur = 'K.Dick';
Réponse : Ubik, Blade Runner
12. Écrire une requête SQL permettant d'obtenir les titres des livres écrits par Asimov publiés après 1950.
Réponse : ```sql SELECT titre FROM livres WHERE auteur = 'Asimov' AND ann_pub > 1950; ```
13. Écrire une requête SQL permettant de modifier la note du livre Ubik en la passant de 9/10 à 10/10.
Réponse : ```sql UPDATE livres SET note = 10 WHERE titre = 'Ubik'; ```
14. Expliquer l'intérêt d'utiliser deux tables (livres et auteurs) au lieu de regrouper toutes les informations dans une seule table.
Réponse : Éviter la redondance des informations et les anomalies ou risques d'incohérence lors des mises à jour.
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 relationnelles, SGB… · Sujets zéro et spécimens sujet 2024 (sujet 1) · Exercice 1 - Questions 1 à 6 · Sujets zéro et spécimens sujet 2023 (sujet 1) ›
Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL
- Exercice 3 - Bases de données relationnelles, SGB… · Sujets zéro et spécimens sujet 2024 (sujet 1)
- Exercice 1 - Questions 1 à 6 · Sujets zéro et spécimens sujet 2023 (sujet 1)
- Exercice 1 - Bases de données · Sujets zéro et spécimens sujet 2023 (sujet 2)
- Exercice 4 · Sujets zéro et spécimens sujet 2021 (sujet 1)