Definizione e calcolo delle misure

Documenti analoghi
Misure. Definizione delle misure

Misure (parte II) Gerarchie Incomplete

Il BACKUP è disponibile in

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Estensioni del linguaggio SQL per interrogazioni OLAP

ESEMPIO: RITARDI & BIGLIETTI

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

Biglietti e Ritardi: schema E/R

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

Progettazione logica

Sistemi Informativi Aziendali. Sistemi Informativi Aziendali. Sistemi Informativi Aziendali

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Data warehousing con SQL Server

I RADICALI QUADRATICI

Normalizzazione. Definizione

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Biglietti: schema E/R. Biglietti: albero degli attributi

Compito Basi di Dati. Tempo concesso: 90 minuti 15 Febbraio 2007 Nome: Cognome: Matricola:

Data warehousing con SQL Server

SQL/OLAP. Estensioni OLAP in SQL

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Progettazione di un Data Warehouse

Data warehousing con SQL Server

Equazioni, funzioni e algoritmi: il metodo delle secanti

Data Base and Data Mining Group of Politecnico di Torino. Progetto di un data warehouse BOZZA di Soluzione. Ditta trasporti. anno trimestre mese

Data warehousing con SQL Server

Matematica finanziaria

Il linguaggio SQL: query innestate

Esercizio assegnato in data 28 novembre

Alcune idee sui sistemi software e la loro architettura

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.

L impresa. Sistemi di governo valutazione e controllo. Costi - 6

Campo di Variazione Costituisce la misura di

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

C I R C O N F E R E N Z A...

FILE E INDICI Architettura DBMS

Corso di Calcolo Numerico

Progettazione Logica. Sviluppo di un Database/DataWarehouse

cliente... nuovo cliente trasloco

Cifre significative delle misure di grandezze fisiche

7 2 =7 2=3,5. Casi particolari. Definizione. propria se < impropria se > e non è multiplo di b. apparente se è un multiplo di. Esempi.

26.03-ITA. Il metodo Victaulic per tubazioni per accomodare gli sfalsamenti

Esercizi sulla conversione tra unità di misura

Manuale di Aggiornamento BOLLETTINO. Rel B. DATALOG Soluzioni Integrate a 32 Bit

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

Esame Informatica Generale 13/04/2016 Tema A

Tabella relativa alla produzione di agrumi e frutta fresca (migliaia di quintali):

Esempio di database relazionale con l utilizzo del prodotto MySQL

Risoluzione di problemi ingegneristici con Excel

Il modello multidimensionale. Per le slides si ringrazia il Prof. Stefano Rizzi ( e il Dott.

PROGRAMMAZIONE STRUTTURATA

Fabbisogno Finanziario partite contabili aperte effetti a scadere le partite presunte le scadenze ricorrenti Fabbisogno Finanziario

Traduzione dello schema E-R in modello logico relazionale

INTRODUZIONE ALLE BASI DATI RELAZIONALI

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

Algebra di Boole Algebra di Boole

Integrazione Numerica. Teoria ed Esempi

Definizione di metodi in Java

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs

ESERCIZI IN PIÙ I NUMERI COMPLESSI

Regola del partitore di tensione

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

Appunti sullo sviluppo piano di figure solide

TOP DOWN. Compiti in classe proposti Modulo 1 JUVENILIA SCUOLA. Iacobelli Ajme Marrone

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Università degli Studi di Parma. Prof.ssa Paola Schwizer Anno accademico Definizione

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Metodo dei minimi quadrati e matrice pseudoinversa

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

ANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente

Architettura degli elaboratori Docente:

Prof.ssa Laura Salvagno

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Integrazione al Manuale Utente 1

GESTIONE DELEGA F24 RAVVEDIMENTO OPEROSO

Chi non risolve esercizi non impara la matematica.

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

BASI DATI: algebra relazionale

Basi di Dati. S Q L Lezione 2

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Potenze - Monomi - Polinomi - Operazioni tra Polinomi - Quadrato e Cubo del Binomio - Quadrato del Trinomio

Data warehouse Progettazione

differiticerti.notebook November 25, 2010 nov nov nov Problemi con effetti differiti

Gestione Stato di Famiglia

I database. Introduzione alla teoria delle basi di dati

Analisi Curve di Carico

Le nuove utenze di accesso a SICO (da quelle di ufficio a quelle personali)

Note sull implementazione in virgola fissa di filtri numerici

Operatori di base. σ F (r) = {t t r. F(t) = true} SELEZIONE σ F (r)

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Capitolo 18. Interazioni fra le decisioni d investimento e di finanziamento

1) DETERMINAZIONE DEGLI IMPORTI RELATIVI AL SERVIZIO IDRICO INTEGRATO FATTURATI DA CIASCUN GESTORE

4) 8 g di idrogeno reagiscono esattamente con 64 g di ossigeno secondo la seguente reazione:

Capitolo 11 Test chi-quadro

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Transcript:

Definizione e calcolo delle misure! Misure Derivate! Misure Calcolate! Misure Derivate e Progetto Logico! Calcolo delle Misure! Aggregabilità Misure Derivate " Sono misure definite a partire da altre misure dello schema di fatto applicando operatori matematici : # Nell esempio delle vendite incasso è una misura derivata : incasso = prezzo_unitario * quantità_venduta " Una misura derivata viene calcolata sugli eventi primari, ovvero prima di effettuare l aggregazione; quindi, al pari delle altre misure (normali o esplicite), anche per le misure derivate si deve definire un operatore di aggregazione # La misura derivata incasso è additiva, in quanto - l incasso annuale è la somma degli incassi mensili - l incasso di una categoria di prodotto è la somma degli incassi dei relativi tipi - l incasso dei negozi in uno stato è la somma degli incassi dei negozi delle regioni di quello stato # Si noti quindi che la misura derivata incasso è additiva anche se una sua componente (prezzo_unitario) non è additiva 2

Misure Derivate : Esempio " Schema di Fatto ESAMI # Dimensioni STUD (con in gerarchia FACOLTA) e DATA (con in gerarchia MESE) # Misure BASE (Crediti di tipo Base) e ALTRO (Crediti di tipo ALTRO) # Misure derivate RAPPORTO = BASE/ALTRO TOTALE = BASE + ALTRO STUD DATA BASE ALTRO RAPPORTO TOTALE ING1 GEN1 20 2 10 22 ING1 GEN2 40 4 10 44 ING2 GEN2 30 6 5 36 SUM SUM AVG SUM F AC O L T A DA T A BA S E A L TR O RA P P O RT O T O T A L E I N G G EN 1 20 2 10 22 I N G G EN 2 70 10 7, 5 80 FACOLTA MESE BASE ALTRO RAPPORTO TOTALE ING GEN 90 12 8,33 102 3 Misure Calcolate " Una misura calcolata è una misura il cui valore è calcolato a partire da altre misure dopo aver aggregato i dati, ovvero il valore è valutato sugli eventi secondari :! non si definisce un operatore di aggregazione! " Esempio: schema di Fatto ESAMI # Misura derivata : TOT_DER = BASE + ALTRO (SUM) # Misura calcolata : TOT_CALC= BASE + ALTRO STUD DATA BASE ALTRO TOT_DER TOT_CAL ING1 GEN1 20 2 22 C 22 ING1 GEN2 40 4 44 44 ING2 GEN2 30 6 36 36 SUM SUM SUM FACOLTA DATA BASE ALTRO TOT_DER TOT_CALC ING GEN1 20 2 22 22 ING GEN2 70 10 80 80 FACOLTA MESE BASE ALTRO TOT_DER TOT_CALC ING GEN 90 12 102 102 4

Misure Calcolate vs Derivate " Per una misura derivata non è sempre equivalente calcolare il valore aggregato a partire dal valore aggregato delle misure componenti: $ non è sempre equivalente definire una misura derivata come misura calcolata! " Esempio: schema di Fatto ESAMI # Misura derivata : RAP_DER = BASE/ALTRO (AVG) # Misura calcolata : RAP_CALC = BASE/ALTRO STUD DATA BASE ALTRO RAP_DER RAP_CALC ING1 GEN1 20 2 10 10 ING1 GEN2 40 4 10 10 ING2 GEN2 30 6 5 5 SUM SUM AVG FACOLTA DATA BASE ALTRO RAP_DER RAP_CALC ING GEN1 20 2 10 10 ING GEN2 70 10 7,5 7 FACOLTA MESE BASE ALTRO RAP_DER RAP_CALC ING GEN 90 12 8,33 7,5 5 Misure Calcolate vs Derivate: Esempio " Il progettista deve scegliere se usare una misura derivata oppure calcolata " Esempio: misura INCASSO nello schema di fatto VENDITA Sum AVG Sum Tipo Quantit Prezzo T1 12 1,25 T2 9 0,80 22,70 Incasso_calcolato 15,00 7,20 22,20 " INCASSO deve essere una misura derivata: non è possibile calcolare il valore aggregato della misura derivata Incasso a partire dal valore aggregato delle misure componenti! # l incasso annuale non può essere calcolato moltiplicando la quantità venduta in un anno per il prezzo unitario medio annuale. 6

Misure Calcolate vs Derivate " Se la misura derivata e le sue componenti sono distributive è possibile calcolare il valore aggregato a partire dal valore aggregato delle misure componenti e quindi si ottiene lo stesso risultato definendo la misura come calcolata. " Verifica negli esempi precedenti: 1. Misura additiva TOTALE, con componenti additive: il valore aggregato si può calcolare a partire dal valore aggregato delle componenti 2. Misura additiva INCASSO, con una componente additiva e l altra no: il valore aggregato non si può calcolare a partire dal valore aggregato delle componenti 3. Misura non-additiva RAPPORTO, con componenti additive: il valore aggregato non si può calcolare a partire dal valore aggregato delle componenti " La scelta si basa sull efficienza del calcolo: intuitivamente una misura calcolata è più efficiente in quanto il calcolo avviene sui dati aggregati 7 Misure Derivate generalizzate " Nel caso generale, una misura derivata si può definire a partire da altre misure dello schema di fatto applicando oltre che operatori matematici anche operatori logici " Esempio: Misura additiva NumVenditePromo per il conteggio delle vendite effettuate in promozione, calcolata sulla base di una misura Sconto NUMVENDITEPROMO = CASE WHEN SCONTO=0 THEN 0 ELSE 1 END " Esempio: Misura additiva NumVoliInRitardo per il conteggio dei voli in ritardo, calcolata sulla base di una misura Ritardo NUMVOLIINRITARDO= CASE WHEN RITARDO > 5 THEN 1 ELSE 0 END 8

Misure Calcolate generalizzate " Nel caso generale, una misura calcolata è una misura il cui valore è calcolato dopo aver aggregato i dati, a partire da altre misure e/o usando i valori degli attributi dimensionali " Esempi (l esempio completo è a pagina???): Misura calcolata per il conteggio degli eventi primari di VENDITA: NUM_VENDITE = count(*) Misura calcolata per il conteggio degli scontrini in VENDITA: NUM_CLIENTI = COUNT (DISTINCT NUM.SCONTRINO) TIPO DATA VENDITA Una misura calcolata può essere indicata nello schema di fatto con (C) PRODOTTO QUANTITA (C) NUM_VENDITE (C) NUM_CLIENTI NUM. SCONTRINO 9 Misure Derivate e progetto logico " Per definizione, una misura derivata non dovrebbe essere inserita nella fact table, in quanto derivabile appunto dai valori delle altre misure e pertanto il calcolo può essere demandato al sistema OLAP " Una misura derivata può essere inserita nella fact table, e calcolata quindi in fase di alimentazione per 1. Motivi di efficienza 2. Assenza nel sistema OLAP degli operatori che definiscono la misura derivata. Ad esempio, in Analysis Services è conveniente definire le misure derivate con operatori logici in fase di alimentazione e quindi inserirle nella fact table. 10

Calcolo delle misure: Progetto Fisico e Viste " Un significativo aumento delle prestazioni può essere ottenuto precalcolando i dati aggregati di uso più comune " Misure definite con operatori Distributivi ed Algebrici permettono di calcolare dati aggregati a partire direttamente da dati parzialmente aggregati " L ottimizzazione usa il concetto di vista materializzata: # Ogni pattern secondario corrisponde ad una vista sul pattern primario # Vengono materializzate le viste (ovvero pre-calcolate e memorizzate in tabelle o altre strutture dati) corrispondenti ad alcuni pattern secondari, ovvero a quelli maggiormente utilizzati (carico di lavoro) # La scelta delle viste da materializzare è basata sul compromesso tra diversi vincoli, i principali dei quali sono Tempo di costruzione ed aggiornamento delle viste materializzate, ovvero tempo di calcolo al momento del caricamento/refresh del DW Spazio aggiuntivo richiesto 11 Le viste " Le viste possono essere identificate in base al livello (pattern) di aggregazione che le caratterizza v 1 = {prodotto, data, negozio}! v 2 = {tipo, data, città}! v 4 = {tipo, mese, regione}! v 3 = {categoria, mese, città}! v 5 = {trimestre, regione}! " Viste primarie: corrispondono al pattern di aggregazione primario (non aggregato) " Viste secondarie: corrispondono ai pattern di aggregazione secondari (aggregati)

Risolvibilità delle interrogazioni " Una vista v sul pattern p non serve solo per le interrogazioni con pattern di aggregazione p ma anche per tutte quelle che richiedono i dati a pattern p' più aggregati di p (p! p') {a,b} b' a' b a {a',b} {a,b'} {b} {a',b'} {a} {b'} {a'} { } Reticolo di roll-up Scelta delle viste materializzate " È utile materializzare una vista quando: # Risolve direttamente una interrogazione frequente # Permette di ridurre il costo di esecuzione di molte interrogazioni " Non è consigliabile materializzare una vista quando: # Il suo pattern di aggregazione è molto simile a quello di una vista già materializzata # Il suo pattern di aggregazione è molto fine # La materializzazione non riduce di almeno un ordine di grandezza il costo delle interrogazioni % Tecniche di scelta delle viste da materializzare sono generalmente già implementate nei sistemi OLAP e allutente viene solo chiesto di configurare alcuni parametri, quali lo spazio a disposizione per la memorizzazione delle viste da materializzare

Analysis Services: archiviazione cubo " In Analysis Services e possibile precalcolare tutte le possibili aggregazioni # Nel cubo Sales di FoodMart ci sono 1036 aggregazioni: Analysis Services: archiviazione cubo " Oppure si fissa un limite allo spazio di archiviazione stimato # Nel cubo Sales di FoodMart fissando 100MB si ottengono 398 aggregazioni:

Analysis Services: operatore AVG " AVG è un operatore di aggregazione algebrico che ha come misura di supporto COUNT " Nel sistema OLAP Analysis Services: AVG non è disponibile come operatore ma deve essere calcolato tramite SUM e COUNT " Esempio : prezzo_unitario (PU) aggregato tramite AVG 1. Si definisce PUBase aggregando PU con SUM; 2. Si definisce la misura di supporto Conteggio, aggregata con COUNT 3. Si definisce PU come misura calcolata PUBase/Conteggio 17

Alimentazione: calcolo delle misure! L alimentazione definisce le istanze di un Data Mart a partire dalle istanze del DataBase operazionale DBO! Nel progetto dell alimentazione si definisce il calcolo effettivo delle misure (normali o esplicite) di uno Schema di Fatto e le istanze che costituiranno le dimensioni! Nel seguito tratteremo il calcolo delle misure e l analisi della loro aggregabilità rispetto alle dimensioni! Dato uno Schema di Fatto F, con dimensioni D = {D1,!, Dn } e misure M = {M1,!, Mk}; per ogni misura Mi si deve definire una view F_Mi sul DBO, con schema F_Mi(D1,!,Dn,Mi)! Il join naturale di tutte le view F_Mi risulta nella vista F, che chiameremo vista degli Eventi Primari, con schema : F(D1,!,Dn,M1,!, Mk) 18 Alimentazione: calcolo delle misure! Dal punto di vista operativo, salvo casi in cui una o più misure richiede un calcolo particolare, è possibile definire direttamente solo la vista degli Eventi Primari F sul DBO : nel seguito considereremo questo caso, calcolando la view F! Spesso, nei casi reali, per semplificare la definizione di F, occorre definire prima altre view.! La struttura della view F dipende dal tipo di schema: 1. Negli schemi temporali è una query con raggruppamento sulle dimensioni, mentre negli schemi transazionali è una query senza raggruppamento! La vista degli Eventi Primari verrà anche chiamata FACT_TABLE, in quanto definisce appunto le istanze della FACT_TABLE nella schema logico relazionale del Data Mart 19

Esempio: DBO (schema E/R e logico) TIPO quantità COD prezzo unitario data Identificatori Fatto Vendita: I1 = {PRODOTTO,NUM.SCONTRINO} PRODOTTO (0,N) (1,1) in VENDITA (1,1) (1,N) in SCONTRINO I2 = {COD} prodotto num. scontrino PRODOTTO PRODOTTO ALIM_1 ALIM_2 TIPO Alimentare Alimentare SCONTRINO NUMERO DATA Scontr12 02/02/02 Scontr13 02/02/02 VENDITA COD PRODOTTO N_SCONTRINO QUANTITA PREZZO_UNITARIO 3 ALIM_1 Scontr12 12 25 2 ALIM_2 Scontr12 13 12 1 ALIM_2 Scontr13 24 13 20 Esempio: progettazione concettuale tipo prodotto quantità prezzo-unitario prodotto + num.scontrino data num.scontrino! Dimensioni = { prodotto, num.scontrino }! Tipologia dello Schema: transazionale (le dimensioni coincidono con I1)! Definizione delle misure: di ogni misura si deve 1. Definire la tipologia: esplicita/derivata/calcolata 2. Per le misure esplicite 1. (alimentazione) definire il suo calcolo a partire dal DBO 2. (aggregabilità) definire l operatore di aggregazione degli eventi 3. Per le misure derivate 1. definire il suo calcolo per ogni evento primario 2. (aggregabilità) definire l operatore di aggregazione 4. Per le misure calcolate 1. definire il suo calcolo per ogni evento, primario e secondario 21

Esempio: Definizione delle misure! Misura QUANTITA : è una misura esplicita; essendo lo schema transazionale coincide con il valore dell attributo quantità del DBO. Operatore di aggregazione degli eventi: SUM! Misura NUM_CLIENTI: è una misura calcolata definita come COUNT(DISTINCT NUM.SCONTRINO)! Misura NUM_VENDITE: è una misura calcolata definita come COUNT(*) TIPO VENDITA DATA Una misura calcolata verrà indicata nello schema di fatto con (C) PRODOTTO QUANTITA (C) NUM_VENDITE (C) NUM_CLIENTI NUM. SCONTRINO 22 Esempio: Alimentazione! Schema transazionale : vista degli Eventi Primari senza alcun raggruppamento: create view EP_VENDITA as "select "PRODOTTO, " " "NUM.SCONTRINO, " " "QUANTITA "from " "DBO.VENDITA"! Se si considera solo l identificatore I2 : le dimensioni non contengono alcun identificatore e quindi viene assunto erroneamente lo schema come temporale: vista degli Eventi Primari con raggruppamento " select "PRODOTTO, NUM.SCONTRINO, " "SUM(QUANTITA) AS QUANTITA from " "DBO.VENDITA group by "PRODOTTO,NUM.SCONTRINO" " Il calcolo risulta corretto, però si effettua un raggruppamento, un calcolo di funzione aggregata inutile. " Si devono considerare tutti gli identificatori! 23

Esempio B : Vendita con schema temporale COD TIPO quantità prezzo unitario data Identificatori Fatto Vendita: I1 = {PRODOTTO,NUM.SCONTRINO} PRODOTTO (0,N) (1,1) in VENDITA (1,1) (1,N) in SCONTRINO I2 = {COD} prodotto num. scontrino tipo quantità prezzo-unitario data prodotto prodotto + num.scontrino num.scontrino! Dimensioni = { prodotto, data}! Tipologia dello Schema: temporale (le dimensioni non contengono nessuno dei due identificatori) 24 Esempio B: Definizione delle misure! Misura QUANTITA : è una misura esplicita; essendo lo schema temporale si deve definire tramite un opportuno operatore di aggregazione dei dati del DBO: QUANTITA = SUM (quantità) Operatore di aggregazione degli eventi : SUM! Misura NUM_CLIENTI: il significato è ancora quello di conteggio distinto degli scontrini, però adesso num.scontrino non sarà più disponibile nello schema di fatto. Allora si considera come misura esplicita e definita sui dati del DBO come: NUM_CLIENTI= COUNT(DISTINCT num.scontrino) Operatore di aggregazione degli eventi : SUM! Misura NUM_VENDITE: il significato è ancora quello di conteggio delle vendite, però adesso lo schema è temporale quindi si considera come misura esplicita e definita sui dati del DBO come: NUM_VENDITE= COUNT(*) Operatore di aggregazione degli eventi : SUM 25

Esempio B : alimentazione! Schema temporale : vista degli Eventi Primari con raggruppamento create view EP_VENDITA as "select "PRODOTTO, " "DATA, " "SUM(QUANTITA) AS QUANTITA, " "COUNT(DISTINCT NUM.SCONTRINO) AS NUM_CLIENTI, " "COUNT(*) AS NUM_VENDITE "from "DBO.VENDITA V join DBO.SCONTRINO S " " "on V.NS = S.NS" "group by PRODOTTO, DATA ""! La vista di alimentazione VENDITA deve essere ovviamente definita considerando lo schema logico del DBO. Nell esempio abbiamo supposto che " VENDITA(NS:SCONTRINO, PRODOTTO:PRODOTTO, COD, " "QUANTITA,PREZZO_UNITARIO) " "" SCONTRINO(NS,DATA)" "" PRODOTTO(PRODOTTO,TIPO) " "" 26 Aggregabilità delle misure! Dopo aver definito il calcolo effettivo di una misura a partire dalle istanze del DBO, è possibile valutare la sua aggregabilità! Informalmente, una misura è aggregabile su una dimensione se i suoi valori possono essere aggregati rispetto a tale dimensione! Per valutare l aggregabilità rispetto ad una dimensione Di, si considera il pattern ottenuto da quello primario eliminando Di! Si può valutare l aggregabilità considerando alcune istanze d esempio oppure fare delle interrogazioni e confrontare il risultato 27

Esempio B : Aggregabilità delle misure! Aggregabilità rispetto a PRODOTTO: deve essere valutata considerando il raggruppamento rispetto a PRODOTTO! Raggruppamento rispetto a PRODOTTO calcolato sul DBO select "PRODOTTO, "DATA, " "SUM(QUANTITA) AS QUANTITA, " "COUNT(DISTINCT NUM.SCONTRINO) AS NUM_CLIENTI, " "COUNT(*) AS NUM_VENDITE "from "DBO.VENDITA "group by PRODOTTO, DATA"! Le misure sono aggregabili rispetto a PRODOTTO se si ottiene lo stesso risultato raggruppando gli Eventi Primari rispetto a PRODOTTO: select "DATA, " "SUM(QUANTITA) AS QUANTITA, " "SUM(NUM_CLIENTI) AS NUM_CLIENTI, " "SUM(NUM_NUMVENDITE) AS NUM_VENDITE "from "EP_VENDITA "group by DATA" 28 Esempio B : Aggregabilità delle misure! Aggregabilità rispetto a DATA: deve essere valutata considerando il raggruppamento rispetto a DATA! Raggruppamento rispetto a DATA calcolato sul DBO select "PRODOTTO, "DATA, " "SUM(QUANTITA) AS QUANTITA, " "COUNT(DISTINCT NUM.SCONTRINO) AS NUM_CLIENTI, " "COUNT(*) AS NUM_VENDITE "from "DBO.VENDITA "group by PRODOTTO, DATA"! Le misure sono aggregabili rispetto a DATA se si ottiene lo stesso risultato raggruppando gli Eventi Primari rispetto a DATA: select "PRODOTTO, " "SUM(QUANTITA) AS QUANTITA, " "SUM(NUM_CLIENTI) AS NUM_CLIENTI, " "SUM(NUM_NUMVENDITE) AS NUM_VENDITE "from "EP_VENDITA "group by PRODOTTO" 29

Esempio B : Aggregabilità delle misure! Consideriamo le seguenti istanze del DBO e la relativa EP_VENDITA EP_VENDITA SCONTRINO PRODOTTO VENDITA 30 Esempio B : Aggregabilità delle misure! Confronto raggruppamento rispetto a PRODOTTO! Confronto raggruppamento rispetto a DATA 31

Esempio B : schema di fatto! Dall analisi precedente risulta che : # QUANTITA e NUM_VENDITE sono aggregabili rispetto a tutte le dimensioni # NUM_CLIENTI è aggregabile rispetto a DATA ma non rispetto a PRODOTTO PRODOTTO TIPO VENDITA QUANTITA NUM_VENDITE NUM_CLIENTI DATA 32 Esempio B : Pattern in OLAP! Query SQL-OLAP per visualizzare il pattern {DATA,PRODOTTO} ed i suoi sub-pattern {DATA}, {PRODOTTO} e {} : i pattern per i quali NUM_CLIENTI non è aggregabile non vengono mostrati select DATA, PRODOTTO, SUM(QUANTITA) AS QUANTITA, SUM(NUM_CLIENTI) AS NUM_CLIENTI, SUM(NUM_VENDITE) AS NUM_VENDITE from EP_VENDITA group by DATA, PRODOTTO WITH CUBE having GROUPING(PRODOTTO)<> 1 33

Esempio B : pattern in OLAP! Query SQL-OLAP per visualizzare il pattern {DATA,PRODOTTO} ed i suoi sub-pattern {DATA}, {PRODOTTO} e {} : i pattern per i quali NUM_CLIENTI non è aggregabile vengono segnalati con (NA) select DATA, PRODOTTO, SUM(QUANTITA) AS QUANTITA, NUM_CLIENTI = CASE WHEN GROUPING(PRODOTTO)=1 THEN CAST(SUM(NUM_CLIENTI) AS VARCHAR) + ' (NA)' ELSE CAST(SUM(NUM_CLIENTI) AS VARCHAR) END, SUM(NUM_CLIENTI) AS NUM_CLIENTI, SUM(NUM_VENDITE) AS NUM_VENDITE from EP_VENDITA group by DATA, PRODOTTO WITH CUBE 34