Algebra Relazionale Linguaggi per Basi di Dati

Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Linguaggi per Basi di Dati - 1
Università degli Studi di Trieste
Corso di Laurea in Informatica
Distinguiamo due classi di linguaggi per basi di dati :
Algebra Relazionale
- linguaggi di definizione, o definition data language (DDL),
utilizzati per definire gli schemi logici e le autorizzazioni per
l’accesso
- linguaggi di manipolazione dei dati, o data manipulation
language (DML), utilizzati per l’interrogazione e
l’aggiornamento delle istanze di basi di dati
D. Gubiani
marzo 2008
D. Gubiani
Algebra Relazionale
1
D. Gubiani
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Linguaggi per Basi di Dati - 2
2
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
È un linguaggio di interrogazione dei dati di tipo procedurale
basato su concetti di tipo algebrico
Inoltre, distinguiamo tra
- linguaggi dichiarativi, che specificano unicamente le proprietà
del risultato (SQL, QBE)
- linguaggi procedurali, che specificano le modalità di
generazione del risultato (algebra relazionale)
L’algebra relazionale mette a disposizione un insieme di
operatori che agiscono su relazioni producendo relazioni
(proprietà di chiusura dell’algebra relazionale, che garantisce
la composizionalità degli operatori)
Dato uno schema di base di dati R, un’interrogazione può
essere vista come una funzione che, per ogni istanza r∈R,
produce una relazione su un dato insieme di attributi
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
3
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori
4
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Operatori Insiemistici
Binarie (o insiemistiche): unione, intersezione (operazione
derivata), differenza, prodotto cartesiano
Unarie: selezione, proiezione, rinomina
Le relazioni sono insiemi: l’algebra relazionale mette a
disposizione gli operatori insiemistici (binari) di base (unione,
differenza prodotto cartesiano e intersezione)
Ogni operatore riceve in input due relazioni e restituisce in
output una relazione (eventualmente vuota)
È possibile applicare le operazioni di unione, intersezione e
differenza solo a relazioni definite sugli stessi attributi
Derivate: join (join naturale, theta-join)
È possibile applicare l’operazione di prodotto cartesiano solo a
relazioni definite su attributi diversi
D. Gubiani
Algebra Relazionale
5
D. Gubiani
Algebra Relazionale
6
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Unione
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Intersezione
r1 ∪ r2 = {t|t ∈ r1 ∨ t ∈ r2 }
r1 ∩ r2 = {t|t ∈ r1 ∧ t ∈ r2 }
Esempio. Unione laureati e quadri
Esempio. Determinare i laureati che sono anche quadri
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
7
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Differenza
8
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Prodotto Cartesiano - 1
r1 − r2 = {t|t ∈ r1 ∧ t¬ ∈ r2 }
Esempio. Determinare i laureati che non sono quadri
Operazione insiemistica
Prende in ingresso due relazioni e restituisce in uscita una
relazione che contiene tutte le possibili combinazioni di tuple
Intersezione: A ∩ B = A - (A - B)
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
9
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Prodotto Cartesiano - 2
10
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Prodotto Cartesiano - 3
Cardinalità del risultato del prodotto cartesiano:
card(risultato) = card(tabella1) × card(tabella2)
Possono sorgere conflitti fra i nomi: in tali casi occorre la
rinomina degli attributi
D. Gubiani
Algebra Relazionale
11
D. Gubiani
Algebra Relazionale
12
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Unari
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Selezione - 1
Prende in ingresso una relazione e seleziona il sottoinsieme
delle istanze che soddisfano una data condizione
Sono operatori che prendono in input una relazione (e
restituiscono in output una relazione)
Due operatori più uno:
Sintassi: σhcondizionei (r )
CONDIZIONI ELEMENTARI:
- selezione
- proiezione
- rinomina
hnome attributoihoperatore confrontoihnome attributoi
hnome attributoihoperatore confrontoihvalore costantei
CONDIZIONI COMPLESSE:
si ottengono dalle condizioni elementari utilizzando i connettivi logici
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
13
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Selezione - 2
14
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Selezione - 3
Esempio. Selezionare tutti gli impiegati che afferiscono al
dipartimento 4
σDNO=4 (Impiegato)
Grado del risultato della selezione:
grado(risultato) = grado(operando)
Cardinalità del risultato della selezione:
card(risultato) ≤ card(operando)
Indice di selettività della operazione:
card(risultato)
indice di selettività = card(operando)
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
15
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Proiezione - 1
16
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Proiezione - 2
Esempio. Determinare matricola, cognome e stipendio di
ogni impiegato
πMatricola,Cognome,Stipendio (Impiegato)
Prende in ingresso una relazione e restituisce la porzione di
tale relazione relativa al sottoinsieme di attributi specificati in
input
Sintassi: π<listaAttributi > (r)
D. Gubiani
Algebra Relazionale
17
D. Gubiani
Algebra Relazionale
18
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Proiezione - 3
Selezione e Proiezione
Selezione e proiezione
- sono operazioni complementari (ortogonali)
- possono essere eseguite in sequenza
Grado del risultato della proiezione:
grado(risultato) ≤ grado(operando)
Esempio. πMatricola,Cognome (σStipendio>50 (Impiegati))
- il caso = non è, però, significativo
Cardinalità del risultato della proiezione:
card(risultato) ≤ card(operando)
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
19
D. Gubiani
Algebra Relazionale
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Osservazione
20
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Rinomina
È spesso utile (alle volte necessario) rinominare gli attributi
Può essere utile assegnare un nome alle relazioni intermedie
Esempio. (vedi testo in precedenza)
Sintassi:
ρB1 ...Bn ←A1 ...An (r )
- r1 ← σStipendio>50 (Impiegato)
- r2 ← πMatricola,Cognome (r1 )
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Esempio.
r2 ←
ρMatr 50 Cognome50←Matricola
21
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori derivati
22
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Join
Componendo le operazioni di base, si possono ottenere nuove
operazioni (operazioni derivate):
- Join
- Divisione
- Semi-join
D. Gubiani
D. Gubiani
Cognome (πMatricola,Cognome (r1 ))
L’operatore di join permette di collegare dati contenuti in
relazioni diverse, confrontando i loro valori
Esistono due tipi fondamentali di join:
- θ-Join
- Natural-Join
Algebra Relazionale
23
D. Gubiani
Algebra Relazionale
24
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
θ-Join - 1
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
θ-Join - 2
L’operazione di θ-Join:
combinazione fra prodotto cartesiano e selezione
σhcondi (r X s) = r ./hcondi s
dove ogni condizione elementare in hcondi coinvolge un
attributo di R ed un attributo di S
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
25
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
joini
s
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Versione dell’operazione di Join in cui si confrontano tutti e
soli gli attributi con lo stesso nome
hcondizione joini ≡ hcond1 i and . . . and hcondk i dove
hcondi i = hattr . di Rihop. confrontoihattr . di Si;
Se cond1 . . . condk sono tutte condizioni di uguaglianza, il join
è detto Equi-Join
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
27
Sintassi:
R ./ S
o, equivalentemente,
R ∗S
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Osservazioni
28
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Semi-Join
In genere, nella condizione di join non viene utilizzato il
connettivo OR che può essere sostituito dall’operazione
UNION
Proiezione del risultato di un Natural-Join sugli attributi di
una relazione
L’operazione di natural-Join è ovviamente possibile solo nel
caso in cui gli attributi abbiano un nome
La relazione vuota è una relazione
L’operazione di θ-Join senza condizioni e l’operazione di
Natural-Join senza attributi con lo stesso nome degenerano
entrambe nel prodotto cartesiano
D. Gubiani
26
Natural-Join
Assumendo che r ∈ R(A1 ...An ) e s ∈ S(B1 ...Bm ), la
condizione di join hcondizione joini ha la forma:
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
θ-Join ed Equi-Join
Sintassi:
r ./hcondizione
D. Gubiani
Algebra Relazionale
29
Sintassi:
R n S ≡ πR (R ∗ S)
R o S ≡ πS (R ∗ S)
Esempio. Determinare tutti gli impiegati che lavorano ad
almeno un progetto
r ← IMPIEGATI n LAVORAINPROGETTO
con r ∈ R(Matricola,Cognome,DNum,Salario)
D. Gubiani
Algebra Relazionale
30
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Divisione - 1
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Divisione - 2
Esempio. Determinare il cognome degli impiegati che
lavorano a tutti i progetti cui lavora Rossi
Soluzione 1:
ROSSI ← σcognome=Rossi (IMPIEGATI )
R PROG ← ROSSI ∗ LAVORAINPROGETTO
R P ← πprogetto (R PROG )
IMP ← LAVORAINPROGETTO ÷ R P
R ← πcognome (IMP ∗ IMPIEGATI )
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
31
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Divisione - 3
32
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Operazioni Addizionali
Soluzione 2:
CANDIDATI ← πmatricola (IMPIEGATI )
CONDIZIONI ← CANDIDATI × R P
NO GOOD ← CONDIZIONI − LAVORAINPROGETTO
CANDIDATI CATTIVI ← πmatricola (NO GOOD)
R MATR ← CANDIDATI − CANDIDATI CATTIVI
R ← πcognome (R MATR ∗ IMPIEGATI )
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Esiste una serie di operazioni addizionali che non possono
essere ricavate dalle operazioni di base:
- Funzioni aggregate
- Join esterno
- Unione esterna
33
D. Gubiani
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Funzioni Aggregate - 1
34
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Funzioni Aggregate - 2
Esempio. Determinare il numero di impiegati dell’azienda, il
loro stipendio medio, lo stipendio massimo e l’ammontare
complessivo degli stipendi
Operano su un insieme di dati e restituiscono come risultato
un dato aggregato (una relazione contenente un solo valore)
Sintassi:
FOPERATORE
D. Gubiani
Attributo (r )
Algebra Relazionale
35
D. Gubiani
Algebra Relazionale
36
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Funzioni Aggregate - 3
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Join Esterno - 1
Si possono usare anche più funzioni aggregate:
FSUM salario, AVERAGE salario (IMPIEGATI )
Il nome dell’attributo del risultato è la combinazione
operatore attributo (è possibile la rinomina)
Consente di gestire dei casi non coperti dal Join tradizionale
Esistono tre tipi di Join esterno:
- Destro
- Sinistro
- Completo
Esiste la possibilità di eseguire preliminarmente una partizione
delle tuple in modo che la funzione venga eseguita
separatamente sugli elementi di ciascuna classe
- Esempio. Determinare il numero di impiegati per ogni
dipartimento
R1 ←DNO FCOUNT matricola (IMPIEGATI )
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
37
D. Gubiani
Algebra Relazionale
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Join Esterno - 2
38
Operatori Insiemistici
Operatori Unari
Operatori Derivati
Operazioni Addizionali
Unione Esterna
Esempio. Determinare il cognome dei dipendenti con
eventualmente i progetti a cui lavorano
R←
πCognome,Progetto (IMPIEGATI left join LAVORAINPROGETTO)
Esempio. Determinare l’unione delle relazioni
Facoltà(Nome,SSN,Dipartimento,Rank)
Studenti(Name,SSN,Dipartimento,Advisor)
R ← FacoltàUnione Esterna Studenti
dove R(Nome,SSN,Dipartimento,Rank,Advisor)
Realizza l’unione fra relazioni non compatibili rispetto
all’unione
Gli attributi non comuni assumono il valore NULL nelle tuple
per le quali non hanno un valore
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
39
Algebra Relazionale
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Equivalenza di Espressioni Algebriche
- equivalenza dipendente dallo schema
- equivalenza assoluta
Algebra Relazionale
40
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Equivalenza Dipendente dallo Schema
L’algebra relazionale permette di formulare espressioni fra loro
equivalenti
Diversi tipi di equivalenza:
D. Gubiani
D. Gubiani
E1 ≡R E2 se E1 (r ) = E2 (r ) per ogni r ∈ R
Esempio.
πA,B (R1 ) ./ πA,C (R2 )
≡R
πA,B,C (R1 ./ R2 )
Se e solo se R1 ed R2 hanno in comune il solo attributo A
41
D. Gubiani
Algebra Relazionale
42
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Equivalenza Assoluta
(Non Dipendente dallo Schema)
Ottimizzazione Algebriche - 1
L’ottimizzazione algebrica ha lo scopo di trovare
un’espressione che sia equivalente all’espressione data e possa
essere eseguita in modo più efficiente
E1 ≡ E2 se E1 ≡R E2 per ogni R
Esempio. Per qualsiasi schema R, è facile vedere che
πA,B (σA>0 (R))
D. Gubiani
≡
σA>0 (πA,B (R))
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
43
D. Gubiani
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
- il costo dell’esecuzione di un’interrogazione può essere valutato
in termini delle dimensioni dei risultati intermedi
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Le trasformazioni di equivalenza sono operazioni che
sostituiscono un’espressione con un’altra a essa equivalente
- interessanti se riducono il costo
Alcune trasformazioni:
-
In presenza di alternative equivalenti viene scelta l’espressione
con costo minore
Algebra Relazionale
44
Trasformazioni di Equivalenza
Infatti, in fase di esecuzione delle interrogazioni (specificate in
SQL) vengono tradotte in algebra relazionale e viene valutato
il costo
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Algebra Relazionale
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Ottimizzazione Algebriche - 2
D. Gubiani
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
45
atomizzazione delle selezioni
idempotenza delle proiezioni
anticipazione della selezione rispetto al join
anticipazione della proiezione rispetto al join
D. Gubiani
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Atomizzazione delle Selezioni
46
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Idempotenza delle Proiezioni
Una congiunzione di selezioni può essere sostituita da una
sequenza di selezioni atomiche
σF1 ∧F2 (E ) ≡ σF1 (σF1 (E ))
Successive applicazioni permettono di operare su condizioni
atomiche
Una proiezione può essere trasformata in una sequenza di
proiezioni che eliminano i vari attributi in varie fasi
πX (E ) ≡ πX (πX ,Y (E ))
Nota. E è un’espressione definita su un insieme di attributi che contiene X e Y .
Nota. E è una qualsiasi espressione.
D. Gubiani
Algebra Relazionale
47
D. Gubiani
Algebra Relazionale
48
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Anticipazione della Selezione Rispetto al Join
Anticipazione della selezione rispetto al join (pushing
selections down)
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Anticipazione della Proiezione Rispetto al
Join
Anticipazione della proiezione rispetto al join (pushing
projections down)
σF (E1 ./ E2 ) ≡ E1 ./ σF (E2 )
πX1 ,Y2 (E1 ./ E2 ) ≡ E 1 ./ πY2 (E2 )
Nota. Con E1 è definita su X1 , E2 è definita su X2 , Y2 ⊆ X2 e (X1 ∩ X2 ) ⊆ Y2
(gli attributi di X2 Y2 non sono coinvolti nel join).
Combinata con l’idempotenza delle proiezioni, permette di
eliminare subito da ciascuna relazione gli attributi che non
compaiono nel risultato e non sono coinvolti nel join
Nota. Se la condizione F coinvolge solo attributi della sottoespressione E2 .
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
49
D. Gubiani
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Altre Trasformazioni di Equivalenza - 1
Inglobamento di una selezione in un prodotto cartesiano
σF (E1 × E2 ) ≡ E1 ./F E2
50
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Altre Trasformazioni di Equivalenza - 2
Trasformazioni basate sulla corrispondenza tra operatori
insiemistici e selezioni complesse:
σF1 ∨F2 (R) ≡ σF1 (R) ∪ σF2 (R)
σF1 ∧F2 (R) ≡ σF1 (R) ∩ σF2 (R) ≡ σF1 (R) ./ σF2 (R)
σF1 ∧¬(F2 ) (R) ≡ σF1 (R) − σF2 (R)
Distributività della selezione rispetto all’unione
σF (E1 ∪ E2 ) ≡ σF (E1 ) ∪ σF (E2 )
Distributività della selezione rispetto alla differenza
σF (E1 − E2 ) ≡ σF (E1 ) − σF (E2 )
Proprietà distributiva del join rispetto all’unione
E ./ (E1 ∪ E2 ) ≡ (E ./ E1 ) ∪ (E ./ E2 )
Distributività della proiezione rispetto all’unione
πX (E1 ∪ E2 ) ≡ πX (E1 ) ∪ πX (E2 )
Osservazione. La proiezione non è distributiva rispetto alla differenza.
D. Gubiani
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
51
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Algebra Relazionale
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Esempio - 1
52
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Esempio - 2
Soluzione non ottimizzata:
πdNome (σmatricola=manager ∧stipendio>80000 (IMPIEGATO ./
DIPARTIMENTO))
Esempio. Dato lo schema
{DIPARTIMENTO(dNumero, dNome, manager),
IMPIEGATO(matricola, nome, cognome, dip, stipendio)},
trovare i nomi dei dipartimenti il cui manager guadagna più di
80000 euro.
D. Gubiani
D. Gubiani
Algebra Relazionale
Si può riscrivere come:
πdNome (σmatricola=manager (σstipendio>80000 (IMPIEGATO ./
DIPARTIMENTO)))
53
D. Gubiani
Algebra Relazionale
54
Introduzione
Algebra Relazionale
Ottimizzazione Algebrica
Equivalenza di Espressioni Algebriche
Trasformazioni di Equivalenza
Esempio
Esempio - 3
Si può riscrivere come:
πdNome (σstipendio>80000 (IMPIEGATO) ./matricola=manager
DIPARTIMENTO)
Si può riscrivere come:
πdNome (πmatricola (σstipendio>80000 (IMPIEGATO)) ./matricola=manager
DIPARTIMENTO)
D. Gubiani
Algebra Relazionale
55