Corso di Basi di Dati e Laboratorio
ALGEBRA RELAZIONALE
(trasformazione di espressioni algebriche)
Prof. Silvana Castano
A.A. 2005/2006
Basi di Dati e Laboratorio
1
EQUIVALENZA DI ESPRESSIONI
ALGEBRICHE
• L’algebra permette di formulare espressioni fra loro
equivalenti (che producono lo stesso risultato)
• Le interrogazioni SQL sono tradotte in algebra e si valuta
il costo in termini di dimensioni dei risultati intermedi; la
scelta fra varie alternative equivalenti e’ per quella a
costo minore
• In questo contesto vengono utilizzate delle trasformazioni
di equivalenza, cioè operazioni che sostituiscono
un’espressione con un’altra equivalente
• Sono di interesse le trasformazioni che riducono le
dimensioni dei risultati intermedi e quelle che
preparatorie a ciò
A.A. 2005/2006
Basi di Dati e Laboratorio
2
1
REGOLE DI TRASFORMAZIONE
• Atomizzazione delle selezioni
σ C1 ∧ C2 (R) = σ C1 (σ C2 (R))
Una selezione congiuntiva può essere sostituita
da una serie di selezioni atomiche (preliminare
ad altre)
• Commutatività di σ
σ C1 (σ C2 (R)) = σ C2 (σ C1 (R))
• Idempotenza delle proiezioni
∏ X (R) = ∏ X (∏ XY (R))
cascata di proiezioni che eliminano i vari attributi
in fasi diverse (preliminare ad altre)
A.A. 2005/2006
Basi di Dati e Laboratorio
3
REGOLE DI TRASFORMAZIONE
• Anticipazione della selezione rispetto al join
σ C (R S) = ( σ C (R)) S
la condizione C coinvolge solo attributi di R
• Conversione di una sequenza (σ, X ) in un join
σ C (R X S) = R
CS
se la condizione C corrisponde a una condizione di join.
A.A. 2005/2006
Basi di Dati e Laboratorio
4
2
REGOLE DI TRASFORMAZIONE
• Anticipazione della proiezione rispetto al join
R e S definite su X1 e X2 rispettivamente; J1 e J2
denotano rispettivamente gli attributi di R e S coinvolti
nella condizione di join C; Y1= (X1 ∩ Y) e Y2= (X2 ∩ Y).
Se C coinvolge solo attributi inclusi in Y (J1 ∪ J2 ⊆ Y)
∏ Y (R
C S) = (∏ Y1 (R))
C (∏ Y2 ( S))
Se C coinvolge ulteriori attributi non inclusi in Y, allora
∏ Y (R
C S) = ∏ Y (( ∏ Y1J1 (R))
C ( ∏ Y2J2 ( S)))
In sintesi, si possono eliminare subito gli attributi di
ciascuna relazione che non sono coinvolti nel join e non
sono utilizzati nella lista degli attributi della proiezione.
A.A. 2005/2006
Basi di Dati e Laboratorio
5
GENERAZIONE SCHEMA RELAZIONALE
PRESIDENTE STATI UNITI
PRESIDENTE(NomeP, DataN, DataM, Partito, NomeMoglie,NomeStato)
CONGRESSO(NumCong, %S/R,%S/D,%C/R, %C/D)
AMMINISTRAZIONE(NumAmm, DataIn, VicePres, NomeP, DataN)
ELEZIONE(Anno, NomePerd, VotiPerd, PartitoPerd, VotiVinc,
NomeP,DataN)
STATO(NomeStato, #Abit, #Votanti, NumAmm)
PARTECIPA(NomeP, DataN, NumCong)
(N.B. le chiavi primarie sono sottolineate; le chiavi esterne hanno lo
stesso nome delle corrispondenti chiavi primarie)
A.A. 2005/2006
Basi di Dati e Laboratorio
6
3
LINGUAGGIO DI INTERROGAZIONE
• Trovare lo stato di provenienza del
presidente Kennedy.
– Input : Nome del presidente.
– Output: Stato del presidente.
Nella stessa relazione ‘PRESIDENTE’
• Input : Selezione
• σ NomeP = ‘Kennedy’ (PRESIDENTE)
• Output: Proiezione
• ∏ NomeStato (σ
A.A. 2005/2006
NomeP = ‘Kennedy’
(PRESIDENTE) )
Basi di Dati e Laboratorio
7
LINGUAGGIO DI INTERROGAZIONE
Trovare gli anni in cui è stato eletto un presidente
repubblicano dell’Illinois.
Input : Partito e stato del presidente.
Output: anno di elezione.
Nella relazione ‘PRESIDENTE’
Nella relazione ‘ELEZIONE’
∏Anno (σ
X
(PRESIDENTE X ELEZIONE))
(PRESIDENTE.Partito = ‘Repubblicano’ ∧
PRESIDENTE.NomeStato = ‘Illinois’ ∧
ELEZIONE.NomeP = PRESIDENTE.NomeP ∧
ELEZIONE.DataN = PRESIDENTE.DataN)
A.A. 2005/2006
Basi di Dati e Laboratorio
8
4
USO DI TRASFORMAZIONI
• ∏ Anno (σ
(PRESIDENTE X ELEZIONE))
(PRESIDENTE.Partito = ‘Repubblicano’ ∧
PRESIDENTE.NomeStato = ‘Illinois’ ∧
ELEZIONE.NomeP = PRESIDENTE.NomeP ∧
ELEZIONE.DataN = PRESIDENTE.DataN)
• ∏ Anno (σ
(PRESIDENTE
ELEZIONE))
(PRESIDENTE.Partito = ‘Repubblicano’ ∧
PRESIDENTE.NomeStato = ‘Illinois’)
A.A. 2005/2006
Basi di Dati e Laboratorio
9
USO DI TRASFORMAZIONI
Spinta delle selezioni in basso
∏ Anno ((σ (PRESIDENTE ) ) ELEZIONE)
PRESIDENTE.Partito = ‘Repubblicano’ ∧
PRESIDENTE.NomeStato = ‘Illinois’
Proiezione solo sugli attributi di interesse
∏ Anno ((∏ NomeP,DataN (σ (PRESIDENTE) ))
PRESIDENTE.Partito = ‘Repubblicano’ ∧
PRESIDENTE.NomeStato = ‘Illinois’
(∏ NomeP,DataN,Anno (ELEZIONE)))
A.A. 2005/2006
Basi di Dati e Laboratorio
10
5
LINGUAGGIO DI INTERROGAZIONE
Nomi di tutti i presidenti texani che sono anche
vicepresidenti dopo il 1950.
(∏ NomeP (σ NomeStato = ‘Texas’ (PRESIDENTE) ) )
(∏ VicePres (σ
∩
DataIn > 1950
A.A. 2005/2006
(AMMINISTRAZIONE) ) )
Basi di Dati e Laboratorio
11
LINGUAGGIO DI INTERROGAZIONE
Nomi delle mogli dei presidenti provenienti dalla California
eletti dopo il 1960.
∏NomeMoglie ((σ
A.A. 2005/2006
Anno > 1960
(ELEZIONE))
σ NomeStato = ‘California’ (PRESIDENTE)))
Basi di Dati e Laboratorio
12
6
LINGUAGGIO DI INTERROGAZIONE
Nomi di persone che hanno partecipato a elezioni
presidenziali.
(∏ NomeP (PRESIDENTE))
U
(∏NomePerd (ELEZIONE))
A.A. 2005/2006
Basi di Dati e Laboratorio
13
LINGUAGGIO DI INTERROGAZIONE
Data di morte del presidente dell’anno in cui la California fu
ammessa negli Stati Uniti.
∏ DataM ((σ NomeStato = ‘California’ (STATO))
(AMMINISTRAZIONE)
(PRESIDENTE))
A.A. 2005/2006
Basi di Dati e Laboratorio
14
7
LINGUAGGIO DI INTERROGAZIONE
Percentuale dei repubblicani al Senato e alla Camera dei
congressi tenuti da presidenti repubblicani eletti dopo il
1945.
∏ %S/R, %C/R (CONGRESSO
PARTECIPA
(σ Partito = ‘Repubblicano’ (PRESIDENTE))
(σ Anno > 1945 (ELEZIONE)))
A.A. 2005/2006
Basi di Dati e Laboratorio
15
8