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 PresentationTRANSCRIPT
![Page 1: Algebra relazionale (II)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/1.jpg)
Algebra relazionale (II)
![Page 2: Algebra relazionale (II)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/2.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/3.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/4.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/5.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/6.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/7.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/8.jpg)
Join completi
Cardinalità di join: Se r1r2 è completo:max(|r1|,|r2|) |r1r2| |r1|x|r2|
![Page 9: Algebra relazionale (II)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/9.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/10.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/11.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/12.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/13.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/14.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/15.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/16.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/17.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/18.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/19.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/20.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/21.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/22.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/23.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/24.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/25.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/26.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/27.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/28.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/29.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/30.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/31.jpg)
Esercitazione
Che cos’è NumeroMatricola(Studenti)?
Matricola Cognome
Nome
123456 Bruni Andrea
654321 Neri Dario
456123 Reale Carla
Studenti
![Page 32: Algebra relazionale (II)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/32.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/33.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/34.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/35.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/36.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/37.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/38.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/39.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/40.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/41.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/42.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/43.jpg)
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)](https://reader036.vdocumenti.com/reader036/viewer/2022081503/56814fe1550346895dbda8d7/html5/thumbnails/44.jpg)
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