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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 DML: data manipulation language Le operazioni sui dati in un data base relazionale sono di due tipi interrogazione ("query") aggiornamento 3 Linguaggi di interrogazione per basi di dati relazionali Procedurali specificano le modalità di generazione del risultato Dichiarativi specificano le proprietà del risultato 4 2

3 Linguaggi di interrogazione Algebra relazionale: : procedurale Calcolo relazionale: dichiarativo (teorico) SQL (Structured Query Language): parzialmente dichiarativo (reale) 5 I linguaggi procedurali: Algebra relazionale 6 3

4 Algebra relazionale Insieme di relazioni Insieme di operatori su relazioni che producono relazioni e possono essere composti 7 Operatori dell'algebra relazionale Operatori su insiemi unione, intersezione, differenza Operatori su relazioni ridenominazione selezione proiezione join (join naturale, prodotto cartesiano, theta-join) 8 4

5 Operatori su insiemi Le e 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 9 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 10 5

6 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 12 6

7 Laureati triennali Matricola 7274 Nome Rossi Età Neri Verdi Intersezione Laureati magistrali Matricola 9297 Nome Neri Età 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

8 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à?? 16 8

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

10 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 19 Impiegati Cognome Rossi Neri Ufficio Roma Milano Stipendio Operai Cognome Bruni Verdi Fabbrica Monza Latina Salario Sede, Retribuzione Ufficio, Stipendio (Impiegati) Sede, Retribuzione Fabbrica, Salario (Operai) Cognome Sede Retribuzione Rossi Roma 55 Neri Milano 64 Bruni Monza 45 Verdi Latina

11 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 21 Sintassi e semantica data una relazione r(x) F (r) = 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 22 11

12 Impiegati Matricola Cognome Filiale Stipendio 7309 Rossi Roma Neri Milano Milano Milano Neri Napoli impiegati che guadagnano più di euro guadagnano più di euro e lavorano a Milano hanno lo stesso nome della filiale presso cui lavorano 23 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) 24 12

13 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) 25 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) 26 13

14 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 27 Sintassi e semantica Sintassi,, Y X Y (r(x) r(x)) = r r Semantica r è una relazione su Y e contiene l insieme delle tuple di r ristrette agli attributi in Y 28 14

15 Impiegati Matricola Cognome Filiale Stipendio 7309 Neri Napoli Neri Milano Rossi Roma Rossi Roma per tutti gli impiegati: matricola e cognome cognome e filiale 29 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) 30 15

16 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) 31 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 32 16

17 Proiezione e selezione Selezione decomposizione orizzontale Proiezione decomposizione verticale 33 selezione proiezione 34 17

18 Selezione e proiezione Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione 35 Impiegati Matricola Cognome Filiale Stipendio 7309 Neri Napoli Neri Milano Rossi Roma Rossi Roma

19 matricola e cognome degli impiegati che guadagnano più di Matricola Cognome Filiale Stipendio 7309 Rossi Roma Neri Milano Milano Neri Milano Napoli Neri Napoli 64 Matricola,Cognome ( Stipendio > (Impiegati) ) 37 Combinando selezione e proiezione, non possiamo però correlare informazioni presenti in relazioni diverse 38 19

20 Join il join è l'operatore più interessante dell'algebra relazionale permette appuntodi correlare dati in relazioni diverse 39 Prove scritte in un concorso pubblico I compiti sono anonimi e ad ognuno è associata una busta chiusa con il nome del candidato Ciascun compito e la relativa busta vengono contrassegnati con uno stesso numero 40 20

21 Quello che accade alla fine della correzione Mario Rossi Nicola Russo Mario Bianchi Remo Neri 1 Mario Rossi 2 Nicola Russo 3 Mario Bianchi 4 Remo Neri Quello che voglio alla fine dell esame Join naturale operatore binario (generalizzabile) produce come risultato una relazione tale che Il suo schema ha l unione l degli attributi degli argomenti L insieme delle tuple è ottenuto componendo una tupla di ognuno degli operandi per valori uguali degli attributi comuni 42 21

22 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 } 43 Effetto dell operatore Numero Voto Numero Candidato 1 Mario Rossi 2 Nicola Russo 3 Mario Bianchi 4 Remo Neri Numero Candidato Mario Rossi Nicola Russo Mario Bianchi Remo Neri Voto

23 Impiegato Reparto Rossi A Neri B Bianchi B Reparto A B Capo Mori Bruni Impiegato Reparto Capo Rossi A Mori Neri B Bruni Bianchi B Bruni ogni tupla contribuisce al risultato: join completo 45 Un join completo con n x m tuple Impiegato Reparto Rossi AB Neri B Reparto AB B Capo Mori Bruni Impiegato Reparto Capo Rossi B Mori Rossi B Bruni Neri B Mori Bianchi B Bruni 46 23

24 Un join non completo Impiegato Reparto Rossi A Neri B Bianchi B Reparto B C Capo Mori Bruni Impiegato Reparto Capo Neri B Mori Bianchi B Mori 47 Un join vuoto Impiegato Reparto Rossi A Neri B Bianchi B Reparto D C Capo Mori Bruni Impiegato Reparto Capo 48 24

25 Cardinalità del join Il join di R 1 e R 2 contiene un numero di tuple compreso fra zero e il prodotto di R 1 e R 2 se il join coinvolge una chiave di R 2, allora il numero di tuple è compreso fra zero e R 1 se il join coinvolge una chiave di R 2 e un vincolo di integrità referenziale, allora il numero di tuple è pari a R 1 49 R 1 (A,B), R 2 (B,C) in generale Cardinalità del join 0 R R 1 se B è chiave in R 2 0 R R 2 R 1 R 2 R 1 R 2 R 1 se B è chiave in R 2 ed esiste vincolo di integrità referenziale fra B (in R 1 ) e R 2 : R 1 R R 2 = R

26 Le tuple che non contribuiscono a formare il risultato Impiegato Reparto Rossi A Neri B Bianchi B Reparto B C Impiegato Reparto Capo Neri B Mori Bianchi B Mori Come recuperarle nel risultato Capo Mori Bruni 51 Join esterno 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 52 26

27 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 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Capo Mori Bruni Impiegati LEFT Reparti Impiegato Reparto Capo Neri B Mori Bianchi B Mori Rossi A NULL 54 27

28 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Capo Mori Bruni Impiegati RIGHT Reparti Impiegato Reparto Capo Neri B Mori Bianchi B Mori NULL C Bruni 55 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Capo Mori Bruni Impiegati FULL Reparti Impiegato Reparto Capo Neri B Mori Bianchi B Mori Rossi A NULL NULL C Bruni 56 28

29 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 57 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 58 29

30 In generale R 1 (X 1 ), R 2 (X 2 ) (R X1 1 R 2 ) R 1 R(X), X = X 1 X 2 ( X1 (R)) ( X 2 (R)) (R)) R 59 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 } 60 30

31 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 61 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 62 31

32 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 2 63 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 64 32

33 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 65 Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto A B Capo Mori Bruni Impiegati Imp.Reparto= Rep.Reparto Reparti Imp.Impiegato Imp.Reparto Rep.Reparto Rep.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 66 33

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

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

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

37 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))) 74 37

38 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)))) 75 Trovare le matricole dei capi i cui impiegati guadagnano tutti più di euro Capo (Supervisione) - Capo (Supervisione Impiegato=Matricola ( Stipendio (Impiegati))) 76 38

39 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))) 78 39

40 Equivalenza di espressioni 79 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" 80 40

41 Equivalenze importanti i (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) 81 Equivalenze importanti i (2) Pushing projections down (siano dati R 1 (X 1 ) e R 2 (X 2 ) con Y 2 X 2 ) (R X 1 Y2 1 R 2) ) = R 1 ( R Y2 2 ) Riduce in modo significativo la dimensione del risultato intermedio 82 41

42 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 83 Di conseguenza Et Età>40 (Impiegati) Età 40 (Impiegati) Impiegati le selezioni vengono valutate comunque separatamente e si tiene conto del fatto che logicamente sono una il complemento dell altra 84 42

43 Selezione con valori nulli: soluzione Età > 40 (Impiegati) la condizione atomica è vera solo per valori non nulli per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL 85 Quindi: Età>40 (Impiegati) Età 40 (Impiegati) IS NULL (Impiegati) = Età IS NULL Età>40 Età 40 Età IS NULL IS NULL (Impiegati) = Impiegati 86 43

44 Impiegati Matricola Cognome Filiale Età Rossi Neri Milano Roma Bruni Neri Milano NULL Bruni Milano NULL (Età > 40) (Età IS NULL) (Impiegati) 87 Relazioni derivate 88 44

45 Relazioni derivate Relazioni derivate: relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni) Relazioni di base: contenuto autonomo Le relazioni derivate possono essere definite su altre derivate, ma 89 Viste virtuali e materializzate Due tipi di relazioni derivate: viste materializzate viste virtuali (o viste) 90 45

46 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 91 Viste virtuali Viste virtuali sono supportate dai DBMS (tutti) una interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) 92 46

47 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) 93 Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: Capo='Leoni Leoni' (Supervisione) viene eseguita come Impiegato, Capo Capo='Leoni Leoni' (, Capo (Afferenza Direzione)) 94 47

48 Viste: motivazioni Rappresentazioni diverse per gli stessi dati (stesse relazioni di base) schema esterno Ogni utente vede solo quello che lui stesso ha determinato 95 Architettura standard (ANSI/SPARC) a tre livelli per DBMS utente utente utente utente utente Schema esterno Schema esterno Schema esterno Schema logico Schema interno BD 96 48

49 Viste, motivazioni Schema esterno (vale per le viste virtuali e per quelle materializzate ): ogni utente vede solo ciò che gli interessa e nel modo in cui gli interessa, senza essere distratto dal resto ciò che è autorizzato a vedere (autorizzazioni) Utilizzo di programmi esistenti su schemi ristrutturati 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 97 Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: Con la vista: Impiegato,Capo (Afferenza Direzione) Capo ( Impiegato='Rossi' (Afferenza Direzione)) Impiegato,Capo (Supervisione) Capo ( Impiegato='Rossi' ='Rossi' (Supervisione)) 98 49

50 Viste e aggiornamenti, attenzione Afferenza Direzione Impiegato Reparto Reparto Capo Rossi A A Mori Neri B B Bruni Verdi C BC Leoni Bruni Supervisione Impiegato Rossi Neri Verdi Capo Mori Bruni Leoni Vogliamo inserire, nella vista, il fatto che Lupi ha come capo Bruni 99 Viste e aggiornamenti "Aggiornare una vista significa modificare le relazioni di base in modo che la vista, "ricalcolata" rispecchi l'aggiornamento L'aggiornamento sulle relazioni di base corrispondente a quello specificato sulla vista deve essere univoco In generale però non è univoco! Ben pochi aggiornamenti sono ammissibili sulle viste

51 Viste, ridenominazione e join 101 Una convenzione per ili join È sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale,, i.e. attributi di relazioni diverse sono sempre diversi: è come se il nome della relazione fosse sempre premesso al nome dell attributo Usiamo "assegnazioni" (viste) per ridenominare le relazioni (e di conseguenza gli attributi)

52 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)))

53 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))) 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 CodiceAttore,Personaggio, SessoPersonaggio) Regista (CodiceRegista( CodiceRegista,, Cognome, Nome, Sesso, DataDiNascita,, Nazionalità) Noleggio (CodiceFilm( CodiceFilm,, Incasso1anno annovideo, Incasso1anno annodvd)

54 a. Individuare le chiavi per le relazioni introdotte. 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,, Incasso1annoVHS, Incasso1annoDVD) 107 b. Definire i possibili vincoli di integrità referenziale per le relazioni introdotte. Tra CodiceFilm di Interpretazione,Produzione e Noleggio e CodiceFilm di Film Tra CodiceAttore di Interpretazione e CodiceAttore di Attore Tra CodiceRegista di Film e CodiceRegista di Regista

55 c. 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 Nome, Cognome ( Nome, Cognome, CF CR=CR Film) CF=CF CF ( Inc1sala<Inc1DVD ) Regista Nome, Cognome, CF (Regista Produzione Inc1sala<Inc1DVD (Produzione CF=CF Noleggio) ) ) 109 c. 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 CF=CF Sesso<>S ( CF,Sesso (Artista CA=CA CF=CF ( S Sesso CA Interpretazione) CF,Sesso (Artista CA=CA Interpretazione) ))) 2. ( Titolo ( Film) - Titolo CF ( (Artista Sesso=`M` Artista) CA=CA ( Titolo ( Film) - Titolo ( Film CF=CF ( ( Film CF=CF CF ( (Artista Sesso=`F` Artista) CA=CA CA Interpretazione)))) CF=CF ( CA Interpretazione))))

56 c. 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=CF CF ( Inc1S>Costo (Produzione)) CF=CF ( CF ( Film) CF ( CA,Sesso ( Sesso=`M` (Artista)) CA=CA CA,CF (Interpretazione))) ) 111 c. Formulare in algebra relazionale le seguenti interrogazioni (4) i titoli di film con attori di sesso diverso dal sesso del personaggio che interpretano Titolo ( Film Artista )) CF=CF CA=CA Sesso SessoP ( CA Interpretazione

57 c. Formulare in algebra relazionale le seguenti interrogazioni (5) i titoli dei film prodotti negli Stati Uniti con registi e attori tutti non statunitensi Titolo ( nazionalità= USA USA (Film ) Titolo ( CF=CF CF Produzione) c. Formulare in algebra relazionale le seguenti interrogazioni (6) i titoli dei film degli anni 30 prodotti non in Germania e con registi e/o attori tedeschi Titolo ( ( Anno>1929 and Anno<1940 Nazionalita =`D` ) CF=CF ( (Film) Anno>1929 and Anno<1940 (Film) =`D`(Regista) CF ( Nazionalita =`D CF=CF CF ( Nazionalita <> ) ) =`D` (Artista Artista) CR=CR CA=CA <> D (Produzione Produzione) ) ) CA Interpretazione)

58 Estensioni dell algebra 115 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

59 Estensioni (1) Join esterno permette di trattare valori null nelle espressioni dell algebra relazionale per modellare le informazioni mancanti 117 Estensioni (2) Proiezione generalizzata F1,F2,F3 (E) F1,F2, F3 sono espressioni aritmetiche su attributi di E (che( è una qualunque espressione dell algebra algebra) ) e costanti

60 Conto Cliente Credito Andrea 6000 Andrea 4000 Maria Anna 3000 Filippo 3000 Luigi 5000 Franco 5000 Maria 6000 Andrea Anna 5000 Spese Esempio proiezione Si può scrivere ad esempio Cliente,Credito-Spese Spese(Conto) ed ottenere il seguente risultato

61 Cliente Credito- Spesa Andrea Andrea Funzioni aggregate Estensioni (3) Si possono usare nelle espressioni alcuni nomi di funzioni (operatori) che si applicano a (multi)insiemi( e producono un valore come risultato

62 Operatori aggregati sum, count, min, max sum Spese (Conto) count Cliente (Conto) max Credito (Conto) count-distinct Cliente Conto) Cliente (Conto 123 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 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

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

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

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

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

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

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. 2013-2014 Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi 1 Lezione 10 Semantica dei linguaggi

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

Fondamenti di Teoria delle Basi di Dati

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

Dettagli

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

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

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

Vincoli di Integrità Referenziale

Vincoli di Integrità Referenziale Vincoli di Integrità Referenziale In alcuni casi (corrispondenze fra relazioni) è necessario che i valori degli attributi di una relazione R 1 si trovino anche in attributi corrispondenti di un altra relazione

Dettagli

Modulo 2 Data Base 2

Modulo 2 Data Base 2 Modulo 2 Data Base 2 Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Algebra Relazionale Linguaggio procedurale,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dettagli

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

Correttezza. Esempi di TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC

Correttezza. Esempi di TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC Esempi di TRC Matricole degli studenti che hanno sostenuto matematica ma non basi di dati { t t1 ESAME, t2 CORSO ( t[matr]=t1[matr] t1[codcorso]=t2[codcorso] t2[titolo]= matematica ) ( t3 ESAME, t4 CORSO

Dettagli

Scopo Laboratorio di Informatica

Scopo Laboratorio di Informatica Corso di laurea triennale in Chimica - Laboratorio di Informatica 1 Corso di laurea triennale in Chimica - Laboratorio di Informatica 2 Scopo Laboratorio di Informatica Gestione dell informazione per la

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

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

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

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

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

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

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING

Dettagli

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

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

Modello relazionale e algebra relazionale

Modello relazionale e algebra relazionale Sistemi informativi Algebra relazionale 2007 Politecnico di Torino 1 Introduzione Definizioni Riferimenti tra relazioni Assenza di valore Vincoli d integrità Chiave primaria Vincoli di tupla e di dominio

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

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

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali Scopo Informatica Gestione dell informazione per le lauree triennali LEZIONE 9 Elaborazione di dati: Basi di dati Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione

Dettagli

Elena baralis 2007 Politecnico di Torino 1

Elena baralis 2007 Politecnico di Torino 1 e algebra relazionale Algebra relazionale 2007 Politecnico di Torino 1 e algebra relazionale Introduzione Definizioni Riferimenti tra relazioni Assenza di valore Vincoli d integrità Chiave primaria Vincoli

Dettagli

Basi di dati (database)

Basi di dati (database) Basi di dati (database) 1 Scopo Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in diversi tipi di attività Esempi: aziende, banche, anagrafi,

Dettagli

Basi di dati 8 novembre 2010 Prova parziale Compito A

Basi di dati 8 novembre 2010 Prova parziale Compito A Basi di dati 8 novembre 2010 Prova parziale Compito A Cognome: Nome: Matricola: Domanda 1 (15%) Si supponga di voler rappresentare in una base di dati relazionale le informazioni relative al calendario

Dettagli

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati 1 Informatica per laurea triennale di area non informatica LEZIONE 7 - 2 Scopo Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in diversi

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

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

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 e algebra relazionale Algebra relazionale Sistemi informativi B M B G e algebra relazionale Introduzione efinizioni Riferimenti tra relazioni Assenza di valore Chiave primaria Vincoli di tupla e di dominio

Dettagli

Progettazione logica D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/2013

Progettazione logica D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/2013 Progettazione logica D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2012/2013 Riepilogo lezioni precedenti Modello relazionale Costrutti introdotti Domini di base: caratteri, stringhe

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

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

Scopo. Informatica. Sistema informativo. Sistema informatico

Scopo. Informatica. Sistema informativo. Sistema informatico BASI DI DATI 1 BASI DI DATI 2 Scopo Informatica Elaborazione di dati: Basi di dati Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in

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

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11 Progettazione logica DOCENTE PROF. ALBERTO BELUSSI Anno accademico 2010/11 Riepilogo lezioni precedenti Modello relazionale l Costrutti introdotti 2 Domini di base: caratteri, stringhe di caratteri, interi,

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