ESAME CFU (C) VOTO (AVG) SOST REG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ESAME CFU (C) VOTO (AVG) SOST REG"

Transcript

1 Schema di Fatto CITTA ESERCIZIO DEL 20 MAGGIO 2011 STATO STUDENTE DOCENTE CORSO FACOLTA ESAME CFU (C) VOTO (AVG) SOST REG Schema Logico del DM con Push- Down Backup DM e DB OLAP sono disponibili in : 1) Ripristinare il datamart 2) Ripristinare il DB OLAP con cubo 1

2 Lo schema usato in questo esempio è una modifica dello schema usato nell esercizio svolto il 29 Aprile Nell esercizio del 29 Aprile era stata considerata la costruzione del cubo, con particolare riferimento alle misure calcolate per considerare la presenza dell arco multiplo. In questo esempio il cubo viene già fornito e si considerano le query MDX. In particolare 1) si discutono query MDX per elaborare casi di convergenza/dondivisione, anche considerando la presenza di archi multipli 2) si considerano delle query MDX per effettuare particolari conteggi, quali ad esempio a. per contare gli studenti di RE con un valore di VOTO_I > 21 b. per contare gli studenti di RE con un valore di VOTO_I > 21, considerando solo gli esami svolti presso una specifica facoltà 3) Si introducono le funzioni ANCESTOR e ISANCESTOR 4) Si evidenziano i casi in cui a. una dimensione è sia in un membro calcolato (nella WITH) che nella WHERE b. una dimensione è sia in un membro calcolato (nella WITH) che su un asse 2

3 Consideriamo il pattern { CITTA_STUDENTE, CITTA_CORSO } NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [CORSO].[Citta].MEMBERS) ON COLUMNS FROM ESAME Per limitarsi solo alle convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO }, ovvero solo alle coppie di { CITTA_STUDENTE, CITTA_CORSO } che hanno lo stesso valore FILTER (NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name = [CORSO].CURRENTMEMBER.Name ) ON COLUMNS FROM ESAME Se il FILTER restituisce un insieme vuoto à Errore, ASSE VUOTO in quanto non si anno elementi per costruire un asse Per contare quante sono le convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO }, ovvero quante sono le coppie di { CITTA_STUDENTE, CITTA_CORSO } che hanno lo stesso valore, si applica il COUNT al precedente insieme e si definisce una nuova misura 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME La precedente query conta il numero di convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO }, non il numero di esami: infatti il numero di esami è misurato tramite SOST_P e SOST_I non tramite il conteggio delle celle e quindi degli eventi. Ad esempio, per ottenere le misure limitatamente ai casi in cui c è convergenza nel pattern { CITTA_STUDENTE, CITTA_CORSO }, si devono ottenere (ad esempio sulle COLUMNS) tali convergenze e riportare sulle ROWS il valore delle misure 3

4 FILTER (NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name = [CORSO].CURRENTMEMBER.Name) ON COLUMNS, [Measures].ALLMEMBERS ON ROWS FROM ESAME FILTER (NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name <> [CORSO].CURRENTMEMBER.Name) ON COLUMNS, [Measures].ALLMEMBERS ON ROWS FROM ESAME Di seguito in questa pagina altri esempi di query MDX relative a quelle appena considerate FILTER (NONEMPTYCROSSJOIN( [STUDENTE].CURRENTMEMBER.Name = "XYZ" ) ON COLUMNS FROM ESAME [STUDENTE].[CITTA_STUDENTE].MEMBERS, è Errore: ASSE VUOTO FILTER (NONEMPTYCROSSJOIN( [STUDENTE].CURRENTMEMBER.Name = "RE" ) ON COLUMNS FROM ESAME [STUDENTE].[CITTA_STUDENTE].MEMBERS, FILTER (NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER IS [CORSO].CURRENTMEMBER ) ON COLUMNS FROM ESAME è Errore: ASSE VUOTO 4

5 Nel pattern { CITTA_STUDENTE, CITTA_CORSO } non coinvolti attributi dell arco multiplo. Consideriamo invece il pattern { CITTA_DOCENTE, CITTA_STUDENTE } in cui è coinvolto un attributo dell arco multiplo. L obiettivo è vedere cosa cambia in presenza di un arco multiplo, ricordando quanto detto sulla CONVERGENZA IN PRESENZA DI ARCHI MULTIPLI (riportato come appendice di questo documento) Per limitarsi solo alle convergenze sul pattern { CITTA_DOCENTE, CITTA_STUDENTE }, ovvero solo alle coppie di { CITTA_DOCENTE, CITTA_STUDENTE } che hanno lo stesso valore FILTER (NONEMPTYCROSSJOIN([DOCENTE].[CITTA_DOCENTE].MEMBERS, [STUDENTE].[CITTA_STUDENTE].MEMBERS), [DOCENTE].CURRENTMEMBER.Name = [STUDENTE].CURRENTMEMBER.Name ) ON COLUMNS FROM ESAME Ricordando quanto detto sulla CONVERGENZA IN PRESENZA DI ARCHI MULTIPLI, siccome un esame è di un solo studente e quindi gha una sola [CITTA_STUDENTE] ma più docenti e quindi più [CITTA_DOCENTE] ci si chiede se quelli ottenuti dalla precedente query sono i casi in cui la città di uno studente coincide con almeno una o con tutte le citta dei docenti? La risposta è : la città dello studente coincide con almeno una delle città dei docenti; questo è dovuto al fatto che nella FACT_TABLE_PD, ogni docente ha dato luogo ad una riga della FACT_TABLE_PD e quindi ad una cella del cubo. Per contare quante sono le convergenze sul pattern { CITTA_STUDENTE, CITTA_DOCENTE} 'COUNT(FILTER(NONEMPTYCROSSJOIN([DOCENTE].[CITTA_DOCENTE].MEMBERS, [STUDENTE].[CITTA_STUDENTE].MEMBERS), [DOCENTE].CURRENTMEMBER.Name = [STUDENTE].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME è 1 Esempio: per ottenere le misure limitatamente ai casi in cui non c è convergenza nel pattern { CITTA_STUDENTE, CITTA_DOCENTE} (si noti che rispetto all analogo esempio fatto per il pattern { CITTA_STUDENTE, CITTA_DOCENTE} ora i valori di SOST_I e SOST_P sono in genere diversi) FILTER (NONEMPTYCROSSJOIN( [DOCENTE].[CITTA_DOCENTE].MEMBERS, [STUDENTE].[CITTA_STUDENTE].MEMBERS), [DOCENTE].CURRENTMEMBER.Name <> [STUDENTE].CURRENTMEMBER.Name) ON COLUMNS, [Measures].ALLMEMBERS ON ROWS FROM ESAME 5

6 Riconsideriamo il pattern { CITTA_STUDENTE, CITTA_CORSO } NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [CORSO].[Citta].MEMBERS) ON COLUMNS FROM ESAME Per contare quante sono le convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO }, ovvero quante sono le coppie di { CITTA_STUDENTE, CITTA_CORSO } che hanno lo stesso valore 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME Come limitare le precedenti query alla sola facoltà di Agraria? Ovvero vogliamo 1) pattern { CITTA_STUDENTE, CITTA_CORSO }, ma solo per gli esami della facoltà di Agraria 2) contare quante sono le convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO } ma solo per gli esami della facoltà di Agraria In altre parole, siccome Città è padre di Facoltà, si vuole considerare la città che è padre di Agraria, cioè MO Per il pattern { CITTA_STUDENTE, CITTA_CORSO }, ma solo per gli esami della facoltà di Agraria e quindi solo per CITTA_CORSO = MO NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, { [CORSO].[All Stato].[ITALIA].[MO]}) ON COLUMNS FROM ESAME Per formulare questa query senza scrivere esplicitamente MO (si potrebbe non conoscere questo valore ) si deve usare una funzione che dato il membro Agraria consenta di risalire al suo padre, cioè al suo Ancestor. 6

7 Ancestor Ancestor(«Member», «Level») Restituisce l'antenato di «Member» al livello specificato in «Level». NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, { Ancestor( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [CORSO].[Citta])}) ON COLUMNS FROM ESAME Un altra possibilità è quella di usare un FILTER con IsAncestor IsAncestor IsAncestor(«Member1»,«Member2») Questa funzione restituisce TRUE se il membro indicato in «Member 1» è un antenato del membro specificato in «Member 2». FILTER(NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, IsAncestor([CORSO].CURRENTMEMBER, [CORSO].[All Stato].[ITALIA].[MO].[Agraria]) ) ON COLUMNS FROM ESAME Nota NONEMPTYCROSSJOIN( [STUDENTE].[CITTA_STUDENTE].MEMBERS, [CORSO].[Citta].MEMBERS) ON COLUMNS WHERE[CORSO].[All Stato].[ITALIA].[MO].[Agraria] è NO. ASSI DUPLICATI Consideriamo ora il conteggio: si dovrebbe ottenere 0 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME WHERE [CORSO].[All Stato].[ITALIA].[MO].[Agraria] 7

8 La spiegazione del risultato ottenuto viene discussa nel seguito, illustrandola su query più semplici. Il risultato 1 deriva dal fatto che se una stessa dimensione (nell esempio CORSO) è sia in un membro calcolato (nella WITH) che nella WHERE: si considera la specifica della WITH. Allo scopo di verificare che il WHERE ha comunque effetto sul membro calcolato, inseriamo nella WHERE una condizione relativa ad una dimensione non usata nella definizione del membro stesso, ad esempio una condizione sulla dimensione DOCENTE 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME WHERE [DOCENTE].[All DOCENTE].[ITALIA].[MO].[DA] 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name ) ) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME WHERE [DOCENTE].[All DOCENTE].[ITALIA].[BO].[DB] Ritornando alla query per contare quante sono le convergenze sul pattern { CITTA_STUDENTE, CITTA_CORSO } ma solo per gli esami della facoltà di Agraria, non potendo inserire la condizione sulla facoltaa in WHERE, si deve inserire direttamente nel FILTER 'COUNT(FILTER(NONEMPTYCROSSJOIN([STUDENTE].[CITTA_STUDENTE].MEMBERS, [STUDENTE].CURRENTMEMBER.Name =[CORSO].CURRENTMEMBER.Name AND IsAncestor([CORSO].CURRENTMEMBER, [CORSO].[All Stato].[ITALIA].[MO].[Agraria]) )) ' { [Measures].CONTEGGIO } ON COLUMNS FROM ESAME è 0 8

9 Q1) Scrivere in MDX una query per contare gli studenti di RE con un valore di VOTO_I > 21 MDX_Q1: 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, [Measures].[VOTO_I] > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 2 In FILTER, nella condizione [Measures].[VOTO_I] > 21 si fa implicitamente riferimento a ciascun membro del set che si sta filtrando, cioè si fa riferimento a [STUDENTE].CURRENTMEMBER; pertanto si ottiene lo stesso risultato con 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ([STUDENTE].CURRENTMEMBER, [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 2 In FILTER, nella condizione [Measures].[VOTO_I] > 21, per tute le dimensioni non specificate si usa l interpretazione di default; pertanto si ottiene lo stesso risultato con la seguente query 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ([STUDENTE].CURRENTMEMBER, [DOCENTE].[All DOCENTE], [CORSO].[All Stato], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 2 9

10 Q2) Scrivere in MDX una query per contare gli studenti di RE con un valore di VOTO_I > 21, considerando solo gli esami svolti presso una specifica facoltà contare gli studenti di REè COUNT applicato a [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN con VOTO_I > 21in una specifica facoltà è l insieme deve essere filtrato MDX_Q2_A: 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [CORSO].[All Stato].[ITALIA].[RE].[Musica], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 2 MDX_Q2_B: 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [CORSO].[All Stato].[ITALIA].[RE].[AGRARIA], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 0 I precedenti risultati si possono verificare con 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS, [CORSO].[Facolta].MEMBERS ON ROWS 10

11 REGOLA_PRIORITA_1 Se una dimensione (nell esempio CORSO) è sia in un membro calcolato (nella WITH) che su un asse: si considera la specifica della WITH 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS, [CORSO].[Facolta].MEMBERS ON ROWS Verifichiamo su quest altro esempio [Measures].MASSIMO AS 'MAX([STUDENTE].[Studente].MEMBERS, ( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [Measures].[VOTO_I]) ) ' { [Measures].MASSIMO} ON COLUMNS [Measures].MASSIMO AS 'MAX([STUDENTE].[Studente].MEMBERS, ( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [Measures].[VOTO_I]) ) ' { [Measures].MASSIMO} ON COLUMNS, [CORSO].[Facolta].MEMBERS ON ROWS 11

12 Riconsideriamo Q2) Scrivere in MDX una query per contare gli studenti di RE con un valore di VOTO_I > 21, considerando solo gli esami svolti presso una specifica facoltà Nella soluzione precedente, è stato filtrato l insieme di studenti di RE con la condizione ( [CORSO].[All Stato].[ITALIA].[RE].[Musica], [Measures].[VOTO_I]) > 21 ) ) Un altra soluzione è quella di estrarre dal cubo solo gli esami di una certa facoltà MDX_Q2_C: 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [CORSO].[All Stato].[ITALIA].[MO].[Agraria] è 2 MDX_Q2_D: 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE[CORSO].[All Stato].[ITALIA].[RE].[Musica] è 0 12

13 REGOLA_PRIORITA_2 Se una dimensione (nell esempio CORSO) è sia in un membro calcolato (nella WITH) che nella WHERE: si considera la specifica della WITH 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [CORSO].[All Stato].[ITALIA].[MO].[Agraria] 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [CORSO].[All Stato].[ITALIA].[MO].[Agraria], [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE[CORSO].[All Stato].[ITALIA].[RE].[Musica] Nota 'COUNT( FILTER( [STUDENTE].[All Stato].[ITALIA].[RE].CHILDREN, ( [Measures].[VOTO_I]) > 21 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS, [CORSO].[Facolta].MEMBERS ON ROWS WHERE [CORSO].[All Stato].[ITALIA].[MO].[Agraria] è ASSI DUPLICATI Scrivere in MDX una query per contare il numero di facoltà di MO 'COUNT( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN ) ' { [Measures].CONTEGGIO} ON COLUMNS è 1 13

14 Q3) Scrivere in MDX una query per contare il numero di facoltà di MO con VOTO_I >27 MDX_Q3 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, [Measures].[VOTO_I] > 27) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 0 Per verificare i due risultati precedenti: [CORSO].[All Stato].[ITALIA].[RE].CHILDREN ON COLUMNS, { [Measures].[VOTO_I] } ON ROWS Nelle query precedenti VOTO_I è riferito a tutti gli studenti e tutti i docenti; per aggiungere una condizione sugli studenti, ad esempio Q4) Scrivere in MDX una query per contare il numero di facoltà di MO con VOTO_I >25degli esami sostenuti da studenti di MO contare il numero di facoltà di MOè COUNT( CORSO].[All Stato].[ITALIA].[MO].CHILDREN) con VOTO_I > 25 è FILTER ( [Measures].[VOTO_I]) > 25) esami sostenuti da studenti di MOè due possibilità 1) Aggiungerlo alla condizione del FILTER 2) Inserirlo come condizione WHERE nello slicer del cubo Con la prima possibilità si ottiene 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([STUDENTE].[All Stato].[ITALIA].[MO], [Measures].[VOTO_I]) > 25) ) ' { [Measures].CONTEGGIO} ON COLUMNS FROM ESAME è 0 Per verificare, contiamo invece quelli di RE: siccome ci sono solo due città devono essere =1 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([STUDENTE].[All Stato].[ITALIA].[RE], [Measures].[VOTO_I]) > 25) ) ' { [Measures].CONTEGGIO} ON COLUMNS è 1 14

15 Con la seconda possibilità si ottiene 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([Measures].[VOTO_I]) > 25) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] è 0 Anche in questo caso per verificare, contiamo invece quelli di RE: siccome ci sono solo due città devono essere =1 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([Measures].[VOTO_I]) > 25) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[RE] è 1 15

16 Riconsideriamo Q4) Scrivere in MDX una query per contare il numero di facoltà di MO con VOTO_I >25degli esami sostenuti da studenti di MO Ed eliminiamo la condizione sul voto Q5) Scrivere in MDX una query per contare il numero di facoltà di MO con esami sostenuti da studenti di MO contare il numero di facoltà di MOè COUNT( CORSO].[All Stato].[ITALIA].[MO].CHILDREN) con VOTO_I > 25 è FILTER ( [Measures].[VOTO_I]) > 25) esami sostenuti da studenti di MOè due possibilità 1) Aggiungerlo alla condizione del FILTER 2) Inserirlo come condizione WHERE nello slicer del cubo Con la prima possibilità si ottiene 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([STUDENTE].[All Stato].[ITALIA].[MO], [Measures].[SOST_P]) > 0 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS FROM ESAME è 0 Verifica Nota 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([STUDENTE].[All Stato].[ITALIA].[RE], [Measures].[SOST_P]) > 0 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS FROM ESAME è 1 'COUNT( FILTER ( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN, ([STUDENTE].[All Stato].[ITALIA].[MO]) > 0 ) ) ' { [Measures].CONTEGGIO} ON COLUMNS FROM ESAME È sintatticamente corretta ma restituisce un errore in fase di esecuzione 16

17 Con la seconda possibilità : nel FILTER non si deve inserire più nessuna condizione quindi viene eliminato 'COUNT( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] è 1 Però questo risultato non è corretto, in quanto se visualizziamo le facoltà di MO relative agli studenti di MO otteniamo una cella vuota, ovvero non ci sono facoltà di MO con esami di studenti di MO : [CORSO].[All Stato].[ITALIA].[MO].CHILDREN ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] Quindi con COUNT( [CORSO].[All Stato].[ITALIA].[MO].CHILDREN) si contano le celle, indipendentemente dal fatto che siano vuote o meno e quindi si contano anche le celle vuote. Come eliminare le celle vuote dal conteggio? Per eliminare le celle vuote è sempre stato usato NONEMPTYCROSSJOIN, nel caso di combinazione di due o più insiemi; la domanda è quindi se si può applicare anche ad un solo insieme? Dal manuale, dalla sintassi la risposta è no, ma se effettuiamo delle prove la risposta è si : NONEMPTYCROSSJOIN([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ON COLUMNS NONEMPTYCROSSJOIN([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] OK ERRORE : OK, infatti non ci sono celle non vuote da mettere sulle COLUMS Allora - con la seconda possibilità - una soluzione può essere: 'COUNT( NONEMPTYCROSSJOIN([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] è 0, OK Verifichiamo 17

18 'COUNT(NONEMPTYCROSSJOIN([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ) ' { [Measures].CONTEGGIO} ON COLUMNS, DRILLDOWNLEVEL( [STUDENTE].[CITTA_STUDENTE].MEMBERS) ON ROWS In definitiva, per contare le celle non vuote di un insieme useremo Verifichiamo su un altro esempio. COUNT(NONEMPTYCROSSJOIN (<Set> )) Per avere, per ogni docente, il numero di esami sostenuti, sia come misura pesata che come misura di impatto, usiamo SOST_P e SOST_I rispettivamente [DOCENTE].[Docente].members ON COLUMNS, { [Measures].[SOST_P], [Measures].[SOST_I]} ON ROWS Consideriamo il pattern {DOCENTE,STUDENTE} : (la misura visualizzata è quella di default, cioè SOST_P). È facile verificare che per ogni docente il valore SOST_I può essere ottenuto contando gli studenti e considerando solo le celle non vuote 'COUNT(NONEMPTYCROSSJOIN( [STUDENTE].[Studente].MEMBERS) ) ' [DOCENTE].[Docente].members ON COLUMNS, { [Measures].CONTEGGIO }ON ROWS 18

19 Riassumendo, per la query Q5) Scrivere in MDX una query per contare il numero di facoltà di MO con esami sostenuti da studenti di MO contare il numero di facoltà di MOè COUNT( CORSO].[All Stato].[ITALIA].[MO].CHILDREN) con VOTO_I > 25 è FILTER ( [Measures].[VOTO_I]) > 25) esami sostenuti da studenti di MOè due possibilità 1) Aggiungerlo alla condizione del FILTER 2) Inserirlo come condizione WHERE nello slicer del cubo contare il numero di facoltà di MOè COUNT( CORSO].[All Stato].[ITALIA].[MO].CHILDREN) esami sostenuti da studenti di MO espressa nel WHERE è WHERE [STUDENTE].[All Stato].[ITALIA].[MO] quindi 'COUNT( CELLE_NON_VUOTE([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] E lecelle_non_vuotesi ottengono con NONEMPTYCROSSJOIN 'COUNT( NONEMPTYCROSSJOIN([CORSO].[All Stato].[ITALIA].[MO].CHILDREN) ) ' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] è 0, OK Nota Il NON EMPTY non può essere usato 'COUNT( NON EMPTY([CORSO].[All Stato].[ITALIA].[MO].CHILDREN))' { [Measures].CONTEGGIO} ON COLUMNS WHERE [STUDENTE].[All Stato].[ITALIA].[MO] 19

20 20

21 CONVERGENZA IN PRESENZA DI ARCHI MULTIPLI STATO CITTA STUDENTE DOCENTE CORSO FACOLTA ESAME CFU VOTO (AVG) SOST REG NP Per convergenza su CITTA (su STATO) si intende che la città (lo stato) del docente e dello studente coinvolti in esame coincidono. Nel caso di arco multiplo, questo concetto di convergenza perde di significato e dovrebbe essere esteso: siccome ci sono più docenti che partecipano a esame, cosa si intende per convergenza? La coincidenza vale per un docente dell esame OPPURE per tutti i docenti dell esame? Supponiamo (come verificato sull esempio di istanza) che per CITTA ci sia solo condivisione : la città dello studente non è necessariamente la stessa città dei docenti; per STATO ci sia convergenza per tutti i docenti dell esame, ovvero lo stato dello studente è necessariamente la stesso stato di tutti i docenti; e analizziamo cosa accade con i pattern {CITTA_DOCENTE,CITTA_STUDENTE} e sub- pattern. {STATO_DOCENTE,STATO_STUDENTE} e sub- pattern 21

22 Ricordiamo quanto detto sui pattern in presenza di condivisione/convergenza Nel caso di condivisione, non ha senso considerare il pattern {CITTA} in quanto un esame non è associato univocamente ad un unica città (non ha senso considerare un pattern {CITTA} in quanto con la condivisione si rappresentano due citta) Si deve considerare {CITTA_STUDENTE, CITTA_DOCENTE } ESAME FACOLTA STUDENTE CITTA Nel caso di convergenza, Non ha senso considerare {CITTA_STUDENTE, CITTA_DOCENTE } ha senso considerare {CITTA} in quanto un esame è associato univocamente ad un unica città! ESAME STUDENTE CITTA FACOLTA 22

23 Consideriamo il precedente esempio senza Arco Multiplo Istanza del DBO (alcune tabelle / campi sono omessi) STATO CITTA STUDENTE DOCENTE CORSO FACOLTA ESAME CFU (C) VOTO (AVG) SOST REG Un evento primario è associato ad un unico evento secondario, ovvero Un esame è associato ad un unica coppia {CITTA_STUDENTE, CITTA_DOCENTE } ; essendoci condivisione questa coppia può avere elementi diversi Un esame è associato ad un unica coppia {STATO_STUDENTE, STATO_DOCENTE } ; essendoci convergenza questa coppia non può avere elementi diversi, quindi in definitiva un evento primario è associato ad un unico stato, quindi i valori delle misure per i due pattern {STATO_STUDENTE } e { STATO_DOCENTE } coincidono ed ha senso pertanto considerare solo il pattern { STATO }. Per semplicità, si visualizzano i pattern per la sola misura SOST (esami sostenuti) {CITTA_STUDENTE, CITTA_DOCENTE } e sub- pattern {STATO_STUDENTE, STATO_DOCENTE } e sub- pattern Si considera solo {STATO} 23

24 Ripetiamo gli stessi pattern ma in presenza di arco multiplo Istanza del DBO (alcune tabelle / campi sono omessi) STATO CITTA STUDENTE DOCENTE CORSO FACOLTA ESAME CFU VOTO (AVG) SOST REG NP Per semplicità di confronto, si considera la sola misura SOST (esami sostenuti), sia come misura pesata (SOST_P) che come misura d impatto (SOST_I) {CITTA_STUDENTE, CITTA_DOCENTE } e sub- pattern {STATO_STUDENTE, STATO_DOCENTE } e sub- pattern L esempio mette in evidenza che anche supponendo uno convergenza su STATO (lo stato dello studente è necessariamente la stesso stato di tutti i docenti) in presenza di archi multipli i valori di una misura di impatto per i due pattern {STATO_STUDENTE } e { STATO_DOCENTE } non coincidono In {STATO_STUDENTE } : il valore ITALIA esprime che gli studenti italiani hanno sostenuto 2 esami In {STATO_DOCENTE} : il valore ITALIA esprime che i docenti italiani hanno fatto 3 esami. Si noti anche che nel caso di arco multiplo, un evento primario è associato a più eventi secondari, ovvero un esame del corso C2 è associato ad due eventi secondari dei pattern {CITTA_STUDENTE, CITTA_DOCENTE} e {STATO_STUDENTE, STATO_DOCENTE }. 24

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

ESEMPIO A: Arco multiplo su LIBRO- AUTORE

ESEMPIO A: Arco multiplo su LIBRO- AUTORE ESEMPIO A: Arco multiplo su LIBRO- AUTORE Consideriamo un DBO con il seguente schema E/R ed il corrispondente schema relazionale: AUTORE(AUTORE,CITTA) LIBRO(LIBRO,GENERE) PESO(AUTORE:AUTORE, LIBRO:LIBRO,PESO)

Dettagli

OPERAZIONI BANKOMAT Esempio 7 e 11 Maggio 2012

OPERAZIONI BANKOMAT Esempio 7 e 11 Maggio 2012 OPERAZIONI BANKOMAT Esempio 7 e 11 Maggio 2012 Rispetto allo schema con Arco Multiplo considerato nel precedente esercizio http://www.dbgroup.unimo.it/sia/esempio2maggio2012soluzione.pdf Si aggiunge la

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

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

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

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

Dettagli

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

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

Dettagli

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

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

Esempio di progettazione di un DW

Esempio di progettazione di un DW 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

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

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

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

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

Dettagli

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

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

Esempio di progettazione di un DW

Esempio di progettazione di un DW 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

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : SQL (3) Tabelle multiple, variabili, operatori di aggregazione QUERIES SU PIU TABELLE Queries su più tabelle 17 mar 010 Dia 3 17 mar 010 Dia 4 Per formulare un interrogazione su più tabelle, la clausola

Dettagli

Esercizio con attributo cross-dimensionale - transazionale

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

Dettagli

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

<Nome Tabella>.<attributo>

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

Dettagli

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

Versione draft: l esempio verrà completato la prossima settimana

Versione draft: l esempio verrà completato la prossima settimana ESERCIZIO DEL 24 OTTOBRE 2013 Versione draft: l esempio verrà completato la prossima settimana SCHEMA RELAZIONALE E lo schema parziale del DB AdventureWorks 2008 Le interrogazioni fatte in classe per l

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

Queries su più tabelle

Queries su più tabelle Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

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

ISBN Titolo CasaEd AnnoEd

ISBN Titolo CasaEd AnnoEd SQL Un esempio Si consideri il seguente schema relazionale Catalogo ( ISBN, Titolo, CasaEd, AnnoEd) Supponiamo che interessi conoscere il titolo e la casa editrice dei libri pubblicati nel 2001 1. consultare

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

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

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

Dettagli

Lezioni di Laboratorio sui Data Base

Lezioni di Laboratorio sui Data Base Lezioni di Laboratorio sui Data Base Informatica per l'impresa Docente Tutor: Dott. Gianluigi Roveda OBIETTIVO: Rivedere come attività di laboratorio le query di tipo select scritte in SQL ma con le variazioni

Dettagli

Dove e come utilizzare MDX?

Dove e come utilizzare MDX? Il linguaggio MDX!! Il linguaggio MDX (MultiDimensional expression) è usato per recuperare e manipolare dati multidimensionali in SQL Server Analysis Services, quali i dati archiviati in cubi! Come una

Dettagli

Gestione dei valori nulli

Gestione dei valori nulli Gestione dei valori nulli La gestione dei valori nulli, a seconda dell implementazione, avviene attraverso una logica a due valori come in SQL-89, o a tre valori (vero, falso, unknown) come in SQL-2. In

Dettagli

Esercizio: Esame. In questo esercizio sono dettagliati tutti i passi richiesti per la prima consegna della tesina

Esercizio: Esame. In questo esercizio sono dettagliati tutti i passi richiesti per la prima consegna della tesina Esercizio: Esame In questo esercizio sono dettagliati tutti i passi richiesti per la prima consegna della tesina Il punto di partenza è il diagramma relazionale del DBO con la relativa documentazione Per

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

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

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

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

Piccolo vademecum sull uso efficiente di Excel

Piccolo vademecum sull uso efficiente di Excel Piccolo vademecum sull uso efficiente di Excel 1 ORGANIZZARE I FILE 1.1 DARE UN NOME PER OGNI VERSIONE CREATA CHE IDENTIFICHI UNIVOCAMENTE IL CONTENUTO, AGGIUNGERE DATA E ORA SE NECESSARIO Esempio: 2015_ANALISI

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

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

Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano Sistemi Informativi Avanzati Anno Accademico 2011/2012 Prof. Domenico Beneventano ESERCITAZIONI DEL 20 e 27 APRILE 2012 Sommario 1.1 VENDITA Dimensioni = { PROD, DATA,CASSA,COM }... 2 1.2 Esercizio A (20

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

Dove e come utilizzare MDX?

Dove e come utilizzare MDX? Il linguaggio MDX Il linguaggio MDX (MultiDimensional expression) è usato per recuperare e manipolare dati multidimensionali in SQL Server Analysis Services, quali i dati archiviati in cubi Come una query

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

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

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

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

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

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

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. Ordinamento E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. order by AttrdiOrdinamento [asc desc] {, AttrdiOrdinamento

Dettagli

Esercizio Per quali valori di t l albero in figura è un B-Albero legale?

Esercizio Per quali valori di t l albero in figura è un B-Albero legale? Esercizi di Algoritmi e strutture dati II: B-Alberi. A cura di: Teresa E. NARDIELLO Esercizio 19.1-2 Per quali valori di t l albero in figura è un B-Albero legale? M D H Q T X B C F G J K L N P R S V W

Dettagli

Basi di dati I 28 gennaio 2014 Compito A Tempo a disposizione: un ora e quarantacinque minuti.

Basi di dati I 28 gennaio 2014 Compito A Tempo a disposizione: un ora e quarantacinque minuti. Basi di dati I 28 gennaio 2014 Compito A Tempo a disposizione: un ora e quarantacinque minuti. Cognome: : Matricola: Domanda 1 (10%) Considerare i due schemi seguenti a) Professore Afferenza Dipartimento

Dettagli

8(+#.%09:;

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Il Linguaggio SQL Due componenti principali: Ø DDL (Data Definition Language) Contiene i costrutti necessari per la creazione/modifica

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

Select From Where...

Select From Where... Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle

Dettagli

Ricorsione in SQL-99

Ricorsione in SQL-99 Ricorsione in SQL-99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione

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

a 11 a 12 a 1n a 21 a 22 a 2n a m1 a m2 a mn mentre le variabili decisionali sono rappresentate dal vettore colonna n-dimensionale x,

a 11 a 12 a 1n a 21 a 22 a 2n a m1 a m2 a mn mentre le variabili decisionali sono rappresentate dal vettore colonna n-dimensionale x, Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Appunti dal corso di Metodi e Modelli di Ottimizzazione Discreta 1 A.A. 2018-2019 Prof. Sara Nicoloso A seconda del tipo di variabili che

Dettagli

Linguaggio SQL seconda parte

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

Dettagli

Possiamo scrivere le tre precedenti espressioni in un'unica equazione matriciale:

Possiamo scrivere le tre precedenti espressioni in un'unica equazione matriciale: A1. Considerazioni sul cambio di un sistema di riferimento cartesiano ortogonale Sia xyz un sistema di riferimento cartesiano ortogonale di origine O e di riferimento cartesiano pure di origine O. un secondo

Dettagli

OPERATORI LOGICI: AND, OR, NOT

OPERATORI LOGICI: AND, OR, NOT Esempi di Queries(interrogazioni): SELECT Nome, Cognome FROM Persone WHERE id = 1 SELECT Nome, Cognome FROM Persone WHERE Nome = Luigi SELECT * FROM Persone WHERE Nome = Luigi ( * = visualizza tutti i

Dettagli

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella Operatori aggregati Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella e ha come risultato un valore atomico. Count Questo operatore serve per contare le tuple di

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

Dettagli

Access. P a r t e t e r z a

Access. P a r t e t e r z a Access P a r t e t e r z a 1 Query: Concetti generali (2) Query 1 Tabella Query 2 Le query rappresentano viste differenti sul DB (possono coinvolgere una o più tabelle) 2 Creazione (1) Diverse possibilità,

Dettagli

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami. Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)

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. 2007/2008 Interrogazioni con raggruppamento E possibile

Dettagli

Excel come foglio di calcolo. Altri Grafici con Excel Istogrammi, grafici a torta

Excel come foglio di calcolo. Altri Grafici con Excel Istogrammi, grafici a torta Excel come foglio di calcolo Altri Grafici con Excel Istogrammi, grafici a torta Funzioni di Excel per elaborazioni di dati presenti nel foglio Excel prevede una serie di funzioni predeterminate, raggruppate

Dettagli

Esame di Basi di Dati

Esame di Basi di Dati Esame di Basi di Dati 11 Giugno 2013 Matricola CFU (9/12/9+9) Progetto (Sì/No) Cognome Nome Istruzioni I voti verranno resi disponibili su AlmaEsami. Chi vorrà rifiutare il voto dovrà comunicarlo tassativamente

Dettagli

x =0 x 1 x 2 Esercizio (tratto dal Problema 1.4 del Mazzoldi)

x =0 x 1 x 2 Esercizio (tratto dal Problema 1.4 del Mazzoldi) 1 Esercizio (tratto dal Problema 1.4 del Mazzoldi) Un punto materiale si muove con moto uniformemente accelerato lungo l asse x. Passa per la posizione x 1 con velocità v 1 1.9 m/s, e per la posizione

Dettagli

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

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

Dettagli

Structured Query Language

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

Dettagli

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

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015 Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 0 minuti per svolgere gli esercizi 1, 2, Chi deve recuperare

Dettagli

Lezione 13. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

Lezione 13. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri Lezione 13 Il trattamento dei dati database: il linguaggio SQL seconda parte Proff. Valle Folgieri Lez13 Trattamento dati. Database: il linguaggio SQL-seconda parte 1 SQL: azioni sui dati Nella scorsa

Dettagli

Lezione 12. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

Lezione 12. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri Lezione 12 Il trattamento dei dati database: il linguaggio SQL seconda parte Proff. Valle Folgieri Lez13 Trattamento dati. Database: il linguaggio SQL-seconda parte 1 SQL: azioni sui dati Nella scorsa

Dettagli

insert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto

insert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una form per consentire agli utenti di inserire dati. L'ordinamento degli attributi (se

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

Esercitazione 4: Trigger in DB2

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

Dettagli

Esercitazione 4: Trigger in DB2

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

Dettagli

Data warehouse Analisi dei dati

Data warehouse Analisi dei dati DataBase and Data Mining Group of DataBase and Data Mining Group of DataBase and Data Mining Group of Database and data mining group, D MG B Data warehouse Analisi dei dati DATA WAREHOUSE: OLAP - 1 Database

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

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

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

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO Regole di derivazione

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO Regole di derivazione LE BASI DI DATI Seconda parte La progettazione di database Relazionali SCHEMA LOGICO Regole di derivazione ALCUNE PRECISAZIONI Il modello logico «relazionale» si occupa dello studio delle «Relazioni matematiche».

Dettagli

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

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

Dettagli

SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali

SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali SQL: Structured Query Language 1 SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali Standard: SQL-84, SQL-89, SQL-92 (o SQL2), SQL:1999 (o SQL3) (ANSI/ISO) SQL-92:

Dettagli

Consideriamo lo schema relazionale

Consideriamo lo schema relazionale Andrea Gasparetto Consideriamo lo schema relazionale Sulle stringhe WHERE Expr LIKE pattern Il pattern può contenere caratteri e i simboli speciali % sequenza di 0 o più caratteri qualsiasi _ un carattere

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

SQL QUERY: Le interrogazioni del database

SQL QUERY: Le interrogazioni del database Appunti della lezione di Database del 20 ottobre 2016 (mattina) Studenti: D Amuri Giuseppe, De Luca Federico Professore: Mario Bochicchio SQL QUERY: Le interrogazioni del database Per effettuare un interrogazione

Dettagli

Basi di dati II Prova parziale 11 aprile 2016 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola

Basi di dati II Prova parziale 11 aprile 2016 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola Basi di dati II Prova parziale 11 aprile 2016 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola Con riferimento al progetto Carriere studenti, si considerino gli aspetti che

Dettagli

Francesco Zumbo

Francesco Zumbo La retta - Teorema di Talete - Equazione della retta: passante per due punti, implicita, esplicita - Parallele e Perpendicolari - Fascio Propio e improprio - Intersezione tra rette Francesco Zumbo www.francescozumbo.it

Dettagli

Capitolo 4: CAMBIAMENTO DI SISTEMA DI UNITÀ

Capitolo 4: CAMBIAMENTO DI SISTEMA DI UNITÀ Capitolo 4: CAMBIAMENTO DI SISTEMA DI UNITÀ 4.1 Grandezze fondamentali e derivate Come abbiamo già osservato la scelta di un Sistema di unità di misura è largamente arbitraria e dettata in gran parte da

Dettagli

3. OPERAZIONI TRA CLASSI 2

3. OPERAZIONI TRA CLASSI 2 INSIEMI 1. Elementi e Classi Lo scopo di questo primo capitolo è di introdurre in maniera rigorosa le nozioni di classe e insieme, e di studiarne le principali proprietà. Nel seguito useremo il termine

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

Proposizione 2 Il polinomio minimo di t corrisponde all annullatore minimale di M V.

Proposizione 2 Il polinomio minimo di t corrisponde all annullatore minimale di M V. Fogli NON riletti. Grazie per ogni segnalazione di errori. L esempio qui sviluppato vuole mostrare in concreto il significato dei risultati trattati a lezione e qui velocemente riassunti. Si assume che

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 4 del corso di Statistica 2 Prof. Domenico Vistocco

Esercitazione 4 del corso di Statistica 2 Prof. Domenico Vistocco Esercitazione 4 del corso di Statistica 2 Prof. Domenico Vistocco Alfonso Iodice D Enza May 23, 2007 1 Esercizio Si consideri un mazzo di carte francesi di 2 carte e si supponga di stare giocando a poker.

Dettagli