Bases de données : Exercices - LIPN

Christian Soutou, SQL Pour Oracle (avec exercices corrigés), Eyrolles, 2005. Nicolas Larousse, Création de bases de données, Coll. Synthex

Part of the document

Bases de données :
Exercices
IUT de Villetaneuse - R&T 1
èreannée
Laure Petrucci
18 janvier 2020
1 Diagramme de classes, Schéma relationnel, Nor-
malisationExercice 1.1 : Informatisation d"une bibliothèque
Le texte suivant a été rédigé par une bibliothécaire ne possédant pas de compétence particulière
en informatique (aidée par un " spécialiste ») :
Grâce à cette informatisation, un abonné doit pouvoir retrouver un livre en connaissant
son titre. Il doit aussi pouvoir connaître la liste des livres écrits par un certain auteur,
ou la liste par éditeur ou encore la liste par genre (bd, sf, policier, etc...). Chaque livre
est acheté en un ou plusieurs exemplaires. On souhaite également mettre en place une
procédure de recherche documentaire par mots clés. Chaque ouvrage peut être associé à
plusieurs mots clés. La gestion des prêts implique la possibilité de connaître à tout mo-
ment la liste des livres détenus par un abonné, et inversement, que l"on puisse retrouver
le nom des abonnés détenant un livre absent des rayons.
Question 1 :Modifier ce texte en essayant de préciser certains termes, de façon à obtenir un
cahier des charges précis.
Question 2 :Relire ce cahier des charges et surligner d"une couleur les mots devant conduire à des
classes et d"une autre couleur ceux devant conduire à des associations ou des classes-associations.
Question 3 :Déduire de ce cahier des charges le diagramme de classes correspondant.
Question 4 :Déduire du diagramme de classes le schéma relationnel correspondant.
Question 5 :Quelles sont les clés primaires et étrangères de ces relations?
Question 6 :Le schéma relationnel obtenu est-il en3èmeforme normale?
Question 7 :Quelqu"un propose un schéma relationnel contenant la relation suivante :
LIVRE(id_livre,id_exemplaire, titre, dateCréation, dateAcquisition, dateEdition)
Peut-on accepter cette proposition?Bases de données 1 IUT R&T Villetaneuse
2 Algèbre Relationnelle
Exercice 2.1 : Informatisation d"une bibliothèque
On souhaite effectuer des requêtes sur la bibliothèque dont le modèle relationnel a été conçu
au TD1.
Ces requêtes permettent à l"utilisateur d"interroger la base de données.
Dans un premier temps, nous exprimerons les requêtes sous forme d"opérations de l"algèbre rela-
tionnelle.
Pour imaginer facilement le résultat des opérations que l"on souhaite effectuer, voici quelques
instanciations des relations de la base :MOT_CLÉid_motclémotclé

Question 1 :Quels sont les livres de la bibliothèque intitulésLe réseau?
Question 2 :Quelles sont lesclésdes exemplaires empruntés par l"abonné numéro 3?
Question 3 :Quelles sont lesclésdes exemplaires acquis par la bibliothèque en 2003?
Question 4 :Quels sont les noms deséditeursayant publié les exemplaires que la bibliothèque possède?
Question 5 :Trouver les exemplaires du livre dont le titre estLe grand tsar blanc.
Question 6 :Quellesbandes dessinéestrouve-t-on à la bibliothèque?
Question 7 :Quels sont les livres de la bibliothèque dont l"auteur estDavid Eddings?
Question 8 :Quels sont les noms des auteurs ayant écrit à la fois des romans et des bandes
dessinées?Bases de données 4 IUT R&T Villetaneuse
Question 9 :Quels sont les noms des auteurs ayant écrit des romans ou des bandes dessinées?
Question 10 :Quels sont les noms des auteurs de romans n"ayant pas écrit de bande dessinée?
Question 11 :Quels sont les titres des romans se déroulant dans le monde du cinéma que la
bibliothèque possède?
Question 12 :Quels sont les abonnés ayant emprunté un livre intituléLe réseauet dont l"auteur estAnnika Brumark?
Question 13 :Quels sont les titres des livres publiés par les éditeurs ayant publiéLes travailleurs
de la mer?Bases de données 5 IUT R&T Villetaneuse
3 Création et initialisation de votre base de données sous linuxExercice 3.1 : Création et manipulation de la base
Chacun d"entre vous possède une seule base de données sur la machine aquanux.
Vous pouvez y accéder en utilisant l"interpréteur de commandes psql. Tapez :psql- ha quabdd- de tudiants

TP de ce module.
Question 1 :Utilisez le fichier creerBiblio.sql permettant de créer les tables de la biblio-
thèque. Editez ce fichier, étudiez-le.
Créez les tables dans votre base de données en utilisant ce fichier.\ic reerBiblio.sql
Pour vérifier que les tables ont bien été créées :
Pour vérifier la structure de chaque table :
Insérez quelques tuples dans vos tables et vérifiez ces insertions.
Supprimez ensuite toutes les tables de votre base.
L"ordre de destruction des tables est-il important, et, si oui, quelle est sa logique? Une fois que votre
supression de tables est valide, ajouter ces commandes en début de fichier creerBiblio.sql.
Question 2 :Créez à nouveau la base de données.
Question 3 :Utilisez les fichiers d"extension.txtpour remplir les tables.
Exemple : pour remplir la tablemotcle, vous utiliserez la commande :\copym otclef romm otcle.txtw ithd elimiter" ;"
Une fois que vos opérations pour remplir les tables sont valides, les ajouter en fin de fichier creerBiblio.sql.
Exercice 3.2 : Sauvegarde de la base
Question 1 :Dans un shell, utilisez la commandepg_dumppermettant de sauvegarder le contenu
de votre base. Vous redirigerez le résultat dans un fichier de nomsauve_bibli.sql:#n om_basee stv otren umérod "étudiant.
pg_dump
-
h
a quabdd
-
n
n om_base
e tudiants
>
s auve_bibli
.
sql
Éditez le fichier et examinez son contenu.
Question 2 :Détruisez les tables que vous avez créées. Vérifiez qu"il n"y a plus rien.
Question 3 :Recréez les tables et leur contenu à partir desauve_bibli.sql.
Question 4 :Recréez une dernière fois les tables et leur contenu à partir du fichiercreerBiblio.sql.
Dans la suite des TPs de bases de données, en cas de problème, régénérez votre base en utilisant
ce fichier.Bases de données 6 IUT R&T Villetaneuse
4 Langage de requêtessql: requêtes simplesRemarque préliminaire : l"éditeur de psql est malcommode. Nous vous conseillons donc de ré-
diger vos requêtes dans un fichier texterequetes.sqlpuis de les soumettre à psql :\ir equetes.sql
Lorsqu"une requête est mise au point, mettez-la en commentaires (/*. ..* /) et passez à la
suivante.
Exercice 4.1 : Requêtes sur la bibliothèque
Écrire les requêtessqlpermettant de répondre aux questions suivantes.
Question 1 :Quels sont les livres de la bibliothèque intitulésLe réseau?
Question 2 :Quelles sont lesclésdes exemplaires empruntés par l"abonné numéro 3?
Question 3 :Quelles sont lesclésdes exemplaires acquis par la bibliothèque en 2003?
Question 4 :Quels sont les noms deséditeursayant publié les exemplaires que la bibliothèque
possède?
Question 5 :Trouver les exemplaires du livre dont le titre estLe grand tsar blanc.
Question 6 :Quellesbandes dessinéestrouve-t-on à la bibliothèque?
Question 7 :Quels sont les livres de la bibliothèque dont l"auteur estDavid Eddings?
Question 8 :La bibliothèque possède-t-elle desBDsassociées au mot clé " fiction »?
Question 9 :Quels sont les noms des auteurs ayant écrit à la fois des romans et des bandes
dessinées?
Question 10 :Quels sont les noms des auteurs ayant écrit des romans ou des bandes dessinées?
Question 11 :Quels sont les noms des auteurs de romans n"ayant pas écrit de bande dessinée?
Question 12 :Quels sont les abonnés ayant emprunté un livre intituléHernaniet dont l"auteur
estVictor Hugo?Bases de données 7 IUT R&T Villetaneuse
5 RequêtessqlcomplexesExercice 5.1 : Base de données de la bibliothèque
Question 1 :Quels sont les noms des éditeurs ayant publié au moins un livre entre 1995 et 1999?
Question 2 :Quel est le nombre d"exemplaires de chaque livre?
Question 3 :Quel est le nombre de livres écrits par chaque auteur?
Question 4 :Quel est l"année moyenne d"acquisition des exemplaires par la bibliothèque?
Question 5 :Quel est, pour chaque mot clé, le nombre de livres décrits par ce mot clé? On
indiquera la clé du mot clé ainsi que le nombre de livres.
Question 6 :Quels sont les auteurs dont la bibliothèque possède plusieurs exemplaires de leurs
livres?
Exercice 5.2 : Quelques requêtes plus avancées
Question 1 :Quels sont les titres des livres publiés par les éditeurs ayant publiéLes travailleurs
de la mer?
Question 2 :Quels sont les numéros des exemplaires édités plus tard que tous ceux publiés par
l"éditeurPresses Pocket, classés par année d"édition croissante?
Question 3 :Quels sont les numéros des exemplaires édités plus tard que l"un de ceux publiés
par l"éditeurLivre de Poche, classés par date d"acquisition décroissante?
Question 4 :Quel est, pour chaque libellé de mot clé, le nombre de livres décrits par ce mot clé.
Question 5 :Quel est le nombre d"exemplaires de chaque livre avec la date moyenne de publica-
tion?
Question 6 :Quels sont les auteurs dont la bibliothèque possède le plus d"exemplaires de leurs
livres?
Question 7 :Quels sont les noms des abonnés qui ont le plus d"emprunts?Bases de données 8 IUT R&T Villetaneuse
6 Contraintes, vues, règles et fonctions
Exercice 6.1 : Contraintes de domaine, fonctions
Question 1 :Soit la relation suivante :
ARTICLE(id_article, nom_article,categorie,prixHT)
L"attributcategorieprend ses valeurs dans le domaine {1,2}.
Rédigez le script SQL de création de la table correspondant à cette relation, exécutez-le, puis
insérez quelques tuples.
Question 2 :Compléter la fonction SQL ci-dessous recevant en paramètres le prix hors taxe et
la catégorie d"un article et retournant le prix taxes comprises.