Estensioni del linguaggio SQL per interrogazioni OLAP

Documenti analoghi
Estensioni del linguaggio SQL per interrogazioni OLAP

Esercizio con attributo cross-dimensionale - transazionale

SQL/OLAP. Estensioni OLAP in SQL

Data warehouse Analisi dei dati

Linguaggio SQL seconda parte

Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano. Archi multipli

Misure. Definizione delle misure. Sistemi Informativi Avanzati Anno Accademico 2015/2016 Prof. Domenico Beneventano. Glossario delle Misure

Misure. Definizione delle misure

<Nome Tabella>.<attributo>

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

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

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore)

Business Intelligence

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

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

Manuale SQL. Manuale SQL - 1 -

Elena Baralis 2007 Politecnico di Torino 1

Caratteristiche dei linguaggi per Database

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1

Architetture per l analisi dei dati

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

ESEMPIO DI PROVA PRATICA

MODULO 2. Query normali e parametriche Query di:

Schema Del DB Operazionale TELEFONATE

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Data warehouse in Oracle

Data warehousing con SQL Server

Esempi SQL con Access. Orazio Battaglia

SQL - Structured Query Language

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1.

ESEMPIO: RITARDI & BIGLIETTI

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

3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S

Interrogazioni semplici

Analysis Service. Dutto Riccardo IPSI - tel Dutto Riccardo - SQL Server 2008.

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SCENARI TEMPORALI

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Interrogazioni nidificate

Analisi dei dati. analisi dei dati 1

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

ESEMPIO: RITARDI & BIGLIETTI

Interrogare una base di dati: Algebra relazionale e SQL. Alessandro Bardine Alessandro Ciaramella Vincenzo Galella Rudy Manganelli

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

PROGETTAZIONE DI DATABASE Linguaggio SQL

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Interrogazioni nidificate

Rassegna sui principi e sui sistemi di Data Warehousing

Tipi di sottoquery SQL

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Basi di Dati Direzionali

Data warehousing con SQL Server

CONCETTO DI ANNIDAMENTO

Basi di Dati. S Q L Lezione 4

Biglietti e Ritardi: schema E/R

Basi di Dati: Corso di laboratorio

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Il BACKUP è disponibile in

Esempio di database relazionale con l utilizzo del prodotto MySQL

Oracle Database 10g: Introduction to SQL - LVC

BASI DATI: algebra relazionale

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Corso di Laboratorio di Basi di Dati

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

ACCESS Esercitazione (query complesse) Ing. Cosimo Orlacchio

Access. P a r t e t e r z a

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

ESAME di INFORMATICA e ARCHIVIAZIONE

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

Interrogazioni complesse. SQL avanzato 1

Misure (parte II) Gerarchie Incomplete

Data Warehousing (DW)

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

Il Dimensional Fact Model

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

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Data warehousing con SQL Server

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Basi di dati (4) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: select (1.

Interrogazioni in SQL

SQL Server BI Development Studio. SQL Server Business Intelligence Development Studio. Analysis Services

Laboratorio Architettura

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano. OLAP - Analysis Services

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

SQL (STRUCTURED QUERY LANGUAGE)

Sommario. Introduzione... 13

MAX, SUM, AVG, COUNT)

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

DATABASE CLIENTIRAPPRESENTANTI

SQL - Funzioni di gruppo

Laboratorio Architettura. Prof. Alessandra Lumini Alma Mater Studiorum - Università di Bologna

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

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

Transcript:

Sistemi Informativi Avanzati Anno Accademico 2012/2013 Prof. Domenico Beneventano Estensioni del linguaggio SQL per interrogazioni OLAP Esempio! Esempio delle vendite con scontrino (nella tabella, per semplicità, il tipo è sottinteso dal nome del prodotto) TIPO PREZZO DATA PRODOTTO (1,N) VENDITA (1,N) SCONTRINO " Misure 1. NUMERO_VENDITE = COUNT(*) 2. PREZZO_MEDIO = AVG (PREZZO) 3. NUMERO_CLIENTI = COUNT(DISTINCT SCONTRINO) il numero clienti è valutato contando gli scontrini 4. NUMERO_PRODOTTI = COUNT(DISTINCT PRODOTTO) per valutare quanti differenti prodotti vengono venduti 2

Esempio: Analisi dei dati - aggregazione! Le dimensioni di analisi sono MESE e TIPO DB OPERAZIONALE! Il report completo da ottenere è il seguente: REPORT : MESE-TIPO, tutte le misure, con i totali Legenda 3 Esempio: Analisi dei dati - aggregazione! Il report si può ottenere con i vari strumenti OLAP (cubo multidimensionale, tabelle pivot, SQL-OLAP!) DB OPERAZIONALE! SQL-OLAP estende l operatore di raggruppamento GROUP BY consentendo di ottenere più raggruppamenti (più pattern) in un unica query SQL SQL-OLAP 4

Estensioni OLAP in SQL! SQL99 è stato il primo standard SQL ad offrire soluzioni per l analisi dei dati: questa parte dello standard viene normalmente chiamata SQL-OLAP (BNF SQL99: http://savage.net.au/sql/sql-99.bnf.html) Operatore Data Cube (Jim Gray et all - Microsoft/IBM paul.rutgers.edu/~aminabdu/cs541/cube_op.pdf)! SQL-OLAP è disponibile nei principali DMBS (ORACLE, SQL SERVER, POSTGRES); in alcuni (MySQL) le funzionalità OLAP sono limitate! Dove e quando usare SQL-OLAP? 1. Nel generico DB operazionale, per ottenere dei semplici ma completi report al volo, senza costruirsi il Data Mart 2. Nel Data Mart, come strumento OLAP ausiliario, utile per la sua immediatezza (non devo costruire il cubo multidimensionale), soprattutto come per la verifica dei risultati (il cubo dimensionale restituisce risultati corretti?) 5 Schema di fatto: Pattern di aggregazione! Schema di Fatto: PRODOTTO Dimensioni = { CASSA, RODOTTO} NEGOZIO CASSA VENDITA Attributi Dimensionali D = { CASSA, PRODOTTO, NEGOZIO }! Un raggruppamento viene specificato tramite un sottoinsieme S di D di attributi dimensionali! Un sottoinsieme S di D con due attributi A e B tali che A! B specifica un raggruppamento non significativo in quanto il raggruppamento su A,B equivale al raggruppamento su A! Un sottoinsieme S di D tale che non esistano due attributi A e B con A! B è detto pattern (o cuboide) 6

Esempio Schema di Fatto VENDITA RAPPRESENTANTE MESE FORNITORE CITTA NEGOZIO SETTIMANA VENDITA QUANTITA GUADAGNO CATEGORIA PRODOTTO Star Schema 7 Misura QUANTITA additiva: Calcolo delle misure Per eseguire : select P, SUM(QUANTITA) " " " "from VENDITA " " " "group by P!! si usa per semplicità la vista VENDITA ottenuta come join della Fact Table e delle Dimension Table 8

Interrogazioni semplici: un solo pattern " Schema di Fatto: Specifica concettuale dell interrogazione 1. Pattern di aggregazione Per ogni CITTA e SETTIMANA! 2. Misure! il totale della QUANTITA! 3. Condizione! solo per i prodotti alimentari! " Star Schema : implementazione dell interrogazione in SQL SELECT CITTA,SETTIMANA, WHERE CATEGORIA = 'ALIM' GROUP BY CITTA, SETTIMANA " La specifica della condizione è banale e verrà trascurata " Si considerano per ora solo misure additive (operatore SUM) 9 Per ottenere più pattern : UNION! Una query di GROUP BY realizza un singolo pattern : per ottenere in una singola query più pattern (cioè per ottenere nella stessa query anche i valori aggregati dei risultati ) si deve usare UNION { CITTA, SETTIMANA } { CITTA} {} SELECT CITTA,SETTIMANA, GROUP BY CITTA, SETTIMANA UNION SELECT CITTA, NULL AS SETTIMANA, GROUP BY CITTA UNION SELECT NULL AS CITTA, NULL AS SETTIMANA, 10

Estensioni OLAP : più pattern! Le estensioni OLAP forniscono particolari operatori che consentono di realizzare più pattern con una singola query di GROUP BY { CITTA, SETTIMANA } { CITTA} SELECT CITTA,SETTIMANA, GROUP BY GROUPING SETS ( (CITTA, SETTIMANA), (CITTA), () ) {} Questo è il risultato della query a meno dell ordinamento. Per ottenere l ordine visualizzato: "ORDER BY GROUPING(CITTA) ASC, GROUPING(SETTIMANA)ASC, CITTA ASC 11 L operatore GROUPING SETS! Schema di Fatto con attributi dimensionali D = {A1, A2,!, An} insieme S = {A1, A2,!, Ak}! Raggruppamento semplice in SQL : GROUP BY A1, A2,!, Ak # Realizzazione di S: visualizzazione dell aggregazione rispetto a S! L operatore GROUPING SETS consente di realizzare più insiemi Si in un unica query di raggruppamento GROUP BY GROUPING SETS ( S1, S2,!, Sp) # Realizzazione degli insiemi Si: equivale alla union di GROUP BY Si # L ordine degli insiemi S1, S2,!, Sp è irrilevante. # Gli insiemi S1, S2,!, Sp possono essere uguali e/o sovrapposti # In uscita dalla query si possono riportare gli attributi di S1 # S2 #! # Sp # In SQL un insieme S è specificato con S = (A1, A2,!, Ak)

Gli operatori CUBE e ROLLUP! GROUP BY CUBE (A1, A2,!, Ak) # Realizzazione dell insieme {A1, A2,!, Ak} e di tutti i suoi sottoinsiemi (2 n elementi dell insieme potenza di {A1, A2,!, Ak}). # L ordine degli attributi nella GROUP BY è irrilevante. # Sintassi alternativa: GROUP BY A1, A2,!, Ak WITH CUBE! GROUP BY ROLLUP (A1, A2,!, Ak) # Realizzazione dell insieme {A1, A2,!, Ak} e dei seguenti k sottoinsiemi {A1, A2,!, Ak-1 }, {A1, A2,!, Ak-2 }! {A1} {} # L ordine degli attributi nella GROUP BY è rilevante. # Sintassi alternativa: GROUP BY A1, A2,!, Ak WITH ROLLUP! Nel citato articolo di Jim Gray et all viene proposta un algebra di questi operatori (alcuni esempi sono anche nei manuali dei DBMS, come nel caso di SQL SERVER: msdn.microsoft.com/it-it/library/bb510427)! In queste slide : casi significativi tramite esempi ALL (All Values )! Per visualizzare nella stessa query più livelli di aggregazione la teoria SQL usa un valore polimorfo ALL : in {CITTA}: ALL nella colonna SETTIMANA indica tutte le settimane; in {SETTIMANA }: ALL nella colonna CITTA indica tutte le citta. Il pattern vuoto {} corrisponde ad una singola riga con tutti ALL SELECT CITTA,SETTIMANA, GROUP BY CUBE (CITTA, SETTIMANA) {CITTA,SETTIMANA} {CITTA} {SETTIMANA} {} 14

SQL-OLAP in SQL-SERVER! In SQL-SERVER (e in genere nei DBMS) il valore ALL è visualizzato come NULL e si usa una funzione booleana GROUPING in grado di individuare ALL GROUPING(Ai) = 1 se Ai=ALL, 0 altrimenti GROUPING(CITTA)=1 nei pattern che non contengono CITTA, cioè nei pattern che raggruppano su CITTA # La funzione GROUPING si può usare solo con GROUPING SETS, CUBE e ROLLUP 15 SQL-OLAP in SQL-SERVER! Con GROUPING si può visualizzare ALL, oppure differenziare con un valore specifico: 'TutteLeCitta, TutteLesettimane # La logica della query non cambia: nel seguito si visualizzerà NULL! 16

Operatore CUBE! GROUP BY CUBE (A1, A2,!, Ak) o GROUP BY A1, A2,!, Ak WITH CUBE {CITTA} e {} {CITTA,FORNITORE,MESE} {FORNITORE,MESE} {CITTA,FORNITORE}! {MESE} {} 17 ROLLUP! roll-up 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! 18