SQL/OLAP. Estensioni OLAP in SQL



Documenti analoghi
Data warehousing con SQL Server

Data warehousing con SQL Server

Estensioni del linguaggio SQL per interrogazioni OLAP

Misure (parte II) Gerarchie Incomplete

Il BACKUP è disponibile in

Misure. Definizione delle misure

Data Warehousing (DW)

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SQL-OLAP. Estensioni OLAP in SQL

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

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

SQL - Funzioni di gruppo

GERARCHIE RICORSIVE - SQL SERVER 2008

Biglietti e Ritardi: schema E/R

Data warehousing con SQL Server

SQL prima 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 2011/12

Introduzione ai database relazionali

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

ESEMPIO: RITARDI & BIGLIETTI

SQL Server. Applicazioni principali

CONCETTO DI ANNIDAMENTO

Volumi di riferimento

Basi Di Dati, 09/12/2003

Istruzioni DML di SQL

Data warehousing con SQL Server

Il Modello Relazionale

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Al giorno d oggi, i sistemi per la gestione di database

Dispensa di database Access

Operazioni sui database

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Rassegna sui principi e sui sistemi di Data Warehousing

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Funzioni in C. Violetta Lonati

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Organizzazione delle informazioni: Database

OSSIF WEB. Manuale query builder

Organizzazione degli archivi

Data management a.a Il linguaggio SQL

Il linguaggio SQL: viste e tabelle derivate

Estensioni del linguaggio SQL per interrogazioni OLAP

Sistemi per la gestione di database: MySQL ( )

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Lezione V. Aula Multimediale - sabato 29/03/2008

Access. P a r t e p r i m a

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il linguaggio SQL: query innestate

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Capitolo 13. Interrogare una base di dati

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

BASI DI DATI - : I modelli di database

Le query. Lezione 6 a cura di Maria Novella Mosciatti

(anno accademico )

Introduzione data warehose. Gian Luigi Ferrari Dipartimento di Informatica Università di Pisa. Data Warehouse

MODULO 5 ACCESS Basi di dati. Lezione 4

marca (1,n) (1,1) nome prezzou prodotto nome responsabile quantità nome datai dataf (0,n) vendite (0,n) (0,n) (0,n) tempo acquisti quantità (0,n)

Structured Query Language parte 1

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

MODELLO RELAZIONALE. Introduzione

I database relazionali (Access)

Il Modello Relazionale

Data warehouse in Oracle

Soluzione dell esercizio del 2 Febbraio 2004

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Ingegneria del Software T

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Calcolatori: Algebra Booleana e Reti Logiche

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

RISOLUTORE AUTOMATICO PER SUDOKU

Il database management system Access

Le Basi di Dati. Le Basi di Dati

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Dati relazionali e XML

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Progettazione di una base di dati Ufficio della Motorizzazione

Corso sul linguaggio SQL

Progettaz. e sviluppo Data Base

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

DATABASE. A cura di Massimiliano Buschi

4 SQL : Interrogazioni nidificate

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Ricorsione in SQL-99. Introduzione. Idea di base

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

SQL Server BI Development Studio

Elementi di Algebra Relazionale

Introduzione al corso

Interrogazioni nidificate, commenti

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Architettura MVC-2: i JavaBeans

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Unità 2.1 Comandi sui database

Transcript:

SQL/OLAP Estensioni OLAP in SQL 1

Definizione e calcolo delle misure Definire una misura significa specificare gli operatori di aggregazione rispetto a tutte le dimensioni del fatto Ipotesi: per ogni misura, è definito un unico operatore di aggregazione valido per ogni dimensione Misura M di F con operatore di aggregazione OP valido per ogni dimensione: il valore di M per un pattern secondario P è definito aggregando gli eventi primari di F sul P ed applicando OP. In termini relazionali (linguaggio SQL): select P, OP(M) " " " " " "from F " " " " " "group by P!! Ovviamente questa operazione non deve essere esplicitata dall utente/progettista ma viene formulata dal sistema OLAP. Tuttavia tale espressione SQL può risultare utile in caso di dubbio, per verificare quello ottenuto tramite il sistema OLAP 2

Estensioni OLAP in SQL SQL99 è stato il primo standard SQL ad offrire soluzioni per l analisi dei dati: questa parte dello standard viene chiamata SQL/OLAP I principali operatori di SQL/OLAP sono: CUBE e ROLLUP SQL SERVER offre varie estensione alla clausola SELECT per l analisi dei dati: alcune di queste estensioni sono definite secondo lo standard SQL/ OLAP, altre sono proprie di SQL SERVER Nel seguito vengono introdotti gli operatori CUBE e ROLLUP di SQL/OLAP (considerando la loro implementazione in SQL SERVER). 3

Perché si usa l OLAP in SQL L obiettivo è duplice: 1. Effettuare alcune analisi direttamente in SQL, cioè senza usare un sistema OLAP 2. Avere uno strumento per verificare i risultati del sistema OLAP 1. Individuazione di errori dovuti all alimentazione del cubo del sistema OLAP 2. Verifica del risultato ottenuto con particolari operatori del sistema OLAP 4

Definizione e calcolo delle misure Fatto VENDITA RAPPRESENTANTE MESE FORNITORE CITTA NEGOZIO SETTIMANA VENDITA QUANTITA GUADAGNO CATEGORIA PRODOTTO Misura QUANTITA con operatore di aggregazione SUM Per eseguire : select P, SUM(QUANTITA) " " " "from VENDITA " " " "group by P!! per un qualsiasi pattern P (del reticolo di roll-up), la relazione VENDITA della FROM deve contenere tutti gli attributi dimensionali del fatto VENDITA e la misura QUANTITA. 5

Definizione e calcolo delle misure Si considera lo schema logico (star-schema) del fatto e si definisce VENDITA come una vista con tutte gli attributi dimensionali e le misure: 6

Definizione e calcolo delle misure Misura QUANTITA aggregata tramite SUM pattern { CITTA,SETTIMANA } pattern vuoto 7

Estensioni OLAP in SQL Riconsideriamo il pattern { CITTA,SETTIMANA } Come ottenere nella stessa query la quantità totale per ciascuna CITTÀ (oppure per ciascuna SETTIMANA) oppure la quantità per tutte le vendite? Occorre raggruppare il risultato della query su CITTA (SETTIMANA)... 8

Il nuovo operatore CUBE Usando l operatore CUBE nel GROUP BY GROUP BY... WITH CUBE SELECT CITTA,SETTIMANA, SUM(QUANTITA) AS TOTQUANTITA FROM VENDITA group by CITTA, SETTIMANA with cube si includono nuove righe che raggruppano le righe ottenute dal GROUP BY semplice Si usa un nuovo valore polimorfo ALL per rappresentare che il raggruppamento è relativo a tutti i valori della colonna 9

Il nuovo operatore CUBE La visualizzazione del pattern di aggregazione {A1, A2,, An } avviene tramite GROUP BY A1, A2,, An La visualizzazione del pattern di aggregazione {A1, A2,, An } e di tutti i suoi sub-pattern avviene tramite GROUP BY A1, A2,, An WITH CUBE Ovvero si ottiene la visualizzazione di 2 n pattern, costituiti dagli elementi dell insieme potenza di {A1, A2,, An } 10

L operatore CUBE in SQL-SERVER SQL-Server ha l operatore CUBE, però non ha il valore ALL: lo rappresenta con NULL È possibile codificare i NULL in modo da ottenere ALL oppure un valore specifico quale 'TutteLeCitta', 'TutteLeSettimane' funzione GROUPING 11

Funzione GROUPING Si può usare solo quando la GROUP BY contiene cube (o rollup) In una query che raggruppa su ATTRIBUTO, GROUPING(ATTRIBUTO) restituisce 1 per le tuple che sono generate dall operatore cube (o rollup) e che hanno NULL come valore di ATTRIBUTO. Quindi GROUPING(CITTA)=1 se e sole se CITTA=ALL 12

L operatore CUBE in SQL-SERVER Utilizzando la funzione GROUPING con il CASE si riesce ad ottenere il risultato con ALL come nello standard 13

L operatore CUBE in SQL-SERVER e si può anche differenziare il valore di ALL nel caso di CITTA e SETTIMANA: Con GROUPING la logica della query non cambia: per semplicità nel seguito non verrà utilizzata, visualizzando nel risultato NULL! 14

L operatore CUBE in SQL-SERVER: esempi Pattern {CITTA} e {} Pattern {CITTA,FORNITORE,MESE} e tutti i suoi 2 n -1 sub-pattern 15

Pattern non significativi Un pattern è non significativo se c è una dipendenza funzionale tra i suoi elementi Ad esempio SETTIMANA, MESE con SETTIMANA MESE Il raggruppamento su un pattern non significativo è equivalente al raggruppamento sul solo determinate (SETTIMANA) Raggruppando su SETTIMANA, MESE anche se i gruppi non cambiano rispetto al solo raggruppamento su SETTIMANA, riesco però a visualizzare anche il MESE Questo può essere utile per visualizzare il risultato di un roll-up 16

Roll-up Su dati multidimensionali, una operazione di roll-up aggrega i dati lungo i livelli di una gerarchia Per visualizzare un roll-up, ad esempio passare da SETTIMANA a MESE, si può raggruppare rispetto a SETTIMANA e MESE e utilizzare l operatore CUBE per vedere anche i dati aggregati su MESE, però Queste righe non hanno senso, in quanto SETTIMANA --> MESE e quindi ad una settimana corrisponde sempre un solo mese! L operatore CUBE consente di visualizzare un roll-up però introduce delle righe inutili. 17

L operatore ROLLUP in SQL-SERVER GROUP BY A1,A2,... An WITH ROLLUP si includono nuove righe che raggruppano le righe del GROUP BY semplice (come per il CUBE) ma per Ai non si riportano le righe ottenute raggruppando i valori delle colonne sulla sinistra, ovvero delle colonne Aj, con j < i GROUP BY A1,A2,... An-1, An WITH ROLLUP si ottiene la visualizzazione di n + 1 pattern: {A1, A2,, An-1,An } {A1, A2,, An-1 } {A1} {} Pattern {MESE,SETTIMANA} {MESE} {} 18

ROLLUP in SQL-SERVER: ESEMPI ROLLUP lungo la dimensione NEGOZIO L operatore ROLLUP può essere applicato ad una sequenza generica, non necessariamente ad una sequenza di attributi dimensionali di una gerarchia: il risultato è comunque poco significativo, se confrontato con l analogo ottenuto con CUBE 19

Misure Derivate Sono misure definite a partire da altre misure dello schema di fatto applicando operatori matematici e/o logici; per le misure derivate occorre definire l operatore di aggregazione Dato un fatto Fatto F con misure MA (aggregata con OP_MA) e MB (aggregata con OP_MB), la misura derivata DER = MA Oper MB, aggregata con OP_DER è definita in SQL/OLAP come select P, OP_DER(MA Oper MB) AS DER!from F!group by P![with cube with rollup]! 20

Misure Derivate : esempi Esempio : PREZZOMEDIO = GUADAGNO/QUANTITA, aggregato tramite AVG Il cast è necessario per poter fare la divisione tra reali. 21

Misure Derivate : esempi Per semplificare le interrogazioni, la misura derivata viene aggiunta considerando una nuova vista VENDITANEW Con VENDITANEW si può usare la misura derivata senza riscrivere ogni volta l espressione che la definisce 22

Misure Derivate : esempi L esempio precedente si può riscrivere come in questo caso sono state aggiunte alla query anche le altre misure 23

Misure Calcolate Misure calcolate sui dati aggregati; non si deve definire l operatore di aggregazione Dato un fatto Fatto F con misure MA (aggregata con OP_MA) e MB (aggregata con OP_MB), la misura calcolata CALC = MA Oper MB è definita in SQL/OLAP come select P, OP_MA(MA) Oper OP_MB(MB) AS CALC!from F!group by P![with cube with rollup]! 24

Misure Calcolate: ESEMPI Esempio : PREZZOMEDIO_CALC = GUADAGNO/QUANTITA PREZZOMEDIO_CALC è calcolata come rapporto tra il valore aggregato di GUADAGNO (cioè SUM(GUADAGNO)) ed il valore aggregato di QUANTITA (cioè SUM(QUANTITA)) 25

Questa query non è corretta Note tecniche sul GROUP BY La colonna 'VENDITA.GUADAGNO' non è valida nell'elenco di selezione perché non è inclusa né in una funzione di aggregazione né nella clausola GROUP BY. Questa query non è corretta In una espressione della select, quale quella che definisce PREZZOMEDIO_CALC, non si possono usare nomi di colonna definiti nella stessa select (quali 'GUADAGNOTOT e 'QUANTITATOT' ) 26