Terminale · NSI

Contrôle n°3 — Bases de données et Langage SQL

Ce contrôle évalue vos connaissances sur le modèle relationnel, l'algèbre relationnelle et les requêtes SQL fondamentales.

1h · Moyen · 3 exercices · Barème sur 20 points

Entraînement généré par IA — vérification pédagogique complète non acquise.

Ce sujet n’est pas une annale officielle. La présence d’un corrigé ne garantit pas son exactitude. Vérifie les méthodes avec ton cours ; une note d’entraînement n’est pas une note officielle. Signaler une erreur.

La fenêtre d’impression de ton navigateur permet aussi d’enregistrer en PDF. Aucun téléchargement de PDF officiel n’est annoncé ici.

Sujet

Travaille d’abord sans consulter le corrigé. Note tes réponses et les étapes de ton raisonnement.

Exercice 1Modèle relationnel et clés (6 points)

On considère une relation (table) `Emprunt` avec les attributs : `idLivre`, `titreLivre`, `idAdherent`, `nomAdherent`, `dateEmprunt`. 1. Pourquoi ce schéma de relation présente-t-il des anomalies (redondances, problèmes de mise à jour) ? 2. Proposez une décomposition en au moins deux relations qui évite ces anomalies, en précisant les clés primaires (soulignées) et les clés étrangères (fléchées).

Exercice 2Algèbre relationnelle (8 points)

Soit les relations : - `Auteur`(**idA**, nom, nationalite) - `Livre`(**idL**, titre, annee, #idA→Auteur) - `Theme`(**idT**, libelle) - `TraiteDe`(**#idL→Livre, #idT→Theme**) Exprimez en algèbre relationnelle les requêtes suivantes : 1. Les noms des auteurs de nationalité 'Française'. 2. Les titres des livres qui traitent du thème 'Science-Fiction' (libelle). 3. Les noms des auteurs qui n'ont écrit aucun livre publié après 2010.

Exercice 3Requêtes SQL (6 points)

En utilisant le schéma normalisé de la question 1.2 (tables `Livre`, `Adherent`, `Emprunt`), écrivez les requêtes SQL correspondantes : 1. Le titre des livres empruntés par l'adhérent nommé 'Dupont'. 2. Le nom des adhérents qui n'ont fait aucun emprunt. (Deux méthodes possibles, donnez-en une). 3. Pour chaque adhérent, le nombre total de livres qu'il a empruntés. Affichez `nomAdherent` et `nbEmprunts`. Incluez les adhérents avec 0 emprunt.

Corrigé et barème

Le total du barème est de 20 points. Les réponses rédigées admettent plusieurs formulations pertinentes ; compare le raisonnement, pas seulement les mots.

Exercice 1Modèle relationnel et clés : 6 points
1. Il y a redondance : le `titreLivre` est répété pour chaque emprunt du même livre, le `nomAdherent` est répété pour chaque emprunt du même adhérent. Si un livre change de titre, il faut le modifier sur toutes ses lignes d'emprunt (anomalie de mise à jour). 2. Décomposition proposée : - `Livre`(**idLivre**, titreLivre) - `Adherent`(**idAdherent**, nomAdherent) - `Emprunt`(**idLivre→Livre, idAdherent→Adherent, dateEmprunt**)
Exercice 2Algèbre relationnelle : 8 points
1. π_nom(σ_nationalite='Française'(Auteur)) 2. π_titre(Livre ⋈ (σ_libelle='Science-Fiction'(Theme) ⋈ TraiteDe)) Ou : π_titre(σ_libelle='Science-Fiction'(Livre ⋈ TraiteDe ⋈ Theme)) 3. π_nom(Auteur) - π_nom(Auteur ⋈ σ_annee>2010(Livre))
Exercice 3Requêtes SQL : 6 points
1. `SELECT DISTINCT titre FROM Livre NATURAL JOIN Emprunt NATURAL JOIN Adherent WHERE nomAdherent = 'Dupont';` 2. Méthode avec `NOT IN` : `SELECT nomAdherent FROM Adherent WHERE idAdherent NOT IN (SELECT idAdherent FROM Emprunt);` 3. `SELECT nomAdherent, COUNT(idLivre) AS nbEmprunts FROM Adherent LEFT JOIN Emprunt USING(idAdherent) GROUP BY idAdherent, nomAdherent;`

Comprendre, puis réessayer

Repère une erreur précise, explique ce qui t’a manqué et refais l’exercice sans le corrigé. Reprends la notion dans ton cours avant de passer à un autre sujet.

Planifier une révision · Chercher un autre entraînement

Nyms