Esempio di progettazione di un DW

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esempio di progettazione di un DW"

Transcript

1 Esempio di progettazione di un DW! La sorgente dati è costituita da un unico DataBase SQL-Server con informazioni sui Manifesti degli Studi e gli orari delle lezioni. Viene considerato il progetto di un DataMart per l analisi dei crediti (CFU) e degli orari delle lezioni! Sommario 1. Analisi degli schemi e dei dati per definire lo schema riconciliato " Si discute quindi dove e come realizzare tale schema riconciliato con riferimento alle architetture a due e a tre livelli 2. Realizzazione del DB riconciliato : architetture a 3 e a 2 livelli 3. Punti caratteristici della costruzione dello schema di fatto relativo agli orari 4. Progetto logico e alimentazione 5. Esempi di cubi in Analysis Services 6. Esempi di interrogazioni in MDX 7. Esempi di Data Transformation Service (DTS) di SQL-SERVER " Questi esempi sono riferiti al caso dell alimentazione del Dbriconciliato con i dati del DB originale (vedi architettura a 3 livelli). Ovviamente i concetti introdotti si applicano anche ad altre situazioni (come ad esempio l alimentazione del DataWarehouse tramite il Dbriconciliato) 8. Note sulla Realizzazione del DW con architettura ad 1 livello 1 Schema sorgente : ORARI 2

2 Schema sorgente : CREDITI 3 Documentazione dello schema! Se un insegnamento ha un unico SSD (Settore Scientifico Disciplinare) allora " Il numero di crediti relativi viene specificato in Insegnamenti " C è una sola tupla nella tabella Insegnamenti_Corsi_SSD! Altrimenti " I crediti vengono specificati in Insegnamenti_Corsi_SSD, con la possibilità di suddividerli in base alla tipologia (CFU_base, CFU_Affini, CFU_Carat,CFU_Sede e CFU_Altre); chiameremo tali crediti, crediti dettagliati " In questo caso il numero di Crediti in Insegnamenti è nullo (in quanto equivale alla somma dei vari crediti specifici)! L associazione tra insegnamenti e attività è molti a molti, con partecipazione opzionale di Insegnamenti: ovvero ci sono alcuni insegnamenti con nessuna attività associata 4

3 Analisi dei dati! Nel seguito faremo un analisi dei dati, tramite alcuni esempi, allo scopo di individuare eventuali problemi di inconsistenza dei dati del DataBase reale rispetto alle specifiche riportate nella documentazione! Inoltre, in base a tale analisi, verrà definito il DB riconciliato! L analisi dei dati è un attività da condurre in collaborazione con l amministratore del DB, sia perchè può richiedere una conoscenza approfondita dello schema dei dati sia perche in alcuni casi può richiedere l esecuzione di query SQL non banali 5 Analisi dei dati / Crediti! Esempio: Allo scopo di verificare se la regola sui crediti è rispettata effettuiamo un interrogazione per vedere se ci sono insegnamenti con il campo CREDITI non nullo (CREDITI IS NOT NULL) ma con più di un SSD associato SELECT IdInsegnamento,COUNT(*) FROM TBL_INSEGNAMENTI_CORSI_SSD WHERE IdInsegnamento IN( SELECT TBL_INSEGNAMENTI.ID FROM TBL_INSEGNAMENTI WHERE CREDITI IS NOT NULL) GROUP BY IdInsegnamento HAVING COUNT(*) >1 " Risultato (ci sono 9 tuple su 4272). Ad esempio, l insegnamento 519 non rispetta la regola: ha CREDITI non nullo e due SSD associati 6

4 Analisi dei dati / Crediti! Quanti sono gli insegnamenti con Crediti nullo? 347 SELECT COUNT(*) FROM TBL_INSEGNAMENTI WHERE CREDITI IS NULL! Quanti sono gli insegnamenti con almeno un Credito specifico riportato in TBL_INSEGNAMENTI_CORSI_SSD? 1067 (Questa interrogazione è fatta tramite una vista in modo da poterla riutilizzare nel seguito, in altre interrogazioni) CREATE VIEW VIEW_CREDITI_SPECIFICI_NON_NULL AS SELECT * FROM TBL_INSEGNAMENTI_CORSI_SSD WHERE (CFU_Sede IS NOT NULL) OR (CFU_Altre IS NOT NULL) OR (CFU_Base IS NOT NULL) OR (CFU_Caratt IS NOT NULL) OR (CFU_Affini IS NOT NULL) SELECT COUNT(*) FROM VIEW_CREDITI_SPECIFICI_NON_NULL 7 Analisi dei dati / Crediti! Quali sono gli insegnamenti con un valore di Crediti non NULLO e diverso dalla somma dei crediti dettagliati riportati in TBL_INSEGNAMENTI_CORSI_SSD? NESSUNO! SELECT * FROM TBL_INSEGNAMENTI WHERE (Crediti IS NOT NULL) AND (Crediti <> (SELECT SUM(isnull(CFU_Sede, 0) + isnull(cfu_altre, 0) + isnull(cfu_base, 0) + isnull(cfu_caratt, 0) + isnull(cfu_affini, 0)) FROM VIEW_CREDITI_SPECIFICI_NON_NULL WHERE IdInsegnamento = TBL_INSEGNAMENTI.ID GROUP BY IdInsegnamento)) 8

5 Analisi dei dati / Crediti! Se un insegnamento ha crediti null in TBL_INSEGNAMENTI, posso ricavarlo facendo la somma dei crediti dettagliati? NO, perchè! Quali sono gli insegnamenti con un valore di CREDITI null in TBL_INSEGNAMENTI e con la somma diversa da zero dei crediti specifici riportati in TBL_INSEGNAMENTI_CORSI_SSD? NESSUNO! SELECT * FROM TBL_INSEGNAMENTI WHERE (Crediti IS NOT NULL) AND (0 <> (SELECT SUM(isnull(CFU_Sede, 0) + isnull(cfu_altre, 0) + isnull(cfu_base, 0) + isnull(cfu_caratt, 0) + isnull(cfu_affini, 0)) FROM VIEW_CREDITI_SPECIFICI_NON_NULL WHERE IdInsegnamento = TBL_INSEGNAMENTI.ID GROUP BY IdInsegnamento)) 9 Analisi dei dati / Crediti : conclusioni! La tabella TBL_INSEGNAMENTI_CORSI_SSD non aggiunge informazione sul numero dei crediti complessivi di un insegnamento, quindi è inutile fare la somma dei crediti in essa riportata per assegnarla come Crediti in TBL_INSEGNAMENTI! Decisione: Non si considerano i crediti dettagliati.! Decisione: nel livello riconciliato dei dati si considera un associazione unoa-molti tra Insegnamenti e SSD " In TBL_INSEGNAMENTI viene aggiunto un campo IdSSD " Nel caso di insegnamenti con più SSD si considera un solo SSD a caso, ottenibile, ad esempio, come SSD con massimo valore di ID, cioè tra tutti gli SSD associati all insegnamento prendo quello il cui ID ha valore massimo. Usiamo questa tecnica perchè facilmente implementabile in SQL tramite la funzione MAX; naturalmente si potrebbe definire una funzione più complessa. 10

6 Analisi dei dati / Attività! Con un procedimento analogo al precedente si analizza l associazione tra gli insegnamenti e le attività, verificando che non ci sono insegnamenti con più di una attività associata SELECT IdInsegnamento FROM TBL_INSEGNAMENTI_ATTIVITA group by IdInsegnamento having count(*) > 1 " Risultato vuoto: non ci sono insegnamenti con più di una attività associata! Decisione: nel livello riconciliato dei dati si considera un associazione uno-a-molti tra Insegnamenti e Attività: In TBL_INSEGNAMENTI verrà considerato il campo IdAttività in cui viene riportato l ID dell unica attività associata " Conviene calcolare tale ID come valore max tra tutti gli ID delle attività associate all insegnamento: in questo modo se verranno inseriti degli insegnamenti con più attività, nello schema riconciliato si riesce comunque ad individuare una sola attività 11 Livello riconciliato: Crediti e Attività 12

7 Analisi dei dati / Orari! Un aspetto evidente dello schema degli orari è l assenza di una chiave in TBL_INS_ORARIO. Questo significa che non sono dichiarati i classici vincoli " non sovrapposizione: non ci sono due insegnamenti nello stesso ora nella stessa aula. Si può verificare che non è vero, in quanto la seguente query restituisce un risultato non vuoto: SELECT Id_Anno, Id_Periodo, Id_Giorno, Id_Ora, Id_Aula FROM TBL_INS_ORARIO GROUP BY Id_Anno, Id_Periodo, Id_Giorno, Id_Ora, Id_Aula HAVING (COUNT(DISTINCT Id_Ins) > 1) " non sdoppiamento: in un certo orario, un insegnamento è in una sola aula. Si può verificare che non è vero, in quanto la seguente query restituisce un risultato non vuoto: SELECT Id_Ins, Id_Anno, Id_Periodo, Id_Giorno, Id_Ora FROM TBL_INS_ORARIO GROUP BY Id_CDS, Id_Ins, Id_Anno, Id_Periodo, Id_Giorno, Id_Ora HAVING (COUNT(DISTINCT Id_Aula) > 1) 13 Analisi dei dati / Orari! Un altro aspetto è la denormalizzazione della tabella INS_ORARIO: ci sono alcuni campi che, intuitivamente, dipendono da altri campi. " Dipendenza Id_periodo! Id_Anno Per verificare questa dipendenza funzionale ricavo i valori di Id_periodo che hanno differenti Id_anno associati: SELECT Id_periodo FROM TBL_INS_ORARIO group by Id_Periodo having count(distinct Id_Anno) > 1 " Il risultato è vuoto, quindi, sull istanza corrente, la dipendenza è verificata. " Verifichiamo che Id_Anno in INS_ORARIO sia lo stesso IdAA indicato in TBL_PERIODI: SELECT count(*) FROM TBL_INS_ORARIO JOIN TBL_PERIODI ON TBL_INS_ORARIO.Id_Periodo = TBL_PERIODI.Id where TBL_INS_ORARIO.Id_Anno <> TBL_PERIODI.IdAA! Decisione: Id_Anno si può eliminare dalla tabella INS_ORARIO. 14

8 Analisi dei dati / Orari! Come altro esempio di potenziale dip. funz., consideriamo se in INS_ORARIO l insegnamento (Id_Ins) determina il Corso di Studio (Id_cds) " Dipendenza Id_Ins! Id_Cds Per verificare questa dip. Funz. ricavo i valori di Id_Ins che hanno differenti Id_Cds associati: SELECT Id_Ins FROM TBL_INS_ORARIO group by Id_Ins having count(distinct Id_CDS) > 1 " Il risultato della query non è vuoto: Cosa significa questo? Perche in INS_ORARIO non ho solo il CDS di Id_Ins (quello specificato in TBL_INSEGNAMENTI come Id_CorsoStudioRegolamento)? " Analizzando alcune tuple, ma soprattutto chiedendo all amministratore del DB, si scopre che viene seguita la seguente regola: sia X un insegnamento con del Corso di studi CDSX che mutua da un insegnamento Y del Corso di studi CDSY; allora tutte le ore di X in INS_ORARIO vengono messe con Id_Ins=Y e Id_Cds=CDSX! Decisione: Id_Cds resta nella tabella INS_ORARIO. 15 Analisi dei dati / Orari - Mutuazioni! Esempio: consideriamo due insegnamenti (SI, SI&BD) con i relativi Corsi di Studio indicati nella tabella INSEGNAMENTI TBL_INSEGNAMENTI ID IDCORSODISTUDIOREGOLAMENTO SI E-BUS SI&BD GEST_IND! Orario (A.A. 2003/2004, periodo=3) " Lunedi, ore 9-11, SI e SI&BD, aula F " Martedì!, ore 9-10, SI, aula G " Mercoled!ì, ore 10-10, SI&BD, aula H! In base alla precedente regola, in INS_ORARIO si ha: TBL_INS_ORARIO ID_CDS ID_ANNO ID_PERIODO ID_INS ID_GIORNO ID_ORA ID_AULA E-BUS 2003/ SI&BD 1 2 F E-BUS 2003/ SI&BD 1 3 F GEST_IND 2003/ SI&BD 1 2 F GEST_IND 2003/ SI&BD 1 3 F E-BUS 2003/ SI&BD 2 2 G GEST_IND 2003/ SI&BD 3 3 H! Se non si considerano le mutuazioni, tutte le ore vengono assegnate a SI&BD ma questo può essere non significativo per alcune tipologie di analisi (ad esempio, se l insegnamento ha un docente, e chiedo qual è l impegno - ovvero il numero di ore - del docente dovrei considerare le mutuazioni). 16

9 Livello riconciliato : schema complessivo 17 Dove si realizza lo schema riconciliato? 1. Architettura a 3 livelli si realizza un nuovo DB (DBRiconciliato) con lo schema riconciliato: Dati operazionali Dati esterni Livello delle sorgenti Strumenti ETL DBRiconciliato Caricamento Dati riconciliati Meta-dati Livello di alimentazione Data Warehouse Livello del warehouse! Il nuovo DBRiconciliato deve essere alimentato con i dati originali: si può usare il DTS di SQL Server (vedi ultima parte) 18

10 Alimentazione del DBRiconciliato! Esempio: Tabella TBL_INSEGNAMENTI 1. Si crea la tabella TBL_INSEGNAMENTI dello schema riconciliato 2. Tramite DTS si copiano i campi di TBL_INSEGNAMENTI i cui valori restano inalterati nel DBRiconciliato 3. Si determinano gli altri campi della tabella ; in questo caso occorre calcolare IdSSD come valore massimo dei valori presenti in TBL_INSEGNAMENTI_CORSI_SSD, allora 1. Si effettua una copia temporanea in DBRiconciliato di TBL_INSEGNAMENTI_CORSI_SSD) 2. Si esegue la seguente istruzione UPDATE TBL_INSEGNAMENTI SET IdSSD = (SELECT max(idssd) FROM TBL_INSEGNAMENTI_CORSI_SSD_TEMP WHERE TBL_INSEGNAMENTI.Id = idinsegnamento)! Alternative (più difficili da implementare) " IdSSS viene calcolato tramite una query nel DTS " IdSSS viene calcolato tramite una vista nel DB originale 19 Dove si realizza lo schema riconciliato? 2. Architettura a 2 livelli Non si realizza un nuovo DB riconciliato Livello delle sorgenti Dati operazionali Dati esterni Strumenti ETL Livello di alimentazione Data Warehouse Livello del warehouse! La riconciliazione viene effettuata direttamente nel DB originale, tramite l aggiunta di opportune tabelle e/o viste, cioè lo schema riconciliato di pag. 17 viene realizzato nel DB originale.! Uso di tabelle: Lo schema riconciliato viene realizzato nel DB originale introducendo solo le tabelle variate (es. TBL_INSEGNAMENTI) ed eventualmente nuove tabelle; le altre tabelle (es. TBL_ATTIVITA) la cui struttura non è stata modificata restano invariate 20

11 Architettura a 2 livelli : uso di tabelle! Le tabelle variate (es. TBL_INSEGNAMENTI) ed eventualmente le nuove tabelle si costruiscono tramite tabelle (il cui nome è seguito da _RIC per ricordare che sono dello schema riconciliato)! Esempio: Tabella TBL_INSEGNAMENTI_RIC 1. Si crea la tabella TBL_INSEGNAMENTI_RIC dello schema riconciliato 2. Si copiano i campi di TBL_INSEGNAMENTI i cui valori restano inalterati nello schema riconciliato INSERT INTO TBL_INSEGNAMENTI_RIC(Id, IdCorsoStudioRegolamento, Denominazione, Crediti, IdAmbito, IdAttivita, AnnoCorso, Asterisco) SELECT Id, IdCorsoStudioRegolamento, Denominazione, Crediti, IdAmbito, IdAttivita, AnnoCorso, Asterisco FROM TBL_INSEGNAMENTI 3. Si determinano gli altri campi della tabella; nell esempio IdSSD: UPDATE TBL_INSEGNAMENTI_RIC SET IdSSD = (SELECT max(idssd) FROM TBL_INSEGNAMENTI_CORSI_SSD WHERE TBL_INSEGNAMENTI_RIC.Id = idinsegnamento) " Le istruzioni 2 e 3 possono essere eseguite in un pacchetto DTS, (precedute da uno svuotamento dell tabella TBL_INSEGNAMENTI_RIC)! Si consiglia di utilizzare questa modalità nella tesina 21 Architettura a 2 livelli: uso di viste! Lo schema riconciliato (vedi p. 17) si realizza nel DB originale definendo le tabelle variate e le eventuali nuove tabelle come viste! La definizione delle viste può risultare difficile, in quanto occorre considerare, in genere, sia campi invariati sia campi calcolati!! Esempio: TBL_INSEGNAMENTI_RIC definita come vista 1. Si definisce la vista V1 che riporta i campi di TBL_INSEGNAMENTI i cui valori restano inalterati nello schema riconciliato CREATE VIEW V1 AS SELECT Id, IdCorsoStudioRegolamento, Denominazione, Crediti, IdAmbito, IdAttivita, AnnoCorso, Asterisco FROM TBL_INSEGNAMENTI 2. Per ogni campo calcolato (es. IdSSD) si definisce una vista avente come attributi la chiave di TBL_INSEGNAMENTI e il campo calcolato; CREATE VIEW V2(ID,IdSSD) as SELECT idinsegnamento,max(idssd) FROM TBL_INSEGNAMENTI_CORSI_SSD GROUP BY idinsegnamento 3. La vista TBL_INSEGNAMENTI_RIC è il join di V1 e V2 : CREATE VIEW TBL_INSEGNAMENTI_RIC( tutti gli attributi ) AS SELECT V1.*, IdSSD FROM V1, V2 WHERE V1.ID=V2.ID 22

12 Schema di Fatto - Orari! Punti caratteristici: " La tabella INS_ORARIO non ha una chiave e l insieme di attributi non è chiave: Nel corrispondente schema E/R considero un codice fittizio (nota: in base alle specifiche so già che sarà uno schema a grana temporale, nel quale questo codice scomparirà) " Convergenza? L AnnoAccademico indicato in Periodi è lo stesso di quello riportato in CorsoDiStudiRegolamento? Si, ad eccezione di 25 tuple su circa ! Possiamo indicare la convergenza (eventualmente si possono pulire le tuple sporche). La convergenza non influenza il nostro progetto logico " Granularità a livello di ora: Non si vuole considerare la singola ora, ma solo differenziare tra 'mattina' e pomeriggio : si definisce una dimensione MATPOM derivata da ID_ORA. Per semplicità (come nel caso dell attributo CHECK_IN nell esempio dei biglietti) si aggiunge alla tabella INS_ORARIO un attributo MATPOM con valori mat e pom calcolato direttamente sul DB transazionale: update TBL_INS_ORARIO set MATPOM= mat where ID_ora >=0 and ID_ora<=5 update TBL_INS_ORARIO set MATPOM= pom where ID_ora >=6 " Senza considerare le mutuazioni si definisce solo la misura NUM_ORE = count(*) 23 Schema di Fatto - Orari - Mutuazioni! Per tenere conto delle mutuazioni : " non ho informazioni sulle mutuazioni nello schema " NUM_ORE_EFFETTIVE (cioè ore non mutuate da altri CDS) : Si deve innanzitutto definire cosa significa non mutuata considerando la regola precedente, e quindi si può procedere al calcolo. Nel lucido che segue verrà presentato tale calcolo; per semplicità nel calcolo (della espressioni SQL) si aggiunge alla tabellla INS_ORARIO un campo MUTUATA che riporta appunto l esito di tale calcolo! Esempio: Orario (A.A. 2003/2004, periodo=3) " Lunedi, ore 9-11, SI e SI&BD, aula F " Martedì!, ore 9-10, SI, aula G " Mercoled!ì, ore 10-10, SI&BD, aula H TBL_INSEGNAMENTI ID IDCORSODISTUDIOREGOLAMENTO SI E-BUS SI&BD GEST_IND! In base alla regola, in INS_ORARIO si ha: TBL_INS_ORARIO ID_CDS ID_ANNO ID_PERIODO ID_INS ID_GIORNO ID_ORA ID_AULA MUTUATA E-BUS 2003/ SI&BD 1 2 F SI E-BUS 2003/ SI&BD 1 3 F SI GEST_IND 2003/ SI&BD 1 2 F NO GEST_IND 2003/ SI&BD 1 3 F NO E-BUS 2003/ SI&BD 2 2 G NO GEST_IND 2003/ SI&BD 3 3 H NO 24

13 Schema di Fatto - Orari - Mutuazioni! Calcolo dell attributo MUTUATA 1. Per default, un ora è non mutuata : update TBL_INS_ORARIO set MUTUATA='NO' 2. Un ora è mutuata se (a) ID_CDS è diverso da IDCORSODISTUDIOREGOLAMENTO nella tabella INSEGNAMENTI e (b) c è una corrispondente ora (stessa ora, stesso giorno, stessa aula,stesso anno e periodo) con differente ID_CDS update TBL_INS_ORARIO set MUTUATA='SI' where ID_CdS <> (select idcorsostudioregolamento from TBL_INSEGNAMENTI where TBL_INS_ORARIO.ID_ins = TBL_INSEGNAMENTI.Id) and exists (select * from TBL_INS_ORARIO as O1 where TBL_INS_ORARIO.ID_Anno=O1.Id_anno and TBL_INS_ORARIO.Id_periodo=O1.Id_periodo and TBL_INS_ORARIO.Id_giorno=O1.Id_giorno and O.Id_ora=O1.Id_ora and TBL_INS_ORARIO.Id_aula=O1.Id_aula and O.ID_CDS<>O1.Id_CDS) 25 Progetto Logico 26

14 Alimentazione del DM! L alimentazione delle Dimension Table è semplice: la loro struttura corrisponde a quelle del DB transazionale; utilizzare importa dati rispettando l ordine imposto dalle FK (vedi esempi DTS)! Per l alimentazione della Fact Table si definisce una vista nel DB originale, contenente tutte le misure! In questo caso NUM_ORE si calcola su tutte le tuple di INS_ORARIO mentre NUM_ORE_EFF solo su quelle con Mutuata = No : conviene definire due viste e poi fare il join! Vista per il Calcolo di NUM_ CREATE VIEW ConteggioOre(Id_CDS, Id_Periodo, Id_Ins, Id_Giorno,Id_Aula, MatPom,NUM_ORE) AS SELECT Id_CDS, Id_Periodo, Id_Ins, Id_Giorno, Id_Aula, MatPom, count(*) FROM TBL_INS_ORARIO group by Id_CDS, Id_Periodo, Id_Ins, Id_Giorno, Id_Aula, MatPom! Vista per il Calcolo di NUM_ CREATE VIEW ConteggioOreEffettive (Id_CDS, Id_Periodo, Id_Ins, Id_Giorno,Id_Aula, MatPom,NUM_ORE_EFF) AS SELECT Id_CDS, Id_Periodo, Id_Ins, Id_Giorno, Id_Aula, MatPom, count(*) FROM TBL_INS_ORARIO where Mutuata = No' group by Id_CDS, Id_Periodo, Id_Ins, Id_Giorno, Id_Aula, MatPom! Nota: si potrebbero usare queste due viste per alimentare la Fact Table, però l alimentazione in DTS risulta più complessa: si preferisce creare una sola vista. 27 Vista per il calcolo delle misure! Vista con entrambi i valori calcolati : è ottenuta (usare l interfaccia grafica) come join delle due precedenti viste " Siccome ConteggioOre ha un sovrainsieme delle tupe di ConteggioOreEffettive, usare ConteggioOre Left Join ConteggioOreEffettive " Usare isnull(num_ore_eff,0) : in questo modo per una tupla che è in ConteggioOre ma non in ConteggioOreEffettive (cioè è mutuata) ho 0 come valore di NUM_ORE_EFF CREATE VIEW dbo.conteggioentrambe AS SELECT dbo.conteggioore.id_cds, dbo.conteggioore.id_periodo, dbo.conteggioore.id_ins, dbo.conteggioore.id_giorno, dbo.conteggioore.id_aula, dbo.conteggioore.matpom, dbo.conteggioore.num_ore, isnull(dbo.conteggiooreeffettive.num_ore_eff,0) as NUM_ORE_EFF FROM dbo.conteggioore LEFT OUTER JOIN dbo.conteggiooreeffettive ON dbo.conteggioore.matpom = dbo.conteggiooreeffettive.matpom AND dbo.conteggioore.id_aula = dbo.conteggiooreeffettive.id_aula AND dbo.conteggioore.id_giorno = dbo.conteggiooreeffettive.id_giorno AND dbo.conteggioore.id_ins = dbo.conteggiooreeffettive.id_ins AND dbo.conteggioore.id_periodo = dbo.conteggiooreeffettive.id_periodo AND dbo.conteggioore.id_cds = dbo.conteggiooreeffettive.id_cds 28

15 Realizzazione Cubi in Analysis Services! Consideriamo la Dimensione Periodo con la relativa gerarchia " TipoPeriodo è la denominazione del periodo.! In Analysis Services possiamo definire due dimensioni: " Nota: nella dimensione TipoPeriodo si decide di non considerare il livello IdPeriodo; è una modifica rispetto al progetto concettuale iniziale 29 Alcuni esempi di query MDX! Nel seguito vengono riportati alcuni esempi di query MDX sul cubo ORARI! Esempio: Ore mutuate (definite come differenza tra le ore e quelle effettive): COLUMNS: i primi 7 CDS che hanno un maggior numero di ore mutuate ROWS: I periodi del 2004/2005gli Anni Accademici Si mostrano le ore mutuate WITH MEMBER [MEASURES].[NUM_ORE_MUTUATE] AS '[Measures].[Num Ore]- [Measures].[Num Ore Eff]' SELECT TOPCOUNT([CDS].[Denominazione].MEMBERS, 7, [NUM_ORE_MUTUATE]) ON COLUMNS, [Periodo].[2004/2005].CHILDREN ON ROWS FROM ORARI WHERE [NUM_ORE_MUTUATE] Problema: in questo modo il TopCount ordina rispetto a [NUM_ORE_MUTUATE] complessive, non quelle del 2004/2005. Per ordinare rispetto a quelle del 2004/2005 : ([Periodo].[2004/2005],[NUM_ORE_MUTUATE]) WITH MEMBER [MEASURES].[NUM_ORE_MUTUATE] AS '[Measures].[Num Ore]- [Measures].[Num Ore Eff]' SELECT TOPCOUNT([CDS].[Denominazione].MEMBERS, 7, ([Periodo].[2004/2005],[NUM_ORE_MUTUATE]))ON COLUMNS, [Periodo].[2004/2005].CHILDREN ON ROWS FROM ORARI WHERE [NUM_ORE_MUTUATE] 30

16 Alcuni esempi di query MDX! Esempio: Ore per AnnoAccademico/Periodo e AnnoDiCorso/CorsodiStudi " COLUMNS: (X,Y), dove X è un Anno Accademico e Y un TipoPeriodo NONEMPTYCROSSJOIN( [Periodo].[AnnoAccademico].MEMBERS, [TipoPeriodo].[TipoPeriodo].MEMBERS ) ON COLUMNS " ROWS : (X,Y), dove X è un Anno di Corso e Y è un Corso di Studi, limitato a Informatica ed Elettronica: NONEMPTYCROSSJOIN( [Anno Corso].[Anno Corso].MEMBERS, {[CDS].[Ingegneria Elettronica], [CDS].[Ingegneria Informatica] }) ON ROWS " Se invece di Informatica ed Elettronica voglio i primi tre Cds per numero di ore: NONEMPTYCROSSJOIN( [Anno Corso].[Anno Corso].MEMBERS, TOPCOUNT([CDS].[Denominazione].MEMBERS,3,[Measures].[Num Ore])}) ON ROWS 31 Architetture a 1 livello! Si discute brevemente questo tipo di soluzione nell esempio.! Alla fine della progettazione logica, si ha lo schema logico (pag. 26) su carta.! Il livello del warehouse è costituito da un insieme di viste nel DB operazionale: si può definire una vista corrispondente alla fact table FT_ORARI partendo dalla vista ConteggioEntrambe (pag. 28); per le dimension table si usano direttamente le table operazionale. Dati operazionali Middleware Strumenti OLAP Livello delle sorgenti Livello del warehouse Livello di analisi! Il livello di analisi (i cubi) verranno definiti usando come sorgente dati il DB operazionale; un cubo può essere definito a partire da una vista.! Prescindendo dai noti problemi di efficienza, elenchiamo alcuni pro e contro: " Pro: Alcuni analisi (cubi) si realizzano in modo immediato; ad esempio, possiamo analizzare il numero di ore rispetto al giorno e al cds anche senza realizzare alcuna vista ma riferendoci direttamente alla tabella INS_ORARIO " Contro: Per analisi più complete/complesse, che coinvolgono particolari dimensioni (es. MatPom) e/o misure (es. Num_Ore_Eff) occorre definire delle viste non banali oppure effettuare complessi calcoli (misure, dimensioni) usando lo 32 specifico strumento OLAP (Analysis Services nel nostro caso).

ESEMPIO DI PROVA PRATICA

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

Dettagli

Definizione e calcolo delle misure

Definizione e calcolo delle misure Definizione e calcolo delle misure! Misure Derivate! Misure Calcolate! Misure Derivate e Progetto Logico! Calcolo delle Misure! Aggregabilità Misure Derivate " Sono misure definite a partire da altre misure

Dettagli

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

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

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

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

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

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

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

Dettagli

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

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

Dettagli

Estensioni del linguaggio SQL per interrogazioni OLAP

Estensioni del linguaggio SQL per interrogazioni OLAP Sistemi Informativi Avanzati Anno Accademico 2012/2013 Prof. Domenico Beneventano Estensioni del linguaggio SQL per interrogazioni OLAP Esempio! Esempio delle vendite con scontrino (nella tabella, per

Dettagli

SQL - Structured Query Language

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

Dettagli

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

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

Dettagli

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica Dipartimento Informatica Materia Informatica Classe 5 Tec Ore/anno 198 A.S. 2018-2019 MODULI COMPETENZE UNITA di APPRENDIMENTO Gestione delle informazioni Tot. h 10 Base di Dati Tot. h 56 Grafica in C#

Dettagli

SCHEMA RELAZIONALE 1

SCHEMA RELAZIONALE 1 SCHEMA RELAZIONALE 1 DIAGRAMMA RELAZIONALE 2 Analisi e riconciliazione della sorgente operazionale I concetti principali sono EMPLOYEES, DEPARTMENTS, JOBS e JOB_HISTORY; inoltre cʼè una componente geografica

Dettagli

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

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

Dettagli

Schema Del DB Operazionale TELEFONATE

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

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Luca Martini Università di Pisa 16 aprile 2010 Riepilogo sugli operatori aggregati Sintassi SELECT A t t r i b u t o 1, MAX( A t t r i b u t o 2 ),... FROM Tabella1, Tabella2,...

Dettagli

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

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

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati

Dettagli

Esercizio con attributo cross-dimensionale - transazionale

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

Dettagli

A.A. 2018/2019. Esercitazione 12. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

A.A. 2018/2019. Esercitazione 12. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE A.A. 2018/2019 Esercitazione 12 Strutturazione di Istruzioni in Linguaggio SQL [ Possibili Soluzioni ] Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Esercizio 1 Scrivere

Dettagli

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

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

Dettagli

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato Settore Traccia 1 Traccia 200 Settore non polarizzato '! " # $ % & ( ) * + + ' ' ' !"#"$%, & &'(("% '&)'' ''"* - -. / / / 0/!- "-, (0 #- / / / 0/ --- + 1 ' # $ + 2 13 ,, - 4 '. & 56 2 '/!!! "7&% 8, 9 /'"'0'1'&'

Dettagli

ESEMPIO TELEFONATE. Esempio di progettazione con indicazioni per lo svolgimento della Tesina. DIAGRAMMA RELAZIONALE

ESEMPIO TELEFONATE. Esempio di progettazione con indicazioni per lo svolgimento della Tesina. DIAGRAMMA RELAZIONALE ESEMPIO TELEFONATE Esempio di progettazione con indicazioni per lo svolgimento della Tesina. DIAGRAMMA RELAZIONALE NOTA: Molte tabelle hanno come chiave un identificatore ID che è stato rinominato (è possibile

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

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

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

Dettagli

PRODOTTO CARTESIANO Caso Generale

PRODOTTO CARTESIANO Caso Generale PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,

Dettagli

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

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

SQL Server Business Intelligence Development Studio. SQL Server BI Development Studio. SQL Server BI Development Studio *Analysis Services* SQL Server Business Intelligence Development Studio Analysis Service Dutto Riccardo http://dbdmg.polito.it/ SQL Server BI Development Studio Analysis Services Operazioni OLAP Creazione di dimensioni Creazione

Dettagli

SQL Server Business Intelligence Development Studio

SQL Server Business Intelligence Development Studio SQL Server Business Intelligence Development Studio Analysis Service Dutto Riccardo http://dbdmg.polito.it/ SQL Server BI Development Studio Analysis Services Operazioni OLAP Creazione di dimensioni Creazione

Dettagli

Il linguaggio SQL: le viste

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

Dettagli

Docente: Alberto Belussi e Carlo Combi. Lezione 4

Docente: Alberto Belussi e Carlo Combi. Lezione 4 Laboratorio di Basidi Dati e Web Docente: Alberto Belussi e Carlo Combi Lezione 4 Base di Dati usata negli esercizi (DB dell applicazione web di ateneo) InCorso CorsoStudi (,N) (,N) nomecorsostudi CorsoInFacoltà

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

Laboratorio di Basi di dati/web/mm e Basi di dati per Bioinformatica

Laboratorio di Basi di dati/web/mm e Basi di dati per Bioinformatica /3/ Laboratorio di Basi di dati/web/mm e Basi di dati per Bioinformatica Docente: Alberto Belussi e Carlo Combi Lezione 4 Base di Dati usata negli esercizi (DB dell applicazione web di ateneo) InCorso

Dettagli

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 27 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

Dettagli

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

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

Dettagli

Laboratorio di Basi di dati

Laboratorio di Basi di dati Laboratorio di Basi di dati Docente: Alberto Belussi Lezione 4 Base di Dati usata negli esercizi ( ateneo (DB dell applicazione web di InCorso Erogazione CorsoStudi (,N ) (,) InsErogato (,) nome annoaccademico

Dettagli

Primo Compitino di Basi di Dati

Primo Compitino di Basi di Dati Primo Compitino di Basi di Dati 19 Aprile 2004 Svolgere gli esercizi direttamente sul foglio del testo Usare fogli aggiuntivi solo in mancanza di spazio. NOME: COGNOME: MATRICOLA: Esercizio Punti previsti

Dettagli

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

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

Dettagli

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

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

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Sesta parte Interrogazione di una

Dettagli

Biglietti e Ritardi: schema E/R

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

Dettagli

Sistemi Informativi Avanzati

Sistemi Informativi Avanzati Anno Accademico 2012/2013 Sistemi Informativi Avanzati Corso di Laurea Magistrale in Ingegneria Gestionale Domenico Beneventano Andrea Scavolini Introduzione 1 Obiettivi Il corso si propone di fornire

Dettagli

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare alcune informazioni relative a Twitter. TWEET

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

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

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

Dettagli

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SQL-OLAP. Estensioni OLAP in SQL

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SQL-OLAP. Estensioni OLAP in SQL Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano SQL-OLAP Estensioni OLAP in SQL Estensioni OLAP in SQL SQL99 è stato il primo standard SQL ad offrire soluzioni per l analisi

Dettagli

Esercitazione 3 SQL 2

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

Dettagli

Microsoft Access. Relazioni e query SQL. Domenico Fabio Savo

Microsoft Access. Relazioni e query SQL. Domenico Fabio Savo Microsoft Access Relazioni e query SQL Domenico Fabio Savo Outline Base di dati di esempio Le relazioni Le query Outline Base di dati di esempio Le relazioni Le query Contratti telefonici (requisiti) Si

Dettagli

ESEMPIO DI COPERTURA DI ARCHI OPZIONALI

ESEMPIO DI COPERTURA DI ARCHI OPZIONALI ESEMPIO DI COPERTURA DI ARCHI OPZIONALI Di seguito è riportato un esempio per illustrare la Copertura di un arco opzionale (PAG. 22 dei lucidi MODELLAZIONE CONCETTUALE). A tale scopo si considera un DBO

Dettagli

SQL /10/2016 Basi di dati - SQL 1

SQL /10/2016 Basi di dati - SQL 1 SQL 24-27/10/2016 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove parziali

Dettagli

IL LINGUAGGIO SQL LE BASI

IL LINGUAGGIO SQL LE BASI IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI ING. INFORMATICA PROVA PRATICA 10 LUGLIO 2013 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTE(CodFiscale, Cognome, Nome,

Dettagli

Versione 1.0. (DB Musei)

Versione 1.0. (DB Musei) Appunti di Informatica SQL for COOL PEOPLE Versione 1.0 Lezione 05 DB Musei) prof. Michele Salvemini 2015/2016 Sommario Impostazione della lezione... 3 pre-requisiti:... 3 Argomenti Trattati... 3 Vincoli...

Dettagli

Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni

Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni Domanda 1 Si consideri una base di dati sulle relazioni R 1 (A, B, C) R 2 (D, E, F ) Scrivere interrogazioni in SQL equivalenti alle seguenti

Dettagli

Errata Corrige dell edizione 2007

Errata Corrige dell edizione 2007 Errata Corrige dell edizione 2007 Aggiornata al 30/03/2011 pag 11 ASSOCIAZIONI card(studente,esame)=(0,n) pag 17 IDENTIFICATORI Un identificatore di un entità E è una collezione di attributi e/o di entità

Dettagli

Caratteristiche dei linguaggi per Database

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

Dettagli

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

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

Dettagli

Laboratorio di Basi di Dati

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

Dettagli

Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007

Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007 Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007 La sintassi dei comandi T-SQL non è rigorosa, poiché permette di ottenere lo stesso risultato con diversi combinazioni di argomenti.

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52) Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una maschera (form) per consentire agli utenti di inserire dati. L'ordinamento degli attributi

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Settima parte Interrogazione di una

Dettagli

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database. 4.SQL QUERY >definizione A cura di: Celora Luca Fare una query significa fare delle ricerche sul nostro database. >strumenti da usare SELECT //sceglie le colonne da visualizzare FROM //indica da quali

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 48 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 La Clausola HAVING 3 2 / 48 Join Naturale Theta Join Join Esterno

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Manuale SQL. Manuale SQL - 1 -

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

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 20 LUGLIO 2015 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTECodFiscale, Cognome,

Dettagli

SQL Esercizi DML Blocco 1

SQL Esercizi DML Blocco 1 SQL Esercizi DML Blocco 1 Si consideri il seguente schema di base di dati che vuole tenere traccia di alcune informazioni riguardanti gli studenti di un'università. Studenti(Matricola, NomeS, CognomeS,

Dettagli

SQL - Sottointerrogazioni correlate

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 10 GIUGNO 2015 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTECodFiscale, Cognome,

Dettagli

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018 Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018 REGOLE SULLO SVOLGIMENTO DELL ESAME E vietato usare dispositivi elettronici di qualsiasi tipo (smartphone, tablet, portatili) Non è

Dettagli

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

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

Dettagli

Cap. 7 -Trigger e loro uso

Cap. 7 -Trigger e loro uso 1 SOMMARIO 2 Introduzione... 3 Definizione standard di trigger... 10 Cap. 7 -Trigger e loro uso Uso dei trigger e integrità referenziale... 18 Comportamento attivo delle BD Si realizza disponendo di un

Dettagli

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO)

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO) Modello Relazionale Modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 20 GIUGNO 2014 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTE(CodFiscale, Cognome,

Dettagli

Le Basi di Dati Attive

Le Basi di Dati Attive Le Basi di Dati Attive Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 5 Appunti dalle lezioni SQL in Linguaggi di programmazione L uso diretto dell interprete SQL è tipicamente

Dettagli

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

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

Dettagli

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

Dettagli

Esercitazione 7 Correzione della prova di autovalutazione

Esercitazione 7 Correzione della prova di autovalutazione Esercitazione 7 Correzione della prova di autovalutazione Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-1 Specifiche dello schema ER Si vuole progettare una base di dati che rappresenta l'organizzazione

Dettagli

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1 SQL Esempi 24/10-7/11/2016 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove

Dettagli

Vincoli di integrità generici: check

Vincoli di integrità generici: check Lezione 5 Vincoli di integrità e Viste 1 Vincoli di integrità generici: check La clausola check permette di restringere i domini e specificare predicati che devono essere soddisfatti ogni volta che un

Dettagli

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

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

Dettagli

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

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

Dettagli

record a struttura fissa

record a struttura fissa Modello Relazionale E un modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING

Dettagli

Alessandra Raffaetà. Esercizio: Cinema

Alessandra Raffaetà. Esercizio: Cinema Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

IPOTESI con riferimento al testo proposto come simulazione in preparazione all Esame di Stato 2015

IPOTESI con riferimento al testo proposto come simulazione in preparazione all Esame di Stato 2015 IPOTESI con riferimento al testo proposto come simulazione in preparazione all Esame di Stato 2015 Possono essere prodotte forme (invendute) non acquistate da un cliente per giorni di chiusura del caseificio,

Dettagli

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

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

Dettagli

D B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati

D B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati Sistemi informativi D B M G Linguaggio SQL: costrutti avanzati Gestione delle transazioni SQL per le applicazioni Controllo dell accesso Gestione degli indici D B M G 2 Pag. 1 2007 Politecnico di Torino

Dettagli

Basi di Dati. Concetti Avanzati

Basi di Dati. Concetti Avanzati Basi di Dati Concetti Avanzati Concetti Avanzati Raggruppamenti Clausole GROUP BY e HAVING Forma Generale della SELECT Nidificazione Uso nel DML e DDL Nidificazione, Viste e Potere Espressivo Esecuzione

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 25 SETTEMBRE 2014 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTE(CodFiscale, Cognome,

Dettagli

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...

Dettagli