Nom : Prénom : Page 1

Documents pareils
Les SGBDs Décisionnels

Les SGBDs Décisionnels

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

C-CUBE: Un nouvel opérateur d agrégation pour les entrepôts de données en colonnes

Langage SQL : créer et interroger une base

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

Entrepôt de données : Extensions du langage SQL (SQL-3/SQL-99) pour lʼolap (7.1)

TP3 : Etude de cas Talend

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Les Entrepôts de Données

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

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

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

Le langage SQL Rappels

TP Bases de données réparties

MODE OPERATOIRE OPENOFFICE BASE

Le Langage SQL version Oracle

Bases de Données OLAP

A QUOI SERVENT LES BASES DE DONNÉES?

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

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)

1 Introduction et installation

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

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

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

ETL Extract - Transform - Load

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

BI = Business Intelligence Master Data-ScienceCours 3 - Data

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

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

SQL Historique

Encryptions, compression et partitionnement des données

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

Introduction aux outils BI de SQL Server Création de cubes dans SQL Server Analysis Services (SSAS)

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

Devoir Data WareHouse

25/01/05 TD Entrepôt de données IHS / Master ICA

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

Compétences Business Objects

Intégrité des données

L informatique des entrepôts de données

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

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

Optimisation SQL. Quelques règles de bases

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

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

Les bases de données

Les entrepôts de données

Introduction à la B.I. Avec SQL Server 2008

2 Serveurs OLAP et introduction au Data Mining

Workflow/DataWarehouse/DataMining LORIA - Université d automne Informatique décisionnelle - L. Mirtain 1

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

Arian Papillon

Présentation Windows Azure Hadoop Big Data - BI

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

TP Contraintes - Triggers

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

Cours: Les Jointures 1

Cours 4 : Agrégats et GROUP BY

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

Accélérer l agilité de votre site de e-commerce. Cas client

L impact des délais de paiement et des solutions appropriées. Dominique Geenens Intrum Justitia

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

Systèmes de Gestion de Bases de Données

TP11 - Administration/Tuning

DEMANDE D OUVERTURE DE COMPTE REQUEST OF ACCOUNT OPENING. PROFIL CLIENT Customer Profile. Identité* Identity. Nom de jeune fille* / Maiden name

Master Exploration Informatique des données DataWareHouse

Les bases de l optimisation SQL avec DB2 for i

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

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

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

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

Présentation du module Base de données spatio-temporelles

DEMARREZ RAPIDEMENT VOTRE EVALUATION

Urbanisation des SI-NFE107

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

MTI820 Entrepôts de données et intelligence d affaires. Les applica+ons de BI

Interest Rate for Customs Purposes Regulations. Règlement sur le taux d intérêt aux fins des douanes CONSOLIDATION CODIFICATION

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

Olivier Mondet

Session S12 Les bases de l optimisation SQL avec DB2 for i

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

Introduction à l Informatique Décisionnelle - Business Intelligence (7)

SparkInData. Place de Marché des applications Spatiales

INTRODUCTION AU DATA MINING

Introduction aux Bases de Données 2004/2005

BTS/CGO P10 SYSTEME INFORMATION Année

2011 Hakim Benameurlaine 1

Bases de données relationnelles

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

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

Le Langage De Description De Données(LDD)

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Transcription:

Nom : Prénom : Page 1 Université Pierre et Marie Curie Paris 6 BDMD EXAMEN - 26 MARS 2007 Master d'informatique Version CORRIGEE Documents autorisés Lorsqu un cadre suggère des réponses, entourer la (les) bonne(s) réponse(s). La qualité de la rédaction sera prise en compte. Ecrire à l encre bleue ou noire. Exercice 1. BD décisionnelle : schémas étoile et flocon Soit le schéma TPCH simplifié : Part (partkey, name, mfgr, brand, type, size, container, retailprice) mfgr est le nom de groupe du fabricant, brand est la marque du fabricant. Supplier (suppkey, name, address, nationkey, acctbal) PartSupp ( partkey, suppkey, availqty, supplycost) Customer ( custkey, name, address, nationkey, acctbal, mktsegment) mktsegment est le secteur de marché (automobile, bâtiment,...) Orders (orderkey, custkey, orderstatus, totalprice, orderdate, orderpriority, clerk, shippriority) LineItem (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipmode) Nation (nationkey, name, regionkey) Region ( regionkey, name) 3 pts Question 1. On veut transformer le schéma TPCH en un schéma étoile de telle sorte qu on ne perdre aucune information contenue dans la base. a) Les attributs availqty et supplycost de PartSupp appartiendront-ils à la table des faits ou à une dimension? Justifier brièvement Entourer: fait dimension Justif. : Réponse : ils feront partie de la table des faits En effet,. availqty et supplycost sont des attributs de la table de Faits. Ils ne décrivent pas une dimension mais l association entre 2 dimensions (Fournisseur et Produit). Il faut donc ajouter ces 2 attributs à ceux de Orders et LineItem b) Définir la table des faits sous la forme d une requête SQL (i.e., dont le résultat est l ensemble des faits)

Nom : Prénom : Page 2 Table des faits : jointure entre Orders LineItem et PartSupp. c) Définir la dimension temporelle telle que son schéma soit : Date (d Date, mois Number(2), année Number(4)) L attribut mois est le numéro du mois dans [1, 12]. Dimension temporelle: On veut Date(d, mois, année) : la date sert d identifiant, il faut obtenir toutes les dates possibles : union des projections sur les attributs shipdate, commitdate et receiptdate, with ItemDate as (select receiptdate as d from LineItem union select shipdate as d from LineItem union select commitdate as d from LineItem) Select d, extract( month from d) as mois, extract( year from d) as annee From ItemDate Order by d; Syntaxe correcte : Voir fichier d.sql d) Définir chaque autre dimension sous la forme d une expression algébrique.

Nom : Prénom : Page 3 Dim des fournisseurs : jointure enntre Supplier, Nation et Région Dim des clients : jointure entre Customer, Nation et Region Dim des produits : select * from Part Question 2. On veut transformer le schéma TPCH en un schéma en flocon. En particulier la dimension concernant les clients (qui passent des commandes) est décomposée en 3 relations C1, C2, C3 telles que C1 est associée à la table des faits. C2 et C3 sont associées uniquement à C1. La relation C2 décrit la localisation géographique des clients. La relation C3 décrit le secteur de marché de la clientèle. On suppose que la clientèle est sectorisée par activité (automobile, bâtiment, meuble) et par revenu (faible, moyen, fort). a) Quels sont les attributs, inexistant dans le schéma TPCH, à ajouter pour définir la dimension des clients? L attribut mktsegment correspond à activité On ajoute un attribut revenu Et un attribut secteur pour identifier le secteur de marché b) Donner le schéma de C1, C2 et C3. C1 = Customer Déplacer l attribut mktsegment vers C3 Ajouter l attribut secteur qui fait référence à C3.secteur C2 = CustomerNation = jointure Nation,Région C3 = CustomerSegment(secteur, mktsegment, revenu)

Nom : Prénom : Page 4 Rmq : l attribut mktsegment correspond à activité Exercice 2. Requêtes analytiques Le journal des accès à un site web est stocké dans une BD. Son schéma est : A (u, m, s, d, url, taille) u est l identifiant de l utilisateur qui navigue sur le site web m est l adresse IP du client s est le nom de domaine du client (ex : aol.com, jussieu.fr,...) : d est la date de l accès 4 pts la date est composée de 5 attributs numériques dj : jour dans [0, 31], dm : mois dans [1, 12], da : année dans [1980, 2008], dh : heure dans [0, 23] dmn : minutes dans [0, 59] url est la page web consultée par l utilisateur taille est la taille d une page en octets Ecrire les requêtes en SQL en utilisant si possible les fonctions analytiques de classement et d agrégation sur une plage glissante. Question 1 : Pour toutes les dates existant dans la base, donner le nombre d accès qui ont eu lieu pendant les 10 minutes précédentes. Le schéma du résultat est (d, accès). select distinct d, count(*) over (order by d range between interval '10' minute preceding and current row) as acces from A order by d desc; Question 2 : Donner le classement des 10 utilisateurs qui ont téléchargé le plus gros volume de données. Afficher leur rang. Le schéma du résultat est (u, volume, rang). Voir TP AP

Nom : Prénom : Page 5 Question 3 : Pour chaque page web, donner le classement des domaines (attribut s) ayant fait le plus d accès à cette page. Le schéma du résultat est (url, s, accès, rang) select url, s, count(*) as accès, rank() over ( partition by url order by count(*) desc) as rang from A group by url, s ; Question 4 : On considère que la session d un utilisateur se termine lorsque l utilisateur ne consulte plus le site pendant 3 minutes ou plus. Afficher le nombre de sessions pour chaque utilisateur. Le schéma du résultat est (u, nb_session).

Nom : Prénom : Page 6 Sol1 : fenetre temporelle glissante Sol 2 : On commence par sélectionner les accès qui ne sont pas des débuts de sessions T1 = Select distinct a2.u, a2.d From A a1, A a2 Where a1.u = a2.u and a2.d - a1.d <=3 Puis select u, count(*) as nb_session From T1 Group by u Exercice 3. Entrepôts de données 6 pts On considère un entrepôt de données permettant d observer les ventes de produits d une entreprise. Le schéma des tables est le suivant : CUSTOMER (cust_id, city, state, region, country) PRODUCT (prod_id, prod_name, category, cost_price, sell_price, supplier) TIME (time_key, month, month_name, quarter, year) PURCHASES(prod_id, time_key, cust_id, ship_date, purchase_price, shipping_charge) Question 1. Indiquez quelles sont les tables de faits et les tables de dimension du schéma en étoile de cet entrepôt. Table de fait : purchases Tables de dimensions : customer, product, time. Question 2. On veut transformer ce schéma en schéma en flocon. Donnez la nouvelle représentation de la table TIME. La table TIME est décomposée en plusieurs tables : TIME (time_key, month_key) MONTH (month_key, month, month_name, quarter_key) QUARTER(quarter_key, quarter, year) Question 3. Ecrire la requête SQL permettant d afficher la moyenne des ventes (purchase_price) par catégorie (category) et par année (year). SELECT p.category, t.year AVG(purchase_price) average_sales FROM product p, time t, purchases f Where p.prod_id = f.prod_id And t.time_key = f.time_key GROUP BY p.category, t.year ; Question 4. Calculer le cube permettant d obtenir la somme des ventes par categorie, par année et par région en utilisant la clause GROUP BY CUBE. Select p.category, t.year, c.region, sum(f.purchase_price) total_sales From product p, time t, purchases f, customer c Where p.prod_id = f.prod_id And t.time_key = f.time_key AND c.cust_id = f.cust_id GROUP BY CUBE (p.category, t.year, c.region);

Nom : Prénom : Page 7 Question 5. On considère la même requête, mais en remplaçant la clause GROUP BY CUBE par la clause GROUPE BY ROLLUP. Quelles différences ce changement implique-t-il? Vous pouvez expliquer les différences à l aide d un exemple. Dans le premier cas (CUBE) on a des agrégations sur tous les niveaux de regroupement (category, year, region), tandis que dans le deuxième, on se limite aux regroupements (category, year, region), (category, year ) et (category). On n a que des résultats partiels du cube. Question 6. On souhaite maintenant observer les ventes de 2006 par région, et étudier particulièrement les ventes qui ont lieu pendant les vacances. On veut obtenir une relation de schéma (region, month_name, sales), qui contient, pour chaque région, la somme des ventes par mois ainsi que la somme des ventes qui ont eu lieu pendant les vacances (somme des ventes des mois de juillet et août). Dans ce dernier cas, l attribut month_name prendra la valeur vacances. Ecrire la requête permettant d obtenir ce résultat. Select region, month_name, sales From (select t.month_name, c.region, sum(f.pourchase_price) sales from purchases f, time t, customer c Model Where f.time_key = t.time_key and t.year = 2006 and c.cust_id = f.cust_id Group by c.region, t.month_name) Partition by (region) Dimension by (month_name) Measures (sales) Rules (sales[ vacances ] = sales[ juillet ] + sales[ août ])