Sei sulla pagina 1di 23

Elaborazione Automatica dei Dati

ALGEBRA RELAZIONALE

Enrico Cavalli

Anno Accademico 2012-2013

Operazioni nel Modello Relazionale


Algebra Relazionale

• Le operazioni dell’algebra relazionale permettono di manipolare


tabelle per estrarre informazioni. Un’operazione relazionale agisce su
una o più tabelle e genera una nuova tabella

– Operazioni che estraggono righe o colonne di una tabella:


Selezione, Proiezione
– Operazioni che combinano righe di differenti tabelle:
Prodotto Cartesiano, Join
– Operazioni insiemistiche:
Unione, Intersezione, Differenza
– Operazioni che modificano il nome di una o più colonne:
Ridenominazione

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 3

Proiezione e Selezione
Proiezione e Selezione
• Proiezione e Selezione agiscono “ortogonalmente” sulle tabelle
– Proiezione: estrae colonne da una tabella
– Selezione: estrae righe da una tabella

R Matricola
Matricola Cognome
Cognome Età
Età
σP R
274 Rossi 37 Matricola
Matricola Cognome
Cognome Età
Età
274 Rossi 37
357
357 Bianchi
Bianchi 35
35 274 Rossi 37
274 Rossi 37
444
444 Rosa
Rosa 38
38 357 Bianchi 35
357 Bianchi 35
297
297 Gialli
Gialli 56
56 444 Rosa 38
444 Rosa 38
432
432 Neri
Neri 39
39 824 Verdi 38
824 Verdi 38
824
824 Verdi
Verdi 38
38

πLR
Cognome
Cognome Età
Età
Rossi
Rossi 37
37
Bianchi
Bianchi 35
35
Rosa
Rosa 38
38
Gialli
Gialli 56
56
Neri
Neri 39
39
Verdi
Verdi 38
38
Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 5

Proiezione (1)

πElencoAttributi R
R Matricola
Matricola Cognome
Cognome Nome
Nome Facoltà
Facoltà
545
545 Rossi
Rossi Maria
Maria Eco
Eco
653
653 Neri
Neri Anna
Anna Eco
Eco
768
768 Verdi
Verdi Giuseppe
Giuseppe Ing
Ing
834
834 Rossi
Rossi Maria
Maria Mat
Mat
314
314 Cavour
Cavour Benso
Benso Ling
Ling

πCognome, Facoltà R πCognome R


Cognome
Cognome Facoltà
Facoltà Cognome
Cognome
Rossi
Rossi Eco
Eco Rossi
Rossi
Neri Eco Neri Una proiezione può
Neri Eco Neri cambiare la cardinalità
Verdi
Verdi Ing
Ing Verdi
Verdi
Rossi Mat Cavour di una relazione
Rossi Mat Cavour
Cavour
Cavour Ling
Ling

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 6


Proiezione (2)

πElencoAttributi R

R Matricola
Matricola Cognome
Cognome Nome
Nome Facoltà
Facoltà
545
545 Rossi
Rossi Maria
Maria Eco
Eco
653
653 Neri
Neri Anna
Anna Eco
Eco
768
768 Verdi
Verdi Giuseppe
Giuseppe Ing
Ing
834
834 Rossi
Rossi Maria
Maria Mat
Mat
314
314 Cavour
Cavour Benso
Benso Ling
Ling

πNome,Cognome, Matricola Facoltà R


Nome Cognome Matricola Facoltà Con le proiezioni
Nome Cognome Matricola Facoltà
è possibile
Maria
Maria Rossi
Rossi 545
545 Eco
Eco modificare l’ordine
Anna
Anna Neri
Neri 653
653 Eco
Eco delle colonne
Giuseppe
Giuseppe Verdi
Verdi 768
768 Ing
Ing
Maria
Maria Rossi
Rossi 834
834 Mat
Mat
Benso
Benso Cavour
Cavour 314
314 Ling
Ling

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 7

Selezione

σCondizione di Selezione R
R Matricola
Matricola Cognome
Cognome Età
Età
σEtà < 39 R
274
274 Rossi
Rossi 37
37
357 Bianchi 35 Matricola
Matricola Cognome
Cognome Età
Età
357 Bianchi 35
444 Rosa 38 274
274 Rossi
Rossi 37
37
444 Rosa 38
297 Gialli 56 357
357 Bianchi
Bianchi 35
35
297 Gialli 56
432 Neri 39 444
444 Rosa
Rosa 38
38
432 Neri 39
824
824 Verdi
Verdi 38
38 824
824 Verdi
Verdi 38
38

• Le operazioni possono essere combinate per costruire espressioni complesse

Cognome Matricola

πCognome, Matricola(σEtà < 39 R)


Cognome Matricola
Rossi 274
Rossi 274
Bianchi 297
Bianchi 297
Rosa 432
Rosa 432
Verdi 824
Verdi 824

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 8


Osservazioni

• Cardinalità (Numerosità delle righe)


– Proiezione
– Selezione

• Grado (Numerosità delle colonne)


– Proiezione
– Selezione

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 9

Esercizi

Costruire le seguenti interrogazioni:

• In relazione alla tabella: Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ), elencare le
contravvenzioni elevate dall’agente con matricola 457. L’elenco conterrà Data, Articolo violato e
targa dell’auto multata.
• In relazione alla tabella: Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ), elencare le
contravvenzioni elevate nei confronti dei milanesi nel corso del 2004. L’elenco conterrà Articolo
violato e Agente che ha elevato la contravvenzione.
• Data la relazione: Studenti ( Matricola, Cognome, Nome, DataNascita, CodiceFiscale ), elencare
gli studenti che hanno più di 23 anni (Si ipotizza che: DataNascita contenga il solo anno e che
l’interrogazione venga effettuata nel 2011).
• Data la relazione: Prestiti ( NomeAgenzia, NumeroPrestito, NomeCliente, Importo ), elencare le
agenzie che hanno concesso prestiti di importo superiore a 50000 euro.
• Data la relazione: Depositi ( NomeAgenzia, NumeroDeposito, NomeCliente, Importo ), elencare i
clienti dell’agenzia “Città Alta” che hanno un deposito superiore a 100.000 euro.
• Data la relazione: Dettaglio ( Num, Qta, Descrizione, Importo ), che descrive le voci che
compaiono nel conto di un ristorante, elencare le righe dove compaiono dei caffe’.

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 10


Prodotto Cartesiano e Join

Prodotto Cartesiano

R x S combina le righe di R con le righe di S in tutti i modi possibili

R Impiegato
Impiegato Reparto
Reparto S Reparto
Reparto Capo
Capo
Rossi
Rossi Vendite
Vendite Produzione
Produzione Mori
Mori
Neri
Neri Produzione
Produzione Vendite
Vendite Chiari
Chiari
Bianchi
Bianchi Produzione
Produzione Acquisti
Acquisti Bruni
Bruni

RxS
Impiegato
Impiegato R.Reparto
R.Reparto S.Reparto
S.Reparto Capo
Capo
Rossi
Rossi Vendite
Vendite Produzione
Produzione Mori
Mori
Rossi
Rossi Vendite
Vendite Vendite
Vendite Chiari
Chiari
Rossi Vendite Acquisti Bruni Il Prodotto
Rossi Vendite Acquisti Bruni
Neri Produzione Produzione Mori Cartesiano genera
Neri Produzione Produzione Mori
Neri
Neri Produzione
Produzione Vendite
Vendite Chiari
Chiari
tabelle prive di
Neri
Neri Produzione
Produzione Acquisti
Acquisti Bruni
Bruni valore informativo
Bianchi
Bianchi Produzione
Produzione Produzione
Produzione Mori
Mori
Bianchi
Bianchi Produzione
Produzione Vendite
Vendite Chiari
Chiari
Bianchi
Bianchi Produzione
Produzione Acquisti
Acquisti Bruni
Bruni

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 12


Theta Join (1)

R PS≡ σP ( R x S )
R Impiegato
Impiegato Reparto
Reparto S Reparto
Reparto Capo
Capo
Rossi Vendite Produzione
Produzione Mori
Mori
Rossi Vendite
Vendite
Vendite Chiari
Chiari
Neri
Neri Produzione
Produzione Acquisti
Acquisti Bruni
Bruni
Bianchi
Bianchi Produzione
Produzione
Verdi
Verdi Ricerca
Ricerca

R R.Reparto = S.Reparto S
Impiegato R.Reparto S.Reparto Capo Un Theta Join dove
Impiegato R.Reparto S.Reparto Capo P è l’uguaglianza
Rossi
Rossi Vendite
Vendite Vendite
Vendite Chiari
Chiari tra attributi di R ed S
Neri
Neri Produzione
Produzione Produzione
Produzione Mori
Mori si chiama EQUI -
Bianchi
Bianchi Produzione
Produzione Produzione
Produzione Mori
Mori JOIN

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 13

Theta Join (2)

R PS≡ σP ( R x S ) In un Theta Join può


comparire qualsiasi tipo
di condizione
R A B C S B C D
1 2 3 2 3 4
6 7 8 2 3 5 R×S
9 7 8 7 8 10 A R.B R.C S.B S.C D
1 2 3 2 3 4
R A<D S 6 7 8 2 3 4

A R.B R.C S.B S.C D 9 7 8 2 3 4

1 2 3 2 3 4 1 2 3 2 3 5
6 7 8 2 3 5
1 2 3 2 3 5
9 7 8 2 3 5
1 2 3 7 8 10
1 2 3 7 8 10
6 7 8 7 8 10
6 7 8 7 8 10
9 7 8 7 8 10 9 7 8 7 8 10

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 14


Equi Join

R PS≡ σP ( R x S ) Gli Equi Join sono la


quasi totalità dei join
effettivamente utilizzati
R A B C
S B C D
1 2 3 2 3 4
6 7 8 2 3 5 R×S
9 7 8 7 8 10 A R.B R.C S.B S.C D
1 2 3 2 3 4
R R.B = S.B AND R.C = S.C S 6 7 8 2 3 4
9 7 8 2 3 4
A R.B R.C S.B S.C D
1 2 3 2 3 5
1 2 3 2 3 4 6 7 8 2 3 5

1 2 3 2 3 5 9 7 8 2 3 5
1 2 3 7 8 10
9 7 8 7 8 10
6 7 8 7 8 10
6 7 8 7 8 10 9 7 8 7 8 10

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 15

Join Naturale (1)

R S Il Join Naturale è un Equi Join


su tutti gli attributi comuni di R
R A B C S B C D ed S, con eliminazione delle
1 2 3 2 3 4 colonne duplicate. Dal punto di
6 7 8 vista informativo Equi Join e Join
2 3 5
Naturale si equivalgono
9 7 8 7 8 10

R R.B = S.B AND R.C = S.C S R S


A R.B R.C S.B S.C D A B C D

1 2 3 2 3 4 1 2 3 4

1 2 3 5
1 2 3 2 3 5
9 7 8 10
9 7 8 7 8 10
6 7 8 10
6 7 8 7 8 10

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 16


Join Naturale (2)

R S
• Il Join Naturale tra R ed S è un Equi Join sull’insieme degli attributi
comuni di R ed S con una proiezione che elimina le colonne duplicate

R Impiegato
Impiegato Reparto
Reparto S Reparto
Reparto Capo
Capo
Rossi Vendite Produzione
Produzione Mori
Mori
Rossi Vendite
Vendite
Vendite Chiari
Chiari
Neri
Neri Produzione
Produzione Acquisti
Acquisti Bruni
Bruni
Bianchi
Bianchi Produzione
Produzione
Verdi
Verdi Ricerca
Ricerca

Il Join Naturale (come l’Equi


Join) tra R ed S estende
R S alcune righe di R con
Impiegato
Impiegato
Impiegato
Impiegato Reparto
Reparto
Reparto
Reparto Capo
Capo attributi prelevati da S.
Rossi
Rossi Vendite
Vendite Chiari Nell’estensione si perdono
Rossi
Rossi Vendite
Vendite Chiari
Neri
Neri Produzione
Produzione Mori informazioni: vedi ultima riga
Neri
Neri Produzione
Produzione Mori
Bianchi
Bianchi Produzione
Produzione Mori di R e di S
Bianchi
Bianchi Produzione
Produzione Mori

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 17

Osservazioni

• Se R ed S non hanno attributi con lo stesso nome la condizione di


uguaglianza tra attributi è banalmente soddisfatta per ogni coppia di
righe ed il Join Naturale degenera nel Prodotto Cartesiano

• Se R ed S hanno le medesime colonne il Join Naturale diventa


l’intersezione: R ∩ S

• Se nel Join Naturale tra R ed S compaiono tutte le tuple di R e tutte


le tuple di S esso si dice completo

• T= R S
– grado(T) ≤ grado(R) + grado(S)
– 0 ≤ cardinalità(T) ≤ cardinalità(R) x cardinalità(S)

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 18


Altre operazioni

Operazioni insiemistiche (1)

• L’ Unione di due relazioni, R ∪ S, contiene le righe presenti in R


oppure in S:
– R ∪ S = { t | t ∈ R ∨ t ∈ S}
• L’Intersezione di due relazioni, R ∩ S, contiene le righe presenti
sia in R che in S:
– R ∩ S = { t | t ∈ R ∧ t ∈ S}
• La differenza di due relazioni, R - S, contiene le righe di R che
non sono presenti in S:
– R - S = { t | t ∈ R ∧ t ∉ S}
– R-S≠S-R Queste operazioni non sono
illimitatamente possibili: le

– R∩S=R-(R-S)
tabelle devono poter essere
componibili con operazioni
insiemistiche

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 20


Operazioni insiemistiche (2)
• Le due tabelle devono avere schemi con attributi identici e nel medesimo
ordine. In altre parole: le righe delle tabelle devono essere omogenee, per
contenuti, in modo che le operazioni abbiano senso

Laureati Dirigenti
Matricola Cognome Età Matricola
Matricola Cognome
Cognome Età
Età
Matricola Cognome Età
274 Rossi 37 297
297 Gialli
Gialli 56
56
274 Rossi 37
432 Neri 39 432
432 Neri
Neri 39
39
432 Neri 39
824 Verdi 38 824
824 Verdi
Verdi 38
38
824 Verdi 38

Laureati ∪ Dirigenti Laureati ∩ Dirigenti


Matricola Cognome Età Matricola
Matricola Cognome
Cognome Età
Età
Matricola Cognome Età
274 Rossi 37 432
432 Neri
Neri 39
39
274 Rossi 37
297 Gialli 56 824
824 Verdi
Verdi 38
38
297 Gialli 56
432
432 Neri
Neri 39
39
824
824 Verdi
Verdi 38
38

Laureati - Dirigenti Dirigenti - Laureati


Matricola
Matricola Cognome
Cognome Età
Età Matricola
Matricola Cognome
Cognome Età
Età
274 Rossi 37 297
297 Gialli
Gialli 56
56
274 Rossi 37

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 21

Ridenominazione

ρNew  Old,.., New  Old R

Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo Caino Eva
Eva Caino
Caino
Adamo Caino
Adamo Abele Eva
Eva Set
Set
Adamo Abele
Abramo Isacco Sara
Sara Isacco
Isacco
Abramo Isacco
Abramo Ismaele Agar
Agar Ismaele
Ismaele
Abramo Ismaele

T1 = ρGenitore  PadrePaternità T2 = ρGenitore  MadreMaternità


Genitore
Genitore Figlio
Figlio Genitore
Genitore Figlio
Figlio
Adamo
Adamo Caino
Caino Eva
Eva Caino
Caino
Adamo
Adamo Abele
Abele Eva
Eva Set
Set
Abramo
Abramo Isacco
Isacco T1 e T2 possono Sara
Sara Isacco
Isacco
Abramo
Abramo Ismaele
Ismaele essere manipolate Agar
Agar Ismaele
Ismaele
con le operazioni
di unione,
intersezione e
differenza
Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 22
Esercizi
• Date le tabelle Maternità e Paternità:
Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo Caino Eva
Eva Caino
Caino
Adamo Caino
Adamo Abele Eva
Eva Set
Set
Adamo Abele
Abramo Isacco Sara
Sara Isacco
Isacco
Abramo Isacco
Abramo Ismaele Agar
Agar Ismaele
Ismaele
Abramo Ismaele

Costruire e interpretare le seguenti espressioni:

FA = πFiglio σPadre = “Adamo” Paternità


FE = πFiglio σMadre = “Eva” Maternità

FE – FA; FA – FE

FA ∩ FE; FA ∪ FE

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 23

Interrogazioni
Esempi di interrogazioni (1)

Studenti ( Matricola, Cognome, Nome, DataNascita )


Esami ( Matricola, Voto, Data, CodiceCorso )
Corsi ( CodiceCorso, NomeCorso, Docente )

1. Elencare gli esami in archivio con tutti i campi di Esami integrati con
NomeCorso e Docente.

Esami Corsi

2. Elencare gli esami in archivio con tutti i campi di Esami integrati con
Cognome, Nome e DataNascita dello studente.
Esami Studenti

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 25

Esempi di interrogazioni (2)


Studenti ( Matricola, Cognome, Nome, DataNascita )
Esami ( Matricola, Voto, Data, CodiceCorso )
Corsi ( CodiceCorso, NomeCorso, Docente )

3. Elencare gli esami in archivio con tutti i campi di Esami integrati con
NomeCorso, Docente e Cognome, Nome e DataNascita dello studente.
Studenti Esami Corsi

4. Elenco degli esami in archivio con tutti i campi di Esami integrati con
Nome Corso e Docente, per i soli corsi che hanno come docente “Cavalli”.
Esami Esami.CodiceCorso = Corsi.CodiceCorso ( σ Docente = “Cavalli” Corsi)

5. Elencare gli esami in archivio con tutti i campi di Esami integrati con
Cognome, Nome e DataNascita dello studente per studenti con numero di
matricola superiore a 2500.
Esami Esami.Matricola = Studenti.Matricola ( σ Matricola > 2500 Studenti)

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 26


Esempi di interrogazioni (3)
Studenti ( Matricola, Cognome, Nome, DataNascita )
Esami ( Matricola, Voto, Data, CodiceCorso )
Corsi ( CodiceCorso, NomeCorso, Docente )

6. Elencare gli studenti (con: Matricola, Cognome, e Nome ) che hanno


superato esami nel corso del 2011
π Matricola,Cognome,Nome (( σ Data>=1-1-2011 AND Data<.. AND Voto>17Esami ) Studenti )

7. Elencare gli esami (con: Voto, Data e NomeCorso ) superati da Gianni


Brambilla nel corso del 2012
πVoto, Data, NomeCorso ( (σData >=1-1-2012 AND . . .AND Voto>=18Esami ) Corsi
(σNome = “Gianni” AND Cognome = “Brambilla” Studenti ) )

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 27

Esempi di interrogazioni (4)


Studenti ( Matricola, Cognome, Nome, DataNascita )
Esami ( Matricola, Voto, Data, CodiceCorso )
Corsi ( CodiceCorso, NomeCorso, Docente )

8. Elencare gli studenti (con Nome, Cognome, Matricola) che hanno superato
uno o più esami con il professor Lorenzi con votazione superiore a 26
πNome, Cognome, Matricola ( ( σVoto>26Esami ) Studenti
(σDocente=“Lorenzi”Corsi ) )

9. Elencare gli esami (con: Voto, Data e NomeCorso ) superati da Giuseppe


Garibaldi
π Voto, Data, NomeCorso ( ( σ
Nome=“Giuseppe” AND Cognome = “Garibaldi” Studenti )

( σVoto>=18Esami) Corsi ) )

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 28


Esempi di interrogazioni (5)
Studenti ( Matricola, Cognome, Nome, DataNascita )
Esami ( Matricola, Voto, Data, CodiceCorso )
Corsi ( CodiceCorso, NomeCorso, Docente )

10. Elencare i corsi che hanno come docente il professor Lucca


πCodiceCorso, NomeCorso (σDocente = “Lucca” Corsi )

11. Elencare gli studenti che hanno superato uno o più esami con voto = 30
π Matricola,Cognome,Nome ( ( σ Voto = 30 Esami ) Studenti )

12. Elencare gli esami non superati (con NomeCorso, Matricola, Nome e
Cognome dello studente )
π NomeCorso, Matricola, Cognome, Nome ( σ
( Voto < 18 Esami )
Corsi Studenti )

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 29

Albero di espressione
R ( Matricola, Cognome, Nome, Età ) Elencare i dipendenti minori di 39 anni che
S ( Matricola, Sede ) lavorano nella sede di Bergamo

πCognome, Matricola

Prima di scrivere
un’espressione
relazionale può essere
utile rappresentarla
mediante il suo albero di σEtà < 39 σSede = ‘Bergamo’
espressione

R S
πCognome, Matricola((σEtà < 39 R) (σSede = ‘Bergamo’S ))
Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 30
Rappresentazione “a passi”

• Un modo comodo per costruire l’espressione relazionale consiste nel


rappresentare l’interrogazione come un insieme di passi. Ad esempio:
R( Matricola, Cognome, Nome, Età )
S( Matricola, Sede )
Elencare i dipendenti minori di 39 anni che lavorano a Bergamo

1. σP R T1 = Selezione di R per Età < 39

2. σP S T2 = Selezione di S per Sede = ‘Bergamo’


3. T1 T2 T3 = Congiunzione di T1 e T2 su Matricola

4. πLT3 Proiezione di T3 su Cognome e Matricola

πCognome, Matricola((σEtà < 39 R) (σSede = ‘Bergamo’S ))


Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 31

Esercizi (1)

• In relazione alle tabelle ( vedi diapositiva 13 ):


R = ( Impiegato, Reparto )
S = ( Reparto, Capo )

– Estrarre il nome del capo del reparto “Produzione”


– Elencare i dipendenti con nome del dipendente e nome del
rispettivo capo:
• facendo uso del Prodotto Cartesiano e di quant’altro necessario
• facendo uso del Theta Join e di quant’altro …
• facendo uso del Join Naturale e di quant’altro …
– Elencare gli impiegati del reparto che ha Bianchi per capo
– Elencare gli impiegati che non hanno capo

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 32


Esercizi (2)

• In riferimento alle tabelle Maternità e Paternità della diapositiva 22

– Elencare i genitori di: Caino, Abele, Isacco, Set, Ismaele


– Elencare i figli di Adamo ed Eva
– Elencare i figli di Adamo od Eva
– Elencare i figli di Eva di cui non è riportato il Padre
– Elencare i figli di Adamo di cui non è riportata la madre

I precedenti esercizi vanno svolti facendo uso delle operazioni


insiemistiche

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 33

Join Esterni
Diverse forme di Join

• Consideriamo il Join Naturale tra Paternità e Maternità:

Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo
Adamo Caino
Caino Eva
Eva Caino
Caino
Adamo
Adamo Abele
Abele Eva
Eva Set
Set
Abramo
Abramo Isacco
Isacco Sara
Sara Isacco
Isacco
Abramo
Abramo Ismaele
Ismaele Agar
Agar Ismaele
Ismaele

Nel Join Naturale


Paternità Maternità compaiono solo terne di
Padre
Padre Figlio
Figlio Madre
Madre valori “bilanciate” per padre
Adamo
Adamo Caino
Caino Eva
Eva e madre
Abramo
Abramo Isacco
Isacco Sara
Sara
Abramo Ismaele Agar Le informazioni sulla
Abramo Ismaele Agar maternità o paternità di
alcuni figli sono perse

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 35

Full Join Esterno

• FULL JOIN: include tutte le righe di entrambe le tabelle

Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo
Adamo Caino
Caino Eva
Eva Caino
Caino
Adamo
Adamo Abele
Abele Eva
Eva Set
Set
Abramo
Abramo Isacco
Isacco Sara
Sara Isacco
Isacco
Abramo
Abramo Ismaele
Ismaele Agar
Agar Ismaele
Ismaele

Paternità FULL Maternità


Padre
Padre Figlio
Figlio Madre
Madre Nel FULL JOIN sono
Adamo
Adamo Caino
Caino Eva
Eva considerate tutte le righe
Adamo
Adamo Abele
Abele di Paternità e di Maternità
Abramo
Abramo Isacco
Isacco Sara
Sara anche in assenza di valori
Abramo
Abramo Ismaele
Ismaele Agar
Agar corrispondenti nell’altra
Set
Set Eva
Eva tabella

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 36


Left Join Esterno

• LEFT JOIN: include tutte le righe della tabella a sinistra

Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo
Adamo Caino
Caino Eva
Eva Caino
Caino
Adamo
Adamo Abele
Abele Eva
Eva Set
Set
Abramo
Abramo Isacco
Isacco Sara
Sara Isacco
Isacco
Abramo
Abramo Ismaele
Ismaele Agar
Agar Ismaele
Ismaele

Paternità LEFT Maternità Maternità LEFT Paternità


Padre
Padre Figlio
Figlio Madre
Madre Madre Figlio Padre
Madre Figlio Padre
Adamo
Adamo Caino
Caino Eva
Eva Eva Caino Adamo
Eva Caino Adamo
Adamo
Adamo Abele
Abele Eva Set
Eva Set
Abramo
Abramo Isacco
Isacco Sara
Sara Sara Isacco Abramo
Sara Isacco Abramo
Abramo
Abramo Ismaele
Ismaele Agar
Agar Agar Ismaele Abramo
Agar Ismaele Abramo
I due LEFT JOIN
differiscono per i
contenuti delle righe oltre
che, ovviamente, per
l’ordine delle colonne
Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 37

Right Join Esterno

• RIGHT JOIN: include tutte le righe della tabella di destra

Paternità Padre
Padre Figlio
Figlio Maternità Madre
Madre Figlio
Figlio
Adamo
Adamo Caino
Caino Eva
Eva Caino
Caino
Adamo
Adamo Abele
Abele Eva
Eva Set
Set
Abramo
Abramo Isacco
Isacco Sara
Sara Isacco
Isacco
Abramo
Abramo Ismaele
Ismaele Agar
Agar Ismaele
Ismaele

Paternità RIGHT Maternità Maternità RIGHT Paternità


Padre
Padre Figlio
Figlio Madre
Madre Madre
Madre Figlio
Figlio Padre
Padre
Adamo
Adamo Caino
Caino Eva
Eva Eva
Eva Caino
Caino Adamo
Adamo
Set
Set Eva
Eva Abele
Abele Adamo
Adamo
Abramo
Abramo Isacco
Isacco Sara
Sara Sara
Sara Isacco
Isacco Abramo
Abramo
Abramo
Abramo Ismaele
Ismaele Agar
Agar Agar
Agar Ismaele
Ismaele Abramo
Abramo

Confrontando
RIGHT JOIN con
LEFT JOIN . . .
Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 38
Esempi (1)

• I Join INTERNI servono per collegare tabelle in base ai valori delle colonne.
I Join ESTERNI servono per identificare situazioni di valori mancanti e
violazioni di vincoli di integrità

– Elenco con i genitori di: Caino, Abele, Isacco, Set, Ismaele


Paternità FULL Maternità

– Elenco dei figli di Adamo ed Eva


πFiglio ( σPadre = ‘Adamo’ AND Madre = ‘Eva’ ( Paternità Maternità ) )

– Elenco dei figli di Adamo od Eva


πFiglio (σPadre = ‘Adamo’ OR Madre = ‘Eva’ ( Paternità FULL Maternità ) )

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 39

Esempi (2)

– Elenco di tutti i figli di Eva, anche se non è indicato il padre


πFiglio (σMadre = ‘Eva’ Maternità )

– Elenco dei figli di Eva per i quali non è indicato il padre


πFiglio (σMadre = ‘Eva’ AND Padre Null ( Paternità RIGHT Maternità ))

– Elenco di tutti i figli di Adamo, anche se non è indicata la madre


πFiglio (σPadre = ‘Adamo’ Paternità )

– Elenco dei figli di Adamo per i quali non è indicata la madre


πFiglio (σPadre = ‘Adamo’ AND Madre Null ( Paternità LEFT Maternità ))

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 40


Ricerca di dati non corrispondenti (1)
• I dati senza corrispondenti possono essere riconosciuti ricercando valori nulli
in opportuni Join Esterni. Ad esempio:
– Anagrafica ( Nome, Cognome, Dipart, Ufficio, Stipendio, Città )
– Dipartimenti ( Dipart, Indirizzo, Città )

Nome Cognome Dipart Ufficio Stipendio Città


Carlo Bianchi Produzione 20 36 Torino
Carlo Rossi Direzione 80 Milano
Franco Neri Distribuzione 45 Napoli
Giuseppe Verdi 20 40 Roma
Lorenzo Lanzi Direzione 7Dipart 73 GenovaIndirizzo Città
Dipart Indirizzo Città
Marco Franco Produzione 20 46 Roma
Amministrazione
Amministrazione Via
Via TitoLivio,
Tito Livio,27
27 Milano
Milano
Mario Rossi Amministrazione 10 45 Milano
Direzione
Direzione Via
ViaTito
TitoLivio,
Livio,27
27 Milano
Milano
Paola Borroni Marketing 75 40 Venezia
Distribuzione
Distribuzione Via Segre, 9
Via Segre, 9 Roma
Roma
Produzione
Produzione Piazza
Piazza Lavater,33
Lavater, Torino
Torino
Ricerca
Ricerca Via
ViaMorone,
Morone,66 Milano
Milano
Giuseppe Verdi non ha dipar-
timento; Marketing è inesistente;
il dipartimento Ricerca
non ha dipendenti

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 41

Ricerca di dati non corrispondenti (2)

– Anagrafica ( Nome, Cognome, Dipart, Ufficio, Stipendio, Città )


– Dipartimenti ( Dipart, Indirizzo, Città )

• Dipendenti di un dipartimento inesistente o senza dipartimento


πNome, Cognome (σD.Dipart Null ( Anagrafica LEFT Dipartimenti ) )

• Dipartimenti senza impiegati


πDipartimenti.Dipart (σCognome Null ( Anagrafica RIGHT Dipartimenti ))

Per riconoscere che


Giuseppe Verdi non ha dipar-
timento, non è necessario
ricorrere al JOIN ESTERNO

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 42


Esercizi (1)
Date le tabelle: Impiegati ( Matricola, Nome, Età, Stipendio )
Supervisione ( Capo, Impiegato )
Matricola Nome Età Stipendio Capo Impiegato
Matricola Nome Età Stipendio Capo Impiegato
101 M.Rossi 34 40 210 101
101 M.Rossi 34 40 210 101
103 M.Bianchi 23 35 210 103
103 M.Bianchi 23 35 210 103
104 L.Neri 38 61 210 104
104 L.Neri 38 61 210 104
105 N.Bini 44 38 231 105
105 N.Bini 44 38 231 105
210 M.Celli 49 60 301 210
210 M.Celli 49 60 301 210
231 S.Bisi 50 60 301 231
231 S.Bisi 50 60 301 231
252 N.Bini 44 70 375 252
252 N.Bini 44 70 375 252
301 S.Rossi 34 70
301 S.Rossi 34 70
375 M.Rossi 50 65
375 M.Rossi 50 65

1. Nome, Matricola, Età dei dipendenti con stipendio > 40


2. Matricola dei capi degli impiegati che hanno stipendio > 40
3. Nome e Stipendio dei capi degli impiegati che hanno stipendio > 40
4. L’elenco degli impiegati che guadagnano più del proprio capo, mostrando
Matricola, Nome e Stipendio di ogni impiegato e del capo
5. Chi sono i dipendenti che non hanno capo, con Nome e Matricola

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 43

Esercizi (2)

• Considerando la base di dati definita dallo schema:


Film ( Titolo, Anno, Lunghezza, aColori, NomeStudio )
Attori ( Titolo, Anno, NomeAttore )
• Costruire le interrogazioni per ottenere:
– Titolo ed Anno dei film della Fox lunghi almeno 100 minuti
– L’elenco degli attori del film: Moulin Rouge del 2002
– L’elenco degli studi che hanno prodotto film con Nicole Kidman
– I protagonisti dei film che durano almeno 100 minuti
– Elenco dei film a colori prodotti nel 2010
– Elenco dei film per i quali non si hanno informazioni sugli attori
– Elenco dei film con Marlon Brando posteriori al 1980
– Elenco degli attori che compaiono in Attori in relazione a Film per i
quali non si hanno ulteriori informazioni

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 44


Valori nulli

• I Join Esterni sono una possibile sorgente di valori nulli

• Operando con valori nulli si possono ottenere risultati inattesi per


effetto delle seguenti regole:
– Un’operazione aritmetica che coinvolge un valore NULL ha come
risultato NULL
– Un confronto con NULL ha come risultato UNKNOWN
– UNKNOWN è un valore logico intermedio tra TRUE e FALSE

• Ne segue che, se X vale NULL:


– X-X  NULL invece di 0
– X×0  NULL invece di 0
– X≥X  Unknown invece di TRUE

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 45

Il valore logico UNKNOWN


• Il valore di verità di espressioni logiche nelle quali compare UNKNOW
si costruisce con la tabella:
AA BB AAAND
ANDBB AAOR
ORBB NOT
NOTAA
True
True True
True True
True True
True False
False
True
True Unknown
Unknown Unknown
Unknown True
True False
False
True
True False
False False
False True
True False
False
Unknown
Unknown True
True Unknown
Unknown True
True Unknown
Unknown
Unknown
Unknown Unknown
Unknown Unknown
Unknown Unknown
Unknown Unknown
Unknown
Unknown
Unknown False
False False
False Unknown
Unknown Unknown
Unknown
False
False True
True False
False True
True True
True
False
False Unknown
Unknown False
False Unknown
Unknown True
True
False
False False
False False
False False
False True
True

• Se uno dei termini in AND vale False il risultato è False


• Se uno dei termini in OR vale True il risultato è True
• In tutti gli altri casi la presenza di UNKNOW genera un risultato UNKNOWN

Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 46

Potrebbero piacerti anche