BDMD NI248. Exercice 1 : Cube



Documents pareils
Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

Bases de données multidimensionnelles et mise en œuvre dans Oracle

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Cours Bases de données 2ème année IUT

Le langage SQL Rappels

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Langage SQL : créer et interroger une base

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Systèmes de Gestion de Bases de Données

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les Entrepôts de Données

Bases de données relationnelles

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Les entrepôts de données et l analyse de données

Les entrepôts de données

Les bases de données

Plan. Introduction Eléments de la théorie des systèmes d'informations Les entrepôts de données (Datawarehouse) Les datamart Architecture Modélisation

16H Cours / 18H TD / 20H TP

Fouille de Données : OLAP & Data Warehousing

Présentation Windows Azure Hadoop Big Data - BI

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Master Exploration Informatique des données DataWareHouse

2 Serveurs OLAP et introduction au Data Mining

Département Génie Informatique

OLAP : Mondrian + Pentaho. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Devoir Data WareHouse

Introduction au Système de Gestion de Base de Données et aux Base de Données

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Urbanisation des SI-NFE107

Bases de Données OLAP

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Le Langage SQL version Oracle

Cours 4 : Agrégats et GROUP BY

Le Langage De Description De Données(LDD)

Intégrité des données

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

TD n 10 : Ma première Base de Données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de données avancées Introduction

Plan. Ce qu est le datawarehouse? Un modèle multidimensionnel. Architecture d un datawarehouse. Implémentation d un datawarehouse

A QUOI SERVENT LES BASES DE DONNÉES?

Evry - M2 MIAGE Entrepôts de Données

Compétences Business Objects

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

et les Systèmes Multidimensionnels

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

1 Introduction et installation

TP Bases de données réparties

Optimisation SQL. Quelques règles de bases

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

1 Modélisation d une base de données pour une société de bourse

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Gestion des utilisateurs et de leurs droits

SQL Historique

Nouveautés CRM 2015 & Migration. By Tanguy Touzard MVP CRM

Les bases fondamentales du langage Transact SQL

FileMaker 13. Guide de référence SQL

Évaluation et optimisation de requêtes

Evry - M2 MIAGE Entrepôt de données

Introduction aux Bases de Données 2004/2005

Bases de Données relationnelles et leurs systèmes de Gestion

1. Base de données SQLite

Jean-François Boulicaut & Mohand-Saïd Hacid

Introduction à la B.I. Avec SQL Server 2008

Groupe 11 TABLE DES MATIERES

David LUCAS 15/01/10 Ludovic HUET Sébastien LE NECHET Jason JAMOT. Projet BO

Cours SQL. Base du langage SQL et des bases de données

MODE OPERATOIRE OPENOFFICE BASE

SOMMAIRE. Travailler avec les requêtes... 3

Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel

Bases de Données. Plan

Dossier I Découverte de Base d Open Office

LES ENTREPOTS DE DONNEES

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

I4 : Bases de Données

Business Intelligence avec SQL Server 2014 Maîtrisez les concepts et réalisez un système décisionnel

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

SWISS ORACLE US ER GRO UP. Newsletter 5/2014 Sonderausgabe. OBIF DB licensing with VMware Delphix 12c: SQL Plan / Security Features

BI = Business Intelligence Master Data-ScienceCours 3 - Data

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Techniques d optimisation des requêtes dans les data warehouses

Notes de cours : bases de données distribuées et repliquées

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Administration des bases de données. Jean-Yves Antoine

Transcription:

Nom : Prénom : Page 1 Université Pierre et Marie Curie Paris 6 Master d'informatique BDMD NI248 23 mars 2011 Documents autorisés - 2h Exercice 1 : Cube 5 pts Soit une table Ventes (Magasin, Produit, Couleur, Prix). On suppose qu il y a 2 magasins, 4 produits et 3 couleurs, et qu il n y a pas de valeurs nulles dans la table. On fait l hypothèse que tous les magasins ont vendu chaque produit dans chacune des couleurs.. On crée les vues matérialisées suivantes : Create materialized View VCube as Select magasin, produit, couleur, sum(prix) as p From Ventes Group by Cube (magasin, produit, couleur); Create materialized View VRollup as Select magasin, produit, couleur, sum(prix) as p From Ventes Group by Rollup (magasin, produit, couleur) ; Question 1. Donnez le nombre de n-uplets de chacune de ces deux vues : Nb de n-uplets de VCube : Nb de n-uplets de VRollup :. Réponse : VCube : 60 24 pour (m,p,c) 8 pour (m,p), 2 pour m, 6 pour (m,c), 12 pour (p, c), 4 pour p, 3 pour c et 1 pour l ensemble). VRollup : 35 24 pour (m,p,c) 8 pour (m,p), 2 pour m, et 1 pour l ensemble). Question 2. On considère les 7 requêtes suivantes calculant le montant total des ventes de ipod : Q1 : select sum(prix) from Ventes where produit = ipod ; Q2 : select sum(p) from VCube where produit = ipod ; Q3 : select sum(p) from VRollup where produit = ipod ; Q4 : select sum(p) from VCube where produit = ipod magasin is null couleur is null; Q5 : select sum(p) from VRollup where produit = ipod magasin is null couleur is null; Q6 : select sum(p) from VCube where produit = ipod magasin is not null couleur is not null; Q7: select sum(p) from VRollup where produit = ipod magasin is not null couleur is not null; On veut regrouper ces requêtes en classes d équivalence, c'est-à-dire partitionner les requêtes en groupes tels que -toutes les requêtes d un groupe sont équivalentes (donnent le même résultat sur une base satisfaisant les

Nom : Prénom : Page 2 conditions données dans l exercice) - il n y ait pas de requêtes appartenant à des groupes différents qui soient équivalentes (càd : les requêtes appartenant à des groupes différents renvoient des résultats différents). Donnez les différents groupes, en indiquant clairement la constitution de chaque groupe G1 :.. Réponse : G1 : Q1, Q4, Q6, Q7 G2 : Q2 G3 : Q3 G4 : Q5 Exercice 2 : Requêtes décisionnelles 8 pts La BD multi dimensionnelle d une chaine de supermarchés a le schéma suivant. Les clés sont soulignées. Aucun attribut n a la valeur NULL. Des jointures naturelles peuvent être faites entre des attributs de même nom. Vente (prod, num_date, client, promo, magasin, prix, coût, quantité) L attribut prix est le prix d achat unitaire d un exemplaire du produit. L attribut quantité est le nombre d exemplaires achetés. Prod (prod, nom, classe, marque, poids) Classe ( classe, sous_cat, catégorie, groupe, famille). Une famille est formée de plusieurs groupes, un groupe de plusieurs catégories, une catégorie de plusieurs sous-catégories, et une sous-catégorie est formée de plusieurs classes. Date_vente (num_date, la_date, année, num_jour, num_semaine, num_mois, trimestre) num_date est un entier, la_date est de type date, num_jour est dans [1, 31], num_semaine est dans [1, 52], num_mois est dans [1, 12], trimestre est dans [1, 4]. Client (client, nom, zone, revenu, nbre_enfant) L attribut client est le numéro de client, zone est la zone géographique de résidence. Magasin (magasin, nom, numéro, zone, superficie) zone est la zone géographique du magasin. Zone (zone, ville, agglomération, région, pays) Un pays est composé de plusieurs régions. Promo (promo, nom, media, coût, début, fin) Question 1 : L attribut promo est le numéro de promotion, il vaut 0 pour une vente hors promotion. a) Quelles sont les dimensions et les mesures de ce schéma? Préciser le nom de chaque dimension. Préciser les attributs qui représentent une mesure.

Nom : Prénom : Page 3 Dimensions :... Mesures :... Réponse : Dimensions : Les dimensions avec hiérarchie Produit, Date, Client, Promo, Magasin Les dimensions à un seul niveau : Produit : Marque, poids Client : revenu, nbre_enfant Magasin : superficie Promo : media, coût, début, fin Mesures : prix, cout, quantité b) On s intéresse aux dimensions représentant la classe du produit et la date de vente. On veut décrire les hiérarchies de ces dimensions. Pour chaque niveau d une hiérarchie, indiquer les attributs formant le niveau, depuis le niveau le plus détaillé, jusqu au niveau le plus général de la hiérarchie. Dimension sur la classe de produit Dimension sur la date de vente Niveau 1 : Vente.prod Niveau 1 : Date_vente.la_date Niveau 2 : Niveau 2 : 3 : 3 :.................. Réponse : Produit 1 : Vente.prod 2 : Prod.classe 3 : Classe.sous-catégorie, catégorie, groupe 4 : Classe catégorie, groupe 5 : groupe 6 : famille 7 : ALL Date : 1 ère hiérarchie 1 : la date 2 : num_jour, num_mois, année 3 : num_mois, année 4 : num_trimestre, année 5 : année 6 : ALL Date : 2 ème hiérarchie 1 : la date 2 : num_jour, num_mois, année 3 : num_semaine, année 4 : année 5 : ALL

Nom : Prénom : Page 4 Les semaines forment une hiérarchie séparées car une semaine n est pas toujours incluse dans un mois (elle peut commencer dans un mois et se terminer le mois suivant). Remarque : les 2 hiérarchies de Date se rejoignent au niveau jour. On a donc un schéma étoile avec une dimension possédant 2 hiérarchies. Question 2 : Exprimer en SQL les requêtes suivantes. Suivre le modèle de réponse, si possible. 2.1) Pour le groupe œufs de la famille alim, donner le nom et le numéro de chaque produit avec son prix d'achat unitaire moyen. Remarque, tenir compte de la quantité achetée pour calculer le prix unitaire moyen. Le prix d achat moyen est différent de la moyenne du montant des achats. select from,, where group by --R0 select p.nom, v.prod, sum(prix*quantite)/ sum(quantite) as prix_moyen from vente v, prod p, classe c where p.classe = c.classe v.prod = p.prod c.famille = 'Food' c.groupe = 'Eggs' group by v.prod, p.nom order by p.nom solution erronée : avg(prix * quantité) as prix_moyen c est la moyenne du montant des achats. Ca ne correspond pas au prix prix d achat moyen unitaire d un produit. 2.2) On s intéresse aux ventes effectuées en juin 2010 par des clients ayant 4 enfants. Pour chaque marque pour laquelle la moyenne de la quantité achetée est supérieure à 3, afficher la marque, le montant total des ventes, la quantité moyenne et le nombre de ventes effectuées. Trier le résultat par marque, dans l ordre alphabétique. select from,,, where

Nom : Prénom : Page 5 group by having order by prompt R2 select marque, sum(prix*quantité) as total, avg(quantite) as quantité_moyenne, count(*) as nbre_ventes from vente v, date_vente d, client c, prod p where v.num_date = d.num_date v.client = c.client p.prod = v.prod d.annee = 1998 d.num_mois = 6 c.nbre_enfant = 4 group by p.marque having avg(quantite) >3 order by p.marque; 2.3). Afficher le numéro et le nom des clients dont le nombre d'achats en promo est supérieur à la moyenne (i.e. supérieur au nombre moyen d'achats en promo par client) select from where group by having > ( select from where group by ) --R prompt R3 select c.client, c.nom

Nom : Prénom : Page 6 from Client c, Vente v, Promo p where c.client = v.client v.promo = p.promo p.promo <> 0 group by c.client, c.nom having count(*) > ( select avg(count(*)) from Vente v1, Promo p1 where v1.promo = p1.promo p1.promo <>0 group by v1.client) order by c.nom ; 2.4). Quel est le classement (top 3) des pays dont les magasins ont le plus gr chiffre d'affaire (CA). Le CA est somme des prix de vente multipliés par la quantité vendue. Afficher le pays, le rang et le CA. with T as ( select from where group by ) select * from T where order by --R with T as (select z.pays, rank() over (order by sum(v.prix*v.quantite) desc) as rang, sum(v.prix * quantite) from Vente v, Magasin m, Zone z where v.magasin = m.magasin m.zone = z.zone group by z.pays) select * from T where rang <=3 order by rang; Question 3 : Les requêtes C1 et C2 représentent chacune un cube. Quelle séquence d opérations multi dimensionnelles faut-il appliquer à partir de C1 pour obtenir C2? Utiliser la notation suivante pour les opérations : DrillDown (dimension, niveau_initial niveau_final)

Nom : Prénom : Page 7 Rollup (dimension, niveau_initial niveau_final) avec niveau_initial et niveau_final qui sont un attribut (ou une liste d attributs) caractérisant le niveau. Slice (dimension, prédicat) Dice (prédicat) ProjectionAgrégative (dimension,..., dimension) C1 : C2 : select z.pays, l.famille, l.groupe, v.num_date, sum(prix) from vente v, client c, zone z, prod p, classe l where v.client = c.client p.prod = v.prod p.classe = l.classe z.zone = c.zone group by z.pays, l.famille, l.groupe, v.num_date; select z.pays, z.region, z.aglomeration, d.annee, d.trimestre, sum(prix) from vente v, client c, date_vente d, zone z where v.client = c.client v.num_date = d.num_date c.zone = z.zone c.client < 10 prix <10 d.annee > 2010 group by z.pays, z.region, z.aglomeration, d.annee, d.trimestre; Descendre au niveau le plus bas sur les 3 dimensions (produit,client,date) avant de faire le dice qui porte sur le prix et non sur la somme des prix Drill_down ( Client, pays client )

Nom : Prénom : Page 8 Drill_down ( Produit, (famille, groupe) prod) Dice(prix<10) Slice(Client, client<10) Remonter au niveau aglomeration pour les clients Rollup (Client, client (pays,region, aglomeration) ) Date : Monter au niveau année avant de faire le slice sur l année Rollup (Date_vente, num_date année) Slice(année > 2010) Drill_down (Date_vente, année (année,trimestre)) Projection agrégative pour supprimer la dimension produit Projection_Agregative(Client, Date_vente)