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