Sei sulla pagina 1di 54

Lalgebra relazionale

SistemiInformativiT
Versioneelettronica:03.Algebra.pdf
Algebra relazionale Sistemi Informativi T 2
Linguaggi di manipolazione (DML) per DB
Unlinguaggiodimanipolazione,o DML,permettediinterrogare e
modificareistanzediBasidiDati
Aparteilinguaggiutente,qualiSQL,esistonoaltrilinguaggi,
formalmentedefiniti,cherivestononotevoleimportanzainquanto
enfatizzanogliaspettiessenziali dellinterazioneconunDBrelazionale
Inparticolare:
Calcolo relazionale
linguaggiodichiarativobasatosullalogicadeipredicatidelprimoordine
Algebra relazionale
linguaggioproceduraleditipoalgebricoicuioperandisonorelazioni
sonoduelinguaggichesiconcentranosugliaspettidiinterrogazione:
Calcolo e algebra sono equivalenti in termini di potere espressivo (ci che
riescono a calcolare)
Lalgebra la base per capire come le interrogazioni vengono effettivamente
elaborate da un DBMS
Algebra relazionale Sistemi Informativi T 3
Algebra relazionale: premesse
Lalgebrarelazionale(AR) costituitadauninsiemedioperatori chesi
applicanoaunaopi relazioniecheproduconounarelazione
Operatori di base unari: selezione, proiezione e ridenominazione
Operatori di base binari: join (naturale), unione e differenza
pi altri derivati da questi
Lasemantica diognioperatoresidefiniscespecificando:
come lo schema (insieme di attributi) del risultato dipende dallo schema
degli operandi
come listanza risultato dipende dalle istanze in ingresso
Glioperatorisipossonocomporre,dandoluogoaespressionialgebriche
dicomplessit arbitraria
Glioperandisonoo(nomidi)relazionidelDBoespressioni(ben
formate)
Periniziare,siassumechenonsianopresentivalorinulli
Algebra relazionale Sistemi Informativi T 4
Selezione
Loperatorediselezione,,permettediselezionareunsottoinsieme
delletuplediunarelazione,applicandoaciascunadiesseuna
formulabooleanaF
Fsicomponedipredicati connessidaAND(),OR()eNOT()
Ogni predicato deltipoA c oA B,dove:
A e B sono attributi in X
c dom(A) una costante
un operatore di confronto, {=, , <, >, , }
Espressione:
F
(R)
Schema R(X) X
Istanza r

F
(r)={t|t rAND F(t)=vero}
Input Output
Algebra relazionale Sistemi Informativi T 5
Valutazione della formula F
DataunaformulaBooleanaFeunatuplat,perdeterminareseF(t)
vera siprocedecomesegue:
PerognipredicatoinF:
A c vero per t se t[A] in relazione con c
(ad es. A c vero se t[A] c)
A B vero per t se t[A] in relazione con t[B]
(ad es. A = B vero se t[A] = t[B])
PerglioperatoriBooleani, e valgonoleregoleusuali
dellalgebraBooleana
Algebra relazionale Sistemi Informativi T 6
Selezione: esempi (1)
Matricola CodCorso Voto Lode
NO
S
NO
NO
31283 729 30
29323 483 28
39654 729 30
29323 913 26
35467 913 30
NO
Esami

(Voto = 30) AND (Lode = NO)


(Esami)
Matricola CodCorso Voto Lode
NO
31283 729 30
35467 913 30
NO

(CodCorso = 729) OR (Voto = 30)


(Esami)
Matricola CodCorso Voto Lode
S
NO
31283 729 30
39654 729 30
35467 913 30
NO
Algebra relazionale Sistemi Informativi T 7
Selezione: esempi (2)
Giornata Casa Ospite GolCasa GolOspite
4 Venezia Bologna 0 1
3
1
0
5 Brescia Atalanta 3
5 Inter Bologna 0
5 Lazio Parma 0
Partite

(Giornata = 5) AND (GolCasa = GolOspite)


(Partite)

(Ospite = Bologna) AND (GolCasa < GolOspite)


(Partite)
Giornata Casa Ospite GolCasa GolOspite
3
0
5 Brescia Atalanta 3
5 Lazio Parma 0
Giornata Casa Ospite GolCasa GolOspite
4 Venezia Bologna 0 1
Algebra relazionale Sistemi Informativi T 8
Proiezione
Loperatorediproiezione,, ortogonaleallaselezione,inquanto
permettediselezionareun sottoinsiemeYdegliattributidiuna
relazione
Espressione:
Y
(R)
Schema R(X) Y
Istanza r

Y
(r)={t[Y]|t r}
Input Output
Selezione
Y XY X Y
Proiezione
Algebra relazionale Sistemi Informativi T 9
Proiezione: esempi (1)
CodCorso Titolo Docente Anno
1
1
483 Analisi Biondi
729 Analisi Neri
913 SistemiInformativi Castani 2
Corsi

CodCorso,Docente
(Corsi)
CodCorso Docente
483 Biondi
729 Neri
913 Castani

CodCorso,Anno
(Corsi)
CodCorso Anno
483 1
1
2
729
913
Algebra relazionale Sistemi Informativi T 10
Proiezione: esempi (2)
CodCorso Titolo Docente Anno
1
1
483 Analisi Biondi
729 Analisi Neri
913 SistemiInformativi Castani 2
Corsi

Titolo
(Corsi)

Docente
(Corsi)
Titolo
Analisi
SistemiInformativi
Docente
Biondi
Neri
Castani
Algebra relazionale Sistemi Informativi T 11
Proiezione: cardinalit del risultato
Ingenerale,lacardinalit di
Y
(r) minoreougualeaquelladir
(laproiezioneeliminaiduplicati)
Luguaglianza garantitaseesoloseY unasuperchiavediR(X)
Dimostrazione:
(Se) Se Y una superchiave di R(X), in ogni istanza legale r di R(X) non
esistono due tuple distinte t1 e t2 tali che t1[Y] = t2[Y]
(Solo se) Se Y non superchiave allora possibile costruire unistanza
legale r con due tuple distinte t1 e t2 tali che t1[Y] = t2[Y]. Tali tuple
collassano in una singola tupla a seguito della proiezione
Sinoticheilrisultatoammettelapossibilit chepercaso (peer
qualcheistanzar)lacardinalit nonvariancheseYnon superchiave
(es:
Docente
(Corsi))
Algebra relazionale Sistemi Informativi T 12
Join naturale
Loperatoredijoinnaturale,,combinaletuplediduerelazioni
sullabasedelluguaglianzadeivaloridegliattributicomunialledue
relazioni
CodCorso Titolo Docente Anno
1
1
483 Analisi Biondi
729 Analisi Neri
913 SistemiInformativi Castani 2
Matricola CodCorso Voto Lode
NO
S
NO
29323 483 28
39654 729 30
29323 913 26
35467 913 30 NO
Corsi Esami
Matricola CodCorso Voto Lode Titolo Docente Anno
NO Analisi
Analisi
SistemiInformativi
SistemiInformativi
S
1 Biondi
Neri
NO Castani
1
2
Castani 2 NO
29323 483 28
39654 729 30
29323 913 26
35467 913 30
Esami Corsi
Algebra relazionale Sistemi Informativi T 13
Join naturale: definizione
Ognituplachecomparenelrisultatodeljoinnaturaledir
1
er
2
,
istanzerispettivamentediR
1
(X
1
)eR
2
(X
2
), ottenutacome
combinazione(match)diunatupladir
1
conunatupladir
2
sulla
basedelluguaglianzadeivaloridegliattributicomuni(cio quelliin
X
1
X
2
)
Inoltre,loschemadelrisultato lunionedeglischemideglioperandi
Espressione: R
1
R
2
Schema R
1
(X
1
),R
2
(X
2
) X
1
X
2
Istanza r
1
,r
2
r
1
r
2
={t|t[X
1
] r
1
AND t[X
2
] r
2
}
Input Output
Algebra relazionale Sistemi Informativi T 14
Join naturale: esempi (1)
Codice Data Comandante
AZ427 21/07/2001
AZ427 23/07/2001 Rossi
TW056 21/07/2001
Bianchi
Smith
Voli
Prenotazioni
Codice Partenza Arrivo
AZ427 FCO
TW056 LAX
JFK
FCO
Linee
Codice Data Classe Cliente
21/07/2001 AnnaBini
FrancoDini
AdaCini
AZ427 21/07/2001 Business
AZ427 23/07/2001
AZ427
Economy
Economy
Codice Data Comandante Partenza Arrivo
21/07/2001 FCO
FCO
LAX
AZ427 23/07/2001 Rossi
JFK
JFK
TW056 21/07/2001 Smith FCO
AZ427 Bianchi
Voli Linee
Algebra relazionale Sistemi Informativi T 15
Join naturale: esempi (2)
Codice Data Comandante Classe Cliente
21/07/2001 Economy
Business
AZ427 23/07/2001 Rossi Economy AdaCini
AZ427 21/07/2001 Bianchi
AnnaBini
FrancoDini
AZ427 Bianchi
Voli Prenotazioni
Codice Partenza Arrivo Data
FCO 21/07/2001
21/07/2001
23/07/2001
FCO
FCO
Classe
AZ427
Cliente
Economy
Business
AZ427 JFK Economy AdaCini
AZ427 JFK
AnnaBini
FrancoDini
JFK
LInee Prenotazioni
Algebra relazionale Sistemi Informativi T 16
Join naturale: osservazioni
possibilecheunatupladiunadellerelazionioperandenonfaccia
matchconnessunatupladellaltrarelazione;intalcasotaletupla
vienedettadangling
Nelcasolimite quindipossibilecheilrisultatodeljoinsiavuoto;
allaltroestremo possibilecheognitupladir
1
sicombiniconogni
tupladir
2
Nesegueche
lacardinalit deljoin,|r
1
r
2
|, compresatra0e|r
1
|*|r
2
|
Seiljoin eseguitosuunasuperchiavediR
1
(X
1
),alloraognitupladir
2
famatchconalmassimounatupladir
1
,quindi|r
1
r
2
| |r
2
|
SeX
1
X
2
lachiaveprimariadiR
1
(X
1
)eforeignkeyinR
2
(X
2
) (equindi
c unvincolodiintegrit referenziale)allora|r
1
r
2
| =|r
2
|
Algebra relazionale Sistemi Informativi T 17
Join naturale e intersezione
Quandoleduerelazionihannolostessoschema (X
1
=X
2
)alloradue
tuplefannomatchseesolosehannolostessovalorepertuttigli
attributi,ovverosonoidentiche,percui:
SeX
1
=X
2
iljoinnaturaleequivaleallintersezione()delleduerelazioni
Codice Data
XY123 21/07/2001
SC278 28/07/2001
XX338 18/08/2001
VoliCharter
Codice Data
SC278 28/07/2001
SC315 30/07/2001
VoliNoSmoking
VoliCharter VoliNoSmoking
Codice Data
SC278 28/07/2001
Algebra relazionale Sistemi Informativi T 18
Join naturale e prodotto Cartesiano
Viceversa,quandononcisonoattributiincomune(X
1
X
2
=),
alloraduetuplefannosemprematch,percui:
SeX
1
X
2
= iljoinnaturaleequivalealprodottoCartesiano
Sinoticheinquestocaso,adifferenzadelcasomatematico,
ilprodottoCartesianonon ordinato
Codice Data
XY123 21/07/2001
SC278 28/07/2001
XX338 18/08/2001
VoliCharter
Numero Giorno
SC278 28/07/2001
SC315 30/07/2001
VoliNoSmoking
VoliCharter VoliNoSmoking
Codice Data Numero Giorno
21/07/2001 SC278
SC278
SC278
XY123 21/07/2001 SC315 30/07/2001
SC278 28/07/2001 SC315 30/07/2001
XX338 18/08/2001 SC315 30/07/2001
SC278 28/07/2001
28/07/2001
28/07/2001
XX338 18/08/2001 28/07/2001
XY123
Algebra relazionale Sistemi Informativi T 19
Unione e differenza
Poich lerelazionisonoinsiemi,sonobendefiniteleoperazionidi
unione,,edifferenza,
Entrambesiapplicanoarelazioniconlostessoinsiemediattributi
Sinotichelintersezionesipuanchescriverecome:r
1
r
2
=r
1
(r
1
r
2
)
Espressione: R
1
R
2
Schema R
1
(X),R
2
(X) X
Istanza r
1
,r
2
r
1
r
2
={t|t r
1
OR t r
2
}
Input Output
Espressione: R
1
R
2
Output Input
r
1
r
2
={t|t r
1
AND t r
2
}
r
1
,r
2
Istanza
X R
1
(X),R
2
(X) Schema
Algebra relazionale Sistemi Informativi T 20
Unione e differenza: esempi
Codice Data
XY123 21/07/2001
SC278 28/07/2001
XX338 18/08/2001
VoliCharter
Codice Data
SC278 28/07/2001
SC315 30/07/2001
VoliNoSmoking
Codice Data
XY123 21/07/2001
SC278 28/07/2001
XX338 18/08/2001
SC315 30/07/2001
VoliCharter VoliNoSmoking
VoliCharter - VoliNoSmoking
Codice Data
XY123 21/07/2001
XX338 18/08/2001
VoliNoSmoking - VoliCharter
Codice Data
SC315 30/07/2001
Algebra relazionale Sistemi Informativi T 21
Il problema dei nomi
Iljoinnaturale,lunioneeladifferenzaoperano(siapur
diversamente)sullabasedegliattributicomuniadueschemi
Codice Data
XY123 21/07/2001
SC278 28/07/2001
XX338 18/08/2001
VoliCharter
Numero Giorno
SC278 28/07/2001
SC315 30/07/2001
VoliNoSmoking
Matricola CodiceFiscale Cognome Nome DataNascita
BNCGRG78F21A
35467 RSSNNA78D13A Rossi Anna
29323 Bianchi Giorgio 21/06/1978
13/04/1978
Studenti
CF Imponibile
BNCGRG78F21A 10000
Redditi
Come si fa lunione e la differenza?
Come si fa il join?
Algebra relazionale Sistemi Informativi T 22
Ridenominazione
Loperatorediridenominazione,,modificaloschemadiuna
relazione,cambiandoinomidiunoopi attributi
Ladefinizioneformale,oltremodocomplessa,siomette; sufficiente
ricordareche
YX
(r),conrsuR(XZ),cambialoschemainYZ,
lasciandoinvariatiivaloridelletuple,echenelcasosicambipi diun
attributo,alloralordineincuisielencano significativo
Espressione:
YX
(R)
Schema R(XZ) YZ
Input Output
Ridenominazione
X Z Y Z
Algebra relazionale Sistemi Informativi T 23
Ridenominazione: esempi
Numero Giorno
SC278 28/07/2001
SC315 30/07/2001
VoliNoSmoking
CodiceFiscale Imponibile
BNCGRG78F21A 10000

CodiceFiscaleCF
(Redditi)

Codice,DataNumero,Giorno
(VoliNoSmoking)
Codice Data
SC278 28/07/2001
SC315 30/07/2001
CF Imponibile
BNCGRG78F21A 10000
Redditi
Algebra relazionale Sistemi Informativi T 24
Self-join
Laridenominazionepermettedieseguireiljoindiunarelazione con
sestessa(selfjoin)inmodosignificativo(siricordicher r=r!)
Genitore Figlio
Luca Anna
Maria Anna
Giorgio Luca
Silvia Maria
Enzo Maria
Genitori
Per trovare nonni e nipoti:
Nonno Genitore
Luca Anna
Maria Anna
Giorgio Luca
Silvia Maria
Enzo Maria

Nonno,GenitoreGenitore,Figlio
(Genitori) Genitori
Nonno Genitore Figlio
Giorgio Luca Anna
Anna
Anna
Silvia Maria
Enzo Maria

Nonno,GenitoreGenitore,Figlio
(Genitori)
poi si pu ridenominare Figlio in
Nipote e proiettare su {Nonno,Nipote}
Algebra relazionale Sistemi Informativi T 25
Operatori derivati: la divisione
GlioperatorisinoravistidefinisconocompletamentelAR.Tuttavia,per
praticit, talvoltautilericorrereadaltrioperatoriderivati,qualila
divisioneeilthetajoin
Ladivisione,,dir
1
perr
2
,conr
1
suR
1
(X
1
X
2
)er
2
suR
2
(X
2
), (ilpi
grande)insiemeditupleconschemaX
1
taleche,facendoilprodotto
Cartesianoconr
2
,cichesiottiene unarelazionecontenutainr
1
Ladivisionesipuesprimerecome:
X
1
(R
1
)
X
1
((
X
1
(R
1
) r
2
) R
1
)
Espressione: R
1
R
2
Schema R
1
(X
1
X
2
),R
2
(X
2
) X
1
Istanza r
1
,r
2
r
1
r
2
={t|{t} r
2
r
1
}
Input Output
Algebra relazionale Sistemi Informativi T 26
Divisione: esempio
Codice Data
AZ427 21/07/2001
AZ427 23/07/2001
AZ427 24/07/2001
TW056 21/07/2001
TW056 24/07/2001
TW056 25/07/2001
Voli
Codice
AZ427
TW056
Linee
Voli Linee
Data
21/07/2001
24/07/2001
(Voli Linee) Linee
Codice Data
AZ427 21/07/2001
AZ427 24/07/2001
TW056 21/07/2001
TW056 24/07/2001
La divisione trova le date con voli per tutte le linee
In generale, la divisione utile per interrogazioni di tipo universale
Algebra relazionale Sistemi Informativi T 27
Operatori derivati: il theta-join
Ilthetajoin lacombinazionediprodottoCartesianoeselezione:
r
1

F
r
2
=
F
(r
1
r
2
)
conr
1
er
2
senzaattributiincomuneeFcompostadi predicatidijoin,
ossiadeltipoA B,conA X
1
eBX
2
SeF unacongiunzionediuguaglianze,siparlapi propriamentedi
equijoin
Algebra relazionale Sistemi Informativi T 28
Theta-join: esempi
Nome CodProgetto
Rossi HK27
Verdi HAL2000
Bianchi HK27
Verdi HK28
Neri HAL2000
Ricercatori
Sigla Responsabile
HK27 Bianchi
HAL2000 Neri
HK28 Verdi
Progetti
Nome CodProgetto Sigla Responsabile
HK27 HK27
HAL2000
HK27
HK28
HAL2000
Verdi HAL2000
Bianchi
Neri
Bianchi
Verdi
Bianchi HK27
Verdi HK28
Neri HAL2000 Neri
Rossi
Ricercatori
CodProgetto=Sigla
Progetti
Ricercatori
(CodProgetto=Sigla) AND
Progetti
(Nome Responsabile)
Nome CodProgetto Sigla Responsabile
HK27 HK27
HAL2000 Verdi HAL2000
Bianchi
Neri
Rossi
Algebra relazionale Sistemi Informativi T 29
Theta-join: una precisazione
Cos come statodefinito,ilthetajoinrichiedeiningressorelazioni
conschemidisgiunti
Indiversilibriditestoelavoriscientifici(eancheneiDBMS),viceversa,
ilthetajoinaccettarelazioniconschemiarbitrari eprendeilposto
deljoinnaturale,ossia:tuttiipredicatidijoinvengonoesplicitati
Inquestocaso,pergarantirelunivocit (distinguibilit)degliattributi
nelloschemarisultato, necessarioadottaredeitrucchi (ades.usare
ilnomedellarelazione;DB2usaunsuffissonumerico:1,2,ecc.)
Nome CodProgetto
Rossi HK27
Bianchi HK27
Verdi HK28
Ric
Sigla Nome
HK27 Bianchi
HK28 Verdi
Prog
Ric
(CodProgetto=Sigla) AND
Prog
(Ric.Nome Prog.Nome)
Ric.Nome CodProgetto Sigla Prog.Nome
HK27 HK27 Bianchi Rossi
Algebra relazionale Sistemi Informativi T 30
Espressioni
GlioperatoridellARsipossonoliberamentecombinaretraloro,
avendocuradirispettareleregolestabiliteperlaloroapplicabilit
Oltreallarappresentazionelineare anchepossibile
(econveniente)adottareunarappresentazionegrafica incui
lespressione rappresentataadalbero
La valutazione procede bottom-up

Progetti

Nome = Rossi
Ricercatori

Nome = Rossi
(Ricercatori Progetti)
Algebra relazionale Sistemi Informativi T 31
Viste
Inalgebrarelazionale possibiledefiniredelleviste,chealtronon
sonocheespressioniacuivieneassegnatounnome
E quindipossibileutilizzarelevisteallinternodialtreespressioni,il
chesemplificalascritturadiespressionicomplesse
Lasintassi V:=E,incuiV ilnomedellavista

Progetti

Nome = Rossi
Ricercatori
ProgettiRossi :=
Nome = Rossi
(Ricercatori Progetti)
ProgettiRossi :=
Algebra relazionale Sistemi Informativi T 32
DB di riferimento per gli esempi
CodProg Citta
P01 Milano
P01 Bologna
P02 Bologna
Sede Responsabile Citta
S01 Biondi Milano
S02 Mori Bologna
S03 Fulvi Milano
Imp
Prog
Sedi
CodImp Nome Sede Stipendio
S01
S02
S01
E004 Gialli S03 Programmatore 1000
E005 Neri S02 Analista 2500
E006 Grigi S01 Sistemista 1100
E007 Violetti S01 Programmatore 1000
E008 Aranci S02 Programmatore 1200
2000
1500
1000
Ruolo
E001 Rossi Analista
E002 Verdi Sistemista
E003 Bianchi Programmatore
Algebra relazionale Sistemi Informativi T 33
Espressioni: esempi (1)
1) Nome, sede e stipendio degli impiegati
che guadagnano pi di 1300 Euro, definendo la
vista ImpRicchi
ImpRicchi :=
Nome,Sede,Stipendio
(
Stipendio > 1300
(Imp))
Nome Sede Stipendio
S01
S02
Neri S02 2500
2000
1500
Rossi
Verdi
ImpRicchi :=
Stipendio > 1300
(
Nome,Sede,Stipendio
(Imp))
oppure:
2) Sedi, responsabili e citt degli impiegati
che guadagnano pi di 1300 Euro

Sede,Responsabile,Citta
(Sedi (
Stipendio > 1300
(Imp)))
3) Progetti nelle citt delle sedi degli impiegati
che guadagnano pi di 1300 Euro

CodProg
(Prog (Sedi ImpRicchi))
Sede Responsabile Citta
S01 Biondi Milano
S02 Mori Bologna
CodProg
P01
P02
ImpRicchi
oppure:
Sede,Responsabile,Citta
(Sedi ImpRicchi)
Algebra relazionale Sistemi Informativi T 34
Espressioni: esempi (2)
4) Responsabili delle sedi senza sistemisti

Responsabile
(Sedi (
Sede
(Sedi) -
Sede
(
Ruolo = Sistemista
(Imp)))
Responsabile
Fulvi

Imp

Ruolo = Sistemista Sedi


Sedi

Sede

Sede
-

Responsabile
Algebra relazionale Sistemi Informativi T 35
Espressioni: esempi (3)
5) Responsabili delle sedi in cui sono presenti tutti i ruoli

Responsabile
(Sedi (
Sede,Ruolo
(Imp)
Ruolo
(Imp)))

Imp Imp
Sedi

Ruolo

Sede,Ruolo

Responsabile
Responsabile
Biondi
Mori
Algebra relazionale Sistemi Informativi T 36
Equivalenza di espressioni
Uninterrogazione suunDataBaseconschemaDBpuatuttigli
effettiesserevistacomeunafunzione cheaogniistanzadbdiDB
associaunarelazionerisultatoconundatoschema
UnespressioneEdellAR quindiunmodospecificoperesprimere
(rappresentare)talefunzione,eE(db)vieneusatoperdenotareil
risultatodellapplicazionediEallistanzadb
Pertanto,dueespressionisonotraloroequivalenti serappresentano
lastessafunzione:
DueespressioniE1edE2espressesuunDataBaseDBsidicono
equivalentirispettoaDB(E1
DB
E2)seesoloseperogniistanzadb
diDBproduconolostessorisultato,E1(db)=E2(db)
SinotichequandoE unespressionecomposta,ades.E=E
1
E
2
,
alloraE(db)=E
1
(db) E
2
(db);ilcasobase R(db)=r,incuir
listanzadellarelazioneRnellistanzadidatabasedb
Algebra relazionale Sistemi Informativi T 37
Equivalenze in/dipendenti dallo schema
InalcunicasilequivalenzanondipendedalloschemaDB specifico,
nelqualcasosiscriveE1 E2 (ossiavaleE1
DB
E2perogniDB)
Esempio: per ogni DB si ha:

AB
(
A=a
(R))
A=a
(
AB
(R))
come facile verificare (a un generico valore di dom(A))
Daltronde,lequivalenza

AB
(R
1
)
BC
(R
2
)
DB

ABC
(R
1
R
2
),
valesoloseinDB iljoinnaturalediR
1
eR
2
solosuB,comeavviene
nellespressioneasinistra
Algebra relazionale Sistemi Informativi T 38
Equivalenze: considerazioni
DueespressioniequivalentiE1edE2garantisconolostessorisultato,
macinonsignificachelasceltasiaindifferenteinterminidi
risorse necessarie
Considerazionidiquestotiposonoessenzialiinfasedi
ottimizzazione,incuilaconoscenzadelleregolediequivalenzapu
consentiredieseguiredelletrasformazionichepossonoportarea
unespressionevalutabileinmodopi efficienterispettoaquella
iniziale
Inparticolareleregolepi interessantisonoquellechepermettono
diridurrelacardinalit (eladimensione)deglioperandi equelleche
portanoaunasemplificazionedellespressione (es.:R R R se
noncisonovalorinulli,comesivedr)
Algebra relazionale Sistemi Informativi T 39
Regole di equivalenza
Traleregolebasediequivalenza,siricordanoquileseguenti:
Iljoinnaturale commutativoeassociativo:
E
1
E
2
E
2
E
1
(E
1
E
2
) E
3
E
1
(E
2
E
3
) E
1
E
2
E
3
Selezioneeproiezionesipossonoraggruppare:

F1
(
F2
(E))
F1ANDF2
(E)
Y
(
YZ
(E))
Y
(E)
Selezioneeproiezionecommutano(FsiriferiscesoloadattributiinY):

Y
(
F
(E))
F
(
Y
(E))
Pushdown dellaselezionerispettoaljoin(F sulloschemadiE
1
):

F
(E
1
E
2
)
F
(E
1
) E
2
Algebra relazionale Sistemi Informativi T 40
Push-down della selezione: dimostrazione
Atitoloesemplificativosidimostralequivalenza

F
(E
1
E
2
)
F
(E
1
) E
2
incuiFincludesolopredicatisuattributidelloschemadiE
1
Latecnicadidimostrazione(comuneancheallealtreequivalenze)consiste
nelmostrareche,perognidb,valgonoentrambeleinclusioni
[
F
(E
1
E
2
)](db) [
F
(E
1
) E
2
](db) e[
F
(E
1
) E
2
](db) [
F
(E
1
E
2
)](db)
t[
F
(E
1
E
2
)](db)t[
F
(E
1
) E
2
](db):dallapremessaseguecheF(t)
veraechet[ E
1
E
2
](db).SianoX
1
eX
2
,rispettivamente,gliattributi
nelloschemadiE
1
edE
2
.Allorat[X
1
]E
1
(db)et[X
2
]E
2
(db).Dallipotesisu
Fseguechet[X
1
][
F
(E
1
)](db),equindit[
F
(E
1
) E
2
](db)
t[
F
(E
1
) E
2
](db) t[
F
(E
1
E
2
)](db):ilragionamento analogo
Algebra relazionale Sistemi Informativi T 41
Push-down delle proiezioni
QuellocheancheiDBMSnormalmentefanno eliminareilprimapossibile
gliattributichenonservonopi
UnattributoAserve se richiestoinoutputose utilizzatodaqualche
operatorechedeveancoraessereeseguito
4) Nome e stipendi degli impiegati nelle sedi di Bologna
Sedi

Citta = Bologna
Imp

Nome,Stipendio
Sedi

Citta = Bologna
Imp

Sede

Nome,Stipendio

Nome,Stipendio,Sede
Algebra relazionale con valori nulli
Algebra relazionale Sistemi Informativi T 43
Algebra con valori nulli
Lapresenzadivalorinulli nelleistanzerichiedeunestensionedella
semanticadeglioperatori
Inoltre, utileconsiderareunaestensionedeljoinnaturalechenon
scartaletupledangling,magenera tupleconvalorinulli
Vapremessocheesistonodiversiapproccialtrattamentodeivalori
nulli,nessunodeiquali completamentesoddisfacente(perragioni
formalie/opragmatiche)
Lapprocciochequisipresenta quellotradizionale,chehail
pregiodiessereanalogoaquelloadottatoinSQL(equindidaiDBMS
relazionali)
Algebra relazionale Sistemi Informativi T 44
, e con i valori nulli
Proiezione,unioneedifferenzacontinuanoacomportarsi
usualmente,quindiduetuplesonougualianchesecisonodeiNULL
Cod Nome Ufficio
123
231
373
Rossi
435
A12
Verdi NULL
Verdi A27
Verdi NULL
Impiegati
Responsabili

Nome,Ufficio
(Impiegati)
Cod Nome Ufficio
123
NULL
Rossi
435
A12
NULL A27
Verdi NULL
Nome Ufficio
Rossi A12
Verdi NULL
Verdi A27
Impiegati Responsabili
Cod Nome Ufficio
123
231
373
435
NULL NULL
Rossi
A27
A12
Verdi NULL
Verdi A27
Verdi NULL
Algebra relazionale Sistemi Informativi T 45
con valori nulli
Perlaselezioneilproblema stabilirese,inpresenzadiNULL,un
predicato veroomenoperunadatatupla
Sicuramentelaprimatuplafapartedelrisultatoelaterzano
Malaseconda? Nonsihannoelementisufficientiperdecidere
elostessovarrebbeper
Ufficio A12
(Impiegati)!!
Cod Nome Ufficio
123
231
Rossi
373
A12
Verdi NULL
Verdi A27
Impiegati

Ufficio = A12
(Impiegati)
Algebra relazionale Sistemi Informativi T 46
Logica a tre valori
Oltreaivaloridiverit Vero(V)eFalso(F),siintroduceSconosciuto
(Unknown,?)
Unaselezioneproducelesoletuplepercuilespressionedipredicati
risultavera
PerlavorareesplicitamenteconiNULLsiintroduceloperatoredi
confrontoIS,ades.AISNULL
NOT ( A IS NULL) si scrive anche A IS NOT NULL
NOT AND V F ? OR V F ?
V F V V F ? V V V V
F V F F F F F V F ?
? ? ? ? F ? ? V ? ?
Algebra relazionale Sistemi Informativi T 47
Selezione con valori nulli: esempi
Cod Nome Ufficio
123
231
373
385 NULL
Rossi
A27
A12
Verdi NULL
Verdi A27
Impiegati

Ufficio = A12
(Impiegati)
Cod Nome Ufficio
123
373
385 NULL
Rossi
A27
A12
Verdi A27
Cod Nome Ufficio
123 A12 Rossi

(Ufficio = A12) OR (Ufficio A12)


(Impiegati)

(Ufficio = A27) AND (Nome = Verdi)


(Impiegati)
Cod Nome Ufficio
373 Verdi A27

(Ufficio = A27) OR (Nome = Verdi)


(Impiegati)
Cod Nome Ufficio
231
373
385 NULL A27
Verdi NULL
Verdi A27

Ufficio IS NULL
(Impiegati)
Cod Nome Ufficio
231 Verdi NULL

(Ufficio IS NULL) AND (Nome IS NULL)


(Impiegati)
Cod Nome Ufficio
Algebra relazionale Sistemi Informativi T 48
con valori nulli
Iljoinnaturalenoncombinaduetuplesequestehannoentrambe
valorenullosuunattributoincomune (evaloriugualisuglieventuali
altriattributicomuni)
Cod Nome Ufficio
123
231
373
Rossi
435
A12
Verdi NULL
Verdi A27
Verdi NULL
Impiegati
Ufficio Cod
A12 123
A27 NULL
NULL 231
Responsabili
Impiegati Responsabili
Cod Nome Ufficio
123 A12 Rossi
Algebra relazionale Sistemi Informativi T 49
Join intersezione con valori nulli!
Inassenzadivalorinullilintersezionedir
1
er
2
sipuesprimere
mediante il join naturale, r
1
r
2
= r
1
r
2
, oppure
sfruttando luguaglianza r
1
r
2
= r
1
(r
1
r
2
)
Inpresenzadivalorinulli,dalledefinizionidatesihache
nel primo caso il risultato non contiene tuple con valori nulli
nel secondo caso, viceversa, tali tuple compaiono nel risultato
Cod Nome Ufficio
123
231
373
Rossi
435
A12
Verdi NULL
Verdi A27
Verdi NULL
Impiegati
Responsabili
Cod Nome Ufficio
123
NULL
Rossi
435
A12
NULL A27
Verdi NULL
Impiegati - Responsabili
Cod Nome Ufficio
231 Verdi NULL
373 Verdi A27
Impiegati (Impiegati Responsabili)
Cod Nome Ufficio
123 Rossi
435
A12
Verdi NULL
Algebra relazionale Sistemi Informativi T 50
Outer join: mantenere le tuple dangling
Inalcunicasi utilecheancheletupledanglingdiunjoincompaiano
nelrisultato
Atalescoposiintroducelouterjoin (joinesterno)checompleta
convalorinulliletupledangling
Esistonotrevarianti
Left (=): solo tuple delloperando sinistro sono riempite con NULL
Right (=): idem per loperando destro
Full (==): si riempiono con NULL le tuple dangling di entrambi gli
operandi
Algebra relazionale Sistemi Informativi T 51
Outer join: esempi
Nome CodProgetto
Rossi HK27
Bianchi HK27
Verdi HK28
Ricercatori
CodProgetto Responsabile
HK27 Bianchi
HAL2000 Neri
Progetti
Ricercatori = Progetti
Ricercatori = Progetti
Ricercatori == Progetti
Nome CodProgetto Responsabile
HK27 Bianchi
Bianchi
NULL
Bianchi HK27
Verdi HK28
Rossi
Nome CodProgetto Responsabile
HK27 Bianchi
Bianchi
Neri
Bianchi HK27
NULL HAL2000
Rossi
Nome CodProgetto Responsabile
HK27 Bianchi
Bianchi
NULL
NULL HAL2000 Neri
Bianchi HK27
Verdi HK28
Rossi
Algebra relazionale Sistemi Informativi T 52
Espressioni con outer join (1)
4) Responsabili delle sedi senza sistemisti
Con louter join si pu scrivere lespressione:
Responsabile
Fulvi

Responsabile
((Sedi = (
Ruolo = Sistemista
(Imp))) -
(Sedi (
Ruolo = Sistemista
(Imp))))
Imp

Ruolo = Sistemista
Sedi Sedi
-

Responsabile
=
Imp

Ruolo = Sistemista
che per non introduce benefici rispetto alla prima versione
Algebra relazionale Sistemi Informativi T 53
Espressioni con outer join (2)
4) Responsabili delle sedi senza sistemisti
Responsabile
Fulvi
Idea: si testa il valore di un attributo di Imp che, se
la tupla di Sedi non fosse dangling, sarebbe sicuramente non nullo

Responsabile
(
CodImp IS NULL
(Sedi = (
Ruolo = Sistemista
(Imp))))
Sedi

Responsabile
=
Imp

Ruolo = Sistemista

CodImp IS NULL
Algebra relazionale Sistemi Informativi T 54
Riassumiamo:
Lalgebrarelazionale (AR) unlinguaggioperDBcostituitodauninsieme
dioperatori chesiapplicanoaunaopi relazioniecheproduconouna
relazione
Glioperatoridibase sono6:selezione, proiezione, ridenominazione,join
naturale, unione e differenza.Sullabasediquestisipossonopoidefinire
altrioperatori,qualidivisione ethetajoin
Lapresenzadivalorinulli portaaridefinirelasemanticadeljoinnaturale
eafareusodiunalogicaatrevalori (V,F,?)percalcolareilvaloredi
verit diespressionibooleaneconvalorinulli
Louterjoin (left,rightefull)permettediincluderenelrisultatoanche
tupledangling,completandoleconvalorinulli
Ingenerale,uninterrogazione sulDBpuessererappresentatainAR
mediantediverseespressioni,tuttetraloroequivalentidalpuntodivista
delrisultato,manonnecessariamentedalpuntodivistadellefficienza

Potrebbero piacerti anche