Vous êtes sur la page 1sur 3

Université Saad Dahleb – Blida 1 2020/2021

Département d’Informatique Cycle : L3 ISIL

CORRIGE TD2 OMSI

Enoncé : Soit le schéma relationnel, de la base de données BIB, suivant :

OUVRAGE (Côte, titre, date_édition, ISBN, catégorie, nb_pages, support, périodicité)

Côte : Identifiant de l’ouvrage interne à la bibliothèque (concerne tous les ouvrages)


ISBN : International Standard Book Number (concerne les livres et revues seulement)
Catégorie : Livre, Revue, Multimédia
Nb_pages : le nombre de pages d’un livre (concerne les livres seulement)
Support : DVD, Cassettes, bande (concerne les ouvrages multimédias seulement)
Périodicité : mensuelle, bimensuelle, semestrielle, annuelle (concerne les revues seulement)

AUTEURS (AuteurID, nom, prénom, profil, type, grade, spécialité, fonction, style)

Profil : systèmes d’information, linguistique, politologue, littérature …


type : enseignant, cadre d’entreprise, écrivain
grade : Maitre-Assistant, Maitre de conférence, Professeur … (les enseignants seulement)
Spécialité : Informatique, Electronique, Mécanique, Sociologie … (les enseignants seulement)
Fonction : Directeur des Systèmes d’Information, Chef de Département Finances … (les cadres seulement)
Style : les romanciers, essayistes, nouvellistes, poètes .. (les écrivains seulement)

ECRIT (AuteurID, Côte, ordre)

Ordre de l’auteur dans l’ouvrage = 1 (auteur principal), 2, 3, 4

LECTEURS (LecteurID, nom, prénom, type, cycle, niveau, grade, fonction)

type : étudiant, enseignant, fonctionnaire


cycle : cycle d’études (Licence, Master, Doctirat) (étudiants seulement)
niveau : niveau d’études (1ère année, 2ème année …) (étudiants seulement)
grade : Maitre-Assistant, Maitre de conférence, Professeur … (les enseignants seulement)
fonction : secrétaire, financier, magasinier … (fonctionnaire seulement)

EMPRUNT (LecteurID, Côte, datemp, daterest, obs)

Datemp : date d’emprunt


Daterest : date de restitution de l’ouvrage à la bibliothèque
Un ouvrage doit être restitué à la bibliothèque au plus tard 10 jours après son emprunt
Obs : observation sur l’état de l’ouvrage lors de la restitution (abimé, ratures, RAS)
Université Saad Dahleb – Blida 1 2020/2021
Département d’Informatique Cycle : L3 ISIL

A) Modélisation

1. Donnez le MCD correspondant au schéma relationnel ci-dessus


LECTEUR
DATEMP
1, n LecteurID
datemp
nom
prénom
type
EMPRUNT cycle
1, n niveau
daterest
0, n grade
obs
fonction
OUVRAGE
AUTEURS
Côte,
Titre ECRIT AuteurID
date_édition 1, n 1, n
Ordre Nom
ISBN
Prénom
Catégorie
Profil
nb_pages
Type
Support
Grade,
Périodicité
Spécialité
Fonction
Style
2. Donnez le diagramme de classes correspondant
EMPRUNT
ETU
daterest Cycle
DATE obs Niveau
LECTEUR
datemp 1..* ENS

1..* LecteurID Grade


nom
prénom FCT
LIVRE
Fonction
Isbn ECRIT
Nb pages OUVRAGE ENS
* Ordre
REVUE Côte grade
spécial.
ISBN Titre AUTEURS
Périodicité date_édition 1..*
ECRIV
AuteurID
MM style
1..* Nom
Support Prénom
Profil CADRE
fonction

3. Comparez les trois modèles (relationnel, E/A, objet), que pouvez-vous conclure ?
Contrairement au modèle relationnel et au MCD (E/A), le concept d’héritage dans le modèle objet
(diagramme de classes) a permis d’optimiser le modèle et d’éliminer beaucoup de redondances.
Université Saad Dahleb – Blida 1 2020/2021
Département d’Informatique Cycle : L3 ISIL

B) Requêtes SQL sur la base BIB

1. Listes des lecteurs (LecteurID, nom, prénom) ayant accusé un retard dans la restitution de l’ouvrage

USE BIB
SELECT L.LecteurID, nom, prénom FROM LECTEURS L
JOIN EMPRUNT E ON L.LecteurID=E.LecteurID
WHERE daterest- datemp>10

2. Nombre d’ouvrages (NB_OUV) par catégorie ouvrage, date / année d’édition, auteur principal
(auteurID, nom, prénom) et profil de l’auteur principal

USE BIB
SELECT catégorie, date_édition, year(date_édition) as année_édition, A.auteurID, nom, prénom,
profil, COUNT(O.côte) as NB_OUV FROM OUVRAGE O
JOIN ECRIT E ON O.Côte=E.Côte
JOIN AUTEUR A ON E.auteurID=A.auteurID
WHERE ordre=1
GROUP BY catégorie, date_édition, year(date_édition), auteurID, nom, prénom, profil

C) Modélisation dimensionnelle (entrepôt de données DW_BIB)

1. Modèle en étoile de la requête (B2)

TD_CATOUVGE TF
TD_AUTEUR
Catégorie Catégorie
Date_edition AuteurID
auteurID Nom
TD_Date Prénom
Profil
NB_OUV
Date_edition
Année

2. A partir de DW_BIB, répondre en SQL à la requête suivante : Nombre d’ouvrages (NB_OUV) par
catégorie, année d’édition et profil de l’auteur principal

USE DW_BIB
SELECT categorie, année_edition, profil, SUM (NB_OUV) as NB_OUV FROM TF
JOIN TD_Date TDD ON TF.date_èdition=TF.date_édition
JOIN TD_AUTEUR TDA ON TF.auteurID=TDA.auteurID
GROUP BY categorie, année_edition, profil

3. En comparant les scripts des deux requêtes (B2) à partir de BIB et (C2) à partir de DW_BIB, que
peut-on conclure ?

Contrairement au script (B2) qui manipule des données sources (BIB) d’un niveau de granularité très
fin (détaillé), le script (C2) manipule des données précalculées (DW_BIB) d’un niveau plus agrégé
(moins de détail) d’où un script (C2) plus simple par rapport à celui de (B2). Le nombre de tuples
manipulé par (B2) étant plus élevé par rapport à celui de (C2) d’où un temps d’exécution de (B2)
plus élevé par rapport à celui de (C2).

Vous aimerez peut-être aussi