ESEMPIO: RITARDI & BIGLIETTI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ESEMPIO: RITARDI & BIGLIETTI"

Transcript

1 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 sia l aeroporto di partenza che di arrivo, il check-in, la compagnia e l ora di partenza 1 Ricognizione e normalizzazione del RDB! Lo schema logico relazionale del DB operazionale:! E facile verificare che i due schemi sono equivalenti: lo schema logico relazionale ottenuto da un corretto progetto logico! L unica analisi ragionevole riguarda la dipendenza tra STATO e CITTA 2

2 Ricognizione e normalizzazione del RDB! Valori nulli per l attributo CITTA di AEROPORTO SELECT count(*) FROM AEROPORTO WHERE CITTA is null " Risultato vuoto: CITTA verrà considerato come NOT NULL! Dipendenza funzionale CITTA! STATO SELECT CITTA FROM AEROPORTO GROUP BY CITTA HAVING COUNT(DISTINCT STATO) > 1 " Risultato vuoto: si assume valida la FD! Schema E/R riconciliato: Nuova entità CITTA (con attributo STATO) associata ad AEROPORTO con associazione uno-a-molti! Schema relazionale riconciliato: Nuove relazioni RIC_AEROPORTO e RIC_CITTA " Essendo una modifica estremamente semplice, lo schema relazionale viene lasciato inalterato 3 Ricognizione e normalizzazione del RDB! Convergenza Stato-Arrivo e Stato-Partenza? Tale vincolo avrebbe senso in un DB di voli nazionali; verifichiamolo in ogni caso. 1. Si genera la vista in modo grafico 2. Quindi si aggiunge manualmente all SQL CITTA_PARTENZA.STATO <> CITTA_ARRIVO.STATO 3. Il risultato della query è non vuoto quindi non c è convergenza. 4

3 Progettazione dello schema di Fatto RITARDI! Costruzione Albero degli attributi 1. Si costruisce l albero degli attributi basato sull entità VOLOGIORN (tale entità ha come chiave {DATA,CODVOLO}) 2. Si modifica l albero aggiungendo la dipendenza CITTA! STATO 3. Si modifica l albero eliminando A-SIGLA 5 Ritardi: Progettazione dello Schema di Fatto 4. Si modifica l albero eliminando CODVOLO per CITTA_ARRIVO, ovvero riportando CITTA_ARRIVO come figlio diretto della radice; questa modifica deriva dalla specifica di analizzare i ritardi direttamente rispetto alla città di arrivo e quindi di far diventare CITTA_ARRIVO una dimensione. 5. Scelta delle Dimensioni : {DATA, CODVOLO, CITTA_ARRIVO} quindi tra le dimensioni ho tutti gli attributi chiave ovvero questo è uno schema transazionale. Si noti che tra le dimensioni esiste la dipendenza funzionale CODVOLO! CITTA_ARRIVO Pertanto quando si visualizzerà il cubo (ovvero, quando faremo dei roll-up e drilldown) se visualizzo il livello CODVOLO (ovvero considero un pattern contenente CODVOLO) i roll-up ed i drill-down lungo la dimensione CITTA_ARRIVO non modificheranno il valore visualizzato delle misure: infatti fissato il CODVOLO ho un unica CITTA_ARRIVO e quindi raggruppando su STATO_ARRIVO il valore delle misure non cambia (vedi pag. 40) 6

4 Ritardi: Progettazione dello Schema di Fatto 6. Si definiscono le misure ed il relativo glossario: RITARDO: Essendo lo schema transazionale, tale misura corrisponde all attributo RITARDO del DB operazionale 7. Si definiscono gli operatori di aggregazione delle misure: per ogni coppia dimensione-misura si valuta l additività/aggregabilità e quindi si definisce il relativo operatore di aggregazione RITARDO : può essere considerata una misura di flusso e come tale aggregata sia tramite somma che con altri operatori, sia rispetto alla data che rispetto alle altre dimensioni. Ad esempio, per analizzare il ritardo medio si considera RITARDO (AVG) Oppure, per analizzare sia il ritardo medio che complessivo si potrebbero considerare due misure con differenti operatori di aggregazione RITARDO_MEDIO (AVG) RITARDO_COMPLESSIVO (SUM) - SUM è il default, si può omettere # Per una misura si possono definire differenti operatori di aggregazione per le differenti dimensioni: verrà discusso in Analysis Services 7 Ritardi: Progettazione dello Schema di Fatto 8. Si analizzano eventuali gerarchie condivise/convergenze, attributi crossdimensionali, archi multipli Si considera CITTA, STATO come gerarchia condivisa : si noti che il ruolo della CITTA come figlio di AEROPORTO_PARTENZA è evidente, mentre per la dimensione occorre esplicitare il nome del ruolo CITTA_ARRIVO Tale analisi può essere condotta anche sull albero degli attributi, ma formalmente questi concetti sono definiti per uno schema di fatto. 8

5 Considerazioni! In uno schema transazionale le misure corrispondono ad attributi figli della radice dell albero. Più precisamente il valore di una misura è calcolato partendo dal singolo valore di un attributo figlio della radice Esempio: RITARDO = VOLOGIORN.RITARDO oppure RITARDO = ISNULL(VOLOGIORN.RITARDO,0) per considerare pari a 0 un ritardo non specificato (NULL)! Esempio: Oltre al valore del ritardo voglio analizzare il numero dei voli giornalieri che hanno subito un ritardo, rappresentato tramite una misura NUMRITARDI a valore booleano calcolata come if VOLOGIORN.RITARDO > 5 then NUMRITARDI = 1 else NUMRITARDI = 0! Per come è stata definita NUMRITARDI deve essere aggregata tramite SUM 9 Ritardi - Progettazione Logica! Per semplicità, non verranno introdotte chiavi surrogate.! STAR SCHEMA: " FACT TABLE RITARDI(CODVOLO:VOLO,DATA,CITTA_ARRIVO: CITTAARRIVO,RITARDO,NUMRITARDI) " DIMENSION TABLEs VOLO(CODVOLO,COMPAGNIA,AEROP_PART,CITTA_PART,STATO_PART) CITTAARRIVO(CITTA_ARR,STATO_ARR)! SNOWFLAKE SCHEMA: " FACT TABLE RITARDI(CODVOLO:VOLO,DATA,CITTAARRIVO:CITTA,RITARDO, NUMRITARDI) " DIMENSION TABLEs VOLO(CODVOLO,COMPAGNIA, AEROP_PART:AEROPORTO) AEROPORTO(SIGLA, CITTA_PART:CITTA) CITTA (CITTA,STATO) 10

6 DataMart Ritardi: SNOWFLAKE SCHEMA! Si usa lo snowflake schema riportato in figura:! Alimentazione del DataMart: Estrazione statica Viene effettuata quando il DM deve essere popolato per la prima volta e consiste concettualmente in una fotografia dei dati operazionali. In altri termini è l alimentazione a partire da zero. 11 Estrazione Statica 1. Si devono definire delle interrogazioni sul DB operazionale (DBO) : " Una query per definire il contenuto della Fact Table " Una query per ciascuna Dimensional table 2. Si devono eseguire le query sul DBO ed immettere i risultati nel DM " Necessità di operare su due DB, DBO e DM non è possibile fare una istruzione SQL su due database INSERT INTO DM.RITARDI(RITARDO) SELECT RITARDO FROM DBO.VOLOGIORN " Per trasferire da DBO a DM devo usare Data Transformation Services.! Dove definire materialmente queste query? 1. Nel DBO, tramite delle viste; chi analizza i dati ha i permessi di leggere e quindi creare viste sul DBO, mentre non ha i permessi per creare tabelle e/o modificare le tabelle esistenti 2. Direttamente nel Data Transformation Services (DTS).! Verrà usato il seguente metodo: si creano le viste (almeno quelle più difficili, in genere quelle relative alla fact table) nel DBO e si usano nel DTS: in questo modo le operazioni da effettuare nel DTS saranno semplici 12

7 Ritardi: Estrazione statica Fact Table! Vista con lo stesso schema (attributi e chiave) della Fact Table! Salvo ed edito la view aggiungendo e calcolando NUMRITARDI CREATE VIEW dbo.vistaritardi AS Nel caso in cui RITARDO SELECT dbo.vologior.data, dbo.vologior.codvolo, è nullo viene conteggiato dbo.aeroporto.citta AS CITTA_ARRIVO, come RITARDO=0 ISNULL(RITARDO,0) AS RITARDO, NUMRITARDI = CASE WHEN RITARDO > 5 THEN 1 ELSE 0 END FROM dbo.vologior INNER JOIN dbo.volo ON dbo.vologior.codvolo = dbo.volo.codvolo INNER JOIN dbo.aeroporto ON dbo.volo.a = dbo.aeroporto.sigla 13 Ritardi: Estrazione statica Dimension Table! In uno snowflake schema le Dimension Table corrispondono generalmente a proiezioni su singole tabelle del DBO che possono essere eseguite direttamente nel DTS senza creare ulteriori viste " Ad esempio, per la dimensione VOLO, è inutile creare CREATE VIEW dbo.vistavolo AS SELECT CODVOLO, ORA_PARTENZA, COMPAGNIA, DA FROM dbo.volo questa query viene fatta direttamente nel DTS! Rispettare le key/foreign key dello schema " Ad esempio, nell alimentazione della dimensione CITTA, devo eliminare i duplicati SELECT DISTINCT CITTA,STATO FROM AEROPORTO per rispettare la key della relazione CITTA! Quando la Dimension Table è più complessa, come nei casi di - Dimension Table derivante dal join di più tabelle (come normalmente avviene in uno star schema ) - Dimension Table con attributi corrispondenti ad intervalli di valori è consigliabile usare una o più viste per la sua alimentazione, ed eventualmente anche delle tabelle temporanee! 14

8 ALIMENTAZIONE del DM: uso di pacchetti DTS 1. Si svuota il contenuto del DM: L unico vincolo da rispettare è quello dell integrità referenziale: quando si svuota la tabella A (DELETE FROM A), devono essere già state svuotate tutte le tabelle referenziate da A (quindi si deve iniziare con la fact table ) 2. Si copiano le dimensional table: l unico vincolo da rispettare è quello dell integrità referenziale: quando si copia la tabella A, devono essere già state copiate tutte le tabelle alle quali A si riferisce tramite una FK 3. Si copia il contenuto della vista nella fact table! Ognuna delle precedenti operazioni è un pacchetto DTS! Quale strumento usare per definire tali pacchetti? " Per la copia è più semplice creare il pacchetto con Importa Dati : infatti devo solo copiare nel DM il contenuto di una vista o di una tabella del DBO " Per svuotare è necessario usare l editor per pacchetti DTS! Dopo aver creato e provato i pacchetti (package) per i singoli passi, si può creare un unico package che li include tutti, eseguendoli nell ordine stabilito " In uno star schema si possono copiare tutte le dimension table in un solo passo 15 Ritardi: Alimentazione del Data Mart - svuoto il DM! Si crea un pacchetto DTS tramite editor " Per prima cosa si inserisce la connessione al DM 16

9 Ritardi: Alimentazione del Data Mart - svuoto il DM! Si crea un pacchetto DTS tramite editor " e quindi si scrive l istruzione SQL (si noti che occorre cancellare rispettando l ordine delle FK) 17 Ritardi: Alimentazione del Data Mart - Dimension Table CITTA! Nel DB operazionale la città e lo stato sono specificati in AEROPORTO " Prendo i dati dal DB Biglietti e precisamente dalla tabella AEROPORTO. " Si effettua un importa dati basato sulla query select distinct CITTA,STATO from AEROPORTO 18

10 Ritardi: Alimentazione del Data Mart - Dimension Table CITTA 19 Ritardi: Alimentazione del Data Mart - Dimension Table CITTA 20

11 Ritardi: Alimentazione del Data Mart - Dimension Table CITTA 21 Ritardi: Alimentazione del Data Mart! Si salva il pacchetto per alimentare Citta! Si crea un pacchetto per alimentare AEROPORTO nel DM " Si effettua un importa dati basato sulla query select SIGLA, CITTA from AEROPORTO " Non serve il distinct perchè SIGLA è chiave " Si può fare anche senza la query, importando direttamente la tabella! Nello stesso modo si crea un pacchetto per alimentare VOLO nel DM! Si crea un pacchetto per alimentare RITARDI nel DM prendendolo dalla vista creata in precedenza 22

12 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo! Si crea un pacchetto DTS complessivo di tutti I pacchetti creati finora, in cui viene imposto l ordine di esecuzione " Ogni pacchetto viene inserito tramite Attività Esegui Pacchetto che viene collegata al pacchetto creato in precedenza 23 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo " si inserisce il pacchetto per copiare i dati da Città 24

13 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo " E quindi si crea il flusso di lavoro tra I due pacchetti: 25 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo " Alle varie Attività Esegui Pacchetto si può dare un nome (usando le proprietà) 26

14 Analysis Services : Editor del Cubo! Il sistema OLAP di Analysis Services, così come un qualsiasi altro sistema OLAP, ha concetti e strumenti propri per definire uno schema multidimensionale (un cubo), concetti e strumento più o meno sofisticati e spesso proprietari (cioè propri del particolare sistema OLAP e differenti da sistema a sistema)! Ad esempio in Analysis Services lo strumento (automatico) per definire le dimensioni consente di scegliere se usare uno schema a stella oppure a fiocco di neve o altro, quale attributo considerare come chiave in un certo livello e così via. # Noi non useremo tutti i concetti e strumenti propri, specifici di Analysis Services (avendo già fatto le nostre scelte nella progettazione concettuale e logica) # Useremo di Analysis Services solo quei concetti/strumenti che ci consentono di 1. Definire gli operatori di aggregazione per le misure 2. Definire Misure Derivate e Calcolate 3. Visualizzare i dati del fatto in modo multidimensionale, effettuando operazioni di roll-up e drill-down 27 Cubo corrispondente ad uno Schema di Fatto! Input: 1. Schema di Fatto 2. Schema Logico! Primo passo: Si inserisce nel cubo la fact table! Secondo passo : si costruiscono le dimensioni! Terzo passo : si definiscono le misure # Conviene procedere in modo incrementale: definita una o più dimensione, si inseriscono una o più misure, si salva e si elabora il cubo, si visualizzano i dati, si verifica il risultato. E quindi si procede con le altre dimensioni e misure. 28

15 Editor del Cubo: costruzione del cubo! Input : schema di Fatto dei Ritardi con lo schema logico di pag. 10! Primo passo: Si aggiunge la fact table! Secondo passo : si costruiscono le dimensioni 29 Editor del Cubo: definizione delle dimensioni! In un cubo di Analysis Services le dimensioni sono costituite da livelli che formano una successione lineare (un nodo può avere al massimo un figlio) quindi per ogni gerarchia dello schema di fatto occorre definire nel cubo tante dimensioni quanti sono i cammini di aggregazione della gerarchia! Gerarchia della dimensione CODVOLO: corrisponde a due cammini di aggregazione e quindi viene realizzata nel cubo di Analysis Services attraverso due dimensioni:! Dimensione Volo_Compagnia con due livelli CodVolo $ Compagnia! Dimensione Volo_Partenza con quattro livelli CodVolo $ AeroPorto $ Citta $ Stato 30

16 Editor del Cubo: definizione delle dimensioni! Dimensione CITTA_ARRIVO! Tale dimensione corrisponde ad un solo cammino di aggregazione e quindi viene realizzata nel cubo attraverso una sola dimensione:! Dimensione CITTA_ARRIVO con due livelli Citta $ Stato 31 Editor del Cubo: definizione delle dimensioni! Dopo aver individuato le dimensioni si può costruire il cubo e le relative dimensioni! Nel seguito vengono descritti in dettaglio i passi per costruire un cubo con le relative dimensioni! Durante la costruzione del cubo e delle sue dimensioni è importante aver presente lo schema logico del Data Mart, in quanto i dati vengono appunto presi da tale schema 32

17 Editor del Cubo: costruzione delle dimensioni! Dimensione Volo_Compagnia con due livelli CodVolo $ Compagnia 1. Si aggiunge la Dimensional Table che contiene tale dimensione 2. Si verifica che il collegamento tra la Dimensional Table e la Fact Table realizzato in automatico sulla base della Foreign Key sia in effetti corretto 3. Si seleziona l ultimo livello della dimensione, ovvero Compagnia e si genera la dimensione 4. Si aggiunge alla dimensione il livello CodVolo 5. Si assegna il nome alla dimensione (il nome di default è quello dell attributo selezionato al punto 3.) # Ricordarsi che il primo attributo ad essere selezionato è quello dell ultimo livello! 33 Editor del Cubo: costruzione delle dimensioni! Dimensione Volo_Partenza con quattro livelli CodVolo $ AeroPorto $ Citta $ Stato 1. Si aggiungono le Dimensional Table che contengono tale dimensione non occorre inserire nuovamente la table VOLO in quanto VOLO_PARTENZA deriva dalla stessa dimensione iniziale CodVolo 2. Si verifica che sia corretto il collegamento realizzato in automatico sulla base delle Foreign Key 3. Si seleziona l attributo Stato (ultimo livello) e si genera la Dimensione 4. Si aggiungono alla dimensione i livelli Citta, Sigla e CodVolo 5. Si assegna il nome alla dimensione # Si noti che i livelli vengono aggiunti partendo dall ultimo ed arrivando al primo! 34

18 Editor del Cubo: costruzione delle dimensioni! Dimensione CITTA_ARRIVO con due livelli Citta $ Statto " Occorre inserire nuovamente la table CITTA in quanto CITTA_ARRIVO deriva da una dimensione iniziale differente da CodVolo per la quale era stata già inserita CITTA # Il problema di dover inserire più volte la stessa dimensional table si pone solo nel caso di Dimensional table condivisa da più gerarchie (e quindi solo nel caso di Snow-flake schema) 35 Ritardi: Definizione del Cubo Ritardi in Analysis Services Si noti che per la tabella CITTA utilizzata nella definizione della dimensione CITTA_ARRIVO è stato dato l alias per non confonderla con la tabella CITTA nell altra dimensione. Per ogni misura è definito il suo Data Type ed il suo formato di visualizzazione Display Format! Si noti che la misura Count (che verrà usata per definire il membro calcolato RITARDO) è aggregata tramite Count quindi calcola il numero di valori di un attributo, che corrisponde al numero di tuple della Fact Table Ritardi e quindi rappresenta il numero di voli 36

19 Dimensioni: livello (ALL) e membro ALL! Dimensione CITTA_ARRIVO con due livelli : Citta $ Statto CITTA STATO (ALL) MARSIGLIA FRANCIA ALL PARIGI FRANCIA ALL LONDRA INGHIL ALL livelli membri! Nella visualizzazione della dimensione, il livello (ALL) è chiamato (Totale) ed il membro ALL è totale CITTA_ARRIVO! Nelle proprietà della dimensione si può eliminare il livello (ALL) (All level = No) e cambiare il nome del membro ALL: 37 Dimensioni: livello (ALL) e membro ALL in MDX! Consideriamo la seguente interrogazione MDX, che restituisce il complessivo dei ritardi per tutti i voli con città di arrivo in FRANCIA SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI WHERE ([CITTA_ARRIVO].[STATO].[FRANCIA])! Con ([CITTA_ARRIVO].[STATO].[FRANCIA]) individuo un evento secondario corrispondente ad un pattern secondario {STATO} : Questo quindi equivale a raggruppare su STATO e selezionare FRANCIA CITTA STATO (ALL) MARSIGLIA FRANCIA ALL PARIGI FRANCIA ALL LONDRA INGHIL ALL......! Nello stesso modo, per il complessivo dei ritardi per tutte le città di arrivo, si deve utilizzare il membro ALL SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI WHERE ([CITTA_ARRIVO].[(Totale)].[Totale CITTA_ARRIVO])! In questo modo si raggruppa rispetto al livello (ALL) e si seleziona il membro ALL, pertanto si considerano tutte le città di arrivo 38

20 Dimensioni: livello (ALL) e membro ALL in MDX! I membri di una dimensione sono ordinati:!" #$%&'()*+##,-,..+/0 1" 2.,3*+, 4" 5,.6+78+, 9" :,.+7+ ;" +37<+8 =" 803>.,?" A Questo è l ordine con il quale i membri vengono illustrati in un asse, ad esempio nella query: SELECT [CITTA_ARRIVO].Members ON COLUMNS FROM RITARDI! In base all interpretazione di default di MDX, se una dimensione non è utilizzata nella specifica della clausola where, essa si considera limitata al suo primo membro. Quindi la seguente query equivale a SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI WHERE ([CITTA_ARRIVO].[(Totale)].[Totale CITTA_ARRIVO]) 39 Dimensioni: livello (ALL) e membro ALL in MDX! Dimensione CITTA_ARRIVO senza il livello (ALL) CITTA STATO MARSIGLIA FRANCIA PARIGI FRANCIA LONDRA INGHIL......! Adesso il primo membro della dimensione è [CITTA_ARRIVO].[FRANCIA], quindi In base all interpretazione di default, la query SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI equivale a SELECT { [Measures].[Ritardo] } ON COLUMNS FROM RITARDI WHERE ([CITTA_ARRIVO].[FRANCIA]) 40

21 Ritardi: Osservazione sulla misure calcolate! Nella realizzazione del cubo in Analysis Services occorrerà definire la misura RITARDO come misura calcolata in quanto è aggregata tramite AVG; si usano a tale scopo RITARDO_BASE e COUNT:! Per verificare la correttezza di RITARDO, calcoliamo tale misura direttamente sugli eventi primari nel DM, utilizzando SQL: select CITTA_ARRIVO, AVG(cast(RITARDO as decimal)) as ritardo from Ritardi group by CITTA_ARRIVO select STATO, AVG(cast(RITARDO as decimal)) as ritardo from Ritardi INNER JOIN CITTA ON CITTA_ARRIVO=CITTA group by STATO Se RITARDO è un integer, nel calcolo di AVG di deve trasformare in real: viene usato il casting a decimal (oppure float) 41 Ritardi: Osservazione su CODVOLO! CITTA_ARRIVO! Nella visualizzazione del pattern secondario {CODVOLO,CITTA_ARRIVO} viene evidenziato l effetto della dipendenza tra dimensioni CODVOLO! CITTA_ARRIVO: Per il CODVOLO=V1 si ha una sola città di arrivo (ROMA)! Come verifica consideriamo un pattern secondario senza CODVOLO: {STATO_PARTENZA,CITTA_ARRIVO} 42

22 Ritardi: Esempi di interrogazioni MDX 1. Calcolare ogni misura per le compagnie AIRFRANCE e ALITALIA in ottobre e novembre del 1998 :! Nota: Usare {Measures.MEMBERS, Measures.RITARDO}, in quanto l operatore MEMBERS non include la Misura (membro) Calcolata RITARDO. 2. Calcolare il ritardo, raggruppando i dati su un asse per compagnia (tutte le compagnie), per mese (ottobre e novembre del 1998) e per città di arrivo (tutte le città di arrivo): Ci sono stati dei voli dell AIRFRANCE a novembre con arrivo a Parigi, ma sempre con ritardo =0. Non ci sono stati dei voli dell ALITALIA a novembre con arrivo a Parigi, e quindi la cella non c è. Visualizzazione Alternativa: si mettono le città di arrivo sulle colonne e Measures.RITARDO nella WHERE: 43 Ritardi: Esempi di interrogazioni MDX 3. Data la misura RAPPORTO, definita (con WITH MEMBER) come rapporto tra numero di voli in ritardo (NumRitardi) e numero di voli complessivi (Count) MEMBER MEASURES.[RAPPORTO] AS '[Measures].[Numritardi] / [Measures].[Count] Per fare un rapporto tra reali una delle due misure deve avere un Display Format con le cifre decimali (non è sufficiente che sia il Data Type sia un real) : quindi (vedi pag. 13) viene cambiato il Display Format di NumRitardi. Il casting in MDX richiede la definizione di una funzione in VisualBAsic o altro Consideriamo il complessivo Novembre + Dicembre definendo il membro MEMBER DATA.[NOVEMBREDICEMBRE] AS '[Data].[novembre] +[Data].[dicembre] # È la stessa situazione considerata nel cubo delle vendite: per calcolare il complessivo si deve definire una misura derivata! mese Marzo Aprile città RE Frutta tipo 44

23 Ritardi: Esempi di interrogazioni MDX Come usiamo MEMBER DATA.[NOVEMBREDICEMBRE]? WITH MEMBER DATA.[NOVEMBREDICEMBRE] AS '[Data].[novembre] +[Data].[dicembre]' SELECT {[CITTA_ARRIVO].[FRANCIA], [CITTA_ARRIVO].[ITALIA]} ON COLUMNS, {DATA.[NOVEMBREDICEMBRE] } ON ROWS FROM RITARDI WITH MEMBER DATA.[NOVEMBREDICEMBRE] AS '[Data].[novembre] +[Data].[dicembre]' SELECT {[CITTA_ARRIVO].[FRANCIA], [CITTA_ARRIVO].[ITALIA]} ON COLUMNS, {DATA.[NOVEMBREDICEMBRE], [Data].[novembre], [Data].[dicembre] } ON ROWS FROM RITARDI WITH MEMBER DATA.[OTTOBREDICEMBRE] AS '[Data].[ottobre] +[Data].[dicembre]' SELECT {[CITTA_ARRIVO].[FRANCIA], [CITTA_ARRIVO].[ITALIA]} ON COLUMNS, {DATA.[OTTOBREDICEMBRE], [Data].[ottobre], [Data].[dicembre], [Data].[ottobre].[15] } ON ROWS FROM RITARDI NB: Si usa ottobre al posto di novembre perchè per ottobre ci sono più date e si può quindi verificare la risposta se tra i membri c è sia OTTOBREDICEMBRE, che ottobre, che una data di ottobre 45 Ritardi: Esempi di interrogazioni MDX Per visualizzare RAPPORTO rispetto a NOVEMBREDICEMBE:! Prima la somma e poi il rapporto: DATA.[NOVEMBREDICEMBRE] avrà SOLVE_ORDER = 0 e MEASURES.[RAPPORTO] avrà SOLVE_ORDER = 1! Invertendo i valori di SOLVE_ORDER! Verificare i valori di default di SOLVE_ORDER: WITH MEMBER MEASURES.[RAPPORTO] AS '[Measures].[Numritardi] / [Measures].[Count]' MEMBER DATA.[NOVEMBREDICEMBRE] AS '[Data].[novembre] +[Data].[dicembre]' SELECT { [Measures].[Numritardi], [Measures].[Count], MEASURES.[RAPPORTO] } ON COLUMNS, { [Data].[novembre], [Data].[dicembre],DATA.[NOVEMBREDICEMBRE] } ON ROWS FROM RITARDI Alla prima misura definita (MEASURES.[RAPPORTO] ) viene assegnato un SOLVE_ORDER più alto rispetto alla seconda (MEASURES.[RAPPORTO]). 46

24 Esercizio proposto! Nell esempio, l analisi è stata fatta a livello di volo giornaliero! Per fare un esempio di schema temporale, consideriamo un analisi a minor livello di dettaglio, senza considerare il volo, ovvero DIMENSIONI = {DATA, COMPAGNIA, AEROPORTO_PARTENZA, CITTA_ARRIVO} % Misura RITARDO calcolato come media (glossario delle misure) RITARDO = AVG(VOLOGIORN.RITARDO) Un evento primario è inteso a misurare il ritardo medio dei voli per una data, di una compagnia, in un aeroporto di partenza e per una città di arrivo % Operatore di aggregazione per RITARDO : AVG 47 Altri operatori di aggregazione! Oltre agli operatori di aggregazione standard (sum, count, min, max, avg) se ne possono definire altri particolari e più complessi! Esempio: Misura NUM_VOLI_IN_RITARDO per analizzare il numero di voli che sono stati almeno una volta in ritardo, ovvero tali per cui esiste almeno un evento primario con NUMRITARDI=1 " È facile verificare che occorre contare negli eventi primari con NUMRITARDI=1 il CODVOLO in modo distinto: where NUMRITARDI=1 count(distinct CODVOLO)! Tutti gli operatori di aggregazione (standard e complessi) devono essere definiti nel sistema OLAP " È buona norma comunque verificarne il risultato anche in relazione attraverso SQL, ovvero verificare il calcolo in SQL sugli eventi primari " Gli eventi primari sono disponibili in forma relazionale nello schema logico del DM, ovvero dopo la progettazione logica e dopo aver alimentato i dati : quindi la verifica deve essere fatta attraverso SQL nel DM alimentato. 48

25 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO! Esempio: Misura NUM_VOLI_IN_RITARDO where NUMRITARDI=1 count(distinct CODVOLO)! Calcolo in SQL SELECT VOLO.COMPAGNIA, count(distinct RITARDI.CODVOLO ) as NUM_VOLI_IN_RITARDO FROM RITARDI INNER JOIN VOLO ON RITARDI.CODVOLO = VOLO.CODVOLO where RITARDI.NUM_RITARDI = 1 group by VOLO.COMPAGNIA! Riportiamo anche NUM_RITARDI SELECT VOLO.COMPAGNIA, count(distinct RITARDI.CODVOLO) as NUM_VOLI_IN_RITARDO, SUM(NUM_RITARDI) as NUM_RITARDI FROM RITARDI INNER JOIN VOLO ON RITARDI.CODVOLO = VOLO.CODVOLO where RITARDI.NUM_RITARDI = 1 group by VOLO.COMPAGNIA 49 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO! Verifichiamo anche altri pattern {COMPAGNIA, STATO_ARRIVO} {COMPAGNIA, STATO_PARTENZA, STATO_ARRIVO} {COMPAGNIA, STATO_ARRIVO, MESE}! Nell ultimo pattern si nota che se si aggrega rispetto alla dimensione data, i valori delle due misure coincidono, in quanto in una data si può avere una sola volta un volo e quindi il count distinct è uguale a count normale 50

26 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO! Riportiamo l SQL per l ultimo pattern SELECT COMPAGNIA, STATO as STATO_ARRIVO, DATEPART(month,DATA) AS MESE, count(distinct RITARDI.CODVOLO ) as NUM_VOLI_IN_RITARDO, SUM(NUM_RITARDI) as NUM_RITARDI FROM RITARDI INNER JOIN CITTA ON CITTA_ARRIVO = CITTA INNER JOIN VOLO ON RITARDI.CODVOLO = VOLO.CODVOLO where NUM_RITARDI = 1 group by COMPAGNIA, STATO, DATEPART(month,DATA)! Si noti l uso della funzione DATEPART per estrarre da una data il mese e quindi raggruppare rispetto al mese 51

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

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

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

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

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

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

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

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

! 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

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 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

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

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

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

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

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

<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

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

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

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

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

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

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

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

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

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

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

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

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

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 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

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

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

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

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

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

ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLASSE IL 25 MAGGIO 2011)

ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLASSE IL 25 MAGGIO 2011) ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLSE IL 25 MAGGIO 2011) Dato il seguente schema E/R consideriamo solo le due gerarchie relative a MANAGER/SEGRETARIA/IMPIEGATO

Dettagli

2.4. Creare ed operare con le query

2.4. Creare ed operare con le query 2.4. Creare ed operare con le query 2.4.1. I comandi per le query I comandi già presentati in precedenza per gli oggetti in generale (vedi RICHIAMO) valgono in particolare per le query; in figura sono

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

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

Esempi SQL con Access. Orazio Battaglia

Esempi SQL con Access. Orazio Battaglia con Access Orazio Battaglia Consideriamo la base di dati in figura. 2 Interrogazione 1: Selezioniamo tutti gli impiegati, vogliamo Cognome, Nome e Posizione SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.Posizione

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

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

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

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

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

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive Note introduttive Il metodo di lavoro proposto ripercorre il ciclo di vita di un sistema informativo automatizzato attraverso l analisi, il progetto, la realizzazione e il testing. Il sistema informativo

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

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

LA PROGETTAZIONE LOGICA

LA PROGETTAZIONE LOGICA LA PROGETTAZIONE LOGICA DALLO SCHEMA ER ALLO SCHEMA RELAZIONALE Da concettuale a logico! Traduzione di uno schema concettuale (ER) in uno schema (relazionale) logico! Fare attenzione ai vincoli di integrità!!

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 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

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: 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

CORSO ACCESS PARTE IV

CORSO ACCESS PARTE IV Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella

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

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

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

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple

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

DISPENSA ACCESS (OFFICE 2010 BETA)

DISPENSA ACCESS (OFFICE 2010 BETA) DISPENSA ACCESS (OFFICE 2010 BETA) 2. LE RELAZIONI. Una relazione può essere definita come un legame tra due tabelle basato sul valore di uno o più campi di ciascuna delle due tabelle. Di solito i campi

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

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

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

Esercitazione 4: Trigger in DB2

Esercitazione 4: Trigger in DB2 Esercitazione 4: Trigger in DB2 Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: esercitazione4.pdf Sistemi Informativi L-B Definire trigger

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

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

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data Verifica di Informatica Cognome e Nome: Classe 5ª Ci, Data Progettare la base di dati di una palestra. E necessario memorizzare le informazioni relative ai clienti che riguardano: codice fiscale, cognome

Dettagli

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere

Dettagli

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

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

Tipi di sottoquery SQL

Tipi di sottoquery SQL Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS

Dettagli

Sommario. Introduzione... 13

Sommario. Introduzione... 13 Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26

Dettagli

Compito Sistemi Informativi LS. Tempo concesso : 90 minuti 14 luglio 2010 Nome: Cognome: Matricola:

Compito Sistemi Informativi LS. Tempo concesso : 90 minuti 14 luglio 2010 Nome: Cognome: Matricola: Compito Sistemi Informativi LS. Tempo concesso : 90 minuti 14 luglio 2010 Nome: Cognome: Matricola: Esercizio 1 Dato il seguente schema relazionale si individui un fatto di interesse, si costruisca l attribute

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

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

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Compito in classe proposto Date le seguenti tabelle: scrivi in SQL le seguenti richieste (per facilitare query complesse utilizza le viste): 1. elencare

Dettagli

SQL Server Introduzione all uso di SQL Server Dutto Riccardo. Dutto Riccardo - SQL Server 2008.

SQL Server Introduzione all uso di SQL Server Dutto Riccardo.  Dutto Riccardo - SQL Server 2008. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 SQL Server Management Studio Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

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

Organizzazione Fisica dei Dati (Parte II)

Organizzazione Fisica dei Dati (Parte II) Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico

Dettagli

TRADUZIONE DI SCHEMI

TRADUZIONE DI SCHEMI TRADUZIONE DI SCHEMI Progettazione di basi di dati relazionali attraverso la traduzione da schemi ER a schemi relazionali 2 Da un modello ad un altro Parliamo di come progettare uno schema di basi di dati

Dettagli

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

Misure. Definizione delle misure. Sistemi Informativi Avanzati Anno Accademico 2015/2016 Prof. Domenico Beneventano. Glossario delle Misure 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,

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

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

BASE DI DATI. Esercizio: Campionato corse Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

BASE DI DATI. Esercizio: Campionato corse Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa BASE DI DAI Esercizio: Campionato corse Progettazione concettuale Progettazione logica Informatica Umanistica Università di Pisa Esercizio: campionato corse Si vuole costruire una base di dati che contenga

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2 INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 26/07/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

σ data 15/12/2013 data 20/12/2014

σ data 15/12/2013 data 20/12/2014 Dato lo schema: Basi di Dati Prof. Alfredo Pulvirenti A.A. 2014-2015 Prova in itinere 18 dicembre 2014 (A) EVENTO(id, titolo, data, categoria, costo_partecipazione, idcatering) ORGANIZZATORE(id,idevento)

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

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

MODULO 2. Query normali e parametriche Query di:

MODULO 2. Query normali e parametriche Query di: MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,

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

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito.

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL Server Business

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operazioni di aggiornamento operazioni di inserimento: insert eliminazione: delete modifica: update di una o più ennuple di una

Dettagli

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

PROVA SCRITTA DI TECNOLOGIA DATABASE 05/12/2003 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF. PROVA SCRITTA DI TECNOLOGIA DATABASE 05/12/2003 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF. SONIA BERGAMASCHI Esercizio 1 (punti 20) AEREO(CODA,TIPO,DESC) AEROPORTO(NOME,NAZIONE)

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

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

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