Você está na página 1de 5

NOM : PRENOM :

Université P. et M. Curie – Master d’informatique


MODULE BDIA
EXAMEN DU 19 NOVEMBRE 2007
Version CORRIGEE, éléments de réponse
Documents autorisés

Exercice 1. Entrepôt de données 4 pts


Question 1. Expliquer pourquoi, pour l’intégration de sources d’informations multiples et
hétérogènes, la plupart des industriels préfèrent l’approche entrepôts de données à l’approche
médiateur. Décrire les situations pour lesquelles l’approche médiateur est préférable.

Réponse : 1pt
L’approche entrepôts est préférable pour les décisions et les requêtes fréquentes. L’intégration des
données et leur agrégation coûteuses sont effectuées avant l’exécution des requêtes. L’intégration
et la condensation des données nécessitent de résoudre des pbs d’hétérogénéité et de sémantique
entre différentes sources de données. Si une approche médiateur est utilisée, les requêtes sont
traduites et effectuées sur les serveurs de productions,c e qui va entrer en compétition avec les
opérations de production au niveau des ressources de ces systèmes. Pa raileurs, ces requêtes vont
générer des résultats complexes qu’il faudra fusionner et filtrer. L’approche médiateur est donc
moins efficace et plus coûteuse.
Pour des requêtes rares, qui utilisent des données récentes, et/ou qui ne nécessitent pas
d’agrégations, l’approche médiateur est préférable. Dans ce cas, le coût de construire et de
maintenir un entrepôt peut ne pas être justifié ou justifiable.
Question 2. On veut construire un entrepôt de données afin de stocker les informations sur les
consultations d’un pays. On veut notamment connaître le nombre de consultations, par rapport à
différents critères (personnes, médecins, spécialités, etc. Ces informations sont stockées dans les
relations suivantes :
PERSONNE (id, nom, tel, adresse, sexe)
MEDECIN (id, tel, adresse, spécialité)
CONSULTATION (id_med, id_pers, date, prix)

Proposer un schéma relationnel qui tienne compte de la date, du jour de la semaine, du mois, du
trimestre et de l’année.
Réponse :
Dimension temps (time_key, date, joursemaine, mois, trimestre, annee)
Dimension personne (pers_id, nom, tel, adresse, sexe)
Dimension medecin (med_id, nom, tel, adresse, sexe, spécialité)
Table de faits (med_id, pers_id, time_key, prix, nombre-cons)
Question 3. A partir de ce cube, indiquez quelles opérations OLAP (roll ul, drill down, slice, dice)
il faut appliquer pour obtenir les informations suivantes :
a) le coût total des consultations par médecin en 2005
Réponse :
Roll up on temps to annee
NOM : PRENOM :
Slice annee = 2005
Roll up on *
b) le nombre de consultations par jour de la semaine, par spécialité et par sexe du patient
réponse :
roll up on temps to joursemaine
roll up on personne to sex
roll up on medecin to specialite
c) le coût des consultations par patiente pour les mois d’octobre

réponse :
roll up on temps to mois
roll up on personne to sex
roll up * on medecin
dice on personne, temps sexe = F and mois = octobre
drill down on personnes from sexe to nom

Exercice 2. BD temporelles 3 pts


Soient les deux relations suivantes (vues en cours et en TD) définies en TSQL2 :
create table Magasin (NomMag, Budget, Resp_ID) as valid state
create table Employés (ID, Nom, NomMag, Salaire) as valid state
Question 1. Exprimez en TSQL2 les requêtes suivantes :

a) Noms des employés qui sont restés dans le même service tout au long de ces 5 dernières années.
(on pourra utiliser la fonction CURRENT_DATE qui renvoie la date du jour).
Réponse : 1,5pt
Réponse DI.
SELECT SNAPSHOT E2.Nom
FROM Emp (ID, NomMag) (PERIOD) as E1, E1(Nom) as E2
WHERE CAST (VALID(E1) AS INTERVAL YEAR) >= INTERVAL ‘5’ YEAR
AND VALID(E1) MEETS CURRENT_DATE

b) Lister toutes les dates comprises entre le 1-1-83 et le 31-12-85 pendant lesquelles le budget du
magasin Jouets a changé.
Réponse : 1,5pt 8-1-84
SELECT SNAPSHOT BEGIN(VALID(M2)
FROM Magasin(NomMag, Budget) as M1, M2
WHERE M1.NomMag=’Jouets’ AND M2. NomMag=’Jouets’ AND
END(VALID(M1)) PRECEDES BEGIN(VALID(M2))
NOM : PRENOM :
AND PERIOD [1-1-83, 31-12-85] CONTAINS PERIOD (END(VALID(M1)),
BEGIN(VALID(M2))) AND M1.Budget <> M2.Budget

Exercice 3. Intégration 3 pts


Une société d’édition se munit d’un système de médiation lui permettant d’intégrer des données
provenant de 4 sources désignées par S1, S2, S3 et S4 (voir TD Intégration de données) :
Le schéma global de médiation est constitué des 3 relations suivantes :
Livres(ISBN, titre, description, catégorie, pages)
Inventaire (ISBN, quantité)
Critique (titre, appréciation, nbétoiles)
Les correspondances avec les sources de données sont définies comme suit :

C1. Livres :
Sources
S1.Livres, S2.Détails, S2.Classification
Jointures :
S1.Livre.ISBN=S2.Détails.ISBN
S1.Livre.ISBN=S2.Classification.ISBN
Correspondances :
Livres.ISBN=S1.Livre.ISBN
Livres.titre= S1.Livre.titre
Livres.description= S2.Détails.description
Livres.catégorie=S2.Classification.categorie
Livres.pages=S2.Détails.pages

C2. Inventaire
Source
S1. Inventaire.
Correspondances :
Inventaire.ISBN=S1.Inventaire.ISBN)
Inventaire.quantite=S1.Inventaire.Quantite

La relation Critique est une union de n-uplets provenant des sources S3 et S4. Elle est définie par
les deux correspondances C3 et C4 suivantes (Le médiateur dispose d’une table de nomenclature
de schéma Nomenclature NB* (notation, nbétoiles)) :
C3 Critique
Sources S3.
Correspondances :
Critique.titre=S3.Critique.titre
Critique.appreciation=S3.Critique.appreciation
Critique.nb-étoiles=NomenclatureNB*.nbétoiles
S3.Critique.note=Nomenclature.notation

C4 Critique
Source S4. FicheLecture
Correspondances :
NOM : PRENOM :
Critique.titre=S4. FicheLecture.titre
Critique.appreciation=NULL
Critique.nb-étoiles=NomenclatureNB*.nbétoiles
S4.FicheLecture.recommandation=NomenclatureNB*.notation

Question 1
On veut effectuer sur le schéma global de médiation la requête suivante : Quels sont les livres
illustrés dont la description contient le mot 'animaux' et dont la critique contient la phrase 'images
excellentes' ?

a) Ecrire la requête en SQL.

a) Requête R1.
SELECT ISBN, Titre
From Livres L, Critique C
Where L.description LIKE %animaux%
AND L.Categorie=’illustre’
AND L.titre = C.titre
AND C.appreciation LIKE %images excellentes%

b) ) Décrire brièvement les étapes du traitement de cette requête par le médiateur. Indiquer l'ordre
des étapes.
On suppose ici que l'accès à la base de la source S2, qui contient les relations Détail (ISBN, pages,
description) et Classification (ISBN, catégorie) est restreint aux seules requêtes qui précisent le n°
ISBN. (ie., la clause where ISBN=valeur est obligatoire pour toutes les requêtes sur les relations de
cette source).

1.Remplacer chaque attribut par ses mappings :


Livres.ISBN=S1.Livre.ISBN
Livres.titre= S1.Livre.titre
Livres.description= S2.Détails.description
Livres.catégorie=S2.Classification.categorie
Critique.appreciation=S3.Critique.appreciation
2. On a aussi besoin des jointures :
S1.Livre.ISBN=S2.Détails.ISBN
S1.Livre.ISBN=S2.Classification.ISBN
3. on récupère les données sur les sources :
Sur S2, on récupère tous les ISBN dont la description contient animaux et dont la catégorie =
illustre.
On envoie ces résultats sur S1, et on fait la jointure pour récupérer les titres correspondants.
NOM : PRENOM :
On envoie les titres sur S3, en récupérant uniquement ceux qui ont une appréciation qui contient
images excellentes.
4. On renvoie au médiateur l’ensemble des ISBN et des titres restant après le retour de S3.