Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a"

Transcript

1 Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi 1 Lezione 10 Semantica dei linguaggi di interrogazione 2 1

2 Linguaggi di interrogazione per basi di dati relazionali Procedurali specificano le modalità di generazione del risultato Dichiarativi specificano le proprietà del risultato 3 Semantica dei linguaggi di interrogazione Calcolo relazionale: dichiarativo SQL: parzialmente dichiarativo Algebra relazionale: procedurale 4 2

3 Calcolo relazionale Una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine Diverse versioni: calcolo relazionale su domini calcolo su ennuple con dichiarazioni di range 5 Calcolo su domini { A1: x1,, An: xn f } Ai sono nomi di attributi xi sono nomi di variabili La lista di coppie Ai : xi viene detta target list (descrive il risultato) f è una formula Formule atomiche sono R(A1: x1,, An: xn), che è vera sui valori di x1 xn che formano una tpla di R, e xi xj, che è vera sui valori di xi e xj che soddisfano 6 3

4 Calcolo su tuple con dichiarazione di range { x1.z1,, xn.zn xi(r1),, xj(rm) f } x1.z1,, xn.zn è la target list xi(r1),, xj(rm) è la range list (dice il campo di variabilità delle variabili) f è una formula, con formule atomiche del tipo xi.zi xj.zj, ad esempio 7 Base di dati per gli esempi Impiegati(Matricola,Nome, Età, Stipendio) Supervisione(Capo, Impiegato) 8 4

5 Esempio 1a Trovare gli impiegati che guadagnano più di 40 milioni { Matricola: m, Nome: n, Età: e, Stipendio: s Impiegati (Matricola: m, Nome: n, Età: e, Stipendio: s) s > 40 } 9 Esempio 1b Trovare gli impiegati che guadagnano più di 40 milioni { i.* i(impiegati) i.stipendio > 40 } 10 5

6 Esempio 2a Trovare nome e matricola degli impiegati che guadagnano più di 40 milioni { Matricola: m, Nome: n Impiegati (Matricola: m, Nome: n, Età: e, Stipendio: s) s > 40 } oppure { Matricola: m, Nome: n e,s(impiegati (Matricola: m, Nome: n, Età: e, Stipendio: s) s > 40) } 11 Esempio 2b Trovare nome e matricola degli impiegati che guadagnano più di 40 milioni { i.(matricola, Nome) i(impiegati) i.stipendio > 40 } 12 6

7 Quantificatori esistenziali e universali Per interrogazioni più complesse, che in algebra ad esempio richiedevano una differenza, servono altri strumenti, Sono intercambiabili x(f)= ( x( (f))) x(f)= ( x( (f))) 13 Quantificatori esistenziali e universali Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 40 milioni. {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( n'( e'( s'( (Impiegati(Matricola:m', Nome:n', Età:e', Stipendio:s') Supervisione(Capo:c, Impiegato:m')) s' > 40))))} 14 7

8 Quantificatori esistenziali e universali Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 40 milioni. {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( n'( e'( s ( Impiegati(Matricola: m', Nome: n', Età: e', Stipendio: s') Supervisione(Capo:c, Impiegato:m') s' 40))))} 15 Quantificatori esistenziali e universali {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( n'( e'( s'( Impiegati(Matr: m', Nome: n', Età: e', Stip: s') Supervisione(Capo:c, Impiegato:m') s' 40))))} { i.(matricola, Nome) s(supervisione), i(impiegati) i.matricola=s.capo ( i'(impiegati)( s'(supervisione) (s.capo=s'.capo s'.impiegato=i'.matricola i'.stipendio 40)))} 16 8

9 Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": tante variabili! Le variabili del calcolo dei domini rappresentano singoli valori Nel calcolo su tple rappresentano tple possibilità di scrivere espressioni senza senso (dipendenti dal dominio) A:x, B:y R(A:x) y=y nell'algebra tutte le espressioni hanno un senso (indipendenti dal dominio) 17 Calcolo su tuple, discussione Il calcolo su tuple con dichiarazioni di range non permette di esprimere alcune interrogazioni importanti, in particolare le unioni: R 1 (AB) R 2 (AB) Ogni variabile ha un solo range nel risultato, mentre vorremmo tple sia della prima relazione che della seconda Nota: intersezione e differenza sono esprimibili Per questa ragione SQL (che è basato su questo calcolo) prevede un operatore esplicito di unione, ma non tutte le versioni prevedono intersezione e differenza 18 9

10 Algebra relazionale Algebra = dati + operatori Algebra relazionale: Dati: relazioni Operatori: su relazioni che producono relazioni e possono essere composti 19 Operatori dell'algebra relazionale Operatori su insiemi unione, intersezione, differenza Operatori su relazioni ridenominazione selezione proiezione join (join naturale, prodotto cartesiano, theta-join) 20 10

11 Operatori su insiemi Le relazioni sono insiemi Però i risultati debbono essere relazioni quindi è possibile applicare unione, intersezione, differenza solo a relazioni definite sugli stessi attributi, in modo che il risultato sia una relazione sugli stessi attributi 21 Unione L unione di due relazioni sullo stesso insieme di attributi X è una relazione su X che contiene le tuple sia dell una che dell altra relazione originaria 22 11

12 Unione Laureati triennali Matricola 7274 Nome Rossi Età Neri Verdi Laureati magistrali Matricola Laureati triennali Laureati magistrali Matricola Nome Età 7274 Rossi Neri Verdi Neri 33 Nome Neri Neri Verdi Età Intersezione L intersezione di due relazioni sullo stesso insieme di attributi X è una relazione su X che contiene le tuple appartenenti ad entrambe le relazioni 24 12

13 Intersezione Laureati triennali Laureati magistrali Matricola 7274 Nome Rossi Età 32 Matricola 9297 Nome Neri Età Neri Verdi Neri Verdi Laureati triennali Laureati magistrali Matricola Nome Età 7432 Neri Verdi Differenza La differenza di due relazioni sullo stesso insieme di attributi X, r 1 (X)- r 2 (X) è una relazione su X che contiene le tuple di r 1 che non appartengono anche ad r

14 Differenza Laureati triennali Matricola Nome Età 7274 Rossi Neri Verdi 25 Laureati magistrali Matricola Laureati triennali Laureati magistrali Matricola Nome Età 7274 Rossi Neri Verdi 45 Nome Neri Neri Verdi Età È possibile l unione delle due relazioni seguenti? Paternità Maternità Padre Adamo Adamo Abramo Figlio Abele Caino Isacco Madre Eva Eva Sara Figlio Abele Set Isacco Paternità Maternità?? 28 14

15 Ridenominazione operatore monadico (con un argomento) "modifica lo schema" dell argomento lasciando inalterata l'istanza B1.. B n A 1.. A n (r) 29 Paternità Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Genitore Padre (Paternità) Genitore Padre Adamo Adamo Abramo Figlio Abele Caino Isacco 30 15

16 Genitore Padre (Paternità) Genitore Figlio Adamo Abele Adamo Caino Abramo Isacco Genitore Madre (Maternità) Genitore Figlio Eva Abele Eva Set Sara Isacco Genitore Padre (Paternità) Genitore Madre (Maternità) Genitore Figlio Adamo Abele Adamo Caino Abramo Isacco Eva Abele Eva Set Sara Isacco 31 Selezione operatore monadico produce un risultato che ha lo stesso schema dell argomento e contiene il sottoinsieme delle sue tuple che soddisfano una condizione fissata 32 16

17 Sintassi e semantica data una relazione r(x) F (r) = r F: espressione booleana ottenuta componendo con and, or e not condizioni atomiche del tipo A B oppure A c, con A e B attributi in X con domini compatibili, operatore di confronto (<,>,=..) e c costante compatibile con il dominio di A. r contiene il sottoinsieme delle tuple di r per cui F e vera 33 impiegati che guadagnano più di euro Impiegati Matricola Cognome Filiale Stipendio 7309 Rossi Roma Neri Milano Milano Neri Milano Napoli Neri Napoli 64 Stipendio > (Impiegati) 34 17

18 impiegati che guadagnano più di e lavorano a Milano Impiegati Matricola Cognome Filiale Stipendio Rossi Neri Milano Roma Neri Milano Milano Milano Neri Napoli 64 (Stipendio > 50000) AND (Filiale = 'Milano ) (Impiegati) 35 impiegati che hanno lo stesso nome della filiale presso cui lavorano Impiegati Matricola Cognome Filiale Stipendio Milano Rossi Milano Roma Neri Milano Milano Milano Neri Napoli 64 Cognome = Filiale (Impiegati) 36 18

19 Selezione con valori nulli Impiegati Matricola Cognome Filiale Età 7309 Rossi Roma Neri Milano Bruni Milano NULL Età > 40 (Impiegati) la condizione è vera solo per valori non nulli 37 per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL Impiegati Matricola Cognome Filiale Età Rossi Neri Milano Roma Bruni Neri Milano NULL Bruni Milano NULL (Età > 40) (Età IS NULL) (Impiegati) 38 19

20 Proiezione operatore monadico produce un risultato che ha parte degli attributi dell argomento e su tali attributi contiene tutte le possibili tuple di valori esistenti nella relazione argomento 39 Sintassi e semantica Sintassi, Y X Y (r(x)) = r Semantica r è una relazione su Y e contiene l insieme delle tuple di r ristrette agli attributi in Y 40 20

21 matricola e cognome di tutti gli impiegati Matricola Cognome Filiale Stipendio Neri Napoli 55 Neri Milano 64 Rossi Roma 44 Rossi Roma 64 Matricola, Cognome (Impiegati) 41 cognome e filiale di tutti gli impiegati Matricola Cognome Filiale Stipendio Neri Napoli 55 Neri Milano 64 Rossi Roma 44 Rossi Roma 64 Cognome, Filiale (Impiegati) Attenzione: perché c è differenza nella dimensione dei due risultati? 42 21

22 Cardinalità delle proiezioni una proiezione di r contiene al più tante tuple quante ne ha r può contenerne di meno se X è una superchiave di r, allora X (r) contiene esattamente tante tuple quante ne ha r 43 Proiezione e selezione Selezione decomposizione orizzontale Proiezione decomposizione verticale 44 22

23 selezione proiezione 45 Selezione e proiezione Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione 46 23

24 matricola e cognome degli impiegati che guadagnano più di 50 Matricola Cognome Filiale Stipendio 7309 Rossi Roma Neri Milano Milano Neri Milano Napoli Neri Napoli 64 Matricola,Cognome ( Stipendio > 50 (Impiegati) ) Attenzione: ordine degli operatori 47 Combinando selezione e proiezione, non possiamo però correlare informazioni presenti in relazioni diverse 48 24

25 Join il join è l'operatore più interessante dell'algebra relazionale permette appunto di correlare dati in relazioni diverse Non è un operatore primitivo 49 Join naturale operatore binario (generalizzabile) produce come risultato una relazione tale che Il suo schema ha l unione degli attributi degli argomenti L insieme delle tuple è ottenuto componendo una tupla di ognuno degli operandi per valori uguali degli attributi comuni 50 25

26 Sintassi e semantica R 1 (X 1 ), R 2 (X 2 ) R 1 R 2 è una relazione su X 1 X 2 definita come { t esistono t 1 R 1 e t 2 R 2 con t[x 1 ]=t 1 e t[x 2 ] =t 2 } 51 Join e proiezioni Impiegato Reparto Rossi A Neri B Bianchi B Reparto B C Capo Mori Bruni Impiegato Reparto Capo Neri B Mori Bianchi B Mori Impiegato Reparto Neri B Bianchi B Reparto B Capo Mori 52 26

27 Impiegato Neri Bianchi Verdi Proiezioni e join Impiegato Reparto Capo Neri B Mori Bianchi B Bruni Verdi A Bini Reparto B B A Reparto B B A Impiegato Reparto Capo Neri B Mori Bianchi B Bruni Neri B Bruni Bianchi B Mori Verdi A Bini Capo Mori Bruni Bini 53 R 1 (X 1 ), R 2 (X 2 ) In generale X1 (R 1 R 2 ) R 1 R(X), X = X 1 X 2 ( X1 (R)) ( X2 (R)) R 54 27

28 Relazioni senza attributi comuni La definizione di join funziona ugualmente R 1 (X 1 ), R 2 (X 2 ) R 1 R 2 è una relazione su X 1 X 2 definita come { t esistono t 1 R 1 e t 2 R 2 con t[x 1 ]=t 1 e t[x 2 ] =t 2 } 55 Risultato La relazione risultato contiene sempre un numero di tuple pari al prodotto delle cardinalità degli operandi (le tuple sono tutte combinabili ) Equivale al prodotto cartesiano su tuple 56 28

29 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Impiegati Reparti Reparti Codice A B Capo Mori Bruni Impiegato Reparto Codice Capo Rossi A A Mori Rossi A B Bruni Neri B A Mori Neri B B Bruni Bianchi B A Mori Bianchi B B Bruni 57 Il prodotto cartesiano, può essere ridotto eseguendo una selezione F (R 1 X R 2 ) L operazione complessiva può venire eseguita tramite un operatore derivato chiamato theta-join e indicato con R 1 F R

30 Perché "theta-join" La condizione F è spesso una congiunzione (AND) di atomi di confronto A 1 A 2 dove è uno degli operatori di confronto (=, >, <, ) e A 1, A 2 sono attributi di relazioni diverse se l'operatore è sempre l'uguaglianza (=) allora si parla di equi-join 59 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Codice A B Impiegati Reparto=Codice Reparti Capo Mori Bruni Impiegato Reparto Codice Capo Rossi A A Mori Rossi Neri AB B Bruni Bianchi Neri B AB Bruni Mori Neri B B Bruni Bianchi B A Mori Bianchi B B Bruni 60 30

31 Join naturale ed equi-join Impiegati Impiegato Reparto Reparti Reparto Capo Impiegato,Reparto,Capo ( Impiegati Reparti = I.Reparto Reparto (Impiegati) I.Reparto= Reparto Reparti ) 61 Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi Bianchi Neri Bruni Mori Lupi Supervisione Impiegato Capo

32 Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di euro Stipendio>40000 (Impiegati) 63 Matricola Nome Età Stipendio Rossi Bianchi Bruni Mori Neri Bruni Lupi Mori Lupi Stipendio>40000 (Impiegati) 64 32

33 Trovare matricola, nome ed età degli impiegati che guadagnano più di euro Matricola, Nome, Età ( Stipendio>40000 (Impiegati)) 65 Matricola Nome Età Stipendio Rossi Bianchi Bruni Mori Neri Bruni Lupi Mori Lupi Matricola, Nome, Età ( Stipendio>40000 (Impiegati) ) 66 33

34 Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi Bianchi Neri Bruni Mori Lupi Supervisione Impiegato Capo Trovare le matricole dei capi degli impiegati che guadagnano più di euro Capo (Supervisione Impiegato=Matricola ( Stipendio>40000 (Impiegati))) 68 34

35 Trovare nome e stipendio dei capi degli impiegati che guadagnano più di euro Nome,Stipendio ( Impiegati Matricola=Capo Capo (Supervisione Impiegato=Matricola ( Stipendio>40000 (Impiegati)))) 69 Trovare le matricole dei capi i cui impiegati guadagnano tutti più di euro Capo (Supervisione) - Capo (Supervisione Impiegato=Matricola ( Stipendio (Impiegati))) 70 35

36 Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi Bianchi Neri Bruni Mori Lupi Supervisione Impiegato Capo Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo Matr,Nome,Stip,MatrC,NomeC,StipC ( Stipendio>StipC ( MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Impiegati) MatrC=Capo (Supervisione Impiegato=Matricola Impiegati))) 72 36

37 Calcolo e algebra Calcolo e algebra sono "equivalenti" per ogni espressione del calcolo relazionale che sia indipendente dal dominio esiste un'espressione dell'algebra relazionale equivalente a essa per ogni espressione dell'algebra relazionale esiste un'espressione del calcolo relazionale equivalente a essa (e di conseguenza indipendente dal dominio) 73 Calcolo e algebra: limiti l'insieme di interrogazioni esprimibili è significativo Ci sono però interrogazioni interessanti non esprimibili, ad es. interrogazioni inerentemente ricorsive, come la chiusura transitiva 74 37

38 Chiusura transitiva Supervisione(Impiegato, Capo) Per ogni impiegato, trovare tutti i superiori (cioè il capo, il capo del capo, e cosi' via) Impiegato Rossi Neri Lupi Capo Mori Lupi Bruni Falchi Impiegato Rossi Neri Lupi Rossi Superiore Mori Lupi Bruni Falchi Falchi 75 Chiusura transitiva Nell'esempio, basterebbe il join della relazione con se stessa, previa opportuna ridenominazione Ma aggiungiamo una nuova ennupla Impiegato Rossi Capo Mori Lupi Impiegato Rossi Neri Superiore Mori Lupi Bruni Neri Bruni Lupi Falchi Lupi Falchi Rossi Falchi Falchi Leoni Lupi Leoni Rossi Leoni 76 38

39 Chiusura transitiva Non esiste in algebra e calcolo relazionale la possibilità di esprimere l'interrogazione che calcoli la chiusura transitiva di una relazione qualunque L operazione si simula con un mumero di join illimitato 77 Equivalenza di espressioni 78 39

40 Equivalenza di espressioni Due espressioni sono equivalenti se producono lo stesso risultato qualunque sia l'istanza attuale della base di dati L'equivalenza è importante in pratica perché i DBMS cercano di eseguire espressioni equivalenti a quelle date, ma meno "costose" 79 Equivalenze importanti (1) Pushing selections down (se A è attributo di R 2 ) A=10 (R 1 R 2 ) = R 1 A=10 ( R 2 ) Riduce in modo significativo la dimensione del risultato intermedio (e quindi il costo dell'operazione) 80 40

41 Equivalenze importanti (2) Pushing projections down (siano dati R 1 (X 1 )er 2 (X 2 )con Y 2 X 2 ) X 1 Y2 (R 1 R 2) = R 1 Y2 ( R 2 ) Riduce in modo significativo la dimensione del risultato intermedio 81 Relazioni derivate 82 41

42 Relazioni derivate Relazioni di base: contenuto autonomo Relazioni derivate: relazioni il cui contenuto è funzione del contenuto di altre relazioni (ed è definito per mezzo di interrogazioni) Due tipi di relazioni derivate: viste materializzate viste virtuali (o viste) 83 Viste materializzate relazioni derivate memorizzate nella base di dati vantaggi: immediatamente disponibili per le interrogazioni svantaggi: ridondanti appesantiscono gli aggiornamenti sono raramente supportate dai DBMS 84 42

43 Viste virtuali Viste virtuali sono supportate dai DBMS (tutti) una interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) 85 Esempio Afferenza Impiegato Reparto Direzione Rossi A Reparto Capo Neri B A Mori Bianchi B B Bruni Verdi C C Leoni una vista Supervisione = Impiegato, Capo (Afferenza Direzione) 86 43

44 Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: Capo='Leoni' (Supervisione) viene eseguita come Capo='Leoni' ( Impiegato, Capo (Afferenza Direzione)) 87 Viste, motivazioni Strumento di programmazione : si può semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetute L'utilizzo di viste virtuali non influisce sull'efficienza delle interrogazioni 88 44

45 Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: Impiegato,Capo (Afferenza Direzione) Capo ( Impiegato='Rossi' (Afferenza Direzione)) Con la vista: Impiegato,Capo (Supervisione) Capo ( Impiegato='Rossi' (Supervisione)) 89 Con le viste posso evitare di usare l operatore di ridenominazione, per l espressione della slide 74, ad esempio, posso scrivere: Capi := Impiegati Imp.Matr, Imp.Nome, Imp.Stip,Capi.Matr,Capi.Nome, Capi.Stip ( Imp.Stip>Capi.Stip ( Capi Capi.Matr=Capo (Supervisione Impiegato=Imp.Matr Impiegati))) 90 45

46 Estensioni dell algebra 91 Algebra relazionale estesa Il modello relazionale può essere facilmente esteso a comprendere gli operatori SQL non direttamente riconducibili agli operatori algebrici introdotti Questa estensione non modifica il funzionamento del modello 92 46

47 Estensioni (1) Il join esterno estende, con valori nulli, le tuple che verrebbero tagliate fuori da un join interno (o join) esiste in tre versioni: sinistro, destro, completo 93 Join esterno sinistro: mantiene tutte le tuple del primo operando, estendendole con valori nulli, se necessario destro:... del secondo operando... completo: di entrambi gli operandi

48 Estensioni (2) Proiezione generalizzata F1,F2,F3 (E) F1,F2, F3 sono espressioni aritmetiche su attributi di E (che è una qualunque espressione dell algebra) e costanti 95 Conto Cliente Credito Andrea 6000 Andrea 4000 Maria Anna 3000 Filippo 3000 Luigi 5000 Franco 5000 Maria 6000 Andrea Anna 5000 Spese

49 Esempio proiezione Si può scrivere ad esempio Cliente,Credito-Spese (Conto) ed ottenere il seguente risultato 97 Cliente Credito- Spesa Andrea Andrea

50 Estensioni (3) Funzioni aggregate Si possono usare nelle espressioni alcuni nomi di funzioni (operatori) che si applicano a (multi)insiemi e producono un valore come risultato 99 Operatori aggregati sum, count, min, max sum Spese (Conto) count Cliente (Conto) max Credito (Conto) count-distinct Cliente (Conto)

51 Raggruppamento Si possono raggruppare gli elementi di una relazione usando un operatore apposito Cliente G sum(credito) (Conto) Cliente è l attributo su cui si fa il raggruppamento, sum è la funzione aggregata che si applica all attributo Credito, Conto è la relazione su cui si applica il tutto. Si possono avere più attributi a sinistra e più funzioni a destra di G 101 Un altro operatore derivato: divisione Vogliamo trovare i nomi dei clienti che hanno un conto corrente in tutte le filiali di banca di Pisa. Le relazioni sono Branch(bank_name, branch_name, branch_city) Account(branch_name, bank_name, account_number, branch_city) Depositor(account_number, customer_name) CN,BN (depositor account) BN ( BC= Pisa (branch))

52 Cosa si intende CN,BN (depositor account) BN ( BC= Pisa (branch)) Equivale a CN (depositor account) CN (( CN (depositor account) X BN ( BC= Pisa (branch)) - CN,BN (depositor account)) 103 CN (depositor account) X BN ( BC= Pisa (branch) Si combinano tutti i clienti presenti nel data base con le filiali di Pisa; togliendo da questo insieme le coppie (cliente,filiale) presenti nel data base, cioè CN,BN (depositor account) Restano i clenti che hanno un conto in una filiale a Pisa, ma non in tutte. Togliendo dai clienti del data base i clienti ottenuti, restano i clienti che hanno un conto in tutte le filiali di Pisa

53 Definizione Siano r(r) e s(s) relazioni con R S, r s è una relazione su R-S; una tupla t r s iff t R-S (r) t s, t r tale che t [S]= t [S] e t [R-S]= t 105 Si consideri il seguente schema di base di dati Film( CodiceFilm,Titolo, CodiceRegista, Anno) Produzione (CasaProduzione, Nazionalità, CodiceFilm, Costo, Incasso1annoSala) Artista (CodiceAttore, Cognome, Nome, Sesso, DataDiNascita, Nazionalità) Interpretazione (CodiceFilm, CodiceAttore, Personaggio, SessoPersonaggio) Regista (CodiceRegista, Cognome, Nome, Sesso, DataDiNascita, Nazionalità) Noleggio (CodiceFilm, Incasso1annoVideo, Incasso1annoDVD)

54 Formulare in algebra relazionale le seguenti interrogazioni (1) nomi e cognomi dei registi che hanno diretto film che hanno incassato il primo anno di uscita meno nelle sale che per il noleggio di DVD N,C ( N,C,CF ( N,C,CR (Regista) CF,CR (Film)) CF ( Inc1sala<Inc1DVD ( Inc1sala,CF (Produzione) ) Inc1DVD,CF (Noleggio) ) ) 107 Formulare in algebra relazionale le seguenti interrogazioni (2) i titoli dei film i cui attori sono tutti dello stesso sesso 1. Titolo ( Film) - Titolo (Film Sesso<>S ( CF,Sesso (Artista Interpretazione) S Sesso ( CF,Sesso (Artista Interpretazione) ))) 2. ( Titolo ( Film) - Titolo ( Film ( CF ( Sesso=`M` (Artista) Interpretazione)))) ( Titolo ( Film) - Titolo ( Film ( CF ( Sesso=`F` (Artista) Interpretazione))))

55 Formulare in algebra relazionale le seguenti interrogazioni (3) i titoli di film con solamente attori donna che abbiano incassato in sala più del proprio costo Titolo ( CF,Titolo (Film) CF ( Inc1S>Costo (Produzione)) ( CF ( Film) CF ( CA, ( Sesso=`M` ( CA,Sesso (Artista))) CA,CF (Interpretazione))) )

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a. 2012-2013 2013 Docente: Gigliola Vaglini Docenti laboratorio: Francesco Pistolesi,, Antonio Virdis 1 Lezione

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Lezione 4 Semantica dei linguaggi

Dettagli

Un altro operatore algebrico derivato: divisione

Un altro operatore algebrico derivato: divisione Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2012-2013 2013 Docente: Gigliola Vaglini Docenti di laboratorio: Francesco Pistolesi,, Antonio Virdis 1 Un

Dettagli

Linguaggi per basi di dati

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

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 99999999 Lezione 9 I linguaggi

Dettagli

Dichiarativi : specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come")

Dichiarativi : specificano le proprietà del risultato (che cosa) Procedurali specificano le modalità di generazione del risultato (come) Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento Linguaggi di interrogazione per

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : ALGEBRA E CALCOLO RELAZIONALE Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi 34 45 5998 Bianchi 37 38 9553 Neri 42 35 5698

Dettagli

Parte III L algebra relazionale

Parte III L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2017-2018 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

Parte III. L algebra relazionale

Parte III. L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

Architettura standard (ANSI/SPARC) a tre livelli per DBMS. Viste (relazioni derivate) Viste virtuali e materializzate. Viste materializzate

Architettura standard (ANSI/SPARC) a tre livelli per DBMS. Viste (relazioni derivate) Viste virtuali e materializzate. Viste materializzate Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno) Relazioni derivate: relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di

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

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

Join. il Join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse 20/03/2006 1

Join. il Join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse 20/03/2006 1 Join il Join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse 20/03/2006 1 Prove scritte in un concorso pubblico I compiti sono anonimi e ad ognuno

Dettagli

Algebra e Calcolo relazionale. Algebra e calcolo relazionale (parte 2)

Algebra e Calcolo relazionale. Algebra e calcolo relazionale (parte 2) Algebra e calcolo relazionale (parte 2) Algebra e valori nulli Persone Nome Età Reddito Aldo 35 15 Andrea 27 21 Maria NULL 42 σ Età>30 (Persone) Quali ennuple compaiono nel risultato? La prima sì, la seconda

Dettagli

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere la soluzione. Operatori: unione intersezione

Dettagli

Basi di dati ALGEBRA E CALCOLO RELAZIONALE

Basi di dati ALGEBRA E CALCOLO RELAZIONALE Basi di dati ALGEBRA E CALCOLO RELAZIONALE Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query")

Dettagli

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Interrogazione delle basi di dati Linguaggi per basi di dati Algebra Relazionale operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione

Dettagli

Operatori derivati dagli insiemi

Operatori derivati dagli insiemi Operatori derivati dagli insiemi Unione L unione fra due relazioni r 1 e r 2 definite sullo stesso schema X si indica con r 1 r 2 ed è una relazione su X contenente le tuple appartenenti a r 1, a r 2 o

Dettagli

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, ALGEBRA E CALCOLO RELAZIONALE

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, ALGEBRA E CALCOLO RELAZIONALE Linguaggi per basi di dati Atzeni, Ceri, Paraboschi, Torlone asi di dati McGraw -Hill, 1996-2002 Capitolo 3: ALGERA E CALCOLO RELAZIONALE 24/09/2002 operazioni sullo schema DDL: data definition language

Dettagli

Modulo 2 Data Base 3

Modulo 2 Data Base 3 Modulo 2 Data Base 3 Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Proiezione Dati una relazione r(x) e un

Dettagli

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere la soluzione. Operatori: unione intersezione

Dettagli

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Linguaggi per basi di dati tzeni, Ceri, Paraboschi, Torlone asi di dati McGraw-Hill, 1996-2002 Capitolo 3: LGER E CLCOLO RELZIONLE 07/06/2005 operazioni sullo schema DDL: data definition language operazioni

Dettagli

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 3)

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 3) E. Giunchiglia asi di dati 1 (trasparenze basate su tzeni, Ceri, Paraboschi, Torlone: asi di dati, Capitolo 3) LGER RELZIONLE CLCOLO RELZIONLE DTLOG Linguaggi di interrogazione per basi di dati relazionali

Dettagli

Aggiornamenti e Interrogazioni

Aggiornamenti e Interrogazioni Aggiornamenti e Interrogazioni Aggiornamento: inserimento o modifica di dati (una funzione che, data un istanza di basi di dati ne produce un altra) Interrogazione: estrazione di informazioni (una funzione

Dettagli

Linguaggi per basi di dati ALGEBRA RELAZIONALE. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati ALGEBRA RELAZIONALE. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Linguaggi per basi di dati Capitolo 3: LGER RELZIONLE operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento 1

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

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

Basi di dati Algebra relazionale Figure ed esempi

Basi di dati Algebra relazionale Figure ed esempi asi di dati Algebra relazionale Figure ed esempi 1 Laureati Matricola 7274 Nome Rossi Età 42 7432 9824 Verdi 54 45 Unione Laureati È Specialisti Specialisti Matricola 9297 7432 9824 Matricola Nome Età

Dettagli

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2013-2014 Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi Lezione 4 Interrogazioni annidate

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 D1.4 Interrogazioni complesse e viste 1 Prerequisiti Elementi di teoria degli insiemi Composizione di operazioni 2 1 Introduzione Gli strumenti dell algebra consentono di

Dettagli

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z. Università di Roma La Sapienza Laurea in Ingegneria Informatica Basi di Dati Anno Accademico 2003/2004 Canale M-Z Diego Calvanese Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di

Dettagli

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Basi di dati Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2007/08 Canale M-Z http://www.dis.uniroma1.it/!degiacomo/didattica/basidati/

Dettagli

Basi di dati: esercitazione. Paolo Atzeni 10/05/2006

Basi di dati: esercitazione. Paolo Atzeni 10/05/2006 Basi di dati: esercitazione Paolo Atzeni 10/05/2006 Esame del 30/06/2004 Considerare le seguenti relazioni (tutte senza valori nulli) R1(ABC), con vincolo di integrità referenziale fra C e R2 e con cardinalità

Dettagli

Esempi. Supervisione Impiegato Capo /10/2017 Atzeni-Ceri-Fraternali-Paraboschi-Torlone Basi di dati, Capitolo 3

Esempi. Supervisione Impiegato Capo /10/2017 Atzeni-Ceri-Fraternali-Paraboschi-Torlone Basi di dati, Capitolo 3 Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi 34 45 5998 Bianchi 37 38 9553 Neri 42 35 5698 Bruni 43 42 4076 Mori 45 50 8123 Lupi 46 60 Supervisione Impiegato Capo 7309 5998 5698 5698 9553 5698

Dettagli

3 Algebra Relazionale

3 Algebra Relazionale Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2016/2017 Tiziana Catarci Ultimo aggiornamento : 22/02/2017 I linguaggi di interrogazione e aggiornamento

Dettagli

Linguaggi per basi di da6. Linguaggi di interrogazione. Algebra relazionale. Operatori dell'algebra relazionale

Linguaggi per basi di da6. Linguaggi di interrogazione. Algebra relazionale. Operatori dell'algebra relazionale Linguaggi per basi di da6 tzeni, Ceri, Paraboschi, Torlone asi di da6 LGER E CLCOLO RELZIONLE operazioni sullo schema DDL: data defini6on language operazioni sui da6 DML: data manipula6on language interrogazione

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

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Linguaggi per basi di dati Atzeni, Ceri, Paraboschi, Torlone asi di dati McGraw-Hill, 1996-2002 Capitolo 3: ALGERA E CALCOLO RELAZIONALE 07/06/2005 operazioni sullo schema DDL: data definition language

Dettagli

L algebra relazionale in RA

L algebra relazionale in RA L algebra relazionale in RA Gianluca Cima Anno accademico 2018/2019 RA: Un interprete per l Algebra Relazionale Coloro che vogliono scaricare l interprete dell algebra relazionale RA possono accedere al

Dettagli

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi Esercitazione 1 Rossi A Neri ianchi A runi Rossi A Neri runi ianchi runi ogni tupla contribuisce al risultato: join completo 1 Un join completo con n x m tuple Rossi A Neri A runi Rossi Rossi runi Neri

Dettagli

Basi di dati. Maurizio Lenzerini Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti Università di Roma La Sapienza

Basi di dati. Maurizio Lenzerini Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti Università di Roma La Sapienza Basi di dati Maurizio Lenzerini Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2018/2019 http://www.dis.uniroma1.it/ lenzerini/?q=node/44

Dettagli

ALGEBRA RELAZIONALE Esercizi con RelaX. 21/10/2017 Atzeni - Algebra relazionale - RelaX 1

ALGEBRA RELAZIONALE Esercizi con RelaX. 21/10/2017 Atzeni - Algebra relazionale - RelaX 1 ALGEBRA RELAZIONALE Esercizi con RelaX 21/10/2017 Atzeni - Algebra relazionale - RelaX 1 Un servizio online per esercitazioni in algebra relazionale RelaX http://dbis-uibk.github.io/relax/calc.htm Verrà

Dettagli

Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2010/2011 http://www.dis.uniroma1.it/ lenzerini/?q=node/44 2. Il

Dettagli

Accesso ai dati di un DB. Algebra relazionale. Accesso ai dati di un DB. Algebra relazionale

Accesso ai dati di un DB. Algebra relazionale. Accesso ai dati di un DB. Algebra relazionale Accesso ai dati di un DB Algebra relazionale Aggiornamento del DB: funzione che, data un istanza del DB, produce un altra istanza del DB, sullo stesso schema Modifica, aggiunta, rimozione tuple Interrogazione

Dettagli

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB Basi di Dati Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB Il Modello Relazionale Introduzione: 1. 1 Il modello Relazionale Proposto da E. F.Codd

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 D1.2 Selezione e proiezione 1 Prerequisiti Elementi di teoria degli insiemi Composizione di operazioni 2 1 Introduzione Oltre alle operazioni insiemistiche, può capitare

Dettagli

Basi di dati. Modello relazionale dei dati. Prof.ssa Rosalba Giugno

Basi di dati. Modello relazionale dei dati. Prof.ssa Rosalba Giugno Basi di dati Modello relazionale dei dati Prof.ssa Rosalba Giugno DEFINIZIONE Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati e descriverne la struttura in modo che essa

Dettagli

Linguaggi di interrogazione

Linguaggi di interrogazione Linguaggi di interrogazione Un interrogazione è una funzione che data una base di dati produce una relazione su un dato schema Linguaggi di interrogazione Procedurali specificano il procedimento di generazione

Dettagli

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie: lgebra relazionale Il linguaggio per interrogare ed aggiornare la base di dati fa parte del modello di questi ultimi. Un operazione di aggiornamento può essere vista come una funzione che, data un istanza

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 6: Potenza espressiva del calcolo Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": tante variabili! espressioni

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 relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale. Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione

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

Algebra Relazionale.

Algebra Relazionale. Algebra Relazionale c.vallati@iet.unipi.it Sommario Introduzione all algebra relazionale I costrutti principali dell algebra relazionale Esempi Esercitazione Basi di dati Ciclo di vita Finita la fase di

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

Linguaggi di interrogazione per basi di dati relazionali

Linguaggi di interrogazione per basi di dati relazionali Linguaggi di interrogazione per basi di dati relazionali Il modello relazionale è stato il primo ad introdurre la possibilità di operare su insiemi di dati con operatori insiemistici Nei precedenti modelli

Dettagli

Equivalenza di Espressioni Algebriche

Equivalenza di Espressioni Algebriche Equivalenza di Espressioni Algebriche Basi di dati e sistemi informativi 1 Equivalenza di Espressioni Algebriche Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Equivalenza

Dettagli

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida Introduzione all algebra relazionale Prof. Giovanni Giuffrida Esempio di interrogazione Studenti Nome Matricola Indirizzo Telefono Mario Rossi 456 Via Roma 1 095 111 Ugo Bianchi 567 Via Etnea 154 095 222

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

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

Basi di dati. Linguaggi di interrogazione

Basi di dati. Linguaggi di interrogazione Basi di dati Linguaggi di interrogazione Algebra relazionale Definita da Codd (70) Molto utile per imparare a formulare query Insieme minimo di 5 operazioni che danno l'intero potere espressivo del linguaggio

Dettagli

Algebra Relazionale. Dario Allegra Data Management 1 1

Algebra Relazionale. Dario Allegra Data Management 1 1 Algebra Relazionale 1 Unione, Intersezione, Differenza Laureati Matricola Cognome Età 7274 Rossi 37 7432 Neri 39 9824 Verdi 38 Dirigenti Matricola Cognome Età 9297 Neri 56 7432 Neri 39 9824 Verdi 38 2

Dettagli

Lezione 6. Algebra e Calcolo Relazionale

Lezione 6. Algebra e Calcolo Relazionale Lezione 6 Algebra e Calcolo Relazionale 1 Sommario Esempio di Applicazione con Database (AZIENDA) Algebra Relazionale Operazioni Relazionali Unarie Operazioni dell Algebra Relazionale dalla teoria degli

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. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Viste (relazioni derivate)

Viste (relazioni derivate) Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno) Relazioni di base: contenuto autonomo; fisicamente e originariamente contenute nella base di dati Relazioni derivate:

Dettagli

SQL /10/2016 Basi di dati - SQL 1

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

Dettagli

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Algebra Relazionale e Calcolo Relazionale. L. Vigliano Algebra Relazionale e Calcolo Relazionale Operazioni associate al modello relazionale Notazione algebrica Algebra relazionale Linguaggio procedurale interrogazioni espresse applicando operatori alle relazioni

Dettagli

Corso di. Basi di Dati I. 4. Algebra relazionale

Corso di. Basi di Dati I. 4. Algebra relazionale Corso di Basi di Dati 4. Algebra relazionale A.A. 2016 2017 Algebra relazionale L algebra relazionale è un insieme di operazioni che si effettuano su una base di dati relazionale. Lo scopo è quello di

Dettagli

Linguaggi per basi di dati

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

Dettagli

Calcolo relazionale. Dr. C. d'amat

Calcolo relazionale. Dr. C. d'amat Calcolo relazionale Dr. C. d'amat Calcolo relazionale Calcolo relazionale famiglia di linguaggi dichiarativi di interrogazione, basati sul calcolo dei predicati del primo ordine. L istanza di un DB relazionale

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

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a. 2016-2017 ALGEBRA RELAZIONALE Linguaggio di interrogazione o query language è un linguaggio tramite il quale è possibile richiedere informazioni contenute

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 8: Teoria delle dipendenze Vincoli di integrità Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Modello relazionale e algebra relazionale (lucidi integrativi del corso)

Modello relazionale e algebra relazionale (lucidi integrativi del corso) Modello relazionale e algebra relazionale (lucidi integrativi del corso) Prof. Andrea Schaerf Basi di dati Dip. di Ingegneria Elettrica, Gestionale e Meccanica Università di Udine Anno Accademico 2014-15

Dettagli

Algebra Relazionale.

Algebra Relazionale. Algebra Relazionale foglia@iet.unipi.it Sommario Introduzione all algebra relazionale I costrutti principali dell algebra relazionale Esempi Esercitazione Basi di dati Ciclo di vita Finita la fase di progettazione

Dettagli

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 Language Soluzione Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 19/03/2016

Dettagli

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a 1 ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a. 2014-2015 Algebra Relazionale Linguaggio di interrogazione o query language è un linguaggio tramite il quale è possibile richiedere le informazioni contenute

Dettagli

Viste come strumenti di programmazione

Viste come strumenti di programmazione Viste come strumenti di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato ((Afferenza JOIN Direzione) JOIN REN ImpR,RepR Impiegato,Reparto ( SEL Impiegato='Rossi'

Dettagli

Figlio Maria. Luigi. Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo

Figlio Maria. Luigi. Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio Luigi Luigi Franco Franco Figlio Maria Luigi Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Persone Nome Età Andrea

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati L Algebra Relazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ L algebra relazionale è un linguaggio (procedurale) di interrogazione per basi di dati relazionali.

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) SQL SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) Esempio 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 50 60 Olga 30 Sergio 85 Luisa 75 Persone Reddito

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

IL MODELLO RELAZIONALE

IL MODELLO RELAZIONALE IL MODELLO RELAZIONALE!1 Definizione: I meccanismi per definire una base di dati con il modello relazionale sono l ennupla e la relazione: int, real, boolean e string sono tipi primitivi; se T 1,..., T

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

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Gestione e Analisi dei Dati Lezione 2 Vincoli su attributo Selezioni semplici su una tabella Vincoli sui Dati Regole del dominio di interesse Unicità di codici di corso e matricole Un codice deve corrispondere

Dettagli

Esercizi di Informatica Documentale

Esercizi di Informatica Documentale Esercizi di Informatica Documentale A.A. 2015/2016 Parte Prima Nota: Laddove si richiede una risposta aperta, rispondere al massimo in tre righe. 1. Che cos è una Base di Dati? 2. Dare la definizione di

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

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE DB -Algebra Relazionale 1 ESEMPIO DI QUERY NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

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

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

<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

Basi di dati e Relazioni

Basi di dati e Relazioni Basi di dati e Relazioni Studenti (Matricola,Cognome,Nome,DataNascita) Corsi (Codice,Titolo,Docente) Esami (Studente,Voto,Corso) Studenti Corsi Esami contiene dati su un insieme di studenti contiene dati

Dettagli

ALGEBRA RELAZIONALE. L algebra relazionale

ALGEBRA RELAZIONALE. L algebra relazionale ALGEBRA RELAZIONALE 2 L algebra relazionale L insieme principale di operazioni per il modello relazionale è l algebra relazionale. Le operazioni dell algebra relazionale consentono all utente di specificare

Dettagli