Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ALGEBRA RELAZIONALE
Enrico Cavalli
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
π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
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
Cognome Matricola
Esercizi
• 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’.
Prodotto Cartesiano
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
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
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
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
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
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
Osservazioni
• T= R S
– grado(T) ≤ grado(R) + grado(S)
– 0 ≤ cardinalità(T) ≤ cardinalità(R) x cardinalità(S)
– R∩S=R-(R-S)
tabelle devono poter essere
componibili con operazioni
insiemistiche
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
Ridenominazione
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
FE – FA; FA – FE
FA ∩ FE; FA ∪ FE
Interrogazioni
Esempi di interrogazioni (1)
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
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)
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 ) )
( σVoto>=18Esami) 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 )
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”
Esercizi (1)
Join Esterni
Diverse forme di Join
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à 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à 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à 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
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à
Esempi (2)
Esercizi (2)