algebra relazionale - Server users.dimi.uniud.it

ALGEBRA RELAZIONALE
Basi di dati |Algebra relazionale
3{0
Linguaggi di interrogazione
(query language)
per basi di dati relazionali
algebra relazionale
calcolo relazionale
SQL
QBE
Basi di dati |Algebra relazionale
procedurale
dichiarativo
teorico
parzialmente dichiarativo reale
dichiarativo
reale
3{1
Algebra relazionale
Insieme di operatori
su relazioni
che producono relazioni
e quindi possono essere la base per espressioni complesse
Operatori dell'algebra relazionale:
unione, intersezione, dierenza
ridenominazione
selezione
proiezione
join (join naturale, prodotto cartesiano, theta-join)
Basi di dati |Algebra relazionale
3{2
Operatori insiemistici
le relazioni sono insiemi
i risultati debbono essere relazioni
(insiemi di ennuple omogenee)
Quindi
e possibile applicare gli operatori insiemistici
(unione, intersezione, dierenza)
solo a coppie di relazioni denite sugli stessi attributi.
Basi di dati |Algebra relazionale
3{3
laureati
Matricola Cognome Eta
7274
Rossi
37
7432
Neri
39
9824
Verdi
38
quadri
Matricola Cognome Eta
9297
Neri
56
7432
Neri
39
9824
Verdi
38
laureati [ quadri
Matricola Cognome
7274
Rossi
7432
Neri
9824
Verdi
9297
Neri
Eta
37
39
38
56
Basi di dati |Algebra relazionale
laureati
Matricola Cognome Eta
7274
Rossi
37
7432
Neri
39
9824
Verdi
38
quadri
Matricola Cognome Eta
9297
Neri
56
7432
Neri
39
9824
Verdi
38
Basi di dati |Algebra relazionale
3{4
laureati \ quadri
Matricola Cognome Eta
7432
Neri
39
9824
Verdi
38
3{5
laureati
Matricola Cognome Eta
7274
Rossi
37
7432
Neri
39
9824
Verdi
38
quadri
Matricola Cognome Eta
9297
Neri
56
7432
Neri
39
9824
Verdi
38
laureati , quadri
Matricola Cognome Eta
7274
Rossi
37
Basi di dati |Algebra relazionale
paternita
Padre
Adamo
Adamo
Abramo
Abramo
3{6
Figlio
Caino
Abele
Isacco
Ismaele
maternita
Madre
Eva
Eva
Sara
Agar
Figlio
Caino
Set
Isacco
Ismaele
paternita [ maternita ??
Basi di dati |Algebra relazionale
3{7
Ridenominazione
operatore monadico (\unario")
intuitivamente, \modica lo schema" lasciando inalterata
l'istanza dell'operando
permette di superare le limitazioni imposte agli operatori
insiemistici
Basi di dati |Algebra relazionale
paternita
Padre
Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Isacco Giacobbe
Basi di dati |Algebra relazionale
3{8
Genitore Padre(paternita)
Genitore Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Isacco Giacobbe
3{9
r(X ), relazione
Y , insieme di attributi con jX j = jY j
f : X ,! Y , iniettiva (e suriettiva)
(funzione di ridenominazione)
la ridenominazione f (r) di r rispetto a f contiene le ennuple t
denite su Y tali che
esista una ennupla t0 2 r
con t0[A] = t[f (A)], per ogni A 2 X
Basi di dati |Algebra relazionale
3{10
La funzione di ridenominazione viene scritta indicando solo gli
attributi su cui e diversa dall'identita, con la notazione (in cui
l'ordinamento e signicativo):
f (A1); f (A2); : : : ; f (Ak )
A1; A2; : : : ; Ak
Esempio:
X = Padre,Figlio
Y = Genitore,Figlio
f (Padre) = Genitore
f (Figlio) = Figlio
f si indica con
Genitore
Basi di dati |Algebra relazionale
Padre
3{11
paternita
Padre
Adamo
Adamo
Abramo
Abramo
Figlio
Caino
Abele
Isacco
Ismaele
maternita
Madre
Eva
Eva
Sara
Agar
Figlio
Caino
Set
Isacco
Ismaele
Genitore Padre(paternita) [ Genitore Madre(maternita)
Genitore Figlio
Adamo Caino
Adamo Abele
Abramo Isacco
Abramo Ismaele
Eva
Caino
Eva
Set
Sara Isacco
Agar Ismaele
Basi di dati |Algebra relazionale
3{12
impiegati
Cognome Agenzia Stipendio
Rossi
Roma
45
Neri
Milano
53
operai
Cognome Fabbrica Salario
Verdi
Latina
33
Bruni
Monza
32
Sede,Retribuzione Agenzia,Stipendio(impiegati)[
Sede,Retribuzione Fabbrica,Salario(operai)
Cognome Sede Retribuzione
Rossi Roma
45
Neri Milano
53
Verdi Latina
33
Bruni Monza
32
Basi di dati |Algebra relazionale
3{13
Selezione
operatore monadico
produce un risultato che
{ ha lo stesso schema dell'operando
{ contiene un sottoinsieme delle ennuple dell'operando
produce decomposizioni \orizzontali"
Basi di dati |Algebra relazionale
impiegati
Cognome
Rossi
Neri
Verdi
Rossi
3{14
Nome
Mario
Luca
Nico
Marco
Eta
25
40
36
40
Stipendio
2.000.000
3.000.000
4.500.000
3.900.000
Eta < 30 _ Stipendio > 4.000.000(impiegati)
Cognome Nome Eta Stipendio
Rossi Mario 25 2.000.000
Verdi
Nico 36 4.500.000
il risultato di una selezione contiene le ennuple dell'operando che
soddisfano la condizione di selezione
Basi di dati |Algebra relazionale
3{15
r(X ), relazione
F formula proposizionale su X :
{ cioe formula ottenuta combinando con i connettivi logici _ (OR), ^
(AND), : (NOT),
{ atomi del tipo AB o Ac
{ con A e B attributi in X
{ c costante \compatibile" con dom(A)
{ e operatore di confronto (=, 6=, >, <, , ).
E denito un valore di verita per F su ciascuna ennupla t:
{ AB e vera su t se t[A] e in relazione con t[B]
{ Ac e vera su t se t[A] e in relazione con c
{ F1 _ F2, F1 ^ F2 e :F1 hanno l'usuale signicato
la selezione F (r) di r rispetto a F contiene le ennuple t di r su cui F e vera
Basi di dati |Algebra relazionale
3{16
Proiezione
operatore monadico
produce un risultato
{ denito su un sottoschema dell'operando
{ a cui contribuiscono tutte le ennuple dell'operando
produce decomposizioni \verticali"
r(X ), relazione
Y sottoinsieme di X
la proiezione Y (r) di r su Y e
un insieme di ennuple su Y :
Basi di dati |Algebra relazionale
f t[Y ] j t 2 r g
3{17
impiegati
Cognome
Rossi
Neri
Verdi
Rossi
Nome
Mario
Luca
Nico
Marco
Reparto Capo
Vendite De Rossi
Vendite De Rossi
Personale Lupi
Personale Lupi
Cognome Nome(impiegati)
Cognome
Nome
Rossi
Mario
Neri
Luca
Verdi
Nico
Rossi
Marco
Reparto Capo(impiegati)
Reparto
Capo
Vendite De Rossi
Personale
Lupi
Basi di dati |Algebra relazionale
3{18
il risultato di una proiezione contiene al piu tante ennuple
quante l'operando
puo contenerne di meno
Y (r) contiene lo stesso numero di ennuple di r se e solo se Y
e superchiave per r
(N.B.: questa proprieta e denita a livello di istanza, non a
livello di schema)
Basi di dati |Algebra relazionale
3{19
Join (naturale)
operatore binario (generalizzabile)
correla dati di relazioni diverse
e l'operatore piu caratteristico dell'algebra relazionale
Basi di dati |Algebra relazionale
r1 Impiegato Reparto
Rossi
vendite
Neri
produzione
Bianchi produzione
3{20
r2
Reparto Capo
produzione Mori
vendite Bruni
r11r2 Impiegato Reparto Capo
Rossi
vendite Bruni
Neri
produzione Mori
Bianchi produzione Mori
Basi di dati |Algebra relazionale
3{21
il join naturale r11r2 di r1(X1) e r2(X2) e
una relazione denita su X1X2:
f t su X1X2 j esistono t1 2 r1 e t2 2 r2
con t[X1] = t1 e t[X2] = t2g
Basi di dati |Algebra relazionale
r1 Impiegato Reparto
Rossi
vendite
Neri
produzione
Bianchi produzione
3{22
r2
Reparto Capo
produzione Mori
vendite Bruni
r11r2 Impiegato Reparto Capo
Rossi
vendite Bruni
Neri
produzione Mori
Bianchi produzione Mori
un join completo
(ogni ennupla contribuisce al risultato)
Basi di dati |Algebra relazionale
3{23
r1 Impiegato Reparto
Rossi
vendite
Neri
produzione
Bianchi produzione
r2
Reparto Capo
produzione Mori
acquisti Bruni
r11r2 Impiegato Reparto Capo
Neri
produzione Mori
Bianchi produzione Mori
un join con ennuple dangling
(non combinabili con ennuple dell'altra relaione)
Basi di dati |Algebra relazionale
3{24
r1 Impiegato Reparto
Rossi
vendite
Neri
produzione
Bianchi produzione
r2 Reparto Capo
concorsi Mori
acquisti Bruni
r11r2 Impiegato Reparto Capo
un join vuoto
Basi di dati |Algebra relazionale
3{25
r1 Impiegato Progetto
Rossi
A
Neri
A
Bianchi
A
r2 Progetto Capo
A
Mori
A
Bruni
r11r2 Impiegato Reparto Capo
Rossi
A
Mori
Neri
A
Mori
Bianchi
A
Mori
Rossi
A
Bruni
Neri
A
Bruni
Bianchi
A
Bruni
un altro join completo
(con jr1j jr2j ennuple: ogni ennupla di r1 e combinabile con tutte
le ennuple di r2 e viceversa)
Basi di dati |Algebra relazionale
3{26
il join di r1 e r2 contiene un numero di ennuple compreso fra 0
e jr1j jr2j;
se il join di r1 e r2 e completo, allora contiene almeno un
numero di ennuple pari al massimo fra jr1j e jr2j;
se X1 \ X2 contiene una chiave per r1 (per r2), allora il join di
r1(X1) e r2(X2) contiene al piu jr2j (jr1j) ennuple;
Basi di dati |Algebra relazionale
3{27
paternita
Padre
Adamo
Adamo
Abramo
Abramo
Figlio
Caino
Abele
Isacco
Ismaele
maternita
Madre
Eva
Eva
Sara
Agar
Figlio
Caino
Set
Isacco
Ismaele
paternita1maternita
Padre Figlio Madre
Adamo Caino Eva
Abramo Isacco Sara
Abramo Ismaele Agar
Basi di dati |Algebra relazionale
3{28
il join di due relazioni sugli stessi attributi e pari all'intersezione
delle due relazioni:
r1(X )1r2(X ) = r1(X ) \ r2(X )
il join naturale e denito anche fra relazioni che non hanno
attributi in comune.
In tal caso viene chiamato prodotto cartesiano.
Il prodotto cartesiano di r1 e r2 contiene sempre
jr1j jr2j ennuple.
Non si tratta del tradizionale prodotto cartesiano fra insiemi
Basi di dati |Algebra relazionale
3{29
impiegati
Impiegato Progetto
Rossi
A
Neri
A
Neri
B
progetti
Codice Nome
A Venere
B
Marte
impiegati1 progetti
Impiegato Progetto Codice Nome
Rossi
A
A Venere
Neri
A
A Venere
Neri
B
A Venere
Rossi
A
B
Marte
Neri
A
B
Marte
Neri
B
B
Marte
Basi di dati |Algebra relazionale
3{30
il join naturale e commutativo:
r11r2 = r21r1, per ogni r1 e r2
il join naturale e associativo:
r11(r21r3) = (r11r2)1r3, per ogni r1, r2, r3
E quindi possibile denire un operatore di join n-ario (attraverso
applicazioni ripetute dell'operatore binario).
Una denizione equivalente:
r1(X1)1r2(X2)1 : : : 1rn(Xn) (in breve 1ni=1ri):
f t su X1 : : : Xn j esistono t1 2 r1; : : : ; tn 2 rn;
con t[X1] = t1; : : : ; t[Xn] = tng
Dimostrazione: per induzione.
Basi di dati |Algebra relazionale
3{31
Join e proiezione: proprieta
Join e proiezione sono (quasi) inversi.
r1(X1) e r2(X2)
{ X1 (r11r2) r1
{ X1 (r11r2) = r1 e X2(r11r2) = r2 se e solo se
il join di r1 e r2 e completo
{ il join di X1 (r11r2) e X2(r11r2) e completo
r(X ); X = X1X2
{ X1 (r)1X2(r) r
{ se X1 (r)1X2(r) = r diciamo che
r si decompone senza perdita su X1 e X2
{ X1 (r)1X2(r) si decompone senza perdita su X1 e X2
Queste proprieta sono generalizzabili al join n-ario.
Basi di dati |Algebra relazionale
3{32
Theta-join
Un'operatore derivato.
Siano r1 e r2 due relazioni senza attributi in comune.
r11F r2 = F (r11r2)
Il theta-join e un prodotto cartesiano seguito da una selezione.
Se F e una congiunzione di atomi di uguaglianza, abbiamo un
equi-join.
Basi di dati |Algebra relazionale
3{33
impiegati
Impiegato Progetto
Rossi
A
Neri
A
Neri
B
progetti
Codice Nome
A Venere
B
Marte
impiegati 1Progetto=Codice progetti
Impiegato Progetto Codice Nome
Rossi
A
A Venere
Neri
A
A Venere
Neri
B
B
Marte
Basi di dati |Algebra relazionale
3{34
Espressioni ed interrogazioni
Un'interrogazione e una funzione che, applicata a istanze di base
di dati, produce istanze di relazione.
U1 insieme (innito) numerabile di attributi
(per semplicita tutti sullo stesso dominio);
U insieme di tutte le relazioni su attributi in U1
R schema di base di dati;
I (R) insieme delle istanze di R
Un'interrogazione Q e una funzione:
Q : I (R) ! U
Basi di dati |Algebra relazionale
3{35
Di solito gli attributi del risultato sono ssati.
Esiste X U1 tale che
Q : I (R) ! X
dove X e l'insieme di tutte le relazioni su X
Q(r) indica il risultato dell'applicazione di Q ad r
(puo non essere denito | Q e in generale una funzione parziale).
Basi di dati |Algebra relazionale
3{36
Le espressioni dei vari linguaggi di interrogazione (es. l'algebra
relazionale) \rappresentano" o \realizzano" interrogazioni: ogni
espressione denisce una funzione.
E (r) e il il risultato dell'applicazione di E ad r
Basi di dati |Algebra relazionale
3{37
Due espressioni (dello stesso linguaggio o di due linguaggi diversi)
sono equivalenti se rappresentano la stessa interrogazione:
E1 R E2 se E1(r) = E2(r) per ogni r 2 I (R).
E1 E2 se E1 R E2 per ogni schema R denibile su U1.
AB (A>0(R)) A>0(AB (R))
AB (R1) 1 AC (R2) R ABC (R1 1 R2)
(se R contiene R1(X1) e R2(X2) e X1 \ X2 = A)
Basi di dati |Algebra relazionale
3{38
Due linguaggi sono equivalenti se permettono di formulare le
stesse interrogazioni.
L1 e espressivo almeno quanto L2 se
per ogni espressione E2 di L2 e
per ogni schema di base di dati R
esiste un'espressione E1 di L1 tale che E1 R E2.
L1 e L2 sono equivalenti se
ognuno e espressivo almeno quanto l'altro.
Basi di dati |Algebra relazionale
3{39
In algebra relazionale, le interrogazioni su uno schema di base di
dati R vengono formlate con espressioni i cui atomi sono:
(nomi di) relazione in R (le \variabili");
relazioni costanti (che non fanno parte delle istanze di R).
Abbiamo variabili e costanti come nelle espressioni di altre algebre
note.
Basi di dati |Algebra relazionale
3{40
Relazioni costanti:
Per ogni relazione su
PERSONE(Nome,Sesso,: : :)
generare una relazione con associato agli uomini il titolo
\Signor" e alle donne \Signora".
I due valori non sono contenuti nella base di dati e gli operatori
non possono \creare" valori.
Il risultato desiderato si ottiene con:
PERSONE 1 TITOLI
dove TITOLI e una relazione costante:
TITOLI Sesso Titolo
M Signor
F Signora
Basi di dati |Algebra relazionale
3{41
p1
Nome Sesso : : :
Neri
F :::
Bianchi F : : :
Verdi
M :::
p2 Nome Sesso : : :
Rossi M : : :
Bini
F :::
p1 1 TITOLI
Nome Sesso
Neri
F
Bianchi F
Verdi
M
p2 1 TITOLI
Titolo Nome Sesso : : :
Signor Rossi M : : :
Signora Bini
F :::
Titolo
Signora
Signora
Signor
:::
:::
:::
:::
Basi di dati |Algebra relazionale
3{42
PERSONE(Nome,Eta,Reddito)
PATERNITA(Padre,Figlio)
MATERNITA(Madre,Figlio)
persone Nome Eta Reddito
Andrea 27
21
Aldo 25
15
Maria 55
42
Anna 50
35
Filippo 26
30
Luigi 50
40
Franco 60
20
Olga 30
41
Sergio 85
35
Luisa 75
87
maternita
paternita
Madre Figlio
Padre Figlio
Luisa Maria
Sergio
Franco
Luisa Luigi
Franco Andrea
Anna Olga
Franco Aldo
Anna Filippo
Luigi Olga
Maria Andrea
Luigi Filippo
Maria Aldo
Basi di dati |Algebra relazionale
3{43
\Trovare nome e reddito delle persone con meno di 30 anni"
Nome ;Reddito (Eta <30(persone ))
Nome Reddito
Andrea
21
Aldo
15
Filippo
30
Basi di dati |Algebra relazionale
3{44
\Trovare i padri di persone che guadagnano piu di venti milioni"
Padre (paternita 1Figlio=Nome (reddito >20(persone )))
Padre
Franco
Luigi
Basi di dati |Algebra relazionale
3{45
\Trovare i padri i cui gli guadagnano tutti piu di venti milioni"
Padre (paternita ) ,
,Padre (paternita 1Figlio=Nome (reddito 20(persone )))
Padre
Luigi
Basi di dati |Algebra relazionale
3{46
\Trovare le persone che guadagnano piu dei rispettivi padri,
mostrandone nomi, redditi e nomi dei rispettivi padri"
N ;R;P (R>RP ((persone 1N =F paternita )
1P =NP
(NP ;EP ;RP N;E;R(persone ))))
Nome Reddito Padre
Andrea
21 Franco
Olga
41 Luigi
Basi di dati |Algebra relazionale
3{47
Schema della base di dati di una dinastia reale:
REIGNS (Sovereign, From, To)
PERSONS (Name, Sex, Birth, Death)
FATHERHOOD (Father, Child)
MOTHERHOOD (Mother, Child)
Basi di dati |Algebra relazionale
reigns
Sovereign
James I
Charles I
Charles II
James II
Mary II
Anne
From
1603
1625
1660
1685
1688
1702
To
1625
1648
1685
1688
1694
1714
fatherhood
Father
Child
Lord Darnley
James I
James I
Elizabeth
James I
Charles I
Charles I
Charles II
Charles I
Mary
Charles I
James II
Charles I
Henrietta A.
James II
Mary II
James II
Anne
James II
James F.E.
Basi di dati |Algebra relazionale
3{48
persons
Name
Sex
James I
M
Elizabeth
F
Charles I
M
Charles II
M
Mary
F
James II
M
Henrietta A. F
Mary II
F
Anne
F
James F.E. M
motherhood
Mother
Mary Stuart
Anne of Denmark
Anne of Denmark
Henrietta Maria
Henrietta Maria
Henrietta Maria
Henrietta Maria
Anne Hyde
Anne Hyde
Mary of Modena
Birth Death
1566 1625
1590 1662
1600 1649
1630 1685
1631 1659
1633 1701
1640 1670
1662 1694
1665 1714
1686 1766
Child
James I
Elizabeth
Charles I
Charles II
Mary
James II
Henrietta A.
Mary II
Anne
James F.E.
3{49
REIGNS (Sovereign, From, To)
PERSONS (Name, Sex, Birth, Death)
FATHERHOOD (Father, Child)
MOTHERHOOD (Mother, Child)
\i sovrani che hanno regnato no alla morte"
(Name,Death
Sovn,To(REIGNS )) 1 PERSONS
Name
James I
Charles II
Mary II
Anne
Sex
M
M
F
F
Birth
1566
1633
1662
1665
From
1603
1660
1688
1702
Death
1625
1685
1694
1714
Basi di dati |Algebra relazionale
3{50
REIGNS (Sovereign, From, To)
PERSONS (Name, Sex, Birth, Death)
FATHERHOOD (Father, Child)
MOTHERHOOD (Mother, Child)
\i gli (noti alla base di dati) dei sovrani della famiglia"
Sovn, Child(REIGNS 1 (Sovn Father(FATHERHOOD) [
Sovn Mother(MOTHERHOOD))
Sovereign
Child
James I
Elizabeth
James I
Charles I
Charles I Charles II
Charles I
Mary
Charles I James II
Charles I Henrietta A.
James II
Mary II
James II
Anne
James II James F.E.
Basi di dati |Algebra relazionale
3{51