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.

Énoncé: Exercice 3 - Partie C · Bac Numérique et Sciences Informatiques Sujets zéro et spécimens sujet 2024 (sujet 2)

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