Вы находитесь на странице: 1из 4

Université Montesquieu Bordeaux IV 2006-2007

Licence 3 - Gestion

Correction travail à rendre

Présentation
Dans ce travail, on se propose de réaliser une base de données pour gérer les emprunts
dans une bibliothèque.
Une petite bibliothèque souhaite informatiser la gestion de son fonds documentaire et
de ses emprunts. Dans cette perspective, le bibliothécaire, qui n'est pas un
informaticien, a rédigé le texte suivant :

Grâce à cette informatisation, un abonné devra pouvoir retrouver un livre en


connaissant son titre. Il doit aussi pouvoir connaître la liste des livres d'un auteur. Un
abonné a le droit d'emprunter au maximum dix ouvrages simultanément. Les prêts
sont accordés pour une durée de quinze jours. La gestion des prêts doit permettre de
connaître, à tout moment, la liste des livres détenus par un abonné, et inversement,
de retrouver le nom des abonnés détenant un livre absent des rayons. Un livre peut
être écrit par plusieurs auteurs. Chaque livre est acheté en un ou plusieurs
exemplaires.

Travail à réaliser

Le travail devra être fait en deux étapes :

Etape 1 :

Le MCD suivant permet de décrire la situation de gestion d’emprunt pour une


bibliothèque.
Université Montesquieu Bordeaux IV 2006-2007
Licence 3 - Gestion

Exemplaire
Livre Num_Exemplaire
date_achat
Num_Livre ….
titre
date_parition
….. 1,n Exister 1,1

0,n
1,n

Emprunter

Ecrire date_debut
date_Fin

1,n 0,n

Auteur Abonne

Num_Auteur Num_Abonne
Nom_Auteur nom
…… adresse
téléphone
mail

Le modèle relationnel correspondant à ce MCD est

Abonne (Num_Abonne, nom, adresse, téléphone, mail)


Auteur (Num_Auteur, Nom_Auteur)
Livre (Num_Livre, titre, date_parition)
Exemplaire (Num_Exemplaire, date_achat, #Num_Livre)
Ecrire (#Num_Livre, #Num_Auteur)
Emprunt (#Num_Abonne, #Num_exemplaire, Date_debut, Date_fin)

Etape 2 :

Ecrire les requêtes SQL permettant de :

1. Donner la liste des titres des livres.

Select titre
Université Montesquieu Bordeaux IV 2006-2007
Licence 3 - Gestion

From Livre

2. Donner la liste des noms des abonnés.

Select nom

From Abonne

3. Donner la liste des adhérents ayant emprunté des livres de Grin.

SELECT DISTINCT Abonne.nom

FROM Abonne, Emprunt, Auteur, Ecrire, exemplaire

WHERE Abonné.Num_Abonne = Emprunt.Num_Abonne

And Auteur.Num_Auteur = Ecrire.Num_Auteur

And Exemplaire.Num_Livre = Ecrire.Num_Livre

And Exemplaire.Num_ Exemplaire = Emprunt.Num_Exemplaire

And Auteur.Nom_Auteur="Grin";

4. Donner la liste des abonnés qui n’ont jamais rien emprunté

Select nom

From Abonne,

Where Abonne.Num_Abonne NOT IN

(Select Num_Abonne

From Emprunt

Where Abonne.Num_Abonne = Emprunt.NumAbonne)

5. Donner le nom de l’abonné qui le plus de prêts

Dans un premier lieu on établit une requête qui détermine pour chaque abonné le

nombre de prêt qui l’a effectué ;

Soit req1 le nom de cette requête

SELECT Abonne.Num_Abonne, count(Num_Exemplaire) AS nbrEmprunt

FROM Emprunt, Abonne


Université Montesquieu Bordeaux IV 2006-2007
Licence 3 - Gestion

WHERE Abonne.Num_Abonne=Emprunt.Num_Abonne

GROUP BY Abonne.Num_Abonne;

Ensuite, nous déterminons le maximum des emprunts ;

Soit req2 le nom de cette requête

SELECT max(nbrEmprunt) AS MaxEmprunt

FROM req1;

Enfin, nous déterminons le nom de l’abonne qui a le plus d’emprunt

SELECT Abonne.nom

FROM Abonne, req1, req2

WHERE req1.nbrEmprunt=req2.MaxEmprunt

And Abonne.Num_Abonne=req1.Num_Abonne;

On pourra également en une seule requête déterminer l’abonné qui a le plus de

prêt ;

SELECT TOP 1 Abonne.nom


FROM Empruntpret, Abonne
WHERE Abonne.Num_Abonne=Emprunt.Num_Abonne
GROUP BY Abonne.nom
ORDER BY Count(Emprunt.Num_Exemplaire) DESC;

Вам также может понравиться