Contrôle de connaissance - corrigé succint
Dominante Informatique - Module Bases de Données
Lundi 9 mars 1998

Durée 1h30. Documents autorisés.

Bon courage...

A- requêtes relationnelles

Les informations concernant une base de données bibliographique sont stockées dans le schéma relationnel suivant:
Livres (numlivre, titre, annee)
Motsclefs (numlivre, motclef)
Coauteurs (numlivre, numaut)
Auteurs (numaut, nomaut, prenomaut, info)

A1- Requêtes relationnelles

Répondre en SQL aux questions suivantes :

A2- Vues

Créer une vue qui contient tous les auteurs qui ont écrit (ou coécrit) au moins un livre en 1997.

Create view Auteurs97 as
select * from Auteurs
where numauteur in (
select numauteur from Coauteurs, Livres
where annee=1997 and Coauteurs.numlivre=LIvres.numlivre)

Peut on mettre à jour cette vue (insertion, suppression)? Pourquoi ? Cette caractéristique est elle liée à la façon dont la vue a été définie ?

Oui en insertion. Mais le tuple ne sera pas visible dans la vue si Coauteurs n'a pas été mis à jour.

Oui en suppression, mais cela ne supprime pas les tuples de Coauteurs.

Dépend de la syntaxe de création de la vue.
Autre syntaxe ne supportant pas de mise à jour

Create view Auteurs97 as
select A.* from Auteurs A, Coauteurs C, Livres L
where A.numauteur=C.numauteur
annee=1997 and C.numlivre=L.numlivre

Parmi ces auteurs, lesquels ont écrit plus de dix livres sur l'ensemble de leur carrière ?

select nomauteur from Auteurs97 A97, Coauteurs C
where A97.numauteur=C.numauteur
group by A97.numauteur, nomauteur
havi9ng count (numlivre ) > 10

B- Modélisation

Cet exercice est indépendant du précédent, même s'il en reprend le contexte.

Le fond documentaire décrit dans la partie A peut maintenant être utilisé au sein d'un service de prêts. On souhaite donc enrichir son schéma relationnel pour la gestion des adhérents de la bibliothèque.

Il y a deux types d'adhérents, enseignant ou élève, La durée standard d'un prêt est de 4 semaines. Un élève peut bénéficier d'un prêt de 3 mois, mais il doit alors faire garantir sa demande par un enseignant.

Pour créer cette base de données, on propose la relation universelle suivante :

RELUNIV (numlivre, numens, nomens, prenomens, adresseens, numeleve, nomeleve, prenomeleve, adresseeleve, datesortie, dateretour)

En cas d'emprunt d'un livre par un enseignant, seuls les attributs numlivre, numens, nomens, prenomens, adresseens, datesortie sont renseignés.

En cas d'emprunt standard d'un livre par un élève, seuls les attributs numlivre, numeleve, nomeleve, prenomeleve, adresseeleve, datesortie sont renseignés. En cas d'emprunt longue durée par un élève, les attributs numens, nomens, prenomens, adresseens sont aussi renseignés.

dateretour est mis à jour au moment où le document est rendu.

Hypothèse supplémentaire : on souhaite garder un historique des emprunts.

C- questions diverses

Répondez en quelques lignes aux questions suivantes :