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

Biglietti e Ritardi: schema E/R

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

Dettagli

Data warehousing con SQL Server

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

Dettagli

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

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

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

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

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

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

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

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

Progettazione Logica. Sviluppo di un Database/DataWarehouse

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

Dettagli

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

Basi di Dati Complementi Esercitazione su Data Warehouse

Basi di Dati Complementi Esercitazione su Data Warehouse Sommario Basi di Dati Complementi Esercitazione su Data Warehouse 1. Riassunto concetti principali dalle slide della lezione di teoria 2.Studio di caso : progettazione di un Data Warehouse di una catena

Dettagli

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

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

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

Data Warehousing (DW)

Data Warehousing (DW) Data Warehousing (DW) Il Data Warehousing è un processo per estrarre e integrare dati storici da sistemi transazionali (OLTP) diversi e disomogenei, e da usare come supporto al sistema di decisione aziendale

Dettagli

SQL IL LINGUAGGIO DI INTERROGAZIONE

SQL IL LINGUAGGIO DI INTERROGAZIONE SQL IL LINGUAGGIO DI INTERROGAZIONE SQL! Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM! Significato originario Structured Query Language! Standard de facto! Attuale standard ANSI/ISO è SQL:1999

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

OR true null false true true true true null true null null false true null false NOT

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

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

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista

Dettagli

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO Seconda prova scritta Ministero dell Istruzione, dell Università e della Ricerca M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO Indirizzo: PROGRAMMATORI Tema di: INFORMATICA GENERALE

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

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

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 DB2 Data Management Software Il linguaggio SQL Raggruppamenti Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute in questa

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

SQL Server. Applicazioni principali

SQL Server. Applicazioni principali SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni OLAP Applicazioni principali SQL Server Enterprise Manager Gestione generale di SQL Server Gestione utenti Creazione e gestione dei

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

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

marca (1,n) (1,1) nome prezzou prodotto nome responsabile quantità nome datai dataf (0,n) vendite (0,n) (0,n) (0,n) tempo acquisti quantità (0,n) marca (1,n) di descrizione (1,1) prodotto (1,1) in (1,n) categoria città (1,n) (1,n) nella indirizzo responsabile quantità (1,1) supermercato vendite ricavo promozione datai dataf %sconto costo acquisti

Dettagli

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

SQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005. SQL Server 2005 Introduzione all uso di SQL Server e utilizzo delle opzioni Olap SQL Server 2005 SQL Server Management Studio Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL

Dettagli

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

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

Dettagli

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL Server BI Development Studio

SQL Server BI Development Studio Il Data warehouse SQL Server Business Intelligence Development Studio Analysis Service Sorgenti dati operazionali DB relazionali Fogli excel Data warehouse Staging Area e dati riconciliati Cubi Report

Dettagli

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

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

Pianificazione del data warehouse

Pianificazione del data warehouse Pianificazione del data warehouse Dalla pianificazione emergono due principali aree d interesse: area commerciale focalizzata sulle agenzie di vendita e area marketing concentrata sulle vendite dei prodotti.

Dettagli

MODELLI DEI DATI PER DW DAI DATI ALLE DECISIONI. Per definire la struttura di un DW si usano i seguenti formalismi, detti modelli dei dati:

MODELLI DEI DATI PER DW DAI DATI ALLE DECISIONI. Per definire la struttura di un DW si usano i seguenti formalismi, detti modelli dei dati: DAI DATI ALLE DECISIONI MODELLI DEI DATI PER DW Le aziende per competere devono usare metodi di analisi, con tecniche di Business Intelligence, dei dati interni, accumulati nel tempo, e di dati esterni,

Dettagli

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 L azienda Plastic S.p.A, operante nel settore materie plastiche, ha deciso di dotarsi di un Sistema Informativo per la gestione del suo

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

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

Rassegna sui principi e sui sistemi di Data Warehousing

Rassegna sui principi e sui sistemi di Data Warehousing Università degli studi di Bologna FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Rassegna sui principi e sui sistemi di Data Warehousing Tesi di laurea di: Emanuela Scionti Relatore: Chiar.mo Prof.Montesi

Dettagli

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 18 marzo 2010 Un esempio di (semplice) database Quando si pensa ad un database, generalmente si immagina

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 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2)

Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2) Tecnologie per i sistemi informativi Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2) Letizia Tanca lucidi tratti dal libro: Atzeni, Ceri, Paraboschi, Torlone Introduzione

Dettagli

Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali

Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Base Di Dati II Anno accademico 2011/2012 Progettazione di un Data mart per l'analisi dei servizi bibliotecari universitari

Dettagli

SQL: definizione schema

SQL: definizione schema Si Clienti(codice,nome,indirizzo,p_iva) scriva il SQL che definisce il seguente schema relazionale Prodotti(codice,nome,descrizione,prezzo) SQL: definizione schema Fatture(codice,cliente,data) RigheFattura(codice,fattura,prodotto,quantità,prezzo)

Dettagli

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE. Si consideri il seguente schema relazionale, relaivo ad una base di dati per gestire la programmazione cinematografica giornaliera in un certo insieme di cinema: CINEMA(CodC, Nome, Indirizzo, Tel, NSale)

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011 Data warehousing Introduzione A partire dagli anni novanta è risultato chiaro che i database per i DSS e le analisi di business intelligence vanno separati da quelli operazionali. In questa lezione vedremo

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

MEZZI CodM Tipo Targa AnnoI Assicurato

MEZZI CodM Tipo Targa AnnoI Assicurato Esercizio 1 Si consideri il seguente schema relazionale, relativo alla base di dati di un agenzia di assicurazioni: ASSICURATI(CodA, Nome, Cognome, Indirizzo, Telefono) POLIZZE(CodP, Data, Tipo, CodA,

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Data warehousing Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007

Data warehousing Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007 Data warehousing Introduzione A partire dalla metà degli anni novanta è risultato chiaro che i database per i DSS e le analisi di business intelligence vanno separati da quelli operazionali. In questa

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

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

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli

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

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

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

Introduzione data warehose. Gian Luigi Ferrari Dipartimento di Informatica Università di Pisa. Data Warehouse Introduzione data warehose Gian Luigi Ferrari Dipartimento di Informatica Università di Pisa Data Warehouse Che cosa e un data warehouse? Quali sono i modelli dei dati per data warehouse Come si progetta

Dettagli

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003 Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003 Il primo punto richiede l analisi e lo sviluppo del progetto

Dettagli

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

GERARCHIE RICORSIVE - SQL SERVER 2008

GERARCHIE RICORSIVE - SQL SERVER 2008 GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER

Dettagli

ITI Galilei Salerno Corso Database ed SQL

ITI Galilei Salerno Corso Database ed SQL ITI Galilei Salerno Corso Database ed SQL prof Carmine Napoli Introduzione Database: Si definisce Database un insieme di dati, di solito di notevoli dimensioni, raccolti, memorizzati ed organizzai in modo

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

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

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a pubblicazioni su riviste

Dettagli

CAPITOLO 4 ESERCIZI SU SQL

CAPITOLO 4 ESERCIZI SU SQL CAPITOLO 4 ESERCIZI SU SQL (le soluzioni sono riportate da pag. 5 in poi (Nota: gli esercizi non sono sempre in ordine di difficoltà Esercizio 1 Si prendano tutti gli schemi relazionali considerati negli

Dettagli

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

Data management a.a. 2009-2010. Il linguaggio SQL

Data management a.a. 2009-2010. Il linguaggio SQL Data management a.a. 2009-2010 Il linguaggio SQL 1 Modello di database E' un database generico con anagrafica e movimenti di uso molto frequente: per esempio, clienti e fatture, studenti ed esami sostenuti,

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

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

Dettagli

Sistemi Informativi La Modellazione Dimensionale dei Fatti. Obiettivi Concetti Base Operazioni OLAP DFM Casi Modellazione Logica Esercizi

Sistemi Informativi La Modellazione Dimensionale dei Fatti. Obiettivi Concetti Base Operazioni OLAP DFM Casi Modellazione Logica Esercizi Sistemi Informativi La Modellazione Dimensionale dei Fatti Obiettivi Concetti Base Operazioni OLAP DFM Casi Modellazione Logica Esercizi Obiettivi Nelle lezioni precedenti abbiamo modellato i processi

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

SOLUZIONI COMMENTATE

SOLUZIONI COMMENTATE Nel database Biblioteca vi sono le seguenti tabelle: SOLUZIONI COMMENTATE Utenti := < id, nome, cognome, indirizzo,città, tel_fisso,cellulare > Prestiti := < id, id_libro, id_utente, data_ora_prestito,

Dettagli

Esercitazione: Il DBMS MySQL

Esercitazione: Il DBMS MySQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO DI ANNIDAMENTO LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

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

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

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

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,

Dettagli

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Indice Cognome Nome Matr.xxxxxx email Cognome Nome Mat. Yyyyyy email Argomento Pagina 1. Analisi dei requisiti 1 a. Requisiti espressi

Dettagli

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere capitolo 7 di Garcia- Molina et al. Vincoli e Triggers Un vincolo e una relazione tra dati che il DBMS deve assicurare. Esempio: vincoli

Dettagli

Interrogazioni complesse. SQL avanzato 1

Interrogazioni complesse. SQL avanzato 1 Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio

Dettagli

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Structured Query Language Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e

Dettagli

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Linguaggio SQL Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 4 Giugno 2007 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta

Dettagli