Algebra relazionale (II)

44
Algebra relazionale (II)

description

Algebra relazionale (II). Join Naturale. Numero attributi di r1  r2  somma numeri attributi di r1 e r2 Spesso join fatto su chiave di relazione Per esempio: Infrazioni( Codice ,Data,Agent,Art, Prov , Numero ) Auto( Prov , Numero ,Proprietario,Indirizzo) - PowerPoint PPT Presentation

Transcript of Algebra relazionale (II)

Page 1: Algebra relazionale (II)

Algebra relazionale (II)

Page 2: Algebra relazionale (II)

Join Naturale

Numero attributi di r1r2 somma numeri attributi di r1 e r2Spesso join fatto su chiave di relazione Per esempio:

Infrazioni(Codice,Data,Agent,Art,Prov,Numero) Auto(Prov,Numero,Proprietario,Indirizzo)

Spesso imposto vincolo di integrità referenziale tra attributi di join (per evitare che r1 faccia riferimento a valori inesistenti in r2)

Page 3: Algebra relazionale (II)

Join Naturale

Prov

Numero

Proprietario

Indirizzo

RM 2F7643 Verdi Piero v. Tigli

RM 1A2396 Verdi Piero v. Tigli

RM 4E5432 Bini Luca v. Aceri

MI 2F7643 Luci Gino v. Aceri

Auto

Codice

Data Agente

Art

Prov

Numero

143256

25/10/03

567 44 RM 4E5432

987554

26/10/03

456 34 RM 4E5432

987557

26/10/03

456 34 RM 2F7643

630876

15/10/03

456 53 MI 2F7643

539856

12/10/03

567 44 MI 2F7643

Infrazioni

Page 4: Algebra relazionale (II)

Join Naturale

Prov

Numero

Proprietario

Indirizzo

RM 2F7643 Verdi Piero v. Tigli

RM 1A2396 Verdi Piero v. Tigli

RM 4E5432 Bini Luca v. Aceri

MI 2F7643 Luci Gino v. Aceri

Auto

Codice

Data Agente

Art

Prov

Numero

143256

25/10/03

567 44 RM 4E5432

987554

26/10/03

456 34 RM 4E5432

987557

26/10/03

456 34 RM 2F7643

630876

15/10/03

456 53 MI 2F7643

539856

12/10/03

567 44 MI 2F7643

Infrazioni

Page 5: Algebra relazionale (II)

Join Naturale

Codice

Data Agente

Art

Prov

Numero

Proprietario

Indirizzo

143256

25/10/03

567 44 RM 4E5432 Bini Luca v. Aceri

987554

26/10/03

456 34 RM 4E5432 Bini Luca v. Aceri

987557

26/10/03

456 34 RM 2F7643 Verdi Piero v. Tigli

630876

15/10/03

456 53 MI 2F7643 Luci Gino v. Aceri

539856

12/10/03

567 44 MI 2F7643 Luci Gino v. Aceri

Infrazioni Auto

•Tra Infrazioni e Auto esiste vincolo integrità referenziale•{Prov,Numero} è chiave di Auto•Quindi, ogni tupla di Infrazioni è combinata esattamente conuna tupla di Auto

Page 6: Algebra relazionale (II)

Join completi

Date r1(X) e r2(Y), r1r2 è completo se e solo se, per ogni tupla t1 di r1 esiste tupla t in r1r2 tale che t[X]=t1 e analogamente per r2

Page 7: Algebra relazionale (II)

Join completi

Cardinalità di un insieme: il numero di elementi che appartengono al insieme Cardinalità di A: scritto |A|

Per esempio: |{a,b,d}|=3, ||=0

Page 8: Algebra relazionale (II)

Join completi

Cardinalità di join: Se r1r2 è completo:max(|r1|,|r2|) |r1r2| |r1|x|r2|

Page 9: Algebra relazionale (II)

Join completi

Impiegato

Progetto

Capo

Rossi P124 Mori

Neri P124 Mori

Bianchi P124 Mori

Rossi P124 Bruni

Neri P124 Bruni

Bianchi P124 Bruni

Impiegato

Progetto

Rossi P124

Neri P124

Bianchi P124

Progetto

Capo

P124 Mori

P124 Bruni

Rel1 Rel2

Rel1 Rel2

Un esempio di join con |r1|x|r2| tuple

Page 10: Algebra relazionale (II)

Join incompleti

Join incompleti hanno tuple senza corrispondenza, dette dangling tuples

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Reparto Capo

Produzione

Mori

Acquisti Bruni

Rel1 Rel2

Impiegato

Reparto Capo

Neri Produzione

Mori

Bianchi Produzione

Mori

Rel1 Rel2

Page 11: Algebra relazionale (II)

Join incompleti

Caso limite: se non ci sono tuple combinabili, risultato del join è relazione vuota (senza tuple)

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Reparto Capo

Acquisti Mori

Acquisti Bruni

Rel1 Rel2

Impiegato

Reparto CapoRel1 Rel2

Page 12: Algebra relazionale (II)

Cardinalità di join

Date r1(X) e r2(Y): 0 |r1r2| |r1|x|r2|

Se r1 r2 completo:|r1r2| max(|r1|,|r2|)

Ogni tuple di r1 combinata con almeno 1 tupla di r2 e viceversa

Page 13: Algebra relazionale (II)

Cardinalità di join

Se XY contiene chiave per r2|r1r2| |r1|

Ogni tuple di r1 combinata con al più 1 tupla di r2

Page 14: Algebra relazionale (II)

Cardinalità di join

Se XY contiene chiave per r2 e c’è vincolo di integrità referenziale fra XY in r1 e la chiave di r2

|r1r2| = |r1|Ogni tuple di r1 combinata esattamente con 1 tupla di r2

Page 15: Algebra relazionale (II)

Join esterni

Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi comuni, inserendo valori NULL in assenza di contropartiNon tralasciano tuple di operandi nel risultato

Page 16: Algebra relazionale (II)

Join esterni

Join esterno sinistro: estende solo le tuple del primo operando Aggiunge tuple di r1 senza corrispettivo in r2

Join esterno destro:estende solo le tuple del secondo operando Aggiunge tuple di r2 senza corrispettivo in r1

Join esterno completo: estende tuple di entrambi gli operandi Bilaterale

Page 17: Algebra relazionale (II)

Join esterni

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Reparto Capo

Produzione

Mori

Acquisti Bruni

Rel1 Rel2

Impiegato

Reparto Capo

Rossi Vendite NULL

Neri Produzione

Mori

Bianchi Produzione

Mori

Rel1 LEFT Rel2

Page 18: Algebra relazionale (II)

Join esterni

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Reparto Capo

Produzione

Mori

Acquisti Bruni

Rel1 Rel2

Impiegato

Reparto Capo

Neri Produzione

Mori

Bianchi Produzione

Mori

NULL Acquisti Bruni

Rel1 RIGHT Rel2

Page 19: Algebra relazionale (II)

Join esterni

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Reparto Capo

Produzione

Mori

Acquisti Bruni

Rel1 Rel2

Impiegato

Reparto Capo

Rossi Vendite NULL

Neri Produzione

Mori

Bianchi Produzione

Mori

NULL Acquisti Bruni

Rel1 FULL Rel2

Page 20: Algebra relazionale (II)

Theta-Join

Serve per fare Join su relazioni senza attributi omonimiOperatore derivato: si ottiene come prodotto cartesiano seguito da selezione di tuple che verificano condizione di uguaglianza tra valori di attributi

r1 F r2 = F(r1 r2)

Page 21: Algebra relazionale (II)

Theta-Join

Impiegato

Reparto

Rossi Vendite

Neri Produzione

Bianchi Produzione

Divisione

Capo

Vendite Bruni

Produzione

Mori

Acquisti Baldi

Rel1 Rel2

Impiegato

Reparto Divisione Capo

Rossi Vendite Vendite Bruni

Neri Produzione

Produzione

Mori

Bianchi Produzione

Produzione

Mori

Reparto=Divisione(Rel1 Rel2)

Page 22: Algebra relazionale (II)

Theta-Join ed Equi-Join

Theta-Join: r1 F r2 = F(r1 r2)Condizione di selezione F è formula proposizionale come descritto per operatore di selezioneSe F è congiunzione di uguaglianze tra attributi di r1 e attributi di r2: theta-join detto equi-join

Page 23: Algebra relazionale (II)

Theta-Join ed Equi-Join

Per esempio: Rel1(Impiegato,Reparto),

Rel2(Divisione,Capo)Reparto=Divisione(Rel1 Rel2)

Infrazioni(Codice,Data,Ag,Art,Prov,Num), Auto(Provincia,Targa,Prop,Indirizzo)

Prov=Provincia Num=Targa(Infrazioni Auto)

Page 24: Algebra relazionale (II)

Theta-Join ed Equi-Join

Theta-join e equi-join più utili di join naturale Permettono di operare su relazioni

senza attributi in comune Join naturale simulabile mediante

ridenominazione, equi-join e proiezione

Page 25: Algebra relazionale (II)

Theta-Join ed Equi-Join

Per esempio: R1(A,B,C), R2(B,C,D)R1R2 =

A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2)))

Page 26: Algebra relazionale (II)

Theta-Join ed Equi-Join

Per esempio: R1(A,B,C), R2(B,C,D)R1R2 =

A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2)))

Join naturale Equi-join

Page 27: Algebra relazionale (II)

Theta-Join ed Equi-Join

Per esempio: R1(A,B,C), R2(B,C,D)R1R2 =

A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2)))

Si ridenomina R2 affinchè abbia attributi diversi da quelli di R1Equi-join tra R1 e R2 per selezionare tuple in corrispondenzaProiezione del risultato per eliminare attributi ridondanti

Page 28: Algebra relazionale (II)

Esercitazione

Che cos’è StudentiLavoratori?

Matricola Cognome

Nome

123456 Bruni Andrea

654321 Neri Dario

456123 Reale Carla

Matricola Cognome

Nome

321654 Bianco Giovanni

654321 Neri Dario

456123 Reale Carla

Studenti

Lavoratori

Page 29: Algebra relazionale (II)

Esercitazione

Che cos’è StudentiLavoratori?

Matricola Cognome

Nome

123456 Bruni Andrea

654321 Neri Dario

456123 Reale Carla

Matricola Cognome

Nome

321654 Bianco Giovanni

654321 Neri Dario

456123 Reale Carla

Studenti

Lavoratori

Page 30: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti - Lavoratori?

Matricola Cognome

Nome

123456 Bruni Andrea

654321 Neri Dario

456123 Reale Carla

Matricola Cognome

Nome

321654 Bianco Giovanni

654321 Neri Dario

456123 Reale Carla

Studenti

Lavoratori

Page 31: Algebra relazionale (II)

Esercitazione

Che cos’è NumeroMatricola(Studenti)?

Matricola Cognome

Nome

123456 Bruni Andrea

654321 Neri Dario

456123 Reale Carla

Studenti

Page 32: Algebra relazionale (II)

Esercitazione

Che cos’è Voto>25(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 33: Algebra relazionale (II)

Esercitazione

Che cos’è Voto>25 Eta<23(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 34: Algebra relazionale (II)

Esercitazione

Che cos’è Voto>25 Eta<23(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 35: Algebra relazionale (II)

Esercitazione

Che cos’è Cognome,Nome(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 36: Algebra relazionale (II)

Esercitazione

Che cos’è Nome,Voto(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 37: Algebra relazionale (II)

Esercitazione

Che cos’è Cognome,Nome,Età,Voto(Studenti)?

Cognome

Nome Età

Voto

Bruni Dario 21 29

Neri Dario 23 29

Reale Carla 20 22

Studenti

Page 38: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti Esami (join naturale)?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Matricola

Corso Voto

123456 Psicologia 23

123456 Informatica

29

654321 Psicologia 29

456123 Psicologia 22

Esami

Page 39: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti Esami (join naturale)?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Numero Corso Voto

123456 Psicologia 23

123456 Informatica

29

654321 Psicologia 29

456123 Psicologia 22

Esami

Page 40: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti Esami (join naturale)?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Matricola

Corso Voto

654123 Psicologia 23

789456 Informatica

29

901234 Psicologia 29

876987 Psicologia 22

Esami

Page 41: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti Lavoratori (join naturale)?

Matricola Cognome

Nome

123456 Bruni Andrea

654321 Neri Dario

456123 Reale Carla

Matricola Cognome

Nome

321654 Bianco Giovanni

654321 Neri Dario

456123 Reale Carla

Studenti

Lavoratori

Page 42: Algebra relazionale (II)

Esercitazione

Studenti Esami è un join completo?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Matricola

Corso Voto

123456 Psicologia 23

123456 Informatica

29

654321 Psicologia 29

456123 Psicologia 22

Esami

Page 43: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti LEFT Esami?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Matricola

Corso Voto

987654 Psicologia 23

987654 Informatica

29

654321 Psicologia 29

456123 Psicologia 22

Esami

Page 44: Algebra relazionale (II)

Esercitazione

Che cos’è Studenti FULL Esami?

Matricola

Cognome

Nome

123456 Bruni Dario

654321 Neri Dario

456123 Reale Carla

Studenti

Matricola

Corso Voto

987654 Psicologia 23

987654 Informatica

29

654321 Psicologia 29

456123 Psicologia 22

Esami