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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 ("query") aggiornamento Linguaggi di interrogazione per basi di da6 relazionali Dichiara6vi specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come") Linguaggi di interrogazione lgebra relazionale: procedurale Calcolo relazionale: dichiara6vo (teorico) SQL (Structured Query Language): parzialmente dichiara6vo (reale) QE (Query by Example): dichiara6vo (reale) lgebra relazionale Insieme di operatori su relazioni che producono relazioni e possono essere compos6 Operatori dell'algebra relazionale unione, intersezione, differenza ridenominazione selezione proiezione join (join naturale, prodopo cartesiano, thetajoin) 1

2 Operatori insiemis6ci Unione le relazioni sono insiemi i risulta6 debbono essere relazioni è possibile applicare unione, intersezione, differenza solo a relazioni definite sugli stessi apribu6 Laureati Matricola 7274 Nome Età Verdi Laureati Quadri Quadri Matricola Matricola Nome Età Verdi Nome Verdi Età Intersezione Differenza Laureati Matricola 7274 Nome Età Verdi Quadri Matricola 9297 Nome Età Verdi Laureati Matricola Nome Età Verdi 45 Quadri Matricola Nome Verdi Età Laureati Quadri Matricola Nome Età Verdi 45 Laureati Quadri Matricola Nome Età Verdi 45 Un unione sensata ma impossibile Ridenominazione Paternità Padre damo damo bramo Figlio bele Caino Isacco Maternità Madre Eva Eva Sara Figlio bele Set Isacco operatore monadico (con un argomento) "modifica lo schema" lasciando inalterata l'istanza dell'operando Paternità Maternità?? 2

3 Paternità Padre damo damo bramo Figlio bele Caino Isacco Paternità Padre damo damo bramo Figlio bele Caino Isacco REN Genitore Padre (Paternità) Genitore Figlio damo bele damo Caino bramo Isacco REN Genitore Padre (Paternità) Genitore Padre Figlio damo bele damo Caino bramo Isacco Maternità Madre Eva Eva Sara Figlio bele Set Isacco REN Genitore Madre (Maternità) Genitore Figlio Eva bele Eva Set Sara Isacco REN Genitore Padre (Paternità) Genitore Figlio REN Genitore Padre (Paternità) damo bele damo Caino REN bramo Isacco Genitore Madre (Maternità) Genitore Figlio damo bele REN Genitore Madre (Maternità) damo Caino bramo Isacco Genitore Figlio Eva bele Eva bele Eva Set Eva Set Sara Isacco Sara Isacco Impiegati Cognome Operai Cognome Verdi Ufficio Roma Stipendio 55 Milano 64 Fabbrica Salario Monza 45 Latina 55 REN Sede, Retribuzione Ufficio, Stipendio (Impiegati) REN Sede, Retribuzione Fabbrica, Salario (Operai) Cognome Sede Retribuzione Roma 55 Milano 64 Monza 45 Verdi Latina 55 Selezione operatore monadico produce un risultato che ha lo stesso schema dell'operando con6ene un sopoinsieme delle ennuple dell'operando, quelle che soddisfano una condizione Impiegati Matricola Cognome Filiale Stipendio 7309 Roma Milano Milano Milano Napoli 64 impiega6 che guadagnano più di 50 guadagnano più di 50 e lavorano a Milano hanno lo stesso nome della filiale presso cui lavorano 3

4 Selezione, sintassi e seman6ca sintassi SEL Condizione (Operando) Condizione: espressione booleana (come quelle dei vincoli di ennupla) seman6ca il risultato con6ene le ennuple dell'operando che soddisfano la condizione impiega6 che guadagnano più di 50 Impiegati SEL Stipendio > 50 (Impiegati) Matricola Cognome Filiale Stipendio 7309 Roma Milano Milano Milano Napoli Napoli 64 SEL Stipendio > 50 (Impiegati) impiega6 che guadagnano più di 50 e lavorano a Milano impiega6 che hanno lo stesso nome della filiale presso cui lavorano SEL Impiegati Stipendio > 50 ND Filiale = 'Milano' (Impiegati) Matricola Cognome Filiale Stipendio Milano Roma Milano Milano Milano Napoli 64 SEL Stipendio > 50 ND Filiale = 'Milano' (Impiegati) Impiegati SEL Cognome = Filiale (Impiegati) Matricola Cognome Filiale Stipendio Milano Milano Roma Milano Milano Milano Napoli 64 SEL Cognome = Filiale (Impiegati) Selezione e proiezione operatori "ortogonali" selezione: decomposizione orizzontale proiezione: decomposizione ver6cale proiezione selezione 4

5 Proiezione operatore monadico produce un risultato che ha parte degli apribu6 dell'operando con6ene ennuple cui contribuiscono tupe le ennuple dell'operando Impiegati Matricola Cognome Filiale Stipendio 7309 Napoli Milano Roma Roma 64 per tuz gli impiega6: matricola e cognome cognome e filiale Proiezione, sintassi e seman6ca matricola e cognome di tuz gli impiega6 sintassi PROJ ListaPribu6 (Operando) seman6ca il risultato con6ene le ennuple openute da tupe le ennuple dell'operando ristrepe agli apribu6 nella lista Matricola Cognome Filiale Stipendio Napoli 55 Milano 64 Roma 44 Roma 64 PROJ Matricola, Cognome (Impiegati) cognome e filiale di tuz gli impiega6 Matricola Cognome Filiale Stipendio 7309 Napoli Milano Roma Roma 64 PROJ Cognome, Filiale (Impiegati) Cardinalità delle proiezioni una proiezione con6ene al più tante ennuple quante l'operando può contenerne di meno se X è una superchiave di R, allora PROJ X (R) con6ene esapamente tante ennuple quante R 5

6 Selezione e proiezione Combinando selezione e proiezione, possiamo estrarre interessan6 informazioni da una relazione matricola e cognome degli impiega6 che guadagnano più di 50 Matricola Cognome Filiale Stipendio 7309 Roma Milano Milano Milano Napoli Napoli 64 PROJ Matricola,Cognome ( SEL Stipendio > 50 (Impiegati)) Join Combinando selezione e proiezione, possiamo estrarre informazioni da una relazione non possiamo però correlare informazioni presen6 in relazioni diverse, né informazioni in ennuple diverse di una stessa relazione il join è l'operatore più interessante dell'algebra relazionale permepe di correlare da6 in relazioni diverse Prove scripe in un concorso pubblico I compi6 sono anonimi e ad ognuno è associata una busta chiusa con il nome del candidato Ciascun compito e la rela6va busta vengono contrassegna6 con uno stesso numero Mario Nicola Russo Mario ianchi Remo 1 Mario 2 Nicola Russo 3 Mario ianchi 4 Remo

7 Numero Voto Numero Numero Candidato 1 Mario 2 Nicola Russo 3 Mario ianchi 4 Remo Candidato Mario Nicola Russo Mario ianchi Remo Voto Join naturale operatore binario (generalizzabile) produce un risultato sull'unione degli apribu6 degli operandi con ennuple costruite ciascuna a par6re da una ennupla di ognuno degli operandi Join, sintassi e seman6ca R 1 (X 1 ), R 2 (X 2 ) R 1 JOIN R 2 è una relazione su X 1 X 2 { t su X 1 X 2 esistono t 1 R 1 e t 2 R 2 con t[x 1 ] =t 1 e t[x 2 ] =t 2 } ianchi ianchi ogni ennupla contribuisce al risultato: join completo Un join non completo Un join vuoto ianchi C ianchi D C ianchi 7

8 Un join completo, con n x m ennuple Cardinalità del join Il join di R 1 e R 2 con6ene un numero di ennuple compreso fra zero e il prodopo di R 1 e R 2 se il join coinvolge una chiave di R 2, allora il numero di ennuple è 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 ennuple è pari a R 1 Cardinalità del join, 2 R 1 (,), R 2 (,C) in generale 0 R 1 JOIN R 2 R 1 R 2 se è chiave in R 2 0 R 1 JOIN R 2 R 1 se è chiave in R 2 ed esiste vincolo di integrità referenziale fra (in R 1 ) e R 2 : R 1 JOIN R 2 = R 1 Join, una difficoltà ianchi C ianchi alcune ennuple non contribuiscono al risultato: vengono "tagliate fuori" Join esterno Il join esterno estende, con valori nulli, le ennuple che verrebbero tagliate fuori da un join (interno) esiste in tre versioni: sinistro, destro, completo Join esterno sinistro: man6ene tupe le ennuple del primo operando, estendendole con valori nulli, se necessario destro:... del secondo operando... completo: di entrambi gli operandi... 8

9 Impiegati ianchi Reparti C Impiegati ianchi Reparti C Impiegati JOIN LEFT Reparti ianchi NULL Impiegati JOIN RIGHT Reparti ianchi NULL C Impiegati ianchi Reparti C Impiegati JOIN FULL Reparti ianchi NULL NULL C Join e proiezioni ianchi C ianchi ianchi Impiegato ianchi Verdi Proiezioni e join ianchi Verdi ini ianchi ianchi Verdi ini ini Join e proiezioni R 1 (X 1 ), R 2 (X 2 ) PROJ X1 (R 1 JOIN R 2 ) R 1 R(X), X = X 1 X 2 (PROJ X1 (R)) JOIN (PROJ X2 (R)) R 9

10 ProdoPo cartesiano un join naturale su relazioni senza apribu6 in comune con6ene sempre un numero di ennuple pari al prodopo delle cardinalità degli operandi (le ennuple sono tupe combinabili ) Impiegati ianchi Impiegati JOIN Reparti Reparti Codice Codice ianchi ianchi Il prodopo cartesiano, in pra6ca, ha senso (quasi) solo se seguito da selezione: SEL Condizione (R 1 JOIN R 2 ) L'operazione viene chiamata theta join e indicata con R 1 JOIN Condizione R 2 Perché "theta join"? La condizione C è spesso una congiunzione (ND) di atomi di confronto 1 ϑ 2 dove ϑ è uno degli operatori di confronto (=, >, <, ) Equi join Se l'operatore di confronto nel theta join è sempre l'uguaglianza (=) allora si parla di equi join Nota: ci interessa davvero l equi join, non il theta join più generale Impiegati ianchi Reparti Codice Impiegati JOIN =Codice Reparti Codice ianchi ianchi ianchi 10

11 Join naturale ed equi join Impiegati ianchi Reparti Impiegati Reparti Impiegati JOIN Reparti Impiegati JOIN Reparti PROJ Impiegato,, ( SEL =Codice ( Impiegati JOIN REN Codice (Reparti) )) Esempi Impiegati Matricola Nome Età Stipendio ianchi Lupi Supervisione Impiegato Trovare matricola, nome, età e s6pendio degli impiega6 che guadagnano più di 40 SEL Stipendio>40 (Impiegati) Trovare matricola, nome ed età degli impiega6 che guadagnano più di 40 PROJ Matricola, Nome, Età (SEL Stipendio>40 (Impiegati)) Trovare le matricole dei capi degli impiega6 che guadagnano più di 40 PROJ (Supervisione JOIN Impiegato=Matricola (SEL Stipendio>40 (Impiegati))) 11

12 Trovare nome e s6pendio dei capi degli impiega6 che guadagnano più di 40 Trovare gli impiega6 che guadagnano più del proprio capo, mostrando matricola, nome e s6pendio dell'impiegato e del capo PROJ Nome,Stipendio ( Impiegati JOIN Matricola= PROJ (Supervisione JOIN Impiegato=Matricola (SEL Stipendio>40 (Impiegati)))) PROJ Matr,Nome,Stip,MatrC,NomeC,StipC (SEL Stipendio>StipC ( REN MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Impiegati) JOIN MatrC= (Supervisione JOIN Impiegato=Matricola Impiegati))) Trovare le matricole dei capi i cui impiega6 guadagnano tuz più di 40 PROJ (Supervisione) - PROJ (Supervisione JOIN Impiegato=Matricola (SEL Stipendio 40 (Impiegati))) Una convenzione e notazione alterna6va per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente condizioni su apribu6 con nomi uguali) Per "riconoscere" apribu6 con lo stesso nome gli premezamo il nome della relazione Usiamo "assegnazioni" (viste) per ridenominare le relazioni (e gli apribu6 solo quando serve per l'unione) Trovare gli impiega6 che guadagnano più del proprio capo, mostrando matricola, nome e s6pendio dell'impiegato e del capo PROJ Matr,Nome,Stip,MatrC,NomeC,StipC (SEL Stipendio>StipC ( REN MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Impiegati) JOIN MatrC= (Supervisione JOIN Impiegato=Matricola Impiegati))) PROJ Matr,Nome,Stip,MatrC,NomeC,StipC (SEL Stip>StipC ( REN MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Imp) JOIN MatrC= (Sup JOIN Imp=Matr Imp))) Capi := Imp PROJ Imp.Matr, Imp.Nome, Imp.Stip,Capi.Matr,Capi.Nome, Capi.Stip (SEL Imp.Stip>Capi.Stip ( Capi JOIN Capi.Matr= (Sup JOIN Imp=Imp.Matr Imp))) 12

13 Equivalenza di espressioni Due espressioni sono equivalen6 se producono lo stesso risultato qualunque sia l'istanza apuale della base di da6 L'equivalenza è importante in pra6ca perché i DMS cercano di eseguire espressioni equivalen6 a quelle date, ma meno "costose" Un'equivalenza importante Push selec6ons (se è apributo di R 2 ) SEL =10 (R 1 JOIN R 2 ) = R 1 JOIN SEL =10 ( R 2 ) Riduce in modo significa6vo la dimensione del risultato intermedio (e quindi il costo dell'operazione) Nota In questo corso, ci preoccupiamo poco dell efficienza: l obiezvo è di scrivere interrogazioni correpe e leggibili Mo6vazione: I DMS si preoccupano di scegliere le strategie realizza6ve efficien6 Selezione con valori nulli Impiegati Matricola Cognome Filiale Età 7309 Roma Milano Milano NULL SEL Età > 40 (Impiegati) la condizione atomica è vera solo per valori non nulli Un risultato non desiderabile SEL Età>30 (Persone) SEL Età 30 (Persone) Persone Perché? Perché le selezioni vengono valutate separatamente! Ma anche SEL Età>30 Età 30 (Persone) Persone Perché? Perché anche le condizioni atomiche vengono valutate separatamente! Selezione con valori nulli: soluzione SEL Età > 40 (Impiega6) la condizione atomica è vera solo per valori non nulli per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL si potrebbe usare (ma non serve) una "logica a tre valori" (vero, falso, sconosciuto) 13

14 Quindi: SEL Età>30 (Persone) SEL Età 30 (Persone) SEL Età IS NULL (Persone) = SEL Età>30 Età 30 Età IS NULL (Persone) = Persone Impiegati Matricola Cognome Filiale Età Milano Roma Milano NULL Milano NULL SEL (Età > 40) OR (Età IS NULL) (Impiegati) Viste (relazioni derivate) Rappresentazioni diverse per gli stessi da6 (schema esterno) 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 rchitepura standard (NSI/SPRC) a tre livelli per DMS utente Schema esterno utente utente Schema esterno Schema logico Schema interno utente Schema esterno utente D Viste, esempio Viste virtuali e materializzate fferenza ianchi Direzione Due 6pi di relazioni derivate: viste materializzate relazioni virtuali (o viste) una vista: Supervisione = PROJ Impiegato, (fferenza JOIN Direzione) 14

15 Viste materializzate relazioni derivate memorizzate nella base di da6 vantaggi: immediatamente disponibili per le interrogazioni svantaggi: ridondan6 appesan6scono gli aggiornamen6 sono raramente supportate dai DMS Viste virtuali relazioni virtuali (o viste): sono supportate dai DMS (tuz) una interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) Interrogazioni sulle viste Sono eseguite sos6tuendo alla vista la sua definizione: SEL ='Leoni' (Supervisione) viene eseguita come SEL ='Leoni' ( PROJ Impiegato, (fferenza JOIN Direzione)) Viste, mo6vazioni Schema esterno: ogni utente vede solo ciò che gli interessa e nel modo in cui gli interessa, senza essere distrapo dal resto ciò che e' autorizzato a vedere (autorizzazioni) Strumento di programmazione: si può semplificare la scripura di interrogazioni: espressioni complesse e sopoespressioni ripetute U6lizzo di programmi esisten6 su schemi ristrupura6 Invece: L'u6lizzo di viste non influisce sull'efficienza delle interrogazioni Viste come strumento di programmazione Trovare gli impiega6 che hanno lo stesso capo di Senza vista: PROJ Impiegato ((fferenza JOIN Direzione) JOIN REN ImpR,RepR Imp, ( SEL Impiegato='' (fferenza JOIN Direzione))) Con la vista: PROJ Impiegato (Supervisione JOIN REN ImpR,RepR Imp, ( SEL Impiegato='' (Supervisione))) Viste e aggiornamen6, apenzione fferenza Direzione Verdi C Supervisione Impiegato Verdi Vogliamo inserire, nella vista, il fapo che Lupi ha come capo ; oppure che elli ha come capo Falchi; come facciamo? 15

16 Viste e aggiornamen6 "ggiornare una vista": 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! en pochi aggionamen6 sono ammissibili sulle viste Calcolo relazionale Una famiglia di linguaggi dichiara6vi, basa6 sul calcolo dei predica6 del primo ordine Diverse versioni: calcolo relazionale su domini calcolo su ennuple con dichiarazioni di range Calcolo su domini, sintassi e seman6ca Le espressioni hanno la forma: { 1 : x 1,, k : x k f } f e' una formula (con connezvi booleani e quan6ficatori) 1 : x 1,, k : x k "target list": 1,, k apribu6 dis6n6 (anche non nella base di da6) x 1,, x k variabili dis6nte Seman6ca: il risultato e' una relazione su 1,, k che con6ene ennuple di valori per x 1,, x k che rendono vera la formula f Commen6 Differenze rispepo al calcolo dei predica6 (per chi lo conosce): simboli di predicato relazioni nella base di da6 predica6 "standard" predefini6 (=, >,...) non ci sono "simboli di funzione" interessano (quasi) solo "formule aperte" u6lizziamo notazione non posizionale ase di da6 per gli esempi Impiega6(Matricola,Nome, Età, S6pendio) Supervisione(, Impiegato) Esempio 0a Trovare matricola, nome, età e s6pendio degli impiega6 che guadagnano più di 40 SEL S6pendio>40 (Impiega6) { Matricola: m, Nome: n, Età: e, S6pendio: s Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } 16

17 Esempio 0b Trovare matricola, nome ed età di tuz gli impiega6 PROJ Matricola, Nome, Età (Impiega6) { Matricola: m, Nome: n, Età: e s (Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s)} { Matricola: m, Nome: n, Età: e Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s)} Esempio 1 Trovare matricola, nome ed età degli impiega6 che guadagnano più di 40 PROJ Matricola, Nome, Età (SEL S6pendio>40 (Impiega6)) { Matricola: m, Nome: n, Età: e Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } Esempio 2 Trovare le matricole dei capi degli impiega6 che guadagnano più di 40 PROJ (Supervisione JOIN Impiegato=Matricola (SEL S6pendio>40 (Impiega6))) { : c Supervisione(:c,Impiegato:m) Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } Esempio 3 Trovare nome e s6pendio dei capi degli impiega6 che guadagnano più di 40 PROJ NomeC,S6pC (REN MatrC,NomeC,S6pC,EtàC Matr,Nome,S6p,Età (Impiega6) JOIN MatrC= (Supervisione JOIN Impiegato=Matricola (SEL S6pendio>40 (Impiega6)))) { NomeC: nc, S6pC: sc Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 Supervisione(:c,Impiegato:m) Impiega6(Matricola:c, Nome:nc, Età:ec, S6pendio: sc) } Esempio 4 Trovare gli impiega6 che guadagnano più del rispezvo capo, mostrando matricola, nome e s6pendio di ciascuno di essi e del capo PROJ Matr,Nome,S6p,MatrC,NomeC,S6pC (SEL S6pendio>S6pC (REN MatrC,NomeC,S6pC,EtàC Matr,Nome,S6p,Età (Impiega6) JOIN MatrC= (Supervisione JOIN Impiegato=Matricola ( (Impiega6)))) { Matr: m, Nome: n, S6p: s, MatrC: c, NomeC: nc, S6pC: sc Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) Supervisione(:c,Impiegato:m) Impiega6(Matricola: c, Nome: nc, Età: ec, S6pendio: sc) s > sc} Esempio 5 Trovare matricola e nome dei capi i cui impiega6 guadagnano tuz più di 40 PROJ Matricola,Nome (Impiega6 JOIN Matricola= (PROJ (Supervisione) PROJ (Supervisione JOIN Impiegato=Matricola ( SEL S6pendio 40 (Impiega6)))) {Matricola: c, Nome: n Impiega6(Matricola: c, Nome: n, Età: e, S6pendio: s) Supervisione(:c, Impiegato:m) m'( n'( e'( s'(impiega6(matr: m', Nome: n', Età: e', S6p: s') Supervisione(:c, Impiegato:m') s' 40))))} 17

18 Quan6ficatori esistenziali o universali? Sono intercambiabili, per le leggi di De Morgan: {Matricola: c, Nome: n Impiega6(Matricola: c, Nome: n, Età: e, S6pendio: s) Supervisione(:c, Impiegato:m) m'( n'( e'( s'(impiega6(matr: m', Nome: n', Età: e', S6p: s') Supervisione(:c, Impiegato:m') s' 40))))} {Matricola: c, Nome: n Impiega6(Matricola: c, Nome: n, Età: e, S6pendio: s) Supervisione(:c, Impiegato:m) m'( n'( e'( s'( (Impiega6(Matr:m', Nome:n', Età:e', S6p:s') Supervisione(:c, Impiegato:m')) s' > 40))))} Calcolo su domini, discussione Pregi: dichiara6vità DifeZ: "verbosità": tante variabili! espressioni senza senso: { : x R(: x) } { : x, : y R(: x) } { : x, : y R(: x) y=y } queste espressioni sono "dipenden6 dal dominio" e vorremmo evitarle; nell'algebra espressioni come queste non sono formulabili: l'algebra è indipendente dal dominio Calcolo e algebra Calcolo e algebra sono "equivalen6" 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) Calcolo su ennuple con dichiarazioni di range Per superare le limitazioni del calcolo su domini: dobbiamo "ridurre" le variabili; un buon modo: una variabile per ciascuna ennupla far si' che i valori provengano dalla base di da6 Il calcolo su ennuple con dichiarazioni di range risponde ad entrambe le esigenze Calcolo su ennuple con dichiarazioni di range, sintassi Le espressioni hanno la forma: { TargetList RangeList Formula } RangeList elenca le variabili libere della Formula ognuna con il rela6vo campo di variabilità (una relazione) TargetList ha elemen6 del 6po Y: x.z (oppure x.z o anche x.*) Formula ha: atomi di confronto x. ϑ c, x. ϑ y. connezvi quan6ficatori che associano un range alle variabili x(r)(...) x(r)(...) Esempio 0a Trovare matricola, nome, età e s6pendio degli impiega6 che guadagnano più di 40 SEL S6pendio>40 (Impiega6) { Matricola: m, Nome: n, Età: e, S6pendio: s Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } { i.* i(impiega6) i.s6pendio > 40 } 18

19 Esempio 0b Trovare matricola, nome ed età di tuz gli impiega6 PROJ Matricola, Nome, Età (Impiega6) { Matricola: m, Nome: n, Età: e Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s)} { i.(matricola,nome,età) i(impiega6) } Esempio 1 Trovare matricola, nome ed età degli impiega6 che guadagnano più di 40 PROJ Matricola, Nome, Età (SEL S6pendio>40 (Impiega6)) { Matricola: m, Nome: n, Età: e Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } { i.(matricola,nome,età) i(impiega6) i.s6pendio > 40 } Esempio 2 Trovare le matricole dei capi degli impiega6 che guadagnano più di 40 { : c Supervisione(:c,Impiegato:m) Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 } { s. i(impiega6), s(supervisione) i.matricola=s.impiegato i.s6pendio > 40 } Esempio 3 Trovare nome e s6pendio dei capi degli impiega6 che guadagnano più di 40 { NomeC: nc, S6pC: sc Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) s > 40 Supervisione(:c,Impiegato:m) Impiega6(Matricola:c, Nome:nc, Età:ec, S6pendio:sc) } { NomeC,S6pC: i'.(nome,s6p) i'(impiega6), s(supervisione), i(impiega6) i'.matricola=s. i.matricola=s.impiegato i.s6pendio > 40 } Esempio 4 Esempio 5 Trovare gli impiega6 che guadagnano più del rispezvo capo, mostrando matricola, nome e s6pendio di ciascuno di essi e del capo { Matr: m, Nome: n, S6p: s, NomeC: nc, S6pC: sc Impiega6(Matricola: m, Nome: n, Età: e, S6pendio: s) Supervisione(:c,Impiegato:m) Impiega6(Matricola: c, Nome: nc, Età: ec, S6pendio: sc) s > sc} { i.(nome,matr,s6p), NomeC,MatrC,S6pC: i'.(nome,matr,s6p) i'(impiega6), s(supervisione), i(impiega6) i'.matricola=s. i.matricola=s.impiegato i.s6pendio > i'.s6pendio } Trovare matricola e nome dei capi i cui impiega6 guadagnano tuz più di 40 {Matricola: c, Nome: n Impiega6(Matricola: c, Nome: n, Età: e, S6pendio: s) Supervisione(:c, Impiegato:m) m'( n'( e'( s'(impiega6(matr: m', Nome: n', Età: e', S6p: s') Supervisione(:c, Impiegato:m') s' 40} { i.(matricola, Nome) s(supervisione), i(impiega6) i.matricola=s. ( i'(impiega6)( s'(supervisione) (s.=s'. s'.impiegato=i'.matricola i'.s6pendio 40)))} 19

20 Penzione! Il calcolo su ennuple con dichiarazioni di range non permepe di esprimere alcune interrogazioni importan6, in par6colare le unioni: R 1 () R 2 () Quale potrebbe essere il range per una variabile? Oppure due variabili? Nota: intersezione e differenza sono esprimibili Per questa ragione SQL (che è basato su questo calcolo) prevede un operatore esplicito di unione, ma non tupe le versioni prevedono intersezione e differenza Calcolo e algebra relazionale: limi6 Calcolo e algebra sono sostanzialmente equivalen6: l'insieme di interrogazioni con essi esprimibili è quindi significa6vo; il concepo è robusto Ci sono però interrogazioni interessan6 non esprimibili: calcolo di valori deriva6: possiamo solo estrarre valori, non calcolarne di nuovi; calcoli di interesse: a livello di ennupla o di singolo valore (conversioni somme, differenze, etc.) su insiemi di ennuple (somme, medie, etc.) le estensioni sono ragionevoli, le vedremo in SQL interrogazioni inerentemente ricorsive, come la chiusura transi6va Chiusura transi6va Supervisione(Impiegato, ) Per ogni impiegato, trovare tuz i superiori (cioè il capo, il capo del capo, e cosi' via) Impiegato Lupi Lupi Falchi Impiegato Lupi Superiore Lupi Falchi Falchi Chiusura transi6va, come si fa? Nell'esempio, basterebbe il join della relazione con se stessa, previa opportuna ridenominazione Ma: Impiegato Superiore Lupi Impiegato Lupi Lupi Falchi Falchi Leoni Lupi Falchi Falchi Falchi Leoni Lupi Leoni Leoni Chiusura transi6va, impossibile! Non esiste in algebra e calcolo relazionale la possibilità di esprimere l'interrogazione che, per ogni relazione binaria, ne calcoli la chiusura transi6va Per ciascuna relazione, è possibile calcolare la chiusura transi6va, ma con un'espressione ogni volta diversa: quan6 join servono? non c'è limite! 20

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. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Interpretazione delle query nidificate

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

Dettagli

SQL: "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

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

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

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo asi di dati Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2005/2006 Canale M-Z 2. Il modello relazionale 2.1 asi di dati

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

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

Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine

Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine Calcolo relazionale Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine calcolo Specifica (èla base relazionale su tuple le di proprietà molti con

Dettagli

SQL QUERY: Le interrogazioni del database

SQL QUERY: Le interrogazioni del database Appunti della lezione di Database del 20 ottobre 2016 (mattina) Studenti: D Amuri Giuseppe, De Luca Federico Professore: Mario Bochicchio SQL QUERY: Le interrogazioni del database Per effettuare un interrogazione

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

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

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

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

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

Algebra relazionale: operazioni

Algebra relazionale: operazioni Dipartimento di Elettronica ed ormazione Politecnico di Milano ormatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Algebra relazionale: operazioni Le presenti slide sono tratte dalle slide

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

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

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati

Dettagli

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia Algebra e calcolo relazionale Ripasso Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia I 4 Livelli di astrazione Le Tabelle Livello fisico (o interno)

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

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1 SQL Esempi 24/10-7/11/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

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

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

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

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (1) Interrogazioni semplici Prof. Alberto Postiglione

Dettagli

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : IL MODELLO RELAZIONALE I modelli logici dei dati Tre modelli logici tradizionali gerarchico reticolare relazionale Più recente (e

Dettagli

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Argomenti della lezione SQL Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Figlio Olga Filippo Sergio Olga Filippo Persone

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 4.2 e proiezione 1 Prerequisiti Creazione e gestione tabelle Uso ambiente SQL Concetto di schema Operazioni di algebra relazionale 2 1 Introduzione In questa Unità

Dettagli

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

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

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Sistemi di Elaborazione delle Informazioni (C.I. 15) Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Basi di dati Introduzione

Dettagli