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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

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

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

21 Ritardi: Alimentazione del Data Mart - Dimension Table CITTA 21

22 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

23 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

24 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo si inserisce il pacchetto per copiare i dati da Città 24

25 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo E quindi si crea il flusso di lavoro tra I due pacchetti: 25

26 Ritardi: Alimentazione del Data Mart - Pacchetto complessivo Alle varie Attività Esegui Pacchetto si può dare un nome (usando le proprietà) 26

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 Dimensioni: livello (ALL) e membro ALL in MDX I membri di una dimensione sono ordinati: 1) Totale CITTA_ARRIVO 2) FRANCIA 3) MARSIGLIA 4) PARIGI 5) INGHIL 6) LONDRA 7) ITALIA 8) 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

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO Verifichiamo anche altri pattern {COMPAGNIA, STATO_ARRIVO} {COMPAGNIA, STATO_PARTENZA, STATO_ARRIVO} {COMPAGNIA, DATA} 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 52

53 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO L attributo DATA è di tipo datatime, quindi contiene anche il valore del tempo; per visualizzare solo la data e non il tempo si usa la funzione convert: {COMPAGNIA, DATA} SELECT COMPAGNIA, convert(varchar,data,112) as DATA, 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, convert(varchar,data,112) convert(varchar,data,112) converte l attributo DATA in una stringa (varchar) in un certo formato specificato dal parametro

54 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO Consideriamo un pattern con una aggregazione rispetto alla gerarchia temporale data, ad esempio consideriamo mese {COMPAGNIA, STATO_ARRIVO, MESE} 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 54

55 Altri operatori di aggregazione : NUM_VOLI_IN_RITARDO La funzione DATEPART(month,DATA) restituisce il mese indipendentemente dall anno! Ovvero applicata a 1/10/2009 e 1/10/2008 restituisce sempre 10! Nella gerarchia su data per mese si intende il mese comprensivo dell anno (infatti mese determina anno)! anno trimestremese giorno vacanza settimana In SQL posso estrarre sia la data che il mese, convertirli in stringhe (CAST) e poi concatenarli con l operatore + data SELECT COMPAGNIA, STATO as STATO_ARRIVO, CAST(DATEPART(month,DATA) AS char(2)) + CAST(DATEPART(year,DATA) AS char(4)) as MESE, count(distinct RITARDI.CODVOLO ) as NUM_VOLI_IN_RITARDO, SUM(NUM_RITARDI) as NUM_RITARDI FROM RITARDI JOIN CITTA ON CITTA_ARRIVO = CITTA JOIN VOLO ON RITARDI.CODVOLO = VOLO.CODVOLO where NUM_RITARDI = 1 group by COMPAGNIA, STATO, CAST(DATEPART(month,DATA) AS char(2)) + CAST(DATEPART(year,DATA) AS char(4)) 55

56 Per riassumere Negli esempi precedenti sono state introdotte le funzioni principali di conversione tra dati, in particolare per convertire il tipo data: DATEPART, CONVERT, CAST Sia nella group by che nella SELECT posso usare una generica espressione di attributi e funzioni Tutte queste operazioni verranno svolte nel sistema OLAP : le precedenti interrogazioni SQL servono solo come controllo D altra parte le funzioni di conversione tra dati sono utili in fase di riconciliazione e caricamento dei dati. Il classico caso è la dimensione data: normalmente proviene da un attributo datatime che contiene anche ora-minuti-ecc.. In fase di alimentazione del data mart devo ottenere solo la data quindi mi serve convertire 56

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Dal modello concettuale al modello logico

Dal modello concettuale al modello logico Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Esercitazione su SQL

Esercitazione su SQL Esercizio 1. Esercitazione su SQL Si consideri la base di dati relazionale composta dalle seguenti relazioni: impiegato Matricola Cognome Stipendio Dipartimento 101 Sili 60 NO 102 Rossi 40 NO 103 Neri

Dettagli

Basi di Dati. S Q L Lezione 5

Basi di Dati. S Q L Lezione 5 Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali

Dettagli

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 1 Il linguaggio SQL Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 2 Introduzione SQL (Structured Query Language)

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Trovare l aeroporto italiano con il maggior numero di piste

Trovare l aeroporto italiano con il maggior numero di piste AEROPORTO (Città, Nazione, NumPiste) VOLO (IdVolo, GiornoSett, CittàPart, OraPart, CittàArr, OraArr, TipoAereo) AEREO (TipoAereo, NumPasseggeri, QtaMerci) Datalog - Aeroporti da cui non partono aerei per

Dettagli

Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. McGraw-Hill)

Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. McGraw-Hill) Il caso StraSport (tratto da: Golfarelli, Rizzi. Data Warehouse. Teoria e pratica della progettazione. cgraw-hill) Progettazione concettuale Scelta dei fatti: Fatto ORDINATO FATTURATO BUDGET Relazione

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Esempio sull'utilizzo dell'osservatorio Virtuale Gli asteroidi Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Distribuzione degli asteroidi Il Sistema Solare è composto

Dettagli

La somma di 12 e 30 è 42

La somma di 12 e 30 è 42 Nuovo Esercizio Supponendo che: all operazione somma corrisponda il numero 1 all operazione differenza corrisponda il numero 2 all operazione modulo corrisponda il numero 3 all operazione divisione intera

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

PHP: form, cookies, sessioni e. Pasqualetti Veronica

PHP: form, cookies, sessioni e. Pasqualetti Veronica PHP: form, cookies, sessioni e mysql Pasqualetti Veronica Form HTML: sintassi dei form 2 Un form HTML è una finestra contenente vari elementi di controllo che consentono al visitatore di inserire informazioni.

Dettagli

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita;

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita; .netbin. è un potentissimo strumento SVILUPPATO DA GIEMME INFORMATICA di analisi dei dati con esposizione dei dati in forma numerica e grafica con un interfaccia visuale di facile utilizzo, organizzata

Dettagli

IT FOR BUSINESS AND FINANCE

IT FOR BUSINESS AND FINANCE IT FOR BUSINESS AND FINANCE Business Intelligence Siena 14 aprile 2011 AGENDA Cos è la Business Intelligence Terminologia Perché la Business Intelligence La Piramide Informativa Macro Architettura Obiettivi

Dettagli

lavorare con dati tabellari in ArcGis

lavorare con dati tabellari in ArcGis lavorare con dati tabellari in ArcGis 1. gestione delle tabelle 2. aggregazione di dati tabellari 3. relazioni con tabelle esterne 4. modifica di dati tabellari (1) gestione delle tabelle Tipi di tabelle

Dettagli

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Data Sheet IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Panoramica Le medie aziende devono migliorare nettamente le loro capacità

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Grandi dimensioni e dimensioni variabili

Grandi dimensioni e dimensioni variabili Grandi dimensioni e dimensioni variabili aprile 2012 1 Questo capitolo studia alcuni ulteriori aspetti importanti e caratteristici della gestione delle dimensioni in particolare, delle grandi dimensioni

Dettagli

ESTRAZIONE DI RADICE

ESTRAZIONE DI RADICE ESTRAZIONE DI RADICE La radice è l operazione inversa dell elevamento a potenza. L esponente della potenza è l indice della radice che può essere: quadrata (); cubica (); quarta (4); ecc. La base della

Dettagli

Fondamenti di Teoria delle Basi di Dati

Fondamenti di Teoria delle Basi di Dati Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 6: Potenza espressiva del calcolo Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": tante variabili! espressioni

Dettagli

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete.

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete. Premessa. La traccia di questo anno integra richieste che possono essere ricondotte a due tipi di prove, informatica sistemi, senza lasciare spazio ad opzioni facoltative. Alcuni quesiti vanno oltre le

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Piattaforma Applicativa Gestionale. Import dati. Release 7.0

Piattaforma Applicativa Gestionale. Import dati. Release 7.0 Piattaforma Applicativa Gestionale Import dati Release 7.0 COPYRIGHT 2000-2012 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

RefWorks Guida all utente Versione 4.0

RefWorks Guida all utente Versione 4.0 Accesso a RefWorks per utenti registrati RefWorks Guida all utente Versione 4.0 Dalla pagina web www.refworks.com/refworks Inserire il proprio username (indirizzo e-mail) e password NB: Agli utenti remoti

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Le basi. Creare un elenco

Le basi. Creare un elenco Le basi Creare un elenco Fabrik Tables New dare un titolo (che apparirà) alla tabella su label in Intoduction sarà visualizzato un testo che apparirà sopra la tabella nella scheda Publishing: Published:

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

INDICE 1. DESCRIZIONE DEL CONTESTO ------------------------------------------------------------------- 4

INDICE 1. DESCRIZIONE DEL CONTESTO ------------------------------------------------------------------- 4 Appendice 1: Allegato Tecnico Servizio di consulenza specialistica e dei servizi di sviluppo, manutenzione ed evoluzione dei sistemi di Business Process Management (BPM) e di Business Intelligence (BI)

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Progettazione di Database

Progettazione di Database Progettazione di Database Progettazione Concettuale: strutturazione della realtà che si vuole rappresentare secondo uno schema concettuale Dallo schema concettuale si ricava lo schema del database relazionale

Dettagli

Database Manager Guida utente DMAN-IT-01/09/10

Database Manager Guida utente DMAN-IT-01/09/10 Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software

Dettagli

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002 Database, SQL & MySQL Dott. Paolo PAVAN Maggio 2002 1 Struttura RDBMS MYSQL - RDBMS DATABASE TABELLE 2 Introduzione ai DATABASE Database Indica in genere un insieme di dati rivolti alla rappresentazione

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

2. GESTIONE DOCUMENTI NON SBN

2. GESTIONE DOCUMENTI NON SBN Istituto centrale per il catalogo unico delle biblioteche italiane e per le informazioni bibliografiche APPLICATIVO SBN-UNIX IN ARCHITETTURA CLIENT/SERVER 2. GESTIONE DOCUMENTI NON SBN Manuale d uso (Versione

Dettagli

ALLEGATO N. 2 STANDARD TECNICI DELL ARCHIVIO UNICO INFORMATICO

ALLEGATO N. 2 STANDARD TECNICI DELL ARCHIVIO UNICO INFORMATICO ALLEGATO N. 2 STANDARD TECNICI DELL ARCHIVIO UNICO INFORMATICO 1 INDICE 1) ASPETTI GENERALI 2) CONTENUTO DELL ARCHIVIO UNICO INFORMATICO 2.1) OPERAZIONI 2.2) RAPPORTI 2.3) LEGAMI TRA SOGGETTI 3) CRITERI

Dettagli

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Istruzioni per il controllo di ciclo - ciclo a condizione generica Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

Business Intelligence

Business Intelligence aggregazione dati Business Intelligence analytic applications query d a t a w a r e h o u s e aggregazione budget sales inquiry data mining Decision Support Systems MIS ERP data management Data Modeling

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Integrazione numerica

Integrazione numerica Integrazione numerica Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ Lezione 6-20-26 ottobre 2009 Indice 1 Formule di quadratura semplici e composite Formule di quadratura

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Sistemi di supporto alle decisioni

Sistemi di supporto alle decisioni Sistemi di supporto alle decisioni Introduzione I sistemi di supporto alle decisioni, DSS (decision support system), sono strumenti informatici che utilizzano dati e modelli matematici a supporto del decision

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

1. Intorni di un punto. Punti di accumulazione.

1. Intorni di un punto. Punti di accumulazione. 1. Intorni di un punto. Punti di accumulazione. 1.1. Intorni circolari. Assumiamo come distanza di due numeri reali x e y il numero non negativo x y (che, come sappiamo, esprime la distanza tra i punti

Dettagli

CA RC/Update for DB2 for z/os

CA RC/Update for DB2 for z/os SCHEDA PRODOTTO CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os (CA RC/Update) è uno strumento di gestione di dati e oggetti DB2 che consente agli amministratori

Dettagli

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice . Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice Ordinamento di osservazioni: PROC SORT PROC SORT DATA=fa il sort è numerico

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale DIIGA - Università Politecnica delle Marche A.A. 2006/2007 Informatica Industriale Modello funzionale: Informazione Progettazione concettuale Luca Spalazzi spalazzi@diiga.univpm.it www.diiga.univpm.it/~spalazzi/

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len; /* Date in ingresso una frase, dire se una è palindroma */ #include #define MAX 100 int main() /*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i,

Dettagli

dal Controllo di Gestione alla Business Intelligence

dal Controllo di Gestione alla Business Intelligence dal Controllo di Gestione alla strumenti strategici per la gestione delle imprese Giovanni Esposito Bergamo, 29 Ottobre 2012 dal Controllo di Gestione alla 25/10/2012 1 Agenda 14:00 Benvenuto Il Sistema

Dettagli

Cenni sul calcolo combinatorio

Cenni sul calcolo combinatorio Cenni sul calcolo combinatorio Disposizioni semplici Le disposizioni semplici di n elementi distinti di classe k con kn sono tutti i gruppi di k elementi scelti fra gli n, che differiscono per almeno un

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI Prefazione Autori XIII XVII Capitolo 1 Sistemi informativi aziendali 1 1.1 Introduzione 1 1.2 Modello organizzativo 3 1.2.1 Sistemi informativi

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Note sull utilizzo del PC-DMIS

Note sull utilizzo del PC-DMIS Note sull utilizzo del PC-DMIS Sommario 1. Definizione e qualifica di tastatori a stella (esempio su configurazione con attacco M2)...3 2. Dimensione Angolo...4 3. Nascondere componenti della configurazione

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Relazione sul data warehouse e sul data mining

Relazione sul data warehouse e sul data mining Relazione sul data warehouse e sul data mining INTRODUZIONE Inquadrando il sistema informativo aziendale automatizzato come costituito dall insieme delle risorse messe a disposizione della tecnologia,

Dettagli

Istruzioni per il rilevamento delle cifre di tiratura (per donatori / stampa associazione)

Istruzioni per il rilevamento delle cifre di tiratura (per donatori / stampa associazione) Istruzioni per il rilevamento delle cifre di tiratura (per donatori / stampa associazione) 1. Aprite Internet Explorer (accesso a internet) e digitate il seguente link: https://auflagen-tirage.wemf.ch/

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it

INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it PROCEDURA E-COMMERCE BUSINESS TO BUSINESS Guida alla Compilazione di un ordine INTERPUMP GROUP SPA-VIA E. FERMI 25 42040 S.ILARIO (RE) http: //www.interpumpgroup.it INDICE 1. Autenticazione del nome utente

Dettagli