Vous êtes sur la page 1sur 7

Modle Conceptuel de Donnes (MCD) Gestion dune Bibliothque

LIVRE
FOURNISSEUR
NomFour
AdrFour
VilleFour
CPFour

0,n

1,1

CIF

NumLivre
TitreLivre
Auteur(s)
Editeur
NbPage
Prix
0,n

Date

Emprunter

DateEmpr
0,n

DateRetEff

0,5
INSCRIT
NumInscr
NomInscr
PrenomInscr
AdrInscr
VillInscr
CP

PARAMETRE
DureEmprunt
Pnalit

Cardinalits
CIF Fournisseur Livre :
0,n Un fournisseur enregistr dans la base de donn peut fournir 0 ou plusieurs livres
1,1 Un livre est fournit par un et un seul fournisseur
Emprunter Livre Inscrit - Date:
0,n Un livre peut tre emprunt par aucun utilisateur ou tre emprunt plusieurs fois
0,5 Un inscrit peut emprunt, lorsquil est enregistr dans la base de donnes de zro cinq livres
0,n Un jour donn il peut y avoir aucun ou plusieurs emprunts

Modle Logique de Donnes (MLD)


Entits (on reprend les attributs et souligne les identifiants)
Fournisseur (NomFour, AdrFour, VilleFour, CPFour, Type)
Livre (NumLivre, TitreLivre, Auteur(s), Editeur, NbPage, Prix, NomFour)
Inscrit (NumInscr, NomInscr,PrenomInscr,AdrInscr,VillInscr, CPInscr)
Association (on reprend lattribut de lassociation et on ajoute les identifiants des entits associes)
Emprunter (NumLivre, DateEmpr, NumInscr, DateRetEff)
Paramtres
Dure demprunt 30 jours max
Pnalits 0.15 par jour de retard

Requtes

Paramtre1 : Livre(s) non-achet(s) directement leur diteur

SELECT DISTINCT Emprunter.NumInscr, Inscrit.NomInscr, Inscrit.PrenInscr,


Emprunter.Numlivre, Livre.TitreLivre, Emprunter.DateEmpr+30 AS [Retour Attendu],
(Date()-[Retour Attendu])*0.15 AS Pnalit
FROM Emprunter, Livre, Inscrit
WHERE Emprunter.DateRetEff Is Null And Emprunter.NumInscr=Inscrit.NumInscr And
Emprunter.NumLivre=Livre.NumLivre;

Requte1 : Livre(s) non-achet(s) directement leur diteur

SELECT Livre.TitreLivre AS [Livres non-achets leur diteur]


FROM Livre
WHERE (((Livre.Editeur)<>([Livre].[Nomfour])));
=> Affiche dans une table les livres qui nont pas t achets directement lditeur mais par
lintermdiaire dun libraire.

Requte2 : Couple(s) Emprunteur, titre du livre emprunt

SELECT DISTINCT Inscrit.NomInscr AS [Nom Emprunteur(s)], Livre.TitreLivre AS


[Livre(s) Emprunt(s)], Inscrit.PrenInscr AS [Prnom Emprunteur(s)]
FROM Inscrit, Livre, Emprunter
WHERE (((Inscrit.NumInscr)=[Emprunter].[NumInscr]) AND
((Livre.NumLivre)=[Emprunter].[Numlivre]))
ORDER BY Inscrit.NomInscr, Inscrit.PrenInscr;

=> Affiche une table dans laquelle sont lists tous les livres emprunts et leurs emprunteurs.

Requte3 : Nbre demprunt(s) dun livre par un mme utilisateur

SELECT DISTINCT Inscrit.NomInscr AS [Nom Emprunteur(s)], Inscrit.PrenInscr AS


[Prnom Emprunteur(s)], Livre.TitreLivre AS [Livre(s) Emprunt(s)],
Count(Emprunter.Numlivre) AS [Nb de fois]
FROM Inscrit, Livre, Emprunter
WHERE (((Inscrit.NumInscr)=[Emprunter].[NumInscr]) AND
((Livre.NumLivre)=[Emprunter].[Numlivre]))
GROUP BY Inscrit.PrenInscr, Livre.TitreLivre, (Inscrit.NomInscr)
ORDER BY Inscrit.NomInscr, Inscrit.PrenInscr;
=> Affiche dans une table le nom des emprunteurs, les livres quils ont emprunt et le nombre
de fois quils ont emprunt chacun de ces ouvrages.

Requte4 : Titre(s) non-dispo pour cause de prt et date de retour

SELECT DISTINCT Inscrit.NomInscr, Inscrit.PrenInscr, Livre.TitreLivre,


Emprunter.DateEmpr+30 AS [Retour Attendu]
FROM Emprunter, Livre, Inscrit
WHERE (((Emprunter.NumInscr)=Inscrit.NumInscr) And
((Emprunter.Numlivre)=Livre.NumLivre) And ((Emprunter.DateRetEff) Is Null))
ORDER BY Emprunter.DateEmpr+30;
(Les doublons existent toujours, pour connatre le premier exemplaire disponible, il faut
choisir la premire des lignes qui concernent un ouvrage en particulier)
=> Affiche dans une table, les emprunteurs, les livres quils ont emprunts et la date de retour
attendue pour chacun des ouvrages. Pour connatre la date de retour du premier exemplaire en
bibliothque, il suffit de retenir la premire date dans la liste qui apparat.

Requte5 : Etat utilisateur-Emprunt en cours-Pnalits

SELECT DISTINCT Emprunter.NumInscr, Inscrit.NomInscr, Inscrit.PrenInscr,


Livre.TitreLivre, Emprunter.DateEmpr+30 AS [Retour Attendu], (Date()-[Retour
Attendu])*0.15 AS Pnalit
FROM Emprunter, Livre, Inscrit
WHERE (((Emprunter.NumInscr)=Inscrit.NumInscr) And
((Emprunter.Numlivre)=Livre.NumLivre) And ((Emprunter.DateRetEff) Is Null));
=> Affiche dans une table, la liste des utilisateurs actuels, donc des emprunts en cours et les
pnalits encourues aujourdhui.

Requte6 : Formulaire Titre donne info si dispo

SELECT Livre.TitreLivre, Livre.Auteurs, Livre.Editeur, Livre.Nbpage, Livre.Prix,


Livre.Nomfour, Livre.NumLivre
FROM Livre
WHERE (((Livre.NumLivre) Not In (SELECT Numlivre FROM Emprunter)));
SELECT DISTINCT Livre.TitreLivre, Livre.Auteurs, Livre.Editeur, Livre.Nbpage,
Livre.Prix, Livre.Nomfour, Emprunter.Numlivre
FROM Livre, Emprunter
WHERE Livre.NumLivre=Emprunter.Numlivre And
((Emprunter.Numlivre) Not In (SELECT Numlivre FROM Emprunter WHERE DateRetEff Is
NULL)) AND ((Emprunter.DateRetEff) Is Not Null));
SELECT *
FROM [R61 livre jamais emprunts]
Where livre.titrelivre LIKE "*"+ [saisir Titre du livre] + "*"
UNION SELECT *
FROM [R62 Livre dj sorti mais dispo]
Where livre.titrelivre LIKE "*" + [saisir Titre du livre] + "*";
=> Affiche dans une table la liste des ouvrages qui nont jamais t emprunt ou qui ont dj
t emprunt mais qui ont t restitu la bibliothque.

Modle Conceptuel de Donnes (MCD) Gestion dune Mdiathque


(Modifications apportes au MCD gestion dune bibliothque)

TYPE OUVRAGE
CodeTyp
LibelTyp
DureEmprunt
Pnalit

Appartenir

0,n

1,1
FOURNISSEUR
NomFour
AdrFour
VilleFour
CPFour

CIF

0,n

1,1

OUVRAGE
NumOuv
TitreOuv
Auteur Inter ou Ral
Editeur ou producteur
NomActeur
NbPag Dure(min)
Prix

0,n

Date
DateEmpr

0,n

Emprunter Livre DVD CD


DateRetEff

0,5

Ou 0,3

INSCRIT
NumInscr
NomInscr
PrenomInscr
AdrInscr
VillInscr
CP

La cardinalit Inscrit Emprunter dpend du type douvrage. En effet, dans le cas o il


sagirait dun DVD ou dun CD, un inscrit peut emprunt de zro trois uvres, sil sagit
dun livre il peut en emprunter jusqu cinq la fois.

Impact de ces modifications sur les Requtes :

Requte1 : Indiquer tous les ouvrages qui nont pas t achets directement leur
diteur/producteur

La requte sera la mme, mais on y ajoutera une jointure avec la table Type Ouvrage
de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir face
quelle type duvre on se trouve. Elle se prsentera sous la forme dune table deux colonnes
Titre et Type .

Requte2 : Afficher tous les couples (emprunteurs, ouvrages emprunts)

En reprenant la requte de base, on ajoutera l aussi une jointure avec la table Type
Ouvrage de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir
face quelle type duvre on se trouve. La table prsentera alors les colonnes Emprunteurs,
Ouvrages emprunts et Type .

Requte3 : Afficher tous les couples (emprunteurs, ouvrages emprunts) et en


indiquant le nombre demprunts par un mme utilisateur dun mme titre

En reprenant la requte de base, on ajoutera l aussi une jointure avec la table Type
Ouvrage de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir
face quelle type duvre on se trouve. La table prsentera alors les colonnes Emprunteurs,
Ouvrages emprunts, Type et nombre de fois .

Requte4 : Afficher pour chaque titre non-dispo, le nom de lemprunteur et la date de


retour au plus tt

En reprenant la requte de base, on ajoutera l aussi une jointure avec la table Type
Ouvrage de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir
face quelle type duvre on se trouve. La table prsentera alors les colonnes Emprunteurs,
Ouvrages emprunts, Type et la date de retour attendu .
Mme problme que celui rencontr prcdemment deux dates

Requte5 : Afficher la liste des emprunts en cours, les emprunteurs, les dates de retour
attendu et les pnalits ventuelles

En reprenant la requte de base, on ajoutera l aussi une jointure avec la table Type
Ouvrage de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir
face quelle type duvre on se trouve. La table prsentera alors les colonnes Emprunteurs,
Ouvrages emprunts, Type,la date de retour attendu et les Pnalits .

Requte6 : Afficher les oeuvres non emprunts correspondant la demande

En reprenant la requte de base, on ajoutera l aussi une jointure avec la table Type
Ouvrage de sorte faire apparatre le libell type (c'est--dire CD, DVD, Livre) et savoir
face quelle type duvre on se trouve. La table prsentera alors les colonnes Titre,
Auteurs/interprtes/ralisateur, Editeur/producteur, Nombre de pages/dure, Prix, Nom du
fournisseur, Numro de luvre

Avec cet amnagment de la bibliothque en mdiathque, les diffrents outils de


gestion ne sont pas modifis en profondeur. Il sagit en effet le plus souvent de reprendre les
anciennes requtes et de les modifier grce une jointure avec la table Type ouvrage pour
voir dans la table-rsultat de la requte sil sagit bien dun livre ou dun DVD ou dun CD.
Dans le cas o, on avait voulu grer indiffrement les DVD, des CD, des livres, on
aurait pu crer deux autres bases de donnes sur le modle de la premire (Gestion dune
Bibliothque), en remplaant simplement livre par son quivalent (do la possibilit de
raliser la gestion de la nouvelle base de donnes comme nous lavons prsent).
On pourrait galement ajouter une entit DVD et une entit CD avec tous les attributs
quelles pourraient avoir. Mais dans ce cas, la rcriture des requte serait toute autre,
ncessitant trois requtes, suivant quil puisse sagir dun DVD, dun Cd ou dun livre.