Il linguaggio SQL: viste e tabelle derivate

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il linguaggio SQL: viste e tabelle derivate"

Transcript

1 Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi T Versione elettronica: 04.5.SQL.viste.pdf D di riferimento per gli esempi Imp Sedi CodImp Nome Rossi Verdi ianchi Sede S0 S0 S0 Ruolo nalista Sistemista Programmatore Stipendio Sede S0 S0 S03 Responsabile iondi Mori Fulvi Citta Milano ologna Milano 004 Gialli S03 Programmatore Neri Grigi Violetti ranci S0 S0 S0 S0 nalista Sistemista Programmatore Programmatore Prog CodProg P0 P0 Citta Milano ologna P0 ologna SQL: viste Sistemi Informativi T

2 Definizione di viste Mediante l istruzione CRT VIW si definisce una vista, ovvero una tabella virtuale Le tuple della vista sono il risultato di una query che viene valutata dinamicamente ogni volta che si fa riferimento alla vista ProgSedi CRT VIW ProgSedi(CodProg,CodSede) S SLCT P.CodProg,S.Sede FROM Prog P, Sedi S WHR P.Citta = S.Citta SLCT * FROM ProgSedi WHR CodProg = P0 CodProg P0 P0 P0 CodSede SQL: viste Sistemi Informativi T 3 S0 S03 S0 CodProg P0 P0 P0 P0 CodSede S0 S03 S0 S0 Uso delle viste Le viste possono essere create a vari scopi, tra i quali si ricordano i seguenti: Permettere agli utenti di avere una visione personalizzata del D, e che in parte astragga dalla struttura logica del D stesso Far fronte a modifiche dello schema logico che comporterebbero una ricompilazione dei programmi applicativi Semplificare la scrittura di query complesse Inoltre le viste possono essere usate come meccanismo per il controllo degli accessi, fornendo ad ogni classe di utenti gli opportuni privilegi Si noti che nella definizione di una vista si possono referenziare anche altre viste SQL: viste Sistemi Informativi T 4

3 Indipendenza logica tramite VIW titolo esemplificativo si consideri un D che contiene la tabella samisit(matr,cognome,nome,dataprova,voto) Per evitare di ripetere i dati anagrafici, si decide di modificare lo schema del D sostituendo alla tabella samisit le due seguenti: StudentiSIT(Matr,Cognome,Nome) ProveSIT(Matr,DataProva,Voto) È possibile ripristinare la visione originale in questo modo: CRT VIW samisit(matr,cognome,nome,dataprova,voto) S SLCT S.*,P.DataProva,P.Voto FROM StudentiSIT S, ProveSIT P WHR S.Matr = P.Matr SQL: viste Sistemi Informativi T 5 Query complesse che usano VIW () Un classico esempio di uso delle viste si ha nella scrittura di query di raggruppamento in cui si vogliono confrontare i risultati della funzione aggregata La sede che ha il massimo numero di impiegati La soluzione senza viste è: SLCT I.Sede FROM Imp I GROUP Y I.Sede HVING COUNT(*) >= LL (SLCT COUNT(*) FROM Imp I GROUP Y I.Sede) SQL: viste Sistemi Informativi T 6 3

4 Query complesse che usano VIW () La soluzione con viste è: CRT VIW NumImp(Sede,Nimp) S SLCT Sede, COUNT(*) FROM Imp GROUP Y Sede SLCT Sede FROM NumImp WHR Nimp = (SLCT MX(NImp) FROM NumImp) NumImp Sede NImp S0 4 S0 3 S03 che permette di trovare il MX dei COUNT(*), cosa che, si ricorda, non si può fare direttamente scrivendo MX(COUNT(*)) SQL: viste Sistemi Informativi T 7 Query complesse che usano VIW (3) Con le viste èinoltre possibile risolvere query che richiedono piu passi di raggruppamento, ad es: Per ogni valore (arrotondato) di stipendio medio, numero delle sedi che pagano tale stipendio Occorre aggregare prima per sede, poi per valore di stipendio medio CRT VIW StipSedi(Sede,vgStip) S SLCT Sede, VG(Stipendio) FROM Imp GROUP Y Sede StipSedi Sede vgstip S0 75 S0 733 S SLCT vgstip, COUNT(*) S NumSedi vgstip NumSedi FROM StipSedi 75 GROUP Y vgstip SQL: viste Sistemi Informativi T 8 4

5 ggiornamento di viste Le viste possono essere utilizzate per le interrogazioni come se fossero tabelle del D, ma per le operazioni di aggiornamento ci sono dei limiti CRT VIW NumImp(Sede,NImp) S SLCT Sede,COUNT(*) FROM Imp GROUP Y Sede NumImp Sede NImp S0 4 S0 3 S03 UPDT NumImp ST NImp = NImp + WHR Sede = S03 Cosa significa? Non si può fare! SQL: viste Sistemi Informativi T 9 ggiornabilità di viste () Una vista èdi fatto una funzione che calcola un risultato y a partire da un istanza di database r, y = V(r) L aggiornamento di una vista, che trasforma y in y, può essere eseguito solo se è univocamente definita la nuova istanza r tale che y = V(r ), e questo corrisponde a dire che la vista è invertibile, ossia r = V (y ) Data la complessità del problema, di fatto ogni DMS pone dei limiti su quelle che sono le viste aggiornabili Le più comuni restrizioni riguardano la non aggiornabilità di viste in cui il blocco più esterno della query di definizione contiene: GROUP Y Funzioni aggregate DISTINCT join (espliciti o impliciti) SQL: viste Sistemi Informativi T 0 5

6 ggiornabilità di viste () La precisazione che è il blocco più esterno della query di definizione che non deve contenere, ad es., dei join ha importanti conseguenze. d esempio, la seguente vista non è aggiornabile CRT VIW ImpO(CodImp,Nome,Sede,Ruolo,Stipendio) S SLCT I.* FROM Imp I JOIN Sedi S ON (I.Sede = S.Sede) WHR S.Citta = ologna mentre lo èquesta, di fatto equivalente alla prima CRT VIW ImpO(CodImp,Nome,Sede,Ruolo,Stipendio) S SLCT I.* FROM Imp I WHR I.Sede IN (SLCT S.Sede FROM Sedi S WHR S.Citta = ologna ) SQL: viste Sistemi Informativi T Viste con CHCK OPTION () Per le viste aggiornabili si presenta un nuovo problema. Si consideri il seguente inserimento nella vista ImpO INSRT INTO ImpO(CodImp,Nome,Sede,Ruolo,Stipendio) VLUS ( 009, zzurri, S03, nalista,800) in cui il valore di Sede ( S03 ) non rispetta la specifica della vista. Ciò comporta che una successiva query su ImpO non restituirebbe la tupla appena inserita (!?) Per evitare situazioni di questo tipo, all atto della creazione di una vista si può specificare la clausola WITH CHCK OPTION, che garantisce che ogni tupla inserita nella vista sia anche restituita dalla vista stessa SQL: viste Sistemi Informativi T 6

7 Viste con CHCK OPTION () CRT VIW ImpO(CodImp,Nome,Sede,Ruolo,Stipendio) S SLCT I.* FROM Imp I WHR I.Sede IN (SLCT S.Sede FROM Sedi S WHR S.Citta = ologna ) WITH CHCK OPTION In questo modo l inserimento INSRT INTO ImpO(CodImp,Nome,Sede,Ruolo,Stipendio) VLUS ( 009, zzurri, S03, nalista,800) viene impedito SQL: viste Sistemi Informativi T 3 Tipi di CHCK OPTION () Si presenta spesso il caso in cui una vista V sia definita in termini di un altra vista V, magari a sua volta definita in termini di altre viste, ecc. Se si crea V specificando la clausola WITH CHCK OPTION, il DMS verifica che la nuova tupla t inserita soddisfi sia la definizione di V che quella di V (e di tutte le altre eventuali viste da cui V dipende), indipendentemente dal fatto che V sia stata a sua volta definita WITH CHCK OPTION Questo comportamento di default èequivalente a definire V WITH CSCDD CHCK OPTION Lo si può alterare definendo V WITH LOCL CHCK OPTION Ora il DMS verifica solo che t soddisfi la specifica di V e quelle di tutte e sole le viste da cui V dipende per cui è stata specificata la clausola WITH CHCK OPTION SQL: viste Sistemi Informativi T 4 7

8 Tipi di CHCK OPTION () Si consideri il seguente grafo di dipendenze tra views e tables: V3 V4 Vista Definita come V WITH CHCK OPTION V V V V3 WITH LOCL CHCK OPTION R V4 WITH CHCK OPTION La tabella riassume le definizioni di quali viste vengono verificate quando si inserisce una tupla in una data vista INSRT INTO V V V3 V4 Si controllano V,V3 V,V,V4 SQL: viste Sistemi Informativi T 5 V Table expressions () Tra le caratteristiche più interessanti di SQL vi èla possibilità di usare all interno della clausola FROM una subquery che definisce dinamicamente una tabella derivata, e che qui viene anche detta table expression Per ogni sede, lo stipendio massimo e quanti impiegati lo percepiscono SLCT SM.Sede,SM.MaxStip,COUNT(*) S NumImpWMaxStip FROM Imp I,(SLCT Sede, MX(Stipendio) FROM Imp GROUP Y Sede) S SM(Sede,MaxStip) WHR I.Sede = SM.Sede SM ND I.Stipendio = SM.MaxStip Sede MaxStip GROUP Y SM.Sede,SM.MaxStip S0 000 S0 500 S SQL: viste Sistemi Informativi T 6 8

9 Table expressions () nche le table expressions possono essere usate per query che richiedono diversi passi di aggregazione Per ogni valore (arrotondato) di stipendio medio, numero delle sedi che pagano tale stipendio SLCT vgstip, COUNT(*) S NumSedi FROM (SLCT Sede, VG(Stipendio) FROM Imp GROUP Y Sede) S StipSedi(Sede,vgStip) GROUP Y vgstip SQL: viste Sistemi Informativi T 7 Table expressions correlate () Una table expression può essere correlata a un altra tabella che la precede nella clausola FROM In D è necessario utilizzare la parola riservata TL o LTRL Per ogni sede, la somma degli stipendi pagati agli analisti SLCT S.Sede,Stip.TotStip FROM Sedi S, TL(SLCT SUM(Stipendio) FROM Imp I WHR I.Sede = S.Sede ND I.Ruolo = nalista ) S Stip(TotStip) Si noti che sedi senza analisti compaiono in output con valore nullo per TotStip. Usando il GROUP Y lo stesso risultato si potrebbe ottenere con un LFT OUTR JOIN, ma occorre fare attenzione SQL: viste Sistemi Informativi T 8 9

10 Table expressions correlate () Per ogni sede, il numero di analisti e la somma degli stipendi ad essi pagati SLCT S.Sede,Stip.Numn,Stip.TotStip FROM Sedi S, TL(SLCT COUNT(*),SUM(Stipendio) FROM Imp I WHR I.Sede = S.Sede ND I.Ruolo = nalista ) S Stip(Numn,TotStip) Per sedi senza analisti Numn vale 0 e TotStip è nullo. Viceversa SLCT S.Sede,COUNT(*) S Numn,SUM(Stipendio) S TotStip FROM Sedi S LFT OUTR JOIN Imp I ON (I.Sede = S.Sede) ND (I.Ruolo = nalista ) GROUP Y S.Sede ha per le sedi senza analisti TotStip nullo, ma Numn pari a! (in quanto per ognuna di tali sedi c è una tupla nel risultato dell outer join). È quindi necessario usare, ad esempio, COUNT(CodImp) SQL: viste Sistemi Informativi T 9 Limiti delle table expressions Si consideri la query La sede in cui la somma degli stipendi è massima La soluzione con table expressions è SLCT Sede FROM (SLCT Sede,SUM(Stipendio) S TotStip FROM Imp GROUP Y Sede) S SediStip WHR TotStip = (SLCT MX(TotStip) FROM (SLCT Sede,SUM(Stipendio) S TotStip FROM Imp GROUP Y Sede) S SediStip) enché la query sia corretta, non viene sfruttato il fatto che le due table expressions sono identiche, il che porta a una valutazione inefficiente e a una formulazione poco leggibile SQL: viste Sistemi Informativi T 0 0

11 Common table expressions L idea alla base delle common table expressions è definire una vista temporanea che può essere usata in una query come se fosse a tutti gli effetti una VIW WITH SediStip(Sede,TotStip) S (SLCT Sede,SUM(Stipendio) FROM Imp GROUP Y Sede) SLCT Sede FROM SediStip WHR TotStip = (SLCT MX(TotStip) FROM SediStip) Nel caso generale la clausola WITH supporta la definizione di più c.t.e.: WITH CT(...) S (...), CT(...) S (...)... SQL: viste Sistemi Informativi T WITH e interrogazioni ricorsive () Si consideri la tabella Genitori(Figlio,Genitore) e la query Trova tutti gli antenati (genitori, nonni, bisnonni, ) di nna La query è ricorsiva e pertanto non è esprimibile in algebra relazionale, in quanto richiede un numero di (self )join non noto a priori La formulazione mediante common table expressions definisce la vista temporanea (ricorsiva) ntenati(persona,vo) facendo l unione di: una subquery base non ricorsiva (che inizializza ntenati con le tuple di Genitori) una subquery ricorsiva che ad ogni iterazione aggiunge ad ntenati le tuple che risultano dal join tra Genitori e ntenati Genitori ntenati ntenati ntenati Figlio nna Luca Luca Giorgio Genitore Luca Maria Giorgio Persona nna Luca Luca vo Luca Maria Giorgio Persona vo + nna Maria + nna Lucia Lucia Giorgio Lucia SQL: viste Sistemi Informativi T Luca Giorgio Persona nna vo Lucia

12 WITH e interrogazioni ricorsive () WITH ntenati(persona,vo) S ((SLCT Figlio, Genitore -- subquery base FROM Genitori) UNION LL -- sempre UNION LL! (SLCT G.Figlio,.vo -- subquery ricorsiva FROM Genitori G, ntenati WHR G.Genitore =.Persona)) SLCT vo FROM ntenati WHR Persona = nna SQL: viste Sistemi Informativi T 3 WITH e interrogazioni ricorsive (3) Per capire meglio come funziona la valutazione di una query ricorsiva, e come ci si ferma, si tenga presente che ad ogni iterazione il DMS aggiunge ad ntenati le tuple che risultano dal join tra Genitori e le sole tuple aggiunte ad ntenati al passo precedente Genitori ntenati Figlio Genitore subquery base Persona vo nna Luca nna Luca Luca Maria subquery ricorsiva Luca Maria Luca Giorgio Luca Giorgio Giorgio Lucia Giorgio Lucia nna Maria nna Giorgio Luca Lucia nna Lucia SQL: viste Sistemi Informativi T 4

13 Tipi notevoli di interrogazioni ricorsive Il caso precedentemente visto corrisponde a un D aciclico in cui prima o poi l esecuzione è garantita terminare Inoltre non viene calcolata nessuna informazione aggiuntiva per i percorsi trovati Percorso: intuitivamente è la sequenza di tuple di cui si fa il join e che generano una tupla nel risultato finale (nell esempio visto corrisponde a una linea genealogica specifica) Vediamo nel seguito due casi notevoli Query ricorsive con informazione sui percorsi (lunghezza, costo, ecc.) Condizione di stop per query ricorsive su D ciclici SQL: viste Sistemi Informativi T 5 Informazione sui percorsi () Il caso più semplice prevede l aggiunta di un informazione sulla lunghezza (distanza, livello, ecc.) del percorso Nel caso già visto l output sarebbe: Genitori Figlio Genitore nna Luca Luca Maria Luca Giorgio Giorgio Lucia ntenati Persona vo nna Luca Luca Maria Luca Giorgio Giorgio Lucia nna Maria nna Giorgio Luca Lucia nna Lucia Lungh 3 SQL: viste Sistemi Informativi T 6 3

14 Informazione sui percorsi () La lunghezza parte da e si incrementa di a ogni passo, quindi: WITH ntenati(persona,vo,lungh) S ((SLCT Figlio,Genitore, -- caso base: Lungh = FROM Genitori) UNION LL (SLCT G.Figlio,.vo,.Lungh+ FROM Genitori G, ntenati WHR G.Genitore =.Persona)) SLCT * Persona vo Lungh FROM ntenati nna Luca WHR Persona = nna nna Maria nna Giorgio nna Lucia 3 SQL: viste Sistemi Informativi T 7 Informazione sui percorsi (3) In alcuni casi l informazione sui percorsi èun costo, oppure qualche altra grandezza cumulativa sempio: nella relazione PRTI, per ogni parte si dice quante unità di altre parti servono per costruirla/assemblarla SI vuole sapere quante unità di una parte servono complessivamente per costruire un altra parte Nell esempio: = *5 + 3*4 Parti Parte Subparte Qta Composto Componente QtaTot P P P P P P3 3 P P3 3 P 5 P 5 P3 4 P3 4 P SQL: viste Sistemi Informativi T 8 4

15 Informazione sui percorsi (4) In questi casi la soluzione prevede: l uso della ricorsione per calcolare l informazione di ogni singolo percorso P P : *5=0; P P3 : 3*4= l aggregazione delle informazione dei singoli percorsi nella query che usa la vista ricorsiva Parti Percorsi Parte Subparte Qta Composto Componente Qty P P P P P P3 3 P P3 3 P 5 P 5 P3 4 P3 4 P 0 P SQL: viste Sistemi Informativi T 9 Informazione sui percorsi (5) d ogni passo si moltiplica per quello che si aggiunge al percorso: WITH Percorsi(Composto,Componente,Qty) S ((SLCT Parte,Subparte,Qta FROM Parti) UNION LL (SLCT H.Composto,P.Subparte,H.Qty*P.Qta FROM Parti P, Percorsi H WHR H.Componente = P.Parte)) -- SLCT Composto,Componente,SUM(Qty) S QtaTot FROM Percorsi GROUP Y Composto,Componente SQL: viste Sistemi Informativi T 30 5

16 Database ciclici Nel caso di D ciclici occorre prestare particolare attenzione infatti necessario prevedere una condizione di stop, altrimenti il rischio èla non terminazione! Non facendo uso di altri strumenti non presentati nel corso, occorre inserire nella subquery ricorsiva un predicato che, prima o poi, sia falso per tutte le nuove tuple che si andrebbero ad aggiungere alla vista Casi tipici: limitazione sulla lunghezza massima dei percorsi limitazione sul costo SQL: viste Sistemi Informativi T 3 Limitazione sulla lunghezza dei percorsi () Il grafo in figura contiene un ciclo (percorso di lunghezza infinita): Fissando un limite sulla lunghezza dei percorsi si generano solo percorsi di lunghezza finita, quindi l esecuzione prima o poi termina Per non perdere risultati, il limite va scelto in modo da non escludere percorsi interessanti Siti D C From C To D SQL: viste Sistemi Informativi T 3 6

17 Limitazione sulla lunghezza dei percorsi () Siti Percorsi Posto il limite ad es. a 3 si ha: WITH Percorsi(Da,,Lungh) S ((SLCT From,To, FROM Siti) UNION LL (SLCT P.Da,S.To,P.Lungh+ FROM Siti S, Percorsi P WHR P. = S.From ND P.Da <> S.To ND P.Lungh+ <= 3)) SLCT * FROM Percorsi D From C To D C Da C C D D D Lungh 3 SQL: viste Sistemi Informativi T 33 Limitazione sulla lunghezza dei percorsi (3) La condizione P.Da <> S.To serve ad evitare di inserire informazione inutile nel risultato enché in alcuni casi particolari possa essere usata anche come condizione di terminazione, nel caso generale non funziona! Percorsi Da Lungh Siti From To C C C C C C 3 C SQL: viste Sistemi Informativi T 34 7

18 Limitazione sul costo In maniera simile si ragiona se si vuole imporre un limite al costo dei percorsi D Paesi WITH Percorsi(Da,,TotKm) From To Km S ((SLCT From,To,Km FROM Paesi) C D 7 UNION LL 5 (SLCT P.Da,S.To,P.TotKm+S.Km C 4 FROM Paesi S, Percorsi P 0 WHR P. = S.From ND P.Da <> S.To Percorsi ND P.TotKm+S.Km <= 7)) Da Lungh SLCT * FROM Percorsi D In generale ci possono essere più percorsi tra 6 siti e va considerato quello a costo minore C 6 SQL: viste Sistemi Informativi T 7 35 Riassumiamo: Le viste sono tabelle virtuali, interrogabili come le altre, ma soggette a limiti per ciò che riguarda gli aggiornamenti Una table expression èuna subquery che definisce una tabella derivata utilizzabile nella clausola FROM Una common table expression è una vista temporanea che può essere usata in una query come se fosse a tutti gli effetti una VIW Mediante common table expression è anche possibile formulare interrogazioni ricorsive, definendo viste temporanee ricorsive come unione del risultato di una subquery base e una subquery ricorsiva SQL: viste Sistemi Informativi T 36 8

Il linguaggio SQL: viste e tabelle derivate. DB di riferimento per gli esempi

Il linguaggio SQL: viste e tabelle derivate. DB di riferimento per gli esempi Il linguaggio SQL: viste e tabelle derivate Dario Maio http://bias.csr.unibo.it/maio/ dmaio@deis.unibo.it 1 DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi T Versione elettronica: 04.5.SQL.viste.pdf D di riferimento per gli esempi Imp CodImp Nome Sede Ruolo Stipendio E001 Rossi S01 Analista 2000

Dettagli

Il linguaggio SQL: raggruppamenti

Il linguaggio SQL: raggruppamenti Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono

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

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

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

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

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

Dettagli

Il linguaggio SQL: viste e tabelle derivate

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

Dettagli

Il linguaggio SQL: raggruppamenti

Il linguaggio SQL: raggruppamenti Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente

Dettagli

Il linguaggio SQL: raggruppamenti

Il linguaggio SQL: raggruppamenti Il linguaggio SQL: raggruppamenti Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLb-gruppi.pdf Sistemi Informativi L-A Informazioni di sintesi

Dettagli

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 DB2 Data Management Software Il linguaggio SQL Query Innestate Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute

Dettagli

Progettazione di Sistemi Informatici

Progettazione di Sistemi Informatici Progettazione di Sistemi Informatici Raggruppamenti Domenico Diacono Corso ADM Gennaio 2008 A che punto siamo Finora abbiamo estratto dal DB informazioni relative a singole ennuple, eventualmente ottenute

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

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

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

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

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

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

Progettazione di Sistemi Informatici

Progettazione di Sistemi Informatici Progettazione di Sistemi Informatici OUTER JOIN e SUBQUERY Domenico Diacono Corso ADM Gennaio 2008 A che punto siamo Abbiamo visto la sintassi delle principali query SQL e delle istruzioni per l inserimento

Dettagli

Corso di Basi di Dati

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

Dettagli

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

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

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

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

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

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

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

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

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

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

Dettagli

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

8 SQL : Check, Asserzioni,Viste

8 SQL : Check, Asserzioni,Viste Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2011/2012 8 SQL : Check, Asserzioni,Viste

Dettagli

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

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

Dettagli

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

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

Caratteristiche dei linguaggi per Database

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 2-Iterazione 1 Prerequisiti Salto condizionato Salto incondizionato Espressione logica 2 1 Introduzione In alcuni casi si presenta la necessità di eseguire un ciclo, ossia

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

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

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

Dettagli

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

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

<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

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

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

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati

Dettagli

Algebra relazionale (versione formale )

Algebra relazionale (versione formale ) Algebra relazionale (versione formale ) algebra relazionale (2) Selezione L operatore di selezione, σ, permette di selezionare un sottoinsieme delle tuple di una relazione, applicando a ciascuna di esse

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

D B M G 2. Linguaggio SQL: costrutti avanzati. SQL per le applicazioni

D B M G 2. Linguaggio SQL: costrutti avanzati. SQL per le applicazioni Linguaggio SQL: costrutti avanzati DB M B G Introduzione Concetto di cursore Aggiornabilità SQL statico e dinamico Embedded SQL Call Level Interface (CLI) Stored Procedure Confronto tra le alternative

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

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

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

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

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

Dettagli

SQL per le applicazioni. Basi di dati. Elena Baralis. Pag Politecnico di Torino 1 D B M G2 D B M G4 D B M G5 D B M G6. SQL per le applicazioni

SQL per le applicazioni. Basi di dati. Elena Baralis. Pag Politecnico di Torino 1 D B M G2 D B M G4 D B M G5 D B M G6. SQL per le applicazioni Linguaggio SQL: costrutti avanzati Introduzione Concetto di cursore Aggiornabilità SQL statico e dinamico Embedded SQL Call Level Interface (CLI) Stored Procedure Confronto tra le alternative DB M B G

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

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Esercitazione 4 SQL: cataloghi e viste

Esercitazione 4 SQL: cataloghi e viste Esercitazione 4 SQL: cataloghi e viste Sistemi Informativi T Versione elettronica: L04.CatView.pdf Cataloghi di sistema Sono insieme di tables e views che descrivono la struttura logica e fisica degli

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

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

SQL - Valori nulli. Linguaggio SQL

SQL - Valori nulli. Linguaggio SQL SQL - Valori nulli SQL usa una logica a tre valori per valutare il valore di verità di una condizione di ricerca (clausola where) True (T), False (F), Unknown (?) un predicato semplice valutato su un attributo

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: le funzioni di aggregazione

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

Dettagli

Manuale SQL. Manuale SQL - 1 -

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

Dettagli

Esercitazione 3 SQL 2

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

Dettagli

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

Istruzioni di controllo: SEQUENZA

Istruzioni di controllo: SEQUENZA Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato

Dettagli

PRODOTTO CARTESIANO Caso Generale

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

Dettagli

Proiezione. Proiezione. Join. Operatore monadico Produce un risultato che

Proiezione. Proiezione. Join. Operatore monadico Produce un risultato che Proiezione Dati una relazione r(x) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è l insieme di tuple su Y ottenute dalle tuple di r considerando solo i valori

Dettagli

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB Informatica II Basi di Dati (07/08) Parte 2 Gianluca Torta Dipartimento di Informatica dell Università di Torino torta@di.unito.it, 0116706782 4 Accesso ai dati di un DB SQL Accesso ai dati di un DB Aggiornamento

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

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

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

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

Select From Where...

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

Dettagli

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

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Algebra.pdf Sistemi Informativi L-A Linguaggi di manipolazione (DML)

Dettagli

Esame di Basi di Dati

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

Dettagli

Laboratorio di Basi di Dati e Web

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

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 17 Febbraio 2004 NOME: COGNOME: MATRICOLA: Cercare di risolvere gli esercizi sul foglio del testo. Esercizio Punti previsti 1 9 2 12 3 9 3 3 Totale 33 Punti assegnati Esercizio

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

Gerarchie ed Interrogazioni Ricorsive

Gerarchie ed Interrogazioni Ricorsive 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

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi T Versione elettronica: 03.Algebra.pdf Linguaggi di manipolazione (DML) per DB Un linguaggio di manipolazione, o DML, permette di interrogare e modificare istanze

Dettagli

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata Domini Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata numeric [(Precisione [,Scala])] decimal [(Precisione [,Scala])] integer smallint Precisione specifica il numero di

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Algebra.pdf Sistemi Informativi L-A Linguaggi di manipolazione (DML)

Dettagli

Interrogazioni in SQL SQL1 1

Interrogazioni in SQL SQL1 1 Interrogazioni in SQL SQL1 1 Dichiaratività di SQL E un linguaggio di IV generazione: in SQL l'utente specifica QUALE informazione è di suo interesse ma non COME estrarla dai dati il sistema costruisce

Dettagli

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe SQL SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe Operazioni di aggiornamento Abbiamo visto come creare tabelle e come interrogarle. Vedremo ora come popolarle

Dettagli

Esercitazione 4 SQL: cataloghi e viste

Esercitazione 4 SQL: cataloghi e viste Esercitazione 4 SQL: cataloghi e viste Sistemi Informativi T Versione elettronica: L04.CatView.pdf Cataloghi di sistema Sono insieme di tables e views che descrivono la struttura logica e fisica degli

Dettagli

Decomposizione senza perdita

Decomposizione senza perdita Decomposizione senza perdita Data una relazione r su X, se X 1 e X 2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X 1 e X 2 è

Dettagli

Tornando all esempio..

Tornando all esempio.. Tornando all esempio.. gli impiegati hanno un unico stipendio Impiegato Stipendio i progetti hanno un unico bilancio Progetto Bilancio in ciascun progetto, un impiegato svolge una sola funzione Impiegato

Dettagli

Linguaggio SQL seconda parte

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

Dettagli

Gestione di basi di dati relazionali con SQL (parte II) Valutazione delle condizioni su insiemi di tuple

Gestione di basi di dati relazionali con SQL (parte II) Valutazione delle condizioni su insiemi di tuple Gestione di basi di dati relazionali con SQL (parte II) Gian Pietro Picco Dipartimento di Elettronica e Informazione Politecnico di Milano, Italy picco@elet.polimi.it http://www.elet.polimi.it/~picco Valutazione

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY SQL SQL come Data Manipulation Language - Funzioni Aggregate e GROUP BY Esempio DB 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 Luigi 50 Franco 60 Olga 30 Sergio 85 Luisa

Dettagli

Scheme: struttura del programma e campo di azione

Scheme: struttura del programma e campo di azione «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Scheme: struttura del programma e campo di azione Definizione e campo di azione...........................

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi T Versione elettronica: 03.Algebra.pdf Linguaggi di manipolazione (DML) per DB Un linguaggio di manipolazione, o DML, permette di interrogare e modificare istanze

Dettagli