ESAME CFU (C) VOTO (AVG) SOST REG
|
|
- Beata Maggio
- 5 anni fa
- Visualizzazioni
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 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
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)
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
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,
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
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,
! 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
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
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
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
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
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
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
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
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
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
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
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
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
<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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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 è
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
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
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
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
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
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
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
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
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
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
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à,
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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;
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».
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 è
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:
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
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
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
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
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
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
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
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
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
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,
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.