Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
1. 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
2. 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
3. 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
4. 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 (σ NomeP = ‘Kennedy’ (PRESIDENTE) )
A.A. 2005/2006 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’ X
Nella relazione ‘ELEZIONE’
∏Anno (σ (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
5. 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
6. LINGUAGGIO DI INTERROGAZIONE
Nomi di tutti i presidenti texani che sono anche
vicepresidenti dopo il 1950.
(∏ NomeP (σ NomeStato = ‘Texas’ (PRESIDENTE) ) )
∩
(∏ VicePres (σ DataIn > 1950 (AMMINISTRAZIONE) ) )
A.A. 2005/2006 Basi di Dati e Laboratorio 11
LINGUAGGIO DI INTERROGAZIONE
Nomi delle mogli dei presidenti provenienti dalla California
eletti dopo il 1960.
∏NomeMoglie ((σ Anno > 1960 (ELEZIONE))
σ NomeStato = ‘California’ (PRESIDENTE)))
A.A. 2005/2006 Basi di Dati e Laboratorio 12
7. 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
8. 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