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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Sistemi Informativi Avanzati Anno Accademico 2015/2016 Prof. Domenico Beneventano Misure In parte dal Capitolo 5 del libro Data Warehouse - teoria e pratica della Progettazione Autori: Matteo Golfarelli, Stefano Rizzi; Editore: McGraw-Hill Definizione delle misure n Una misura è definita da una funzione di raggruppamento sul DBO: Glossario delle Misure quantità venduta = SUM(VENDITA.quantità) incasso = SUM(VENDITA.quantità*VENDITA.prezzoUnitario) prezzo unitario = AVG(VENDITA.prezzoUnitario) numero vendite = COUNT(*) numero clienti = COUNT(DISTINCT num_scontrino) n Il Glossario delle Misure sintetizza le misure, ad esempio 1. quantità venduta è la somma della quantità espressa in VENDITA 2. prezzo unitario è la media di quello espresso in VENDITA 3. numero clienti è (stimato come) il conteggio distinto degli scontrini n Implementare una misura nel Data Mart (DM) significa specificarne Calcolo sul DBO (Alimentazione): il valore per gli eventi primari Aggregazione nel DM: il valore per eventi secondari 2

2 Definizione delle misure nel Data Mart n Definire una misura nel DM significa specificarne il suo Calcolo sul DBO e la sua Aggregazione nel Data Mart n Calcolo: definire il suo valore per gli eventi primari Normalmente questo valore viene calcolato sul DBO, in fase di alimentazione del Data Mart. Per le misure derivate invece tale valore è derivato a livello di eventi primari - dal valore di altre misure e/o dimensioni n Aggregazione: definire il suo valore per eventi secondari Normalmente questo valore si ottiene tramite un operatore di aggregazione rispetto alle dimensioni del fatto. Per le misure calcolate invece tale valore è calcolato - a livello di eventi secondari e quindi dopo aver aggregato i dati - dal valore di altre misure: è non c è un operatore di aggregazione! 3 Esempio n Esempio delle vendite con scontrino (nella tabella, per semplicità, il tipo è sottinteso dal nome del prodotto) VENDITA - DB OPERAZIONALE TIPO PREZZO DATA PRODOTTO (1,N) VENDITA (1,N) SCONTRINO n 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 4

3 Esempio: Analisi dei dati - aggregazione n Le dimensioni di analisi sono MESE e TIPO VENDITA - DB OPERAZIONALE n Il report completo da ottenere è il seguente: REPORT : MESE-TIPO, tutte le misure, con i totali Legenda 5 Esempio: SCHEMA ER completo PREZZO PRODOTTO (1,N) VENDITA (1,N) SCONTRINO (1,1) (1,1) (1,N) (1,N) TIPO DATA (1,1) (1,N) MESE 6

4 Esempio: il report in SQL-OLAP n Il report si può ottenere con i vari strumenti OLAP (cubo multidimensionale, tabelle pivot, SQL-OLAP ) DB OPERAZIONALE n In SQL-OLAP: 7 Esempio: query SQL-OLAP SELECT MESE= CASE WHEN GROUPING(MESE)=0 THEN MESE ELSE 'TOTALE_MESE' END, TIPO = CASE WHEN GROUPING(TIPO)=0 THEN TIPO ELSE 'TOTALE_TIPO' END, NUMERO_VENDITE=COUNT(*), PREZZO_MEDIO=AVG(PREZZO), NUMERO_PRODOTTI=COUNT(DISTINCT PRODOTTO), NUMERO_CLIENTI=COUNT(DISTINCT SCONTRINO) FROM VENDITE NATURAL JOIN PRODOTTO NATURAL JOIN SCONTRINO GROUP BY MESE, TIPO WITH CUBE 8

5 Esempio : Misure nel Data Mart n Schema di fatto VENDITA n Schema logico con Fact-Table(TIPO,MESE, TIPO VENDITA NUMERO_VENDITE PREZZO_MEDIO NUMERO_CLIENTI NUMERO_PRODOTTI MESE n Per ogni misura occorre stabilire 1. ALIMENTAZIONE: cosa riportare nella Fact-Table e come calcolarlo a partire dalla sorgente operazionale 2. AGGREGAZIONE: se è possibile (aggregabilità) e come ottenere i valori aggregati a partire da quelli presenti nel Data Mart 9 Esempio: Operatore COUNT(*) ALIMENTAZIONE DATA MART NUMERO_VENDITE = COUNT(*) (DATA MART) ANALISI DEI DATI (AGGREGAZIONE) NUMERO_VENDITE = SUM(NUMERO_VENDITE) Ø Ø Per l operatore COUNT(*) è corretto calcolare il valore aggregato a partire dai valori presenti nel Data Mart! NUMERO_VENDITE = SUM(NUMERO_VENDITE), misura additiva. 10

6 Esempio: Prezzo Medio tramite AVG ALIMENTAZIONE DATA MART PREZZO_MEDIO= AVG(PREZZO) (DATA MART) ANALISI DEI DATI (AGGREGAZIONE) PREZZO_MEDIO= AVG(PREZZO_MEDIO) NO! ( )/2 = NO! ( )/3 = Ø Per l operatore AVG non è corretto calcolare il valore aggregato a partire dai valori presenti nel Data Mart! 11 Esempio: Prezzo Medio calcolato ALIMENTAZIONE DATA MART NUMERO_VENDITE = COUNT(*) PREZZO_SOMMA = SUM(PREZZO) (DATA MART) ANALISI DEI DATI (AGGREGAZIONE) PREZZO_SOMMA PREZZO_MEDIO = NUMERO_VENDITE OK! (25+35)/(1+2) = 20.0 OK! ( )/(2+1+2) = 16.0 Ø PREZZO_MEDIO è una misura calcolata da altre misure componenti Ø Per PREZZO_MEDIO non si definisce un operatore di aggregazione. 12

7 Esempio: Operatore COUNT(DISTINCT ) ALIMENTAZIONE DATA MART NUM_CLIENTI= COUNT(DISTINCT SCONTRINO) (DATA MART) ANALISI DEI DATI (AGGREGAZIONE) NUMERO_CLIENTI= SUM(NUMERO_CLIENTI) NO! 1+1=2 Ø Ø OK! 1+2 = 3 NO! 1+1+2=4 Per COUNT(DISTINCT ) non è sempre corretto calcolare il valore aggregato da quelli del DM: NUMERO_CLIENTI non aggregabile rispetto a TIPO! NUMERO_CLIENTI= SUM(NUMERO_CLIENTI), misura semi-additiva. 13 Esempio: Operatore COUNT(DISTINCT ) ALIMENTAZIONE DATA MART NUMERO_PRODOTTI= COUNT(DISTINCT PRODOTTO) (DATA MART) ANALISI DEI DATI (AGGREGAZIONE) NUMERO_PRODOTTI= SUM(NUMERO_PRODOTTI) OK! 2+1=3 NO! 1+2 = 3 NO! 2+1+2=5 Ø Ø NUMERO_PRODOTTI è non aggregabile rispetto a MESE: non è possibile calcolare i valori per TOTALE_MESE NUMERO_PRODOTTI= SUM(NUMERO_PRODOTTI), misura semi-additiva. 14

8 Per riassumere: DB (SORGENTE OPERAZIONALE) ALIMENTAZIONE DATA MART Pattern Primario {MESE,TIPO} ANALISI DEI DATI (AGGREGAZIONE) Pattern {MESE} Pattern {TIPO} Pattern {} 15 Esempio: Conclusioni e Decisioni n La scelta di un Data Mart con dimensioni TIPO e MESE comporta che alcune delle misure non siano sempre calcolabili! n Se questo non è accettabile a livello di analisi si deve aumentare la granularità del Data Mart! n Per poter sempre calcolare il numero clienti: dimensione SCONTRINO (con MESE come livello) in modo da poter valutare anche nel Data Mart il numero clienti come NUM_CLIENTI=COUNT(DISTINCT SCONTRINO) n Per poter sempre calcolare anche il numero prodotti: Massima granularità (schema transazionale): dimensioni SCONTRINO e PRODOTTO che coincidono con l identificatore del fatto VENDITA TIPO PRODOTTO VENDITA NUMERO_VENDITE PREZZO_MEDIO NUMERO_CLIENTI NUMERO_PRODOTTI MESE SCONTRINO 16

9 Misura Derivata DB OPERAZIONALE n QTY, quantità venduta n INCASSO=QTY*PREZZO n INCASSO è una misura derivata dalle altre misure QTY e PREZZO Definizione QTY= SUM(QTY) INCASSO= SUM(QTY*PREZZO) NUMERO_VENDITE = COUNT(*) PREZZO_MEDIO= AVG(PREZZO) 17 Misura Derivata nel Data Mart n Schema di fatto VENDITA (schema transazionale) TIPO PRODOTTO VENDITA NUMERO_VENDITE PREZZO_MEDIO QTY INCASSO MESE SCONTRINO n INCASSO è derivabile dalle altre misure e quindi non è riportata nella Fact Table: INCASSO=QTY*PREZZO n INCASSO, misura additiva (aggregata tramite SUM): INCASSO= SUM(QTY*PREZZO) ANALISI DEI DATI (AGGREGAZIONE) Pattern {MESE,TIPO} 18

10 Misura Derivata nel Data Mart n Schema di fatto VENDITA (schema temporale) TIPO VENDITA NUMERO_VENDITE PREZZO_MEDIO QTY INCASSO MESE n INCASSO non è più derivabile da altre misure della Fact Table:? n Occorre riportare INCASSO nella Fact Table ed alimentarla: ALIMENTAZIONE DATA MART INCASSO= SUM(QTY*PREZZO) 19 Misura Derivata da una dimensione n Misura NUM_CLIENTI= COUNT(DISTINCT SCONTRINO) è Se SCONTRINO è tra le dimensioni NUM_CLIENTI è una misura derivata è NUM_CLIENTI non viene riportata nella DB OPERAZIONALE ALIMENTAZIONE DATA MART VENDITA NUMERO_VENDITE PREZZO_MEDIO NUMERO_CLIENTI NUMERO_PRODOTTI PRODOTTO MESE SCONTRINO Ø NUM_CLIENTI è una misura aggregabile rispetto a tutte le dimensioni tramite COUNT(DISTINCT SCONTRINO) 20

11 Schema Transazionale: Count(*) n La Fact Table corrisponde alla tabella VENDITE. n La Fact Table non ha più l attributo NUM_CLIENTI in quanto ora è una misura derivata come NUM_CLIENTI= COUNT(DISTINCT SCONTRINO) ALIMENTAZIONE DATA MART n Lo stesso vale per NUM_PRODOTTI=COUNT(DISTINCT PRODOTTO) n La Fact Table non ha più l attributo NUM_VENDITE in quanto ora è una misura derivata come NUM_VENDITE= COUNT(*) 21 Schema Transazionale: AVG n Per la misura PREZZO_MEDIO si riporta nella Fact Table direttamente il valore di PREZZO ALIMENTAZIONE DATA MART n PREZZO_MEDIO si ottiene come valore aggregato di PREZZO. Due possibili soluzioni 1. PREZZO_MEDIO = AVG(PREZZO) 2. PREZZO_MEDIO = SUM(PREZZO)/NUMERO_VENDITE = SUM(PREZZO)/COUNT(*) n Normalmente si usa la seconda soluzione per poter ottimizzare le interrogazioni (vedi pagina 33) 22

12 Schemi di fatto vuoti n Uno schema di fatto si dice vuoto se non ha misure ü In questo caso, il fatto registra solo il verificarsi di un evento ü Un evento primario rappresenta che si è verificato l evento (uno studente ha frequentato un corso durante un semestre) ü Un evento secondario rappresenta normalmente il numero di eventi primari ad esso corrispondenti, ovvero si usa come operatore di aggregazione il COUNT semestre anno professore indirizzo nome studente nazionalità età sesso FREQUENZA (COUNT) corso area facoltà 23 n Schemi di fatto vuoti In uno schema di fatto vuoto non ci sono misure memorizzate nello schema di fatto (e quindi riportate nello schema logico, cioè nella Fact Table): l unica misura, implicitamente definita, è il conteggio degli eventi primari, nel nostro esempio il numero di presenze dello studente n Un altro modo di rappresentare il verificarsi di un evento è attraverso una misura normale di tipo booleana, additiva: normalmente questa misura assume il solo valore 1 (evento che si è verificato) e non il valore 0 (nello schema di fatto non si rappresentano gli eventi che non si verificano). n Una misura vuota per il conteggio degli eventi primari può essere presente anche con altre misure. Ad esempio, nello schema di fatto FREQUENZA (non più vuoto) si riportano le seguenti misure 1. (COUNT) conteggio degli eventi primari 2. VOTO (AVG) : voto medio riportato 3. NUMERO_ORE: misura additiva, numero complessivo delle ore 24

13 Misure normali e misure derivate n Misure Normali : il valore si ottiene ü per gli eventi primari : dal DBO (alimentazione) ü per gli eventi secondari: tramite operatore di aggregazione ü Una misura normale deve essere inclusa nella Fact Table n Misure Derivate : il valore si ottiene ü per gli eventi primari: dal valore di altre misure e/o dimensioni ü per gli eventi secondari: tramite operatore di aggregazione ü Una misura derivata non viene normalmente inclusa nella Fact Table (a volte si include per poter fare calcoli particolari o per semplificare) 25 Misure calcolate n Misure Calcolate: il valore si ottiene ü per gli eventi primari: dal valore di altre misure ü per gli eventi secondari: dal valore di altre misure ü Per una misura calcolata la Fact Table deve contenere tutte le altre misure usate per il suo calcolo (misure componenti) ü Generalmente le misure componenti sono delle misure normali, a volte delle misure derivate, raramente altre misure calcolate n Misura CONTEGGIO (schemi di fatto vuoti) 1. Misura derivata, aggregata tramite COUNT(*) 2. Misura normale, di valore 1 per gli eventi primari, aggregata tramite SUM 26

14 Aggregabilità ed Additività n Una misura M è aggregabile su una dimensione D se i suoi valori possono essere aggregati lungo la corrispondente gerarchia di D, altrimenti è non-aggregabile su D n Una misura M è additiva su una dimensione D se i suoi valori possono essere aggregati lungo la corrispondente gerarchia di D tramite l operatore di somma, altrimenti è non-additiva su D n L Aggregabilità (Additività) è definita rispetto ad una dimensione: Schema di Fatto F con un insieme di dimensioni D, per una misura M si considera l aggregabilità rispetto a ogni D D e si definisce l insieme delle non-aggregabilità NA D di M n Dato un generico pattern P, il valore aggregato di M è calcolabile per P se P contiene NA : NA P! 27 Esempio: Aggregabilità ed Additività 1. NUMERO_VENDITE: additiva (su tutte le dimensioni), NA = {} 2. PREZZO_MEDIO: aggregabile ma non-additiva, NA = {} 3. NUMERO_CLIENTI: additiva su MESE, non-aggregabile su TIPO (semi-additiva), NA = {TIPO} 4. NUMERO_PRODOTTI: additiva su TIPO, non-aggregabile su MESE (semi-additiva), NA = {MESE} 5. QTY e INCASSO: additive (su tutte le dimensioni), NA = {} n Rappresentazione grafica TIPO VENDITA NUMERO_VENDITE (C) PREZZO_MEDIO (AVG) QTY INCASSO NUMERO_CLIENTI NUMERO_PRODOTTI (<Operatore di aggregazione>) (C) : misura è calcolata Additività : è il default, sottointeso (SUM) Linea tratteggiata: non aggregabilità rispetto alla dimensione MESE n NUMERO_CLIENTI: semi-additiva con NA = {TIPO} è NUMERO_CLIENTI calcolabile (SUM) per ogni pattern che contiene {TIPO}. 28

15 Esempio: Aggregabilità ed Additività TIPO PRODOTTO VENDITA MESE n NUMERO_CLIENTI = COUNT(DISTINCT SCONTRINO) misura semi-additiva con NA = {PRODOTTO} quindi è calcolabile per {MESE,PRODOTTO}, {PRODOTTO} n NUMERO_PRODOTTI= COUNT(DISTINCT PRODOTTO) misura derivata, aggregabile rispetto a tutte le dimensioni tramite l operatore COUNT(DISTINCT ) Operatori di aggregazione n Classificazione degli operatori di aggregazione : 1) Distributivi: permettono di calcolare dati aggregati direttamente da dati parzialmente aggregati (es. somma, massimo, minimo, conteggio) 2) Algebrici: richiedono un numero finito di informazioni aggiuntive (misure di supporto) per calcolare dati aggregati da dati parzialmente aggregati Es. media richiede il numero dei dati elementari che hanno contribuito a formare un singolo dato parzialmente aggregato è una misura da aggregare tramite l operatore media è una misura calcolata come somma/conteggio 3) Olistici: non permettono di calcolare dati aggregati a partire da dati parzialmente aggregati utilizzando un numero finito di informazioni aggiuntive (es. mediana, moda) 30

16 Operatori Distributivi ed Algebrici n Misure definite con operatori Distributivi ed Algebrici permettono di calcolare dati aggregati a partire da dati parzialmente aggregati. Esempi: 1. operatore SUM - misura additiva QTY; 2. operatore AVG - misura calcolata PREZZO_MEDIO=PREZZO_SUM/PREZZO_COUNT Pattern Primario {MESE,TIPO} Pattern {MESE} Pattern {TIPO} Pattern {} 31 Calcolo delle misure: Viste materializzate n La proprietà di calcolare dati aggregati a partire da dati parzialmente aggregati è fondamentale nei sistemi OLAP: ü un aumento delle prestazioni può essere ottenuto pre-calcolando i dati aggregati di uso più comune, cioè pre-calcolando alcuni pattern n L ottimizzazione usa il concetto di vista materializzata: ü Vista : le sue tuple sono determinate da una query ü Materializzata : le sue tuple sono memorizzate in una tabella Ø Argomento Viste materializzate 32

17 Schema Transazionale - Operatore AVG n In uno schema transazionale (vedi pag. 22) per aggregare e calcolare il prezzo medio, due possibili soluzioni 1. Si riporta PREZZO nella Fact Table e si utilizza l operatore AVG PREZZO_MEDIO = AVG(PREZZO) 2. Si riportano nella Fact Table due misure normali additive PREZZO_SUM e PREZZO_COUNT e si usa la misura calcolata PREZZO_MEDIO=PREZZO_SUM/PREZZO_COUNT n E facile verificare che solo con la seconda soluzione è possibile calcolare dati aggregati a partire da dati parzialmente aggregati! n In alcuni sistemi OLAP (es. Analysis Services) l operatore AVG non è disponibile come operatore di aggregazione! 33 Nota sul Prezzo Medio calcolato n Nel calcolo del prezzo medio i valori NULL di PREZZO (se consentiti nel DBO) devono essere trascurati! n In SQL, gli operatori AVG() e SUM() e COUNT() trascurano i NULL, che invece vengono contati con COUNT(*). n Per gestire i valori NULL nella misura calcolata: PREZZO_MEDIO=PREZZO_SUM/PREZZO_COUNT Quindi PREZZO_COUNT deve essere calcolata dal DBO come 1. Schema Transazionale: PREZZO_COUNT=WHEN PREZZO IS NULL THEN 0 ELSE 1 2. Schema Temporale: PREZZO_COUNT=COUNT(PREZZO) dove COUNT(PREZZO) coincide con COUNT(*) solo se PREZZO non ammette valori NULL. 34

18 Operatori distributivi n Distributivi: permettono di calcolare dati aggregati a partire direttamente da dati parzialmente aggregati. n Sia S un insieme di dati ed S1,..., Sn una sua partizione. Una funzione di aggregazione F è distributiva se esiste una funzione G tale che: F(S1,..., Sn) = G(F(S1),, F(Sn)) S n Operatore somma: F= sum(); in questo caso G=F sum(s1,..., Sn)=sum(sum(S1),... sum(sn)) n Operatore conteggio: F= count(); in questo caso G=sum() (cioè <>F) count(s1,..., Sn)=sum(count(S1),..., count(sn)) 35 Operatori distributivi n Per approfondire: articolo sull operatore WITH CUBE n Nel seguito una verifica informale sul nostro esempio Pattern Primario {MESE,TIPO} A B C Pattern {MESE} Pattern {TIPO} S1 = { A, B } S2 = { C } S1 = { A} S2 = {B C } n S = {A,B,C} : tuple della Fact Table (eventi primari) n La prima tupla del pattern {MESE } raggruppa le tuple A, B quindi S1 = {A,B}; S2 = { C} Il pattern {MESE} è quindi una partizione degli eventi primari. 36

19 Operatori distributivi n Lo stesso discorso si applica anche alla Fact Table rispetto al DBO Tabella VENDITA nel DBO S = {A,B,C,D,E} A B C D E ALIMENTAZIONE DATA MART Pattern Primario {MESE,TIPO} S1 = { A, B } S2 = { C } S3 = { D, E } n S = {A,B,C,D,E } : tuple di VENDITA nel DBO n La prima tupla della Fact Table raggruppa le tuple A, B quindi S1 = {A,B} e cosi via: S2 = { C} e S3 = {D, E} La Fact Table è quindi una partizione del DBO. 37 Associazioni uno-a-molti n Il raggruppamento di un insieme di tuple S rispetto ad un attributo A è un partizionamento di S solo nel caso in cui ogni tupla di S ha associato un solo valore di A è associazioni uno-a-molti n Ad esempio, con una associazione molti-a-molti tra PRODOTTO e TIPO, la Fact Table non è più una partizione del DBO (è richiede una gestione particolare: Archi Multipli) A B C D E S1 = { A, B } S2 = { A } 38

20 Operatori e Aggregabilità/Additività delle misure n Misure con operatori distributivi: ü PREZZO_SUM=SUM(PREZZO), con operatore SUM: sum(s1,s2,s3) = 80 =sum(sum(s1), sum(s2),sum(s3)) = sum(20,25,35) = 80 ü NUM_VENDITE=COUNT(*), con operatore COUNT: count(s1,s2,s3) = 5 =sum(count(s1), count(s2), count(s3)) = sum(2,1,2) = 5 n Operatore non distributivo count distinct (DCOUNT): ü NUM_CLIENTI=DCOUNT(SCONTRINO), con operatore DCOUNT: dcount(s1,s2,s3) = 3 sum(dcount(s1),dcount(s2),dcount(s3))= sum(1,1,2) = 4 n Per misure definite con operatori distributivi è nota l aggregabilità: SUM() e COUNT(*) sono distributivi quindi le misure PREZZO_SUM e NUM_VENDITE sono additive rispetto a tutte le dimensioni n L operatore DCOUNT non è distributivo quindi NUM_CLIENTI non è necessariamente additiva rispetto a tutte le dimensioni 39 Operatore COUNT (DISTINCT ) n Per una misura calcolata sul DBO tramite l operatore COUNT(DISTINCT) vale la seguente proprietà: Dato uno Schema di Fatto F con dimensioni D ed una Misura M=COUNT(DISTINCT A), con A attributo del DBO, per una dimensione D D, M è additiva rispetto a D se esiste un insieme X D tale che X { A } à D non banale altrimenti è non aggregabile rispetto a D n Esempio Schema VENDITA con D = { TIPO,MESE} 1. NUMERO_CLIENTI = COUNT(DISTINCT SCONTRINO) SCONTRINO à MESE: additiva rispetto a MESE SCONTRINO à TIPO: non aggregabile rispetto a TIPO Intuizione della regola: lo SCONTRINO è associato ad un unico MESE 40

21 Aggregabilità delle misure: esempio PRODOTTO PRODOTTO (1,N) IN (1,1) DATA VENDITA NS VENDITA QUANTITA DATA TIPO QUANTITA NUM_CLIENTI PRODOTTO TIPO n n Misura NUM_CLIENTI = COUNT(DISTINCT NS) n {Data, NS } à PRODOTTO: additiva rispetto a PRODOTTO n NS à DATA: non aggregabile rispetto a DATA Intuizione della regola: lo scontrino NS non è da solo associato ad un unico PRODOTTO, però lo diventa se fissiamo le altre dimensioni (DATA) Ø Per la misura NUM_CLIENTI l insieme delle non-aggregabilità è NA = { DATA}, quindi il suo valore aggregato è calcolabile (tramite SUM) solo per i pattern che contengono NA, cioè per {DATA} e {DATA, TIPO} 41 Aggregabilità delle misure: esempio CATEGORIA PREZZO DATA TIPO (1,N) HA (1,1) PRODOTTO (1,N) VENDITA (1,N) SCONTRINO n Definizione delle Misure: 1. NUMERO_CLIENTI = COUNT(DISTINCT SCONTRINO) 2. NUMERO_PRODOTTI = COUNT(DISTINCT PRODOTTO) CATEGORIA TIPO VENDITA NUMERO_PRODOTTI NUMERO_CLIENTI (COUNT DISTINCT) MESE SCONTRINO n NUMERO_CLIENTI è una misura derivata, aggregabile rispetto a tutte le dimensioni tramite COUNT DISTINCT n NUMERO_PRODOTTI è additiva su TIPO (in quanto PRODOTTO à TIPO) e non aggregabile rispetto alle altre dimensioni (SCONTRINO) ü è calcolabile solo per i pattern che contengono SCONTRINO, quindi non è calcolabile neanche per il pattern {MESE}! 42

22 Non aggregabilità nei sistemi OLAP n In un sistema OLAP il calcolo delle misure deve essere definito per ogni possibile aggregazione, ovvero per ogni possibile pattern P del reticolo roll-up. n Per le non aggregabilità si deve implementare la regola (pag. 27): M è calcolabile per P se P contiene NA : NA P! IF (NA P) THEN <calcolo> ELSE non calcolabile n In SQL-OLAP : NA P si formula con GROUPING (G): sia NA= {D1,, Dk}, allora (NA P) equivale a G(D1)=0 AND AND G(Dk)=0 n Nei sistemi OLAP che usano MDX, intuitivamente si usa il fatto che il livello dimensione corrisponde ad una foglia: (NA P) equivale a leaf(d1) AND AND leaf(dk) 43 Esempio Schema di Fatto ESAME n DBO Schema: STUDENTE(STUDENTE,CITTA,REGIONE,STATO), DF: CITTA à REGIONE CORSO(CORSO,CFU,FACOLTA) REGIONE à STATO APPELLO(APPELLO,CORSO:CORSO) ESAME(DATA,STUDENTE:STUDENTE,APPELLO:APPELLO,VOTO) DATA ESAME (1,1) DEL (1,N) APPELLO (1,1) DEL (1,N) CORSO (1,1) DEL VOTO FACOLTA CFU (1,N) STATO STUDENTE (1,1) IN (1,N) CITTA (1,1) DEL (1,N) REGIONE n DBO istanza (REGIONE e STATO sono omesse) 44

23 n Dimensioni = { DATA, CITTA, CORSO}; n Schema temporale n Nessuna Dipendenza Funzionale tra le dimensioni n Misure 1. NUM_APPELLI=count(DISTINCT APPELLO) Additiva rispetto a CORSO in quanto APPELLO à CORSO 2. NUM_STUDENTI=count(DISTINCT STUDENTE) Additiva rispetto a CITTA in quanto STUDENTE à CITTA Additiva rispetto a CORSO in quanto STUDENTE,DATA à CORSO Infatti STUDENTE,DATA APPELLO e APPELLO à CORSO 3. NUM_ESAMI=count(*), addittiva 4. CFU=SUM(CFU), addittiva FACOLTA CORSO REGIONE CITTA ESAME DATA STATO NUM_APPELLI NUM_ESAMI CFU NUM_STUDENTI 45 ESEMPIO: Progetto Logico e Alimentazione n STAR SCHEMA (CORSO:DT_CORSO, CITTA:DT_CITTA, DATA, CFU,NUM_ESAMI,NUM_APPELLI,MUM_STUDENTI) DT_CITTA(CITTA,REGIONE,STATO) DT_CORSO(CORSO,FACOLTA n ALIMENTAZIONE: la è alimentata attraverso la seguente view CREATE VIEW AS SELECT CORSO,CITTA,DATA, CFU=SUM(CFU), NUM_ESAMI=COUNT(*), NUM_APPELLI=COUNT(DISTINCT APPELLO), NUM_STUDENTI=COUNT(DISTINCT STUDENTE) FROM RU GROUP BY CORSO,CITTA,DATA 46

24 ESEMPIO: pattern {CITTA,DATA} n Misure 1. NUM_APPELLI è additiva rispetto a CORSO, quindi NA={CITTA,DATA} è calcolabile solo per i pattern che contengono CITTA e DATA, quindi i pattern con GROUPING(CITTA)=0 AND GRUPING(DATA)=0; 2. NUM_STUDENTI è addittiva rispetto a CITTA e CORSO, quindi NA={DATA} è calcolabile solo per i pattern che contengono DATA, quindi i pattern con GROUPING(DATA)=0. n Effettuiamo la verifica calcolando il data cube di {CITTA,DATA} sia nel DBO (query sulla relazione RU) che nel Data Mart (query sulla Fact Table) 47 ESEMPIO: query in SQL-OLAP 1. Nel DataBase operazionale, la query risulta la seguente: SELECT CITTA=CASE WHEN GROUPING(CITTA)=1 THEN 'ALL_CITTA' ELSE CITTA END, DATA=CASE WHEN GROUPING(DATA)=1 THEN 'ALL_DATA' ELSE DATA END, CFU=SUM(CFU), NUM_STUDENTI=COUNT(DISTINCT STUDENTE), NUM_ESAMI=COUNT(*), NUM_APPELLI=COUNT(DISTINCT APPELLO) FROM RU GROUP BY CITTA,DATA WITH CUBE 2. Nel DataMart, la query sulla risulta la seguente: SELECT CITTA=CASE WHEN GROUPING(CITTA)=1 THEN 'ALL_CITTA' ELSE CITTA END, DATA=CASE WHEN GROUPING(DATA)=1 THEN 'ALL_DATA' ELSE DATA END, CFU=SUM(CFU), NUM_ESAMI=SUM(NUM_ESAMI), NUM_STUDENTI=SUM(NUM_STUDENTI),NUM_APPELLI=SUM(NUM_APPELLI) FROM GROUP BY CITTA, DATA WITH CUBE 48

25 ESEMPIO: misure NonCalcolabili n Nel DataMart la query può esplicitare quando una misura è NonCalcolabile (il CONVERT è necessario per uniformare i tipi del CASE): SELECT CITTA=CASE WHEN GROUPING(CITTA)=1 THEN 'ALL_CITTA' ELSE CITTA END, DATA=CASE WHEN GROUPING(DATA)=1 THEN 'ALL_DATA' ELSE DATA END, CFU=SUM(CFU), NUM_APPELLI=SUM(NUM_APPELLI), NUM_STUDENTI=CASE WHEN GROUPING(DATA)=0 THEN CONVERT(CHAR(12),SUM(NUM_STUDENTI)) ELSE 'NonCalcolabile END, NUM_APPELLI=CASE WHEN GROUPING(DATA)=0 AND GROUPING(CITTA)=0 THEN CONVERT(CHAR(12),SUM(NUM_APPELLI)) ELSE 'NonCalcolabile' END FROM GROUP BY CITTA, DATA WITH CUBE 49 Nuova Dimensione : DOCENTE (caso 1) n DBO: il DOCENTE dipende dalla DATA e dal CORSO CORSO(CORSO,CFU,FACOLTA)... DOCENTE(CORSO:CORSO,DATA,DOCENTE) APPELLO (1,1) DEL (1,N) CORSO (1,N) CON (1,1) DOCENTE FACOLTA CFU DATA DOCENTE n La dimensione DOCENTE dipende dalle altre: si verifica facilmente (vedi pag. 40) che ogni misura definita tramite COUNT DISTINCT è aggregabile rispetto a DOCENTE STATO REGIONE DOCENTE FACOLTA CITTA SCHEMA EQUIVALENTE ESAME CORSO NUM_APPELLI NUM_ESAMI CFU NUM_STUDENTI DOCENTE DATA 50

26 Star Schema e SQL-OLAP (CITTA:DT_CITTA,CORSO:DT_CORSO,DATA,DOCENTE, NUM_APPELLI,NUM_ESAMI,CFU,NUM_STUDENTI) DT_CITTA(CORSO,REGIONE,STATO) DT_CORSO(CORSO,FACOLTA) n Realizzare in SQL-OLAP il reticolo di roll-up relativo a : CORSO,FACOLTA,DATA,DOCENTE 1. La misura NUM_APPELLI non è mai calcolabile in quanto il suo insieme NA contiene CITTA che non è di raggruppamento 2. Occorre considerare le FD tra gli attributi n Nella soluzione su carta i dettagli (convert, join, ) sono omessi SELECT CORSO,FACOLTA,DATA,DOCENTE CFU=SUM(CFU), NUM_APPELLI=SUM(NUM_APPELLI), NUM_STUDENTI=CASE WHEN GROUPING(DATA)=0 THEN SUM(NUM_STUDENTI) ELSE 'NonCalcolabile END, FROM NATURAL JOIN DT_CORSO GROUP BY CORSO,FACOLTA,DATA,DOCENTE WITH CUBE HAVING NOT ( GROUPING(DOCENTE)=0 AND GROUPING(CORSO)= 1 AND GROUPING(DATA)=1 OR GROUPING(FACOLTA)=0 AND GROUPING(CORSO)= 1 ) 51 Nuova Dimensione : DOCENTE (caso 2) n DBO: il DOCENTE dipende dalla DATA e dallo STUDENTE ESAME(DATA,STUDENTE:STUDENTE, APPELLO:APPELLO,VOTO, DOCENTE) n La dimensione DOCENTE non dipende dalle altre dimensioni: deve essere inclusa nel calcolo delle non aggregabilità (NA) n Misure 1. NUM_APPELLI=count(DISTINCT APPELLO) Non Additiva rispetto a DOCENTE 2. NUM_STUDENTI=count(DISTINCT STUDENTE) Additiva rispetto a DOCENTE perché STUDENTE,DATA à DOCENTE REGIONE FACOLTA CITTA ESAME CORSO STATO DOCENTE NUM_APPELLI NUM_ESAMI CFU NUM_STUDENTI DATA 52

27 Nuova Misura: dcount(regione) (caso 1) n Allo schema di fatto ESAME viene aggiunta la misura NUM_REGIONI= COUNT(DISTINCT REGIONE) STATO REGIONE DOCENTE FACOLTA CITTA ESAME CORSO NUM_APPELLI NUM_ESAMI CFU NUM_STUDENTI (D) NUM_REGIONI DATA n NUM_REGIONI è una misura derivata: il suo valore è calcolato sulla base della dimensione CITTA ü È calcolabile rispetto a tutte le dimensioni ü Si noti che REGIONE non è un figlio diretto della radice dell albero degli attributi: per la FD: CITTA à REGIONE, il valore di NUM_REGIONI è invariato (ed in particolare vale 1) per tutti i pattern che contengono CITTA! 53 Nuova Misura: dcount(regione) (caso 2) n Si considera ancora NUM_REGIONI= COUNT(DISTINCT REGIONE) ma al posto della dimensione CITTA si considera STATO STATO DOCENTE FACOLTA ESAME NUM_APPELLI NUM_ESAMI CFU NUM_STUDENTI NUM_REGIONI CORSO DATA n NUM_REGIONI non è più una misura derivata ma una misura normale definita con dcount di cui occorre valutare l aggregabilità ü NUM_REGIONI=count(DISTINCT REGIONE) Additiva solorispetto a STATO perché STATO à REGIONE Ø Valutare l aggregabilità delle altre due misure - NUM_APPELLI e NUM_STUDENTI - rispetto alla nuova dimensione STATO 54

28 Misure di flusso e misure di livello n Nel caso generale, è necessario definire misure più complesse, non direttamente riconducibili agli standard operatori SQL DBO di una Università: ISCRIZIONE(STUDENTE,ANNO,FACOLTA) n Schema di fatto ISCRIZIONE con: n Dimensioni 1. ANNO 2. FACOLTA n Misure 1. NUM_ISCR= COUNT(*) 2. NUM_STUD= COUNT(DISTINCT STUDENTE) Schema di Fatto temporale No Dipendenze Funzionali tra le dimensioni 3. NUM_MATR_UNIV numero di prima iscrizione all università 4. NUM_MATR_FAC numero di prima iscrizione ad una facoltà 55 n Per queste due misure complesse si calcola prima un attributo booleano S/N e quindi si somma n Per controllare anche i valori aggregati si usa un WITH CUBE NUM_MATR_FAC= SUM(CASE WHEN PRIMA_ISCRIZ_FACOLTA_S_N='S' THEN 1 ELSE 0 END) NUM_MATR_UNI= SUM(CASE WHEN PRIMA_ISCRIZ_UNIVERSITA_S_N='S' THEN 1 ELSE 0 END) 56

29 Misure di flusso e di livello: addittività ANNO ISCRIZIONE NUM_ISCR NUM_STUD NUM_MATR_UNIV NUM_MATR_FAC FACOLTA n In base alle proprietà degli operatori count e dcount : 1. NUM_ISCR= COUNT(*) : addittiva rispetto a tutte le dimensioni 2. NUM_STUD= COUNT(DISTINCT STUDENTE) addittiva rispetto a FACOLTA in quanto { STUDENTE, ANNO } à FACOLTA n È possibile verificare che anche NUM_MATR_UNIV e NUM_MATR_FAC risultano addittive rispetto a tutte le dimensioni Ø NUM_ISCR, NUM_MATR_UNIV e NUM_MATR_FAC: misure di flusso Ø NUM_STUD : misure di livello 57 Misure di flusso, di livello e unitarie n L aggregazione richiede di definire un operatore adatto per comporre i valori delle misure che caratterizzano gli eventi primari in valori da abbinare a ciascun evento secondario n Da questo punto di vista è possibile distinguere tre categorie di misure: ü Misure di flusso: si riferiscono a un periodo, al cui termine vengono valutate in modo cumulativo (il numero di prodotti venduti in un giorno, l incasso mensile, il numero di studenti iscritti in un anno) ü Misure di livello: vengono valutate in particolari istanti di tempo (il numero di prodotti in inventario, il numero di matricole di una facoltà) ü Misure unitarie: vengono valutate in particolari istanti di tempo, ma sono espresse in termini relativi (il prezzo unitario di un prodotto, la percentuale di sconto, la percentuale di studenti stranieri) Gerarchie temporali Gerarchie non temporali Misure di flusso SUM, AVG, MIN, MAX SUM, AVG, MIN, MAX Misure di livello AVG, MIN, MAX SUM, AVG, MIN, MAX Misure unitarie AVG, MIN, MAX AVG, MIN, MAX 58

30 Misura aggregabile con differenti operatori n Ipotesi considerata finora: per ogni misura, è definito un unico operatore di aggregazione valido per ogni dimensione n Esempio di misura con differenti operatori di aggregazione: Fatto Inventario con misure 1. Livello (misura di livello) 2. Quantità Ingresso (misura di flusso) 3. Prezzo Unitario (misura unitaria) anno n mese data peso confezione AVG, MIN prodotto tipo INVENTARIO livello quantità ingresso (C) PU (AVG) reparto categoria marca unità per pallet indirizzo magazzino città stato La misura livello è additiva rispetto alle dimensioni prodotto e magazzino mentre è non-additiva ma aggregabile rispetto a data con operatori quali AVG e MIN Se per Data si usa MIN, nel calcolo di Livello per {Città, Mese} si deve scegliere se applicare prima MIN e poi SUM (somma dei minimi) o viceversa (minimo della somma) 59 Misura aggregabile con differenti operatori Pattern Primario: {Magazzino, Prodotto,Data} {Magazzino, Mese} (per Livello si usa MIN) {Città, Data} (per Livello si usa SUM) n Per Livello, nel Pattern {Città, Mese} si hanno due possibilità: 1. Minimo della Somma = Somma dei Minimi = 40 n Nel sistema OLAP di SQL-SERVER (Analysis Services, linguaggio MDX) è possibile definire: Ø formule personalizzate di rollup per i vari livelli di una dimensione Ø l ordine di priorità per dire a quale aggregazione dare precedenza 60

31 Dipendenza parziale dalle dimensioni n (Dalla progettazione concettuale): Se una misura è un attributo numerico che non è figlio diretto della radice dell albero allora si ottiene una misura che dipende parzialmente dalle dimensioni : n Schema di fatto F con dimensioni D e misura M: Dipendenza parziale di M da D: esiste D' D tale che D' M n Esempio: La misura PrezzoUnitario non è figlio diretto della radice : Prezzo unitario (0,N) (1,1) PRODOTTO in quantità VENDITA prezzo unitario data (1,1) (1,N) in SCONTRINO prodotto num. scontrino n Siccome Prodotto PrezzoUnitario, per PrezzoUnitario si ha una dipendenza parziale dalle dimensioni: 61 Multidimensional Normal Form (MNF) n DB Operazionale: Informalmente, la 2NF serve per definire schemi esenti dai problemi derivanti dalla dipendenza parziale di un attributo dalla chiave n Data Mart: Informalmente, la 1MNF serve per definire schemi di fatto esenti da problemi derivanti dalla dipendenza parziale di una misura dalla chiave del fatto. Uno schema di fatto senza dipendenze funzionali tra dimensioni ha come chiave l insieme delle dimensioni. n Un classico problema di una misura che dipende parzialmente dalle dimensioni è il cosiddetto double counting. Nell esempio precedente NUM. SCONTRINO PRODOTTO QUANTITA PREZZO_UNITARIO S1 P S1 P S2 P n Il PREZZO_UNITARIO medio complessivo risulta 200 invece di 250! n Si noti anche che se M dipende parzialmente da D', allora il suo valore resta invariato nei pattern che contengono D (esempio: PrezzoUnitario rimane invariato nei pattern che contengono Prodotto) 62

32 n Esempio di double counting Dimensioni D = {OrderNum, ItemNum, StockNum, ManuCode} Misura ShipCharge: OrderNum ShipCharge n Ø Soluzioni Ship Charge è riportato nella Fact Table; il suo valore viene diviso per il numero di item dell ordine Ø Ship Charge è riportato nella Fact Table; il suo valore viene riportato in una riga particolare (Item Num =0) 63 Gerarchie Incomplete n Questo termine indica una gerarchia in cui per alcune istanze risultano assenti uno o più livelli di aggregazione Gerarchia Incompleta Su Citta MAGAZZINO STATO CITTA L 1 L 2 L 3 n Una misura additiva permette di calcolare dati aggregati a partire da dati parzialmente aggregati: non è vero nelle gerarchie incomplete Ø È fondamentale considerare gerarchie complete 64

33 Definizione di Gerarchia Completa n Sia L1,L2,, Ln un percorso all interno di una gerarchia n Per definizione, ogni arco è una associazione uno-a-molti, cioè 1. card-max(li,li+1)=1 2. card-max(li+1,li)=n n La definizione di gerarchia completa viene data considerando le cardinalità minime coinvolte nelle associazioni uno-a-molti. n La gerarchia è completa se, per ogni suo percorso L1,L2,, Ln, per 1 <= i <= n-1, si ha: 1. card-min(li,li+1) = 1 2. card-min(li+1,li) = 1 65 Gerarchie Incomplete vs Archi Opzionali n Importante differenza tra gerarchie incomplete ed archi opzionali: n Arco opzionale: per alcune istanze, manca il valore di un attributo e quelli di tutti gli eventuali discendenti di tale attributo MAGAZZINO STATO CITTA n Gerarchia incompleta: per alcune istanze, manca il valore di uno o più attributi, in una posizione generica della gerarchia MAGAZZINO CITTA STATO n Due modellazioni equivalenti per la stessa gerarchia: MAGAZZINO STATO MAGAZZINO STATO CITTA CITTA 66

34 Gerarchie Incomplete n Come per gli archi opzionali, vengono gestite a livello estensionale inserendo opportuni valori fittizi per renderle complete n Il problema è più complesso rispetto al caso di attributi opzionali poiché la mancanza di un valore di un attributo non implica la mancanza dei successivi nella gerarchia di aggregazione n È necessario mantenere la consistenza rispetto al roll-up n Sono possibili più soluzioni che si differenziano per il tipo di valore fittizio (segnaposto) inserito 67 Gerarchie Incomplete n Bilanciamento per esclusione: in tutte le tuple viene inserito un segnaposto generico (es. altro) ü Preferibile quando il numero di dati mancanti è elevato n Viene violata la semantica del roll-up: aggregando i dati si ha un maggiore livello di dettaglio 68

35 Gerarchie Incomplete n Bilanciamento verso il basso: i valori mancanti vengono rimpiazzati con il valore dell attributo che lo precede nella gerarchia ü Preferibile quando il numero di dati mancanti è basso n L interpretazione dei report è complicata dal fatto che appariranno valori non corrispondenti al livello di aggregazione prescelto 69 Gerarchie Incomplete n Bilanciamento verso l alto: i valori mancanti vengono rimpiazzati con il valore dell attributo che lo seguenella gerarchia ü Preferibile quando il numero di dati mancanti è elevato n I report risultano più leggibili rispetto alla soluzione precedente in quanto presentano un numero inferiore di valori 70

Misure. Definizione delle misure

Misure. Definizione delle misure Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Misure In parte dal Capitolo 5 del libro Data Warehouse - teoria e pratica della Progettazione Autori: Matteo Golfarelli,

Dettagli

Definizione e calcolo delle misure

Definizione e calcolo delle misure 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

Dettagli

Misure (parte II) Gerarchie Incomplete

Misure (parte II) Gerarchie Incomplete Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Misure (parte II) Gerarchie Incomplete Esempio Schema di Fatto STUDENTE(STUDENTE,,REGIONE,), DF:! REGIONE (,,) REGIONE!

Dettagli

Estensioni del linguaggio SQL per interrogazioni OLAP

Estensioni del linguaggio SQL per interrogazioni OLAP 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

Dettagli

Esercizio con attributo cross-dimensionale - transazionale

Esercizio con attributo cross-dimensionale - transazionale Esercizio con attributo cross-dimensionale - transazionale TIPO (,CITTA) DI QTY CITTA (,ANNO) SCONTRINO(NSC, :) (,TIPO) VENDITA IN VENDITA(NSC:SCONTRINO,:, :,QTY,PU) IN PU NSC ANNO SCONTRINO DEL Viene

Dettagli

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

Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano. Archi multipli Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Archi multipli Capitoli 5.2.5 e 9.1.4 del libro Data Warehouse - teoria e pratica della Progettazione Autori: Matteo Golfarelli,

Dettagli

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

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore) Arco Multiplo! Schema di fatto contenente un arco multiplo: genere autore libro VENDITA numero incasso data mese anno arco multiplo (AM) " Per illustrare il concetto di arco multiplo si parte da uno schema

Dettagli

Il Dimensional Fact Model

Il Dimensional Fact Model Il Dimensional Fact Model Per le slides si ringrazia il Prof. Stefano Rizzi (http://www-db.deis.unibo.it/~srizzi/) e il Dott. Angelo Sironi Quale formalismo? Mentre è universalmente riconosciuto che un

Dettagli

ESEMPIO DI PROVA PRATICA

ESEMPIO DI PROVA PRATICA ESEMPIO DI PROVA PRATICA Sono dati Schema di Fatto VENDITA QTY: misura normale ADDITIVA PU: misura calcolata come PU_TOTALE/NVENDITE dove a) PU_TOTALE misura normale additiva b) NVENDITE misura normale

Dettagli

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak ESEMPIO DELLE VENDITE: MISURE ED AGGREGABILITA E l esempio discusso nelle dispense è Dispense : http://www.dbgroup.unimo.it/sia/sia_2014_progettazionediundw_misure.pdf esteso e dettagliato. Il BACKUP è

Dettagli

Estensioni del linguaggio SQL per interrogazioni OLAP

Estensioni del linguaggio SQL per interrogazioni OLAP Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Estensioni del linguaggio SQL per interrogazioni OLAP Outline! Esempio introduttivo e motivazioni! Introduzione al modello

Dettagli

Data warehouse Analisi dei dati

Data warehouse Analisi dei dati atabase and ata Mining Group of atabase and ata Mining Group of atabase and ata Mining Group of B MG ata warehouse: analisi dei dati atabase and data mining group, M B G ata warehouse Analisi dei dati

Dettagli

Schema Del DB Operazionale TELEFONATE

Schema Del DB Operazionale TELEFONATE Schema Del DB Operazionale TELEFONATE Costruire lo Schema di Fatto per analizzare le chiamate considerando come dimensioni TelefonoDA e TelefonoA, Data e Fascia, intesa come FasciaOraria della chiamata

Dettagli

Biglietti e Ritardi: schema E/R

Biglietti e Ritardi: schema E/R Biglietti e Ritardi: schema E/R Ritardi: Progettazione dello schema di Fatto! Definire uno schema di fatto per analizzare i ritardi; in particolare l analisi deve considerare l aeroporto di partenza, mentre

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing

Dettagli

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

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SCENARI TEMPORALI Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SCENARI TEMPORALI Dalle dispense originali realizzate dal Prof. Stefano Rizzi (http://www-db.deis.unibo.it/~srizzi/) e

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

ESEMPIO: RITARDI & BIGLIETTI ESEMPIO: RITARDI & BIGLIETTI Fatto Ritardi: l analisi a livello volo giornaliero, considerando l aeroporto di partenza, la città e lo stato di arrivo e la compagnia Fatto Biglietti: l analisi deve considerare

Dettagli

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

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

ESEMPIO: RITARDI & BIGLIETTI ESEMPIO: RITARDI & BIGLIETTI! Fatto Ritardi: l analisi a livello volo giornaliero, considerando l aeroporto di partenza, la città e lo stato di arrivo e la compagnia! Fatto Biglietti: l analisi deve considerare

Dettagli

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

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Basi di dati attive Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Tali regole vengono attivate in modo automatico al verificarsi

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Architetture per l analisi dei dati

Architetture per l analisi dei dati Architetture per l analisi dei dati Esercizio 8.1 Progettare un cubo multidimensionale relativo all analisi dei sinistri per una compagnia assicurativa, basandosi sulle specifiche accennate nel paragrafo

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 5 Raffaella Gentilini 1 / 22 Sommario 1 Gruppi 2 / 22 Raggruppamenti Gruppi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

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

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

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

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio

Dettagli

Basi di Dati. S Q L Lezione 4

Basi di Dati. S Q L Lezione 4 Basi di Dati S Q L Lezione 4 Antonio Virdis a.virdis@iet.unipi.it Sommario Espressioni condizionali Query nella SELECT Raggruppamento di tuple Condizioni sui gruppi 2 Esercizio 6 (lezione 3) Indicare nome

Dettagli

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

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 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 Operatori aggregati Costituiscono una estensione delle normali interrogazioni SQL (non hanno corrispondenza in

Dettagli

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

Analysis Service. Dutto Riccardo IPSI - tel Dutto Riccardo - SQL Server 2008. SQL Server Business Intelligence Development Studio Analysis Service Dutto Riccardo riccardo.dutto@polito.it IPSI - tel.7991 http://dbdmg.polito.it/ Il Data warehouse Sorgenti dati operazionali DB relazionali

Dettagli

PROGETTAZIONE LOGICA ETL (SECONDA CONSEGNA) 21/11/2014

PROGETTAZIONE LOGICA ETL (SECONDA CONSEGNA) 21/11/2014 PROGETTAZIONE LOGICA ETL (SECONDA CONSEGNA) 21/11/2014 GRUPPO GVB (VESTRALI Alberto, GILIBERTI Lorenzo, BERNI Samanta) FATTO PURCHASE ORDER DETAIL (Tipo schema: TEMPORALE) Per questo fatto si è deciso

Dettagli

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

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio Trovare il codice e il numero di soci dei fornitori

Dettagli

Progettazione concettuale

Progettazione concettuale Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Progettazione concettuale Dal Capitolo 6 del libro Data Warehouse - teoria e pratica della Progettazione Autori: Matteo

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

Linguaggio SQL seconda parte

Linguaggio SQL seconda parte Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle

Dettagli

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

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non

Dettagli

Indice. Prefazione. Capitolo 1 Introduzione al data warehousing 1

Indice. Prefazione. Capitolo 1 Introduzione al data warehousing 1 Indice Prefazione XI Capitolo 1 Introduzione al data warehousing 1 1.1 I sistemi di supporto alle decisioni 2 1.2 Il data warehousing 3 1.3 Architetture per il data warehousing 6 1.3.1 Architettura a un

Dettagli

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti. Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti. Cognome: Nome: Matricola: Domanda 1 (20%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server! SQL Server è un RDBMS (Relational DataBase Management System)! Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data

Dettagli

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

SQL Server BI Development Studio. SQL Server Business Intelligence Development Studio. Analysis Services SQL Server Business Intelligence Development Studio Analysis Service Dutto Riccardo Analysis Services Operazioni OLAP Creazione di dimensioni Creazione e interrogazione di cubi Operazioni di Data Mining

Dettagli

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

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice

Dettagli

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

Biglietti: schema E/R. Biglietti: albero degli attributi Biglietti: schema E/R 1 Biglietti: albero degli attributi 2 Biglietti: albero degli attributi 3 Dimensioni, Misure e Schema! Dimensioni = {CodVolo, Data, Check-in,AnnoNascitaCliente}! Tra le dimensioni

Dettagli

Sistemi Informativi Aziendali. Sistemi Informativi Aziendali. Sistemi Informativi Aziendali

Sistemi Informativi Aziendali. Sistemi Informativi Aziendali. Sistemi Informativi Aziendali DIPARTIMENTO DI INGEGNERIA INFORMATICA AUTOMATICA E GESTIONALE ANTONIO RUBERTI Introduzione al Data Warehousing per b. Progetto di Datawarehouse 1 Progetto di Data Warehouse Definizione di obiettivi e

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con

Dettagli

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

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna  Pag.1 Lezione 7 SQL (II) Pag.1 Ancora sugli operatori di confronto tra insiemi Abbiamo già visto IN, EXISTS e UNIQUE. Possiamo anche usare NOT IN, NOT EXISTS e NOT UNIQUE Disponibili anche: op ANY, op ALL Trovare

Dettagli

Basi di dati Modelli e linguaggi di interrogazione

Basi di dati Modelli e linguaggi di interrogazione Paolo Atzeni Stefano Ceri Stefano Paraboschi Riccardo Torlone Basi di dati Modelli e linguaggi di interrogazione web site McGraw-Hill IUAV - VENEZIA H 9882 BIBLIOTECA CENTRALE Paolo Atzeni Stefano Ceri

Dettagli

Interrogazioni semplici

Interrogazioni semplici Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri

Dettagli

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE Dato il seguente schema E/R E la sua traduzione nel seguente schema relazionale: disponibile in http://www.dbgroup.unimo.it/sire/20110513/20110513.bak Viene richiesto di 1) Risolvere la seguente interrogazione

Dettagli

Basi di dati Appello del Soluzione del compito B

Basi di dati Appello del Soluzione del compito B Basi di dati Appello del 10-01-2012 Soluzione del compito B Anno Accademico 2011/12 Problema 1 - Schema ER (0,7) Palestra Ubicata Comune NumAbitanti Categoria Nome Attrezzistica SportSquadra AnnoApertura

Dettagli

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

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio INTRODUZIONE L algebra relazionale è l algebra su cui si basa il linguaggio

Dettagli

SQL - Funzioni di gruppo

SQL - Funzioni di gruppo una funzione di gruppo permette di estrarre informazioni da gruppi di tuple di una relazione le funzioni di gruppo si basano su due concetti: partizionamento delle tuple di una relazione in base al valore

Dettagli

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

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano. OLAP - Analysis Services Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano OLAP - Analysis Services OLAP: cubi multidimensionali OLAP : insieme di tecniche software per l'analisi interattiva e veloce

Dettagli

SQL/OLAP. Estensioni OLAP in SQL

SQL/OLAP. Estensioni OLAP in SQL 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,

Dettagli

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

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati

Dettagli

Progettazione concettuale:

Progettazione concettuale: Progettazione Concettuale da schemi E/R Dott. Marco Comerio Progettazione concettuale: approcci Basata sui requisiti Il progettista deve essere in grado enucleare, dalle interviste condotte presso l utente,

Dettagli

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere

Dettagli

Operatori aggregati: COUNT

Operatori aggregati: COUNT Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato

Dettagli

Tabelle esempio: Impiegato/Dipartimento

Tabelle esempio: Impiegato/Dipartimento Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Il linguaggio SQL: le viste

Il linguaggio SQL: le viste Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione

Dettagli

Progettazione di un Data Warehouse

Progettazione di un Data Warehouse Sistemi Informativi Avanzati Anno Accademico 2012/2013 Prof. Domenico Beneventano Progettazione di un Data Warehouse Dai Capitoli 2,3 e 4 del libro Data Warehouse - teoria e pratica della Progettazione

Dettagli

Data warehouse: introduzione

Data warehouse: introduzione atabase and ata Mining Group of atabase and ata Mining Group of atabase and ata Mining Group of atabase and ata Mining Group of atabase and ata Mining Group of atabase and ata Mining Group of atabase and

Dettagli

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

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Basi di dati I Prova di autovalutazione 30 ottobre 2014 Basi di dati I Prova di autovalutazione 3 ottobre 214 La prova verrà discussa in aula, prevedibilmente giovedì 6 novembre. Si consiglia di svolgerlo simulando l esame, sulla carta e senza ausilio di libri

Dettagli

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

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

PROGETTAZIONE DI DATABASE Linguaggio SQL

PROGETTAZIONE DI DATABASE Linguaggio SQL PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 6 Raffaella Gentilini 1 / 40 Sommario 1 Viste 2 3 2 / 40 Viste Viste le viste sono tabelle virtuali corrispondono al risultato di una query (SELECT) valutata

Dettagli

Analisi dei dati. analisi dei dati 1

Analisi dei dati. analisi dei dati 1 Analisi dei dati analisi dei dati 1 Il problema... Limitazioni della tecnologia relazionale - Difficoltà d'uso - Rigidità Conseguenze - Uso operativo: buono - Uso strategico: scarso Soluzioni: tecniche,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

Basi di Dati: Elementi

Basi di Dati: Elementi Basi di Dati: Elementi Docente: Prof. Pierangela Samarati Appello online - 20 Marzo 2010 Soluzioni Domanda 1) Nell ambito del modello ER illustrare le proprietà che caratterizzano le gerarchie di generalizzazione/specializzazione

Dettagli

Progettazione logica: criteri di ottimizzazione

Progettazione logica: criteri di ottimizzazione Progettazione logica: criteri di ottimizzazione Sistemi Informativi T Versione elettronica: 08.2.progLogica.ottimizzazione.pdf Criteri di ottimizzazione Per confrontare tra loro diverse alternative di

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

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

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi. Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (20%) Lo schema concettuale seguente rappresenta un

Dettagli

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

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti

Dettagli

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

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SQL, e.data, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami WHERE NOT EXISTS (SELECT * WHERE e.matricola = s.matricola

Dettagli

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti. Tempo a disposizione: un ora e 45 minuti. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la relazione Stipendi(Matricola,StipLordo,Tasse,Netto,OK) Spiegare (sinteticamente ma in modo chiaro) quali

Dettagli

Progettazione Logica. Sviluppo di un Database/DataWarehouse

Progettazione Logica. Sviluppo di un Database/DataWarehouse Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Progettazione Logica Dal Capitolo 8 e 9 del libro Data Warehouse - teoria e pratica della Progettazione Autori: Matteo

Dettagli

Esercitazione 3 SQL 2

Esercitazione 3 SQL 2 Esercitazione 3 SQL 2 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E3-1 Schema della base di dati Persone (Nome, Sesso, Anno, Città) Discendenza (Genitore, Figlio) Stato (Città, Inizio, Fine, Stato)

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

DATABASE CLIENTIRAPPRESENTANTI

DATABASE CLIENTIRAPPRESENTANTI DATABASE CLIENTIRAPPRESENTANTI Esempio tratto dal libro di testo. TESTO L azienda INCOM Srl vuole organizzare un DB per gestire informazioni relative a fatture emesse ai propri clienti italiani, riportando

Dettagli

Data Warehousing. Esercitazione 2

Data Warehousing. Esercitazione 2 Esercitazione 2 Reminder In laboratorio è presente un installazione Enterprise di DB2. Per accedere richiedere un account come specificato sul sito del corso 1 Riepilogo Esercitazione 1: Descrizione dello

Dettagli

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

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Progettazione del Data Warehouse

Progettazione del Data Warehouse Progettazione del Data Warehouse Queste dispense sono state estratte dalle dispense originali del Prof. Stefano Rizzi, disponibili in http://www-db.deis.unibo.it/~srizzi/) e sono state tratte dal libro

Dettagli

APPUNTI LEZIONE 22 OTTOBRE 2015 Diagramma relazionale del DB https://dl.dropboxusercontent.com/u/ /sitoweb/adventureworkslt_sia.

APPUNTI LEZIONE 22 OTTOBRE 2015 Diagramma relazionale del DB https://dl.dropboxusercontent.com/u/ /sitoweb/adventureworkslt_sia. APPUNTI LEZIONE 22 OTTOBRE 2015 Diagramma relazionale del DB https://dl.dropboxusercontent.com/u/15491020/sitoweb/adventureworkslt_sia.bak 1 Per generare il diagramma relazionale : quindi aggiungere le

Dettagli

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I DATI E LA LORO INTEGRAZIONE 63 4/001.0 I DATI E LA LORO INTEGRAZIONE 63 4/001.0 L INTEGRAZIONE DEI DATI INTEGRAZIONE DEI DATI SIGNIFICA LA CONDIVISIONE DEGLI ARCHIVI DA PARTE DI PIÙ AREE FUNZIONALI, PROCESSI E PROCEDURE AUTOMATIZZATE NELL AMBITO

Dettagli

Algebra relazionale: operazioni

Algebra relazionale: operazioni Dipartimento di Elettronica ed ormazione Politecnico di Milano ormatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Algebra relazionale: operazioni Le presenti slide sono tratte dalle slide

Dettagli

Progettazione concettuale usando il modello Entità-Relazione (ER)

Progettazione concettuale usando il modello Entità-Relazione (ER) Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 8 settembre 2011 1 Progettazione

Dettagli

Metodologie e modelli di progetto

Metodologie e modelli di progetto Metodologie e modelli di progetto Ingg. Francesco Gullo, Giovanni Ponti D.E.I.S Università della Calabria fgullo@deis.unical.it gponti@deis.unical.it 1 I Sistemi Informativi Un sistema informativo èun

Dettagli

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF. PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF. SONIA BERGAMASCHI Esercizio 1 (punti 20) Dato il seguente schema relazionale: FOTOGRAFO(CODF,NOME,NAZIONE)

Dettagli

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Idoneita Informatica. Sistemi per la gestione di basi di Dati Idoneita Informatica Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari mauro.gaspari@unibo.it Rielaborazione delle slide del Dott. Matteo Magnani e del Dott. Nicola Dragoni 1 Sistema Informativo

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server! SQL Server è un RDBMS (Relational DataBase Management System)! Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data

Dettagli

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati

Dettagli

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

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base

Dettagli