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