Gerarchie ed Interrogazioni Ricorsive

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gerarchie ed Interrogazioni Ricorsive"

Transcript

1 Sistemi Informativi vanzati nno ccademico 2013/2014 Prof. omenico eneventano Gerarchie ed Interrogazioni Ricorsive 1 Gerarchie ed Interrogazioni Ricorsive! Una Gerarchia Ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale. O_TTIVIT Organigramma aziendale! Per gestire gerarchie ricorsive sono necessarie Interrogazioni Ricorsive.! Naturalmente, le interrogazioni ricorsive sono importanti anche in altri contesti! Molti MS attuali accettano interrogazioni ricorsive 2

2 Interrogazioni Ricorsive! Principale limitazione dell lgebra Relazionale e dell SQL-92: interrogazioni ricorsive! IMPIEGTO! NOME! Rossi! Neri! Verdi! Tucci! eluca! NOMEPO! Verdi! Verdi! esio! esio! esio! selezionare tutti i capi! di Rossi! Query! NOMEPO! Verdi! esio! Lazio! esio! Lazio! Lazio! NULL!! Le interrogazioni ricorsive sono state introdotte con l SQL-1999 tramite le recursive common table expressions (TEs), originariamente proposte in 2 e successivamente implementate anche in SQL SERVER, ORLE, PostgresSQL, Teradata!! Le interrogazioni ricorsive più frequenti sono riconducibili " al caso di chiusura transitiva di una relazione binaria! 3 Esempio di chiusura transitiva IMPIEGTO NOME NOMEPO iclo a livello di dati chiusura transitiva PO NOME NOMEPO! PO è la chiusura transitiva di IMPIEGTO; " Nella slide che segue viene data una intuizione del calcolo per la hiusura Transitiva 4 4

3 hiusura Transitiva e Riflessiva! Se R è una relazione inaria R(,) si definisce 1. chiusura transitiva di R, denotata con R +, la più piccola relazione (rispetto all inclusione insiemistica) tale che 1. ontiene R 2. Se (x,y) e (y,z) sono in R + allora anche (x,z) è in R + 2. hiusura riflessiva : insieme delle tuple (x,x) con x in R 3. L unione delle due chiusure è chiamata hiusura transitiva e riflessiva, ed è denotata con R * " Nella slide che segue viene data una intuizione del calcolo per la hiusura Transitiva 5 5! PO 0 = IMPIEGTO! PO 1 = PO 0! NOME NOMEPO NOME NOMEPO SELET R 0.NOME, I.NOMEPO! FROM PO 0 R 0, IMPIEGTO I! WHERE R 0.NOMEPO = I.NOME!!!! PO 2 = PO 1! NOME NOMEPO SELET R 1.NOME, I.NOMEPO! FROM PO 1 R 1, IMPIEGTO I! WHERE R 1.NOMEPO = I.NOME!!! 6! PO 3 = PO 2 terminazione # risultato 6

4 Viste Ricorsive! Intuitivamente: le interrogazioni ricorsive si potrebbero ottenere con viste ricorsive, la cui definizione usa il nome della vista stessa! RETE VIEW PO (NOME, NOMEPO) S!!SELET NOME, NOMEPO!!FROM IMPIEGTO!!UNION!!SELET PO.NOME, IMPIEGTO.NOMEPO! FROM PO, IMPIEGTO WHERE PO.NOMEPO = IMPIEGTO.NOME!!! Relazione di cui si vuole calcolare la chiusura transitiva (punto di partenza) Espressione per il calcolo della chiusura transitiva! SQL : non è possibile usare definire vista ricorsive.! SQL-99 : ommon Table Expressions (TEs) o tabelle temporanee : viste che non diventano parte dello schema, da usare solo temporaneamente nel contesto di una specifica interrogazione! Le ommon Table Expressions possono essere ricorsive. 7 SQL-99 : comando WITH! onsente di definire tabelle temporanee che non diventano parte dello schema ma rappresentano solo definizioni di relazioni da utilizzare nel contesto dell interrogazione associata a WITH WITH R 1 S <definizione di R 1 >,... R n S <definizione di R n >, <interrogazione su R 1,, R n >! <definizione di R i > è un interrogazione SQL che può fare riferimento a R 1,!, R i-1 ed anche a Ri stessa, ovvero può essere una definizione ricorsiva! la ricorsione deve essere lineare : nella definizione di una relazione R, R può comparire una sola volta Rn R1 8! le relazioni R 1,!, R n sono usate in <interrogazione su R 1,!, R n > (SELET FROM WHERE) 8

5 9 Esempi di interrogazioni ricorsive! Esempi riferiti a SQL SERVER 2008 (richiede UNION LL)! Ricorsione lineare WITH!PO (NOME, NOMEPO) S (! SELET NOME, NOMEPO!!FROM IMPIEGTO! UNION LL! SELET PO.NOME, IMPIEGTO.NOMEPO!!FROM PO, IMPIEGTO!WHERE PO.NOMEPO = IMPIEGTO.NOME )! SELET * FROM PO;!! Ricorsione non lineare : non accettata dallo standard SQL-99 WITH PO (NOME, NOMEPO) S (! SELET NOME, NOMEPO!!FROM IMPIEGTO! UNION LL! SELET R1.NOME, R2.NOMEPO! FROM PO R1, PO R2!!WHERE R1.NOMEPO = R2.NOME )! SELET * FROM PO;! 9 Esempi di interrogazioni ricorsive NOME! Rossi! Neri! IMPIEGTO! NOMEPO! Verdi! Verdi! selezionare tutti i capi! di Rossi! Query! NOMEPO! Verdi! esio! Verdi! esio! Lazio! Tucci! esio! eluca! esio! esio! Lazio! Lazio! 10 WITH PO (NOME, NOMEPO) S (! SELET NOME, NOMEPO FROM IMPIEGTO! UNION LL! SELET PO.NOME, IMPIEGTO.NOMEPO! FROM PO, IMPIEGTO! WHERE PO.NOMEPO = IMPIEGTO.NOME )! SELET NOMEPO! FROM PO WHERE NOME = 'Rossi'! N NOMEPO IS NOT NULL;! 10

6 Esempi di interrogazioni ricorsive! eterminare la relazione PO con anche il LIVELLO di ricorsione NOME NOMEPO NOME NOMEPO LIVELLO WITH PO (NOME, NOMEPO,LIVELLO) S ( SELET NOME, NOMEPO, 1 S LIVELLO!!FROM IMPIEGTO!!UNION LL!!SELET PO.NOME, IMPIEGTO.NOMEPO,!!LIVELLO + 1!! 11 FROM PO, IMPIEGTO WHERE PO.NOMEPO = IMPIEGTO.NOME) SELET * FROM PO! Esempio: ill Of Materials (OM)! OM = distinta base : è l'elenco di tutti i componenti necessari per realizzare un prodotto. PRO (PROOTTO) OMP (OMPONENTE) QTY (QUNTIT) OM PRO OMP LIV QTY * * *20*30 WITH OM(PRO, OMP, LIV, QTY) S ( SELET PRO, OMP, 1 S LIVELLO, QTY!FROM OMP!UNION LL!!!SELET OM.PRO, OMP.OMP,! LIV + 1, OM.QTY*OMP.QTY! FROM OM, OMP WHERE OM.OMP =OMP.OMP )! SELET * FROM OM!!! 12

7 lgoritmo per il alcolo hiusura Transitiva! Il calcolo della chiusura transitiva, e più in generale la semantica delle interrogazioni ricorsive, si può formalizzare usando la nozione di minimo punto fisso di una funzione.! In queste due slide si presentano, in modo informale, i concetti per definire un algoritmo per il calcolo del minimo punto fisso e quindi della chiusura transitiva.! Sia (P,") un insieme parzialmente ordinato. Una funzione # da P a P si dice monotona (preserva l ordine) se p 1 " p 2 $ #(p 1 ) " #(p 2 ) 13! Sia # una funzione monotona # : (P,") % (P,"). Un elemento x di P si dice punto fisso di # se #(x)=x. minimo punto fisso di # se è un punto fisso e & y punto fisso di #, x " y 13 lgoritmo per il alcolo hiusura Transitiva! ata una relazione binaria R(,), la sua chiusura transitiva R + è il minimo punto fisso della funzione f(r) definita come: f(r) = R! ' R.,R'. (R ( R.= R'. (R as R ) )! onsideriamo l insieme (P,") dove P è l insieme di tutte le relazioni binarie R(,) La relazione " è quella di inclusione insiemistica Si può dimostrare che f(r) è monotona e continua su (P,") e quindi che esiste ed è calcolabile un minimo punto fisso.! alcolo naive del minimo punto fisso di f(r) Inizializzazione : R 0 = R alcolo : Ri = f(ri-1) 14 Terminazione : termina per un certo i tale che R i = R i-1 Output : R i è il minimo punto fisso della funzione f(r) 14

8 ! P0= IMPIEGTO NOME NOMEPO NOME NOMEPO SELET X.NOME, Y.NOMEPO! FROM P0 X, P0 Y! WHERE X.NOMEPO = Y.NOME!!! P1 semi-naive P2 NOME NOMEPO SELET P 1.NOME, P0.NOMEPO! FROM P1, P0! WHERE P1.NOMEPO = P0.NOME!!!! P 3 = P 2 terminazione;! Risultato : PO = UNION LL Pi 15 Esempi di interrogazioni ricorsive! eterminare la relazione PO con anche il LIVELLO di ricorsione NOME NOMEPO WITH PO (NOME, NOMEPO,LIVELLO) S ( SELET NOME, NOMEPO, 1 S LIVELLO!!FROM IMPIEGTO!!UNION LL!!SELET PO.NOME, IMPIEGTO.NOMEPO,!!LIVELLO + 1!! 16 FROM PO, IMPIEGTO WHERE PO.NOMEPO = IMPIEGTO.NOME) SELET * FROM PO! N LIVELLO < 4! NOME NOMEPO LIVELLO loop!

9 Gerarchie Ricorsive! Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.! Esempio O con associazione ricorsiva (anello) : O_TTIVIT Organigramma aziendale! Rappresentazione sullo Schema di Fatto di una Gerarchia ricorsiva la costruzione dell albero degli attributi non può essere realizzata con la procedura automatica in quanto la ricorsione provoca un loop.! Schema temporale Gerarchie Ricorsive: eventi ed aggregazione! Nelle tabelle che seguono viene illustrata intuitivamente la semantica dell aggregazione in presenza di gerarchie ricorsive! La tabella 5.30 mostra gli eventi primari per TTIVITÀ (non si considera Tipottività) e un istanza della gerarchia ricorsiva indicandone la relazione di subordinazione tra i vari impiegati livello di istanze di una gerarchia ricorsiva, l aspetto caratteristico è la lunghezza variabile delle relazioni padre-figlio tra i membri dei livelli 18 18

10 Gerarchie Ricorsive: eventi ed aggregazione! La tabella 5.31 mostra gli eventi secondari derivanti dall aggregazione ricorsiva degli eventi primari: al primo livello di ricorsione per ciascun impiegato si riportano le ore complessivamente lavorate da lui e dagli eventuali immediati subordinati! Si noti la semantica: 6 sono le ore complessivamente lavorate da Giulio, cioè da Giulio e dai subordinati fino al livello Gerarchie Ricorsive: eventi ed aggregazione! Nella tabella 5.32 si riportano gli eventi secondari al secondo livello di ricorsione:! Si noti la semantica: 13 sono le ore complessivamente lavorate da Giulio, cioè da Giulio e dai subordinati fino al livello

11 Gerarchie Ricorsive: Livelli di Ricorsione! Lo schema a sinistra riporta gli eventi primari (misura Ore Lavorate) rispetto alla dimensione Impiegato (per una certa ata, ommessa, Tipo attività) Livelli di ricorsione Livello 0 (eventi primari) Livello 1 Livello 2 (livello Max) Gerarchie Ricorsive: Pattern di ggregazione! ssociazione 1-N tra un attributo dimensionale e se stesso! aso semplice : È sulla radice della dimensione (IMPIEGTO nell esempio) È un associazione diretta, cioè non coinvolge altri attributi! L aggregazione è definita considerando il livello di ricorsione: Per ogni pattern che contiene IMPIEGTO occorre specificare il LIVELLO di ricorsione 1. LIVELLO = 0 : non ricorsivo 2. LIVELLO = MX : intuitivamente è la lunghezza massima della relazione padre-figlio tra i membri; è il valore x di LIVELLO tale che i valori aggregati non cambiano rispetto al livello successivo x+1! Nei pattern senza IMPIEGTO, es {T,OMMESS} si considera il LIVELLO 0 non ricorsivo 22 22

12 Gerarchie Ricorsive: Progettazione Logica! La soluzione più immediata è un anello nella T_IMPIEGTO! I pattern con IMPIEGTO ad un LIVELLO di ricorsione si ottengono calcolando NOMEPO con interrogazioni ricorsive! Soluzione difficile con query SQL-OLP ricorsive: 1. Interrogazioni ricorsive: per gestire i livelli di ricorsione 2. Interrogazioni SQL-OLP: per gestire i raggruppamenti 23 Soluzione con anello in T_IMPIEGTO! Pattern {IMPIEGTO}, con relativo LIVELLO di ricorsione WITH!PO (NOME, NOMEPO, LIVELLO) S (! SELET NOME, NOMEPO,LIVELLO!!FROM IMPIEGTO! UNION LL! SELET PO.NOME, IMPIEGTO.NOMEPO, LIVELLO + 1! FROM PO, IMPIEGTO WHERE PO.NOMEPO = IMPIEGTO.NOME )! SELET NOMEPO, LIVELLO, ORELVORTE=SUM(ORELVORTE) FROM PO JOIN FT_TLE ON (NOME=NOMEIMPIEGTO) GROUP Y NOMEPO, LIVELLO! LIVELLO 2 non si ottiene 13 ma 7: ore lavorate solo dai subordinati di Giulio allo specifico livello Inoltre manca il LIVELLO 0. 24

13 Tabella di Navigazione! È la soluzione logica più semplice, in cui la ricorsione viene precalcolata e codificata nella cosiddetta Tabella di Navigazione 25 SQL-OLP con Tabella di Navigazione! limentazione Tabella di Navigazione: query ricorsiva sul O!! nalisi OLP : query SQL-OLP non ricorsive sul M! SELET NOMEPO, LIVELLO! ORELVORTE=SUM(ORELVORTE)! FROM TELLINVIGZIONE JOIN FT_TLE!ON (NOME=NOMEIMPIEGTO)! GROUP Y NOMEPO, LIVELLO! i sono tutti i LIVELLO ma a LIVELLO 2 si ottiene 7 e NON 13? " Problema simile al calcolo di valori cumulativi 26

14 Valori cumulativi (YT - Year To ate) $ alcolo di valori cumulativi rispetto al tempo Esempio: calcolare le vendite cumulative rispetto alla data T VENITE T VENITE UMULTE 1/1/ /1/ /1/ /1/ /2/ /2/ /2/ /2/ SELET Y.T,! VENITEUMULTE=SUM(X.VENITe)! FROM VENIT X JOIN VENIT Y!ON (X.T<=Y.T)! GROUP Y.T!! Year To ate misure che si riferiscono al periodo compreso tra l'inizio dell'anno e la data attuale! I sistemi OLP implementano varie funzionalità per il calcolo di funzioni YT 27 SQL-OLP con Tabella di Navigazione 1. Si crea una vista con la precedente query RETE VIEW V2 S SELET NOMEPO, LIVELLO! ORELVORTE=SUM(ORELVORTE)! FROM TELLINVIGZIONE JOIN FT_TLE ON (NOME=NOMEIMPIEGTO) GROUP Y NOMEPO, LIVELLO! 2. Quindi si calcola il valore cumulativo rispetto a LIVELLO SELET Y.NOMEPO, Y.LIVELLO, ORELVORTE=SUM(X.ORELVORTE),2! FROM V2 X JOIN V2 Y ON! (X.NOMEPO=Y.NOMEPO N X.LIVELLO<=Y.LIVELLO)! GROUP Y Y.NOMEPO, Y.LIVELLO! 28

15 alcolo della Tabella di Navigazione! alcolo in SQL-99 con interrogazioni ricorsive La tabella di navigazione è nello schema logico del W Il calcolo della tabella di navigazione viene effettuato definendo opportune viste/tabelle nel O e quindi il risultato viene utilizzato per alimentare la tabella di navigazione nel W! alcolo in SQL-92 senza interrogazioni ricorsive In assenza di interrogazioni ricorsive il calcolo della tabella di navigazione deve essere eseguito esplicitamente usando il concetto di minimo punto fisso È possibile implementare l algoritmo naive del minimo punto fisso dato in precedenza alcolo della Tabella di Navigazione: SQL-99! Nel seguito è riportato il calcolo della Tabella di Navigazione corrispondente alla relazione binaria IMPIEGTO! Il passo fondamentale è il calcolo della chiusura transitiva della relazione IMPIEGTO attraverso la seguente interrogazione ricorsiva, nella quale si calcola anche il concetto di livello: 30 WITH PO (NOME, NOMEPO,LIVELLO) S (!!SELET NOME, NOMEPO, 1 S LIVELLO!!!FROM IMPIEGTO!!UNION!!SELET PO.NOME, IMPIEGTO.NOMEPO, LIVELLO + 1!!FROM PO, IMPIEGTO!WHERE PO.NOMEPO = IMPIEGTO.NOME )!!!SELET * FROM PO; 30

16 alcolo della Tabella di Navigazione: SQL-99! La precedente interrogazione può essere eseguita in SQL-SERVER 2005 con la seguente variazione sintattica : Sostituire UNION con UNION LL 31! alla precedente interrogazione è facile ottenere la tabella di Navigazione : 1) Riportare la query nella vista PO_V1 2) L interrogazione ricorsiva restituisce anche tutte le tuple di IMPIEGTO, quindi anche le tuple che hanno NULL come NOMEPO: queste tuple non devono comparire nella tabella di navigazione e quindi vengono eliminate RETE VIEW PO_V2 S!SELET * FROM PO_V1 WHERE NOMEPO is not null! 3) Per definizione l interrogazione ricorsiva restituisce la sola chiusura transitiva di IMPIEGTO: per aggiungere anche la chiusura riflessiva di IMPIEGTO, con un livello pari a 0, si effettua una UNION RETE VIEW PO_V3 S!SELET * FROM PO_V2!UNION!SELET NOME S PO,NOME S NOMEPO, 0 S LIVELLO!FROM IMPIEGTO! 31 alcolo della Tabella di Navigazione:SQL-99 4) Per avere corrispondenza con la tabella di Navigazione occorre effettuare la seguente rinomina dei campi: NOME come FIGLIO e NOMEPO come PRE RETE VIEW PO_V4 S!SELET NOMEPO S PRE, NOME S FIGLIO, LIVELLO!FROM PO_V3! 5) Ultima cosa è l aggiunta della colonna Foglia: FOGLI = TRUE sse non ha figli sse NOME non compare in NOMEPO Per semplicità effettuiamo il calcolo del valore FOGLI con una nuova vista 32 RETE VIEW FOGLI(NOME,FOGLI) S!SELET NOME, 'TRUE' S FOGLI FROM IMPIEGTO!WHERE NOME NOT IN (SELET NOMEPO FROM IMPIEGTO)!UNION!SELET NOME, FLSE' S FOGLI FROM IMPIEGTO!WHERE NOME IN (SELET NOMEPO FROM IMPIEGTO) on il NULL non funziona! % riformulare con NOT EXISTS!! 6) La tabella di navigazione si ottiene con un join tra PO_V4 e FOGLI.! 32

17 on il NULL non funziona! % riformulare con NOT EXISTS! RETE VIEW FOGLI(NOME,FOGLI) S!SELET NOME, 'TRUE' S FOGLI FROM IMPIEGTO X!WHERE NOT EXISTS (SELET * FROM IMPIEGTO Y!!!!WHERE X.NOME=Y.NOMEPO)!UNION!SELET NOME, FLSE' S FOGLI FROM IMPIEGTO!WHERE EXISTS (SELET * FROM IMPIEGTO Y!!!!WHERE X.NOME=Y.NOMEPO)! R x y x NULL R. NOT IN (S. ) % R.! all (S. ) S R S = {y} 33 e quindi y! NULL non è true % y non è nel risultato 33 alcolo della Tabella di Navigazione:SQL

18 Gerarchie ricorsive : conclusioni! I sistemi OLP possono fornire strumenti ad-hoc per la loro gestione Relazioni padre-figlio di nalysis Services! Le interrogazioni ricorsive sono importanti anche in altri contesti: classico esempio in campo gestionale: ill Of Material (istinta ase) nche se applicazioni quali gli ERP consentono generalmente una completa gestione del ill Of Material, per la soluzione di problemi specifici può essere utile formulare interrogazioni ricorsive! ttenzione ai loop: 35 35

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

Introduzione. Ricorsione in SQL-99. Esempio. Idea di base. Esempio (continua) SQL-99 - comando WITH

Introduzione. Ricorsione in SQL-99. Esempio. Idea di base. Esempio (continua) SQL-99 - comando WITH icorsione in SQL99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione che ritrova

Dettagli

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate Select La sintassi di select cui siamo arrivati dopo le estensioni viste è quindi: SelectSQL ::= select ListaAttributiOEspressioni from ListaTabelle [ where CondizioniSemplici ] [ group by ListaAttributiDiRaggruppamento]

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

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

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

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

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

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

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

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

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

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

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

Interrogazioni complesse. SQL avanzato 1

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

Dettagli

INTRODUZIONE AL 2 TEST IN ITINERE. a.a

INTRODUZIONE AL 2 TEST IN ITINERE. a.a INTRODUZIONE AL 2 TEST IN ITINERE a.a. 2014-15 Modalità d esame Tipologia degli studenti: A(ll). Non Sufficienti al Primo Test in Itinere (su tutto il programma sino ad SQL base). Si presentano su tutto

Dettagli

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

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

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

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

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

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

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

Basi di Dati: Corso di laboratorio

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

Dettagli

SQL - Structured Query Language

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

Dettagli

Corso di. Basi di Dati I. 8. Esercitazioni in SQL: Interrogazioni nidificate

Corso di. Basi di Dati I. 8. Esercitazioni in SQL: Interrogazioni nidificate Corso di Basi di Dati 8. Esercitazioni in SQL: Interrogazioni nidificate A.A. 2016 2017 Interrogazioni nidificate Come abbiamo visto, in una query SQL il comando where è seguito da un argomento che può

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

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

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

Dettagli

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

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

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

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Basi di dati II, primo modulo Tecnologia delle basi di dati 24 settembre 2010 Compito A

Basi di dati II, primo modulo Tecnologia delle basi di dati 24 settembre 2010 Compito A Basi di dati II, primo modulo Tecnologia delle basi di dati 24 settembre 2010 Compito A Rispondere alle prime tre domande su questo foglio e alla quarta sul foglio separato. Tempo a disposizione: un ora

Dettagli

Il linguaggio SQL: le viste

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

Dettagli

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

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

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 27 Sommario 1 Join di Tabelle 2 3 2 / 27 Lo Statement JOIN Join espliciti di tabelle nella clausola FROM In SQL e possibile scrivere

Dettagli

Interrogazioni (Query) Esempi. Esempi. Esempi

Interrogazioni (Query) Esempi. Esempi. Esempi Interrogazioni (Query Un interrogazione è una funzione E(r che applicata ad istanze r di una base di dati produce una relazione su un dato insieme di attributi X. Le interrogazioni su uno schema di base

Dettagli

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti Microsoft Access Nozioni di base Contatti: Dott.ssa Silvia Bonfanti silvia.bonfanti@unibg.it Introduzione In questa lezione vedremo lo strumento Microsoft Access ed impareremo come realizzare con esso

Dettagli

Interpretazione delle query nidificate

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

Dettagli

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

Operazioni su insiemi: unione, intersezione e differenza

Operazioni su insiemi: unione, intersezione e differenza Operazioni su insiemi: unione, intersezione e differenza Unione La select da sola non permette di fare unioni; serve un costrutto esplicito: select union [all] select... i duplicati vengono eliminati (a

Dettagli

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti: Join Per correlare attributi con nome diverso (se cioè X 1 X 2 è vuoto) è possibile fare il theta-join, definito come un prodotto cartesiano seguito da una selezione r 1 F r 2 = F (r 1 r 2 ) dove F è la

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

Tabelle esempio: Impiegato/Dipartimento

Tabelle esempio: Impiegato/Dipartimento Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione

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

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello

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

SQL: RAGGRUPPAMENTI, QUANTIFICAZIONE, METODO. Patrizio Dazzi a.a

SQL: RAGGRUPPAMENTI, QUANTIFICAZIONE, METODO. Patrizio Dazzi a.a SQL: RAGGRUPPAMENTI, QUANTIFICAZIONE, METODO Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONI Prove in itinere Primo compitino il 6 novembre Secondo compitino il 19 dicembre Homeworks Poche consegne del II

Dettagli

La gestione delle interrogazioni

La gestione delle interrogazioni La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor

Dettagli

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

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

Dettagli

VISTE. 19/11/2015 Concetti Avanzati - SQL 71

VISTE. 19/11/2015 Concetti Avanzati - SQL 71 VISTE 19/11/2015 Concetti Avanzati - SQL 71 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni dei dati contenuti nelle tabelle fisiche

Dettagli

Lezione 5. Algebra relazionale

Lezione 5. Algebra relazionale Lezione 5 Algebra relazionale Pag.1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale

Dettagli

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r = E 2 (r per ogni istanza r di R (equivalenza dipendente dallo schema E1 E2 se E1 R E2 (equivalenza assoluta per ogni schema R L

Dettagli

Interrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle

Interrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle Interrogazioni su più tabelle Se si vogliono estrarre informazioni da più tabelle, queste devono apparire come argomento della clausola from. Se si deve formulare un join, è possibile farlo in modo esplicito

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

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

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

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

Dettagli

SQL Server Business Intelligence Development Studio

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

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 0 - Code con priorità e insiemi disgiunti This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,

Dettagli

Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F;

Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F; 54 Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F; dove R 1, R 2,..., R k è una lista di nomi distinti di relazioni R i1.c 1, R

Dettagli

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

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

Dettagli

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

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

SQL: "storia" 31/05/2006 2

SQL: storia 31/05/2006 2 SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli

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

Operatori aggregati: COUNT

Operatori aggregati: COUNT Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato

Dettagli

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

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

Dettagli

Interrogazioni con Raggruppamenti

Interrogazioni con Raggruppamenti Basi di Dati SQL-92 Concetti Avanzati SQL-92 >> Sommario Concetti Avanzati Raggruppamenti Clausole GROUP BY e HAVING Forma Generale della SELECT Nidificazione Uso nel DML e DDL Nidificazione, Viste e Potere

Dettagli

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E)) Equivalenza di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r = E 2 (r per ogni istanza r di R (equivalenza dipendente dallo schema E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza

Dettagli

Grammatiche e Linguaggi Liberi da Contesto

Grammatiche e Linguaggi Liberi da Contesto Grammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi più grandi di linguaggi. I Linguaggi Liberi da Contesto (CFL) sono stati usati

Dettagli

Operazioni sui dati. Interrogazioni con operatori aggregati. Capitolo 4

Operazioni sui dati. Interrogazioni con operatori aggregati. Capitolo 4 Operazioni sui dati Interrogazioni con operatori aggregati Ordinamento del risultato Nome e reddito delle persone con meno di trenta anni in ordine alfabetico select nome, reddito from persone where eta

Dettagli

Fondamenti di Teoria delle Basi di Dati

Fondamenti di Teoria delle Basi di Dati Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 3: Algebra relazionale Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation

Dettagli

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici. Linguaggi per Basi di Dati - 1 Università degli Studi di Trieste Corso di Laurea in Informatica D. Gubiani marzo 2008 Distinguiamo due classi di linguaggi per basi di dati : - linguaggi di definizione,

Dettagli

Linguaggio SQL: fondamenti D B M G

Linguaggio SQL: fondamenti D B M G Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Cenni di algebra relazionale Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Algebra relazionale

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 28/06/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

ESAME CFU (C) VOTO (AVG) SOST REG

ESAME CFU (C) VOTO (AVG) SOST REG 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 : http://www.dbgroup.unimo.it/sia/20110520

Dettagli

Progettazione concettuale usando il modello Entità-Relazione (ER)

Progettazione concettuale usando il modello Entità-Relazione (ER) Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità

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

Operazioni. Lezione 8. Operazioni Relazionali. Operazioni insiemistiche Intersezione: Operazioni insiemistiche Unione:

Operazioni. Lezione 8. Operazioni Relazionali. Operazioni insiemistiche Intersezione: Operazioni insiemistiche Unione: Operazioni Lezione 8 Operazioni Relazionali Le diverse operazioni vengono eseguite sulle istanze non sulla struttura della tabella Il risultato dell operazione sono un insieme di istanze che soddisfano

Dettagli

Microsoft Access. Relazioni e query SQL. Domenico Fabio Savo

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

Dettagli

Esempi di Query con Aggregazioni in SQL/1

Esempi di Query con Aggregazioni in SQL/1 Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Esempi di Query con Aggregazioni in SQL/1 Credits to: Prof. P. Ciaccia UniBO DB di riferimento per gli esempi AziendaSW Imp CodImp

Dettagli

Esercitazione 7 Correzione della prova di autovalutazione

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

Dettagli

Linguaggi per basi di dati e SQL

Linguaggi per basi di dati e SQL Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Operatori aggregati: COUNT

Operatori aggregati: COUNT Operatori aggregati: COUNT Il numero di figli di Franco select count(*) as NumFigliDiFranco from Paternita where Padre = 'Franco' l operatore aggregato (count) viene applicato al risultato dell interrogazione:

Dettagli

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Operatori aggregati. Gli operatori di aggregazione NON sono rappresentabili in Algebra Relazionale. conteggio, minimo, massimo, media, somma

Operatori aggregati. Gli operatori di aggregazione NON sono rappresentabili in Algebra Relazionale. conteggio, minimo, massimo, media, somma Aggregazione dati Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi di ennuple SQL-2 prevede 5 possibili operatori di aggregamento:

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi

Dettagli

Algebra con valori nulli

Algebra con valori nulli Algebra con valori nulli Gli operatori logici vengono estesi con una logica a 3 valori: VERO, FALSO, SCONOSCIUTO (U) NOT AND V U F OR V U F F V V V U F V V V V U U U U U F U V U U V F F F F F F V U F Viste

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

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi T Versione elettronica: 04.4.SQL.subquery.pdf DB di riferimento per gli esempi Imp Sedi CodImp E001 E002 E003 Nome Rossi Verdi Bianchi Sede S02 Ruolo

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : SQL (4) GROUPING Atzeni, cap. 4.3.4 DBMS: SQL (4) GROUPING 26 nov 2010 Dia 2 Gli operatori

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

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi T Versione elettronica: 04.4.SQL.subquery.pdf DB di riferimento per gli esempi Imp CodImp Nome Sede Ruolo Stipendio E001 Rossi S01 Analista 2000 E002

Dettagli

Basi di dati I 10 settembre 2019 Tempo a disposizione: un ora e 30 minuti. Possibili soluzioni. Cognome: Nome: Matricola:

Basi di dati I 10 settembre 2019 Tempo a disposizione: un ora e 30 minuti. Possibili soluzioni. Cognome: Nome: Matricola: Tempo a disposizione: un ora e 30 minuti. Possibili soluzioni Cognome: Nome: Matricola: Domanda 1 (20%) Considerare la seguente base di dati, che fa riferimento alle pratiche gestite da una assicurazione

Dettagli