Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 1
Modello relazionale e algebra relazionale
2
Algebra relazionale
IntroduzioneSelezione e proiezioneProdotto cartesiano e joinNatural join, theta-join e semi-joinOuter joinUnione e intersezioneDifferenza e antijoinDivisione e altri operatori
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 2
Algebra relazionale
4
Algebra relazionale
Estende l’algebra degli insiemi per il modello relazionaleDefinisce un insieme di operatori che operano su relazioni e producono come risultato una relazioneGode della proprietà di chiusura
il risultato di qualunque operazione algebrica su relazioni è a sua volta una relazione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 3
5
Operatori dell’algebra relazionale
Operatori unariselezione (σ)proiezione (π)
Operatori binariprodotto cartesiano (×)join ( )unione (∪)intersezione (∩)differenza (-) divisione (/)
6
Operatori dell’algebra relazionale
Operatori insiemisticiunione (∪)intersezione (∩)differenza (-)prodotto cartesiano (×)
Operatori relazionaliselezione (σ)proiezione (π)join ( )divisione (/)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 4
7
Relazioni d’esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 5
9
Selezione
La selezione estrae un sottoinsieme “orizzontale”della relazione
opera una decomposizione orizzontale della relazione
10
Selezione: esempio
Trovare i corsi tenuti nel secondo semestre
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 6
11
Selezione: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
12
Selezione: esempio
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
Semestre MatrDocenteNomeCorsoCodiceR
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 7
13
Selezione: definizione
R = σpALa selezione genera una relazione R
avente lo stesso schema di Acontenente tutte le tuple della relazione A per cui è vero il predicato p
Il predicato p è un’espressione booleana(operatori ∧,∨,¬) di espressioni di confronto tra attributi o tra attributi e costanti
p: Città=‘Torino’ ∧ Età>18p: DataRestituzione>DataConsegna+10
14
Selezione: esempio
Trovare i corsi tenuti nel secondo semestre
Corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 8
15
Selezione: esempio
Trovare i corsi che tenuti nel secondo semestre
Corsi
σSemestre=2
16
Selezione: esempio
Trovare i corsi tenuti nel secondo semestre
Corsi
σSemestre=2
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 9
17
Selezione: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Trovare i corsi tenuti nel secondo semestreR = σSemestre=2Corsi
Corsi
σSemestre=2
R
18
Proiezione
La proiezione estrae un sottoinsieme “verticale”della relazione
opera una decomposizione verticale della relazione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 10
19
Proiezione: esempio (n. 1)
Trovare il nome dei docenti
20
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Proiezione: esempio (n. 1)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 11
21
R
Neri
Bianchi
Verdi
NomeDoc
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdiDipartimentoNomeDoc
Proiezione: esempio (n. 1)
22
Proiezione: definizione
R = πLALa proiezione genera una relazione R
avente come schema la lista di attributi L (sottoinsieme dello schema di A) contenente tutte le tuple presenti in A
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 12
23
Trovare il nome dei docenti
Docenti
πNomeDoc
R
Proiezione: esempio (n. 1)
24
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdiDipartimentoNomeDoc
Trovare il nome dei docenti
R = πNomeDocDocenti
Docenti
πNomeDoc
R
Proiezione: esempio (n. 1)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 13
25
Proiezione: esempio (n. 2)
Trovare i nomi dei dipartimenti in cui èpresente almeno un docente
26
Proiezione: esempio (n. 2)
Trovare i nomi dei dipartimenti in cui èpresente almeno un docente
R = πDipartimentoDocenti
Docenti
πDipartimento
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 14
27
Proiezione: esempio (n. 2)
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
28
Proiezione: esempio (n. 2)
R
Elettronica
Informatica
Dipartimento
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 15
29
Proiezione: definizione
R = πLALa proiezione genera una relazione R
avente come schema la lista di attributi L (sottoinsieme dello schema di A) contenente tutte le tuple presenti in A
Sono eliminati gli eventuali duplicati dovuti all’esclusione degli attributi non in L
se L include una chiave candidata, non vi sono duplicati
30
Selezione+proiezione: esempio
Selezionare il nome dei corsi nel secondo semestre
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 16
Selezione+proiezione: esempio
D1022Basi di datiF0410
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Selezione+proiezione: esempio
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
Semestre MatrDocenteNomeCorsoCodice
Selezione
D1022Basi di datiF0410
D1042Sistemi digitaliM4880D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 17
33
Selezione+proiezione: esempio
Sistemi digitali
Basi di dati
NomeCorso
Proiezione
R
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
Semestre MatrDocenteNomeCorsoCodice
34
Selezione+proiezione: esempio
Corsi
σSemestre=2
Trovare il nome dei corsi nel secondo semestre
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 18
35
Selezione+proiezione: esempio
Corsi
σSemestre=2
πNomeCorso
RTrovare il nome dei corsi nel secondo semestre
36
Selezione+proiezione: esempio
D1022Basi di datiF0410
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
σSemestre=2
πNomeCorso
RTrovare il nome dei corsi nel secondo semestre
R = πNomeCorso(σSemestre=2Corsi)
Corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 19
37
Selezione+proiezione: esempio (corretto?)
Trovare il nome dei corsi nel secondo semestre
R = σSemestre=2 (πNomeCorsoCorsi)
Corsi
D1022Basi di datiF0410
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
σSemestre=2
πNomeCorso
R
38
Selezione+proiezione: soluzione errata
Corsi
D1022Basi di datiF0410
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 20
39
Selezione+proiezione: soluzione errata
Informatica 1
Sistemi digitali
ElettronicaBasi di dati
NomeCorso
Proiezione
D1022Basi di datiF0410
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
40
Selezione+proiezione: soluzione errata
L’attributo Semestre non esiste piùnon è più disponibile l’informazione relativa al semestre
non si può eseguire l’operazione di selezione
Informatica 1
Sistemi digitali
ElettronicaBasi di dati
NomeCorso
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 21
41
Selezione+proiezione: soluzione errata
Corsi
Trovare il nome dei corsi nel secondo semestre
R = σSemestre=2 (πNomeCorsoCorsi)
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
σSemestre=2
πNomeCorso
R
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 22
43
Prodotto cartesiano
Il prodotto cartesiano di due relazioni A e B genera tutte le coppie formate da una tupla di A e una tupla di B
44
Prodotto cartesiano: esempio
Trovare il prodotto cartesiano tra Corsi e Docenti
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 23
45
Prodotto cartesiano: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
46
Prodotto cartesiano: esempio
InformaticaNeriD105D1021Informatica 1M2170
ElettronicaBianchiD104D1021Informatica 1M2170
D102
Corsi.MatrDocente
D102
Docenti.MatrDocente
Verdi
Docenti.NomeDoc
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 24
47
Prodotto cartesiano: esempio
InformaticaNeriD105D1042Sistemi digitaliM4880
ElettronicaBianchiD104D1042Sistemi digitaliM4880
InformaticaNeriD105D1021Informatica 1M2170
ElettronicaBianchiD104D1021Informatica 1M2170
D104
D102
Corsi.MatrDocente
D102
D102
Docenti.MatrDocente
Verdi
Verdi
Docenti.NomeDoc
Informatica2Sistemi digitaliM4880
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
48
Prodotto cartesiano: esempio
InformaticaVerdiD102D1041ElettronicaF1401
InformaticaNeriD105D1041ElettronicaF1401
ElettronicaBianchiD104D1041ElettronicaF1401
InformaticaNeriD105D1022Basi di datiF0410
ElettronicaBianchiD104D1022Basi di datiF0410
InformaticaNeriD105D1042Sistemi digitaliM4880
ElettronicaBianchiD104D1042Sistemi digitaliM4880
InformaticaNeriD105D1021Informatica 1M2170
ElettronicaBianchiD104D1021Informatica 1M2170
D102
D104
D102
Corsi.MatrDocente
D102
D102
D102
Docenti.MatrDocente
Verdi
Verdi
Verdi
Docenti.NomeDoc
Informatica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 25
49
Prodotto cartesiano: definizione
R = A × BIl prodotto cartesiano di due relazioni A e B genera una relazione R
avente come schema l’unione degli schemi di A e di B contenente tutte le coppie formate da una tupla di A e una tupla di B
Il prodotto cartesiano ècommutativo
A × B = B × A
associativo(A × B) × C = A × (B × C)
50
Trovare il prodotto cartesiano tra Corsi e Docenti
Prodotto cartesiano: esempio
Corsi Docenti
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 26
51
Trovare il prodotto cartesiano tra Corsi e Docenti
R = Corsi × Docenti
Prodotto cartesiano: esempio
Corsi Docenti
R
52
Legame tra attributi
InformaticaVerdiD102D1041ElettronicaF1401
InformaticaNeriD105D1041ElettronicaF1401
ElettronicaBianchiD104D1041ElettronicaF1401
InformaticaNeriD105D1022Basi di datiF0410
ElettronicaBianchiD104D1022Basi di datiF0410
InformaticaNeriD105D1042Sistemi digitaliM4880
ElettronicaBianchiD104D1042Sistemi digitaliM4880
InformaticaNeriD105D1021Informatica 1M2170
ElettronicaBianchiD104D1021Informatica 1M2170
D102
D104
D102
Corsi.MatrDocente
D102
D102
D102
Docenti.MatrDocente
Verdi
Verdi
Verdi
Docenti.NomeDoc
Informatica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 27
53
Join
Il join di due relazioni A e B genera tutte le coppie formate da una tupla di A e una tupla di B “semanticamente legate”
54
Join: esempio
Trovare le informazioni sui corsi e sui docenti che li tengono
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 28
55
Join: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
56
Join: esempio
InformaticaVerdiD102D1041ElettronicaF1401
InformaticaNeriD105D1041ElettronicaF1401
ElettronicaBianchiD104D1041ElettronicaF1401
InformaticaNeriD105D1022Basi di datiF0410
ElettronicaBianchiD104D1022Basi di datiF0410
InformaticaNeriD105D1042Sistemi digitaliM4880
ElettronicaBianchiD104D1042Sistemi digitaliM4880
InformaticaNeriD105D1021Informatica 1M2170
ElettronicaBianchiD104D1021Informatica 1M2170
D102
D104
D102
Corsi.MatrDocente
D102
D102
D102
Docenti.MatrDocente
Verdi
Verdi
Verdi
Docenti.NomeDoc
Informatica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 29
57
Join: esempio
ElettronicaBianchiD104D1041ElettronicaF1401
D102
D104
D102
Docenti.MatrDocente
D102
D104
D102
Corsi.MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
58
Join: esempio
Nota bene: il docente (D105,Neri,Informatica), che non tiene alcun corso, non compare nelrisultato del join
ElettronicaBianchiD104D1041ElettronicaF1401
D102
D104
D102
Docenti.MatrDocente
D102
D104
D102
Corsi.MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Dipartimento
Corsi.NomeCorso
Corsi.Codice
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 30
59
Join: definizione
Il join è un operatore derivatopuò essere espresso utilizzando gli operatori ×, σp, πL
Il join è definito separatamente perché esprime sinteticamente molte operazioni ricorrenti nelle interrogazioniEsistono diversi tipi di join
natural jointheta-join (e il suo sottocaso equi-join)semi-join
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 31
61
R = A BIl natural join di due relazioni A e B genera una relazione R
avente come schemagli attributi presenti nello schema di A e non presenti nello schema di Bgli attributi presenti nello schema di B e non presenti nello schema di Auna sola copia degli attributi comuni (con lo stesso nome nello schema di A e di B)
contenente tutte le coppie costituite da una tupladi A e una tupla di B per cui il valore degli attributi comuni è uguale
Natural join: definizione
62
R = A BIl natural join è commutativo e associativo
Natural join: proprietà
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 32
63
Natural join: esempio
Corsi Docenti
RTrovare le informazioni sui corsi e sui docenti che li tengono
64
Trovare le informazioni sui corsi e sui docenti che li tengono
R = Corsi Docenti
Natural join: esempio
ElettronicaBianchiD1041ElettronicaF1401
D102
D104
D102
MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Diparimento
Corsi.NomeCorso
Corsi.Codice
R
Corsi Docenti
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 33
65
Trovare le informazioni sui corsi e sui docenti che li tengono
R = Corsi Docenti
Natural join: esempio
ElettronicaBianchiD1041ElettronicaF1401
D102
D104
D102
MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Diparimento
Corsi.NomeCorso
Corsi.Codice
R
Corsi Docenti
R
66
Trovare le informazioni sui corsi e sui docenti che li tengono
R = Corsi Docenti
Natural join: esempio
ElettronicaBianchiD1041ElettronicaF1401
D102
D104
D102
MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Diparimento
Corsi.NomeCorso
Corsi.Codice
R
Corsi Docenti
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 34
67
Trovare le informazioni sui corsi e sui docenti che li tengono
R = Corsi Docenti
Natural join: esempio
ElettronicaBianchiD1041ElettronicaF1401
D102
D104
D102
MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Diparimento
Corsi.NomeCorso
Corsi.Codice
R
Corsi Docenti
R
68
Natural join: esempio
Nota bene: l’attributo comune MatrDocente èpresente una volta sola nello schema della relazione risultante R
ElettronicaBianchiD1041ElettronicaF1401
D102
D104
D102
MatrDocente
Verdi
Bianchi
Verdi
Docenti.NomeDoc
Elettronica2Sistemi digitaliM4880
Informatica2Basi di datiF0410
1
Corsi.Semestre
InformaticaInformatica 1M2170
Docenti.Diparimento
Corsi.NomeCorso
Corsi.Codice
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 35
69
Theta-join
Il theta-join di due relazioni A e B genera tutte le coppie formate da una tupla di A e una tupla di B che soddisfano una generica “condizione di legame”
70
Theta-join: esempio
Trovare la matricola dei docenti che sono titolari di almeno due corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 36
71
Theta-join: esempio
D1042Sistemi digitaliM4880
D1041ElettronicaF1401
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi C1
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi C2
72
p: C1.MatrDocente=C2.MatrDocente
Trovare la matricola dei docenti che sono titolari di almeno due corsi
Theta-join: esempio
Corsi C1 Corsi C2
p
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 37
73
p: C1.MatrDocente=C2.MatrDocente ∧ C1.Codice<>C2.Codice
Theta-join: esempio
Corsi C1 Corsi C2
p
Trovare la matricola dei docenti che sono titolari di almeno due corsi
74
p: C1.MatrDocente=C2.MatrDocente ∧ C1.Codice<>C2.Codice
R = πC1.MatrDocente((Corsi C1) (Corsi C2))
Theta-join: esempio
p
Corsi C1 Corsi C2
p
RπC1.MatrDocente
Trovare la matricola dei docenti che sono titolari di almeno due corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 38
Theta-join: esempio
D1041ElettronicaF1401D1022Basi di datiF0410
D1041ElettronicaF1401D1041ElettronicaF1401
D1041ElettronicaF1401D1042Sistemi digitaliM4880
D1041ElettronicaF1401D1021Informatica 1M2170
D1021Informatica 1M2170D1041ElettronicaF1401
D1042Sistemi digitaliM4880D1041ElettronicaF1401
D1022Basi di datiF0410D1041ElettronicaF1401
D1042Sistemi digitaliM4880D1022Basi di datiF0410
D1022Basi di datiF0410D1022Basi di datiF0410
D1022Basi di datiF0410D1042Sistemi digitaliM4880
D1021Informatica 1M2170D1022Basi di datiF0410
D1021Informatica 1M2170D1042Sistemi digitaliM4880
D1021Informatica 1M2170D1021Informatica 1M2170
D1042Sistemi digitaliM4880D1021Informatica 1M2170
D1022Basi di datiF0410D1021Informatica 1M2170
D1042Sistemi digitaliM4880D1042Sistemi digitaliM4880
Corsi C2.Semestre
Corsi C2.MatrDocente
Corsi C2.Codice
Corsi C2.NomeCorso
Corsi C1.MatrDocente
Corsi C1.Semestre
Corsi C1.NomeCorso
Corsi C1.Codice
Theta-join: esempio
D1021Informatica 1M2170D1041ElettronicaF1401
D1042Sistemi digitaliM4880D1041ElettronicaF1401
D1041ElettronicaF1401D1041ElettronicaF1401
D1022Basi di datiF0410D1041ElettronicaF1401
D1022Basi di datiF0410D1022Basi di datiF0410
D1042Sistemi digitaliM4880D1022Basi di datiF0410
D1041ElettronicaF1401D1022Basi di datiF0410
D1041ElettronicaF1401D1042Sistemi digitaliM4880
D1022Basi di datiF0410D1042Sistemi digitaliM4880
D1021Informatica 1M2170D1022Basi di datiF0410
D1022Basi di datiF0410D1021Informatica 1M2170
D1021Informatica 1M2170D1042Sistemi digitaliM4880
D1021Informatica 1M2170D1021Informatica 1M2170
D1042Sistemi digitaliM4880D1021Informatica 1M2170
D1041ElettronicaF1401D1021Informatica 1M2170
D1042Sistemi digitaliM4880D1042Sistemi digitaliM4880
Corsi C2.Semestre
Corsi C2.MatrDocente
Corsi C2.Codice
Corsi C2.NomeCorso
Corsi C1.MatrDocente
Corsi C1.Semestre
Corsi C1.NomeCorso
Corsi C1.Codice
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 39
77
Theta-join: esempio
D1042Sistemi digitaliM4880D1041ElettronicaF1401
D1022Basi di datiF0410D1021Informatica 1M2170
D1041ElettronicaF1401D1042Sistemi digitaliM4880
D1021Informatica 1M2170D1022Basi di datiF0410
Corsi C2.Semestre
Corsi C2.MatrDocente
Corsi C2.Codice
Corsi C2.NomeCorso
Corsi C1.MatrDocente
Corsi C1.Semestre
Corsi C1.NomeCorso
Corsi C1.Codice
78
Theta-join: esempio
D1022Basi di datiF0410D1021Informatica 1M2170
D1041ElettronicaF1401D1042Sistemi digitaliM4880
D1042Sistemi digitaliM4880D1041ElettronicaF1401
D1021Informatica 1M2170D1022Basi di datiF0410
Corsi C2.Semestre
Corsi C2.MatrDocente
Corsi C2.Codice
Corsi C2.NomeCorso
Corsi C1.MatrDocente
Corsi C1.Semestre
Corsi C1.NomeCorso
Corsi C1.Codice
D102
D104
Corsi C1.MatrDocente
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 40
79
Theta-join: definizione
R = A pBIl theta-join di due relazioni A e B genera una relazione R
avente come schema l’unione degli schemi di A e di Bcontenente tutte le coppie costituite da una tupladi A e una tupla di B per cui è vero il predicato p
Il predicato p è nella forma X θ YX è un attributo di A, Y è un attributo di Bθ è un operatore di confronto compatibile con i domini di X e di Y
Il theta-join è commutativo e associativo
80
Equi-join: definizione
R = A pBEqui-join
caso particolare del theta-join in cui θ èl’operatore di uguaglianza (=)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 41
81
Il semi-join di due relazioni A e B seleziona tutte le tuple di A “semanticamente legate” ad almeno una tupla di B
le informazioni di B non compaiono nel risultato
Semi-join
82
Trovare le informazioni relative ai docenti titolari di almeno un corso
Semi-join: esempio
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 42
83
Semi-join: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
84
Semi-join: esempio
D1042Sistemi digitaliM4880ElettronicaBianchiD104
D1041ElettronicaF1401ElettronicaBianchiD104
D1022Basi di datiF0410InformaticaNeriD105
D1021Informatica 1M2170ElettronicaBianchiD104
D1021Informatica 1M2170InformaticaNeriD105
D1042Sistemi digitaliM4880InformaticaNeriD105
D1042Sistemi digitaliM4880InformaticaVerdiD102
D1041ElettronicaF1401InformaticaVerdiD102
F0410
F1401
F0410
M2170
Corsi.Codice
Basi di dati
Elettronica
Basi di dati
Informatica 1
Corsi.NomeCorso
2
1
2
1
Corsi.Semestre
D102InformaticaVerdiD102
D104InformaticaNeriD105
D102ElettronicaBianchiD104
Informatica
Docenti.Dipartimento
D102VerdiD102
Corsi.MatrDocente
Docenti.NomeDoc
Docenti.MatrDocente
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 43
85
Semi-join: esempio
D1042Sistemi digitaliM4880ElettronicaBianchiD104
D1022Basi di datiF0410InformaticaVerdiD102
F1401
M2170
Corsi.Codice
Elettronica
Informatica 1
Corsi.NomeCorso
3
1
Corsi.Semestre
D104ElettronicaBianchiD104
Informatica
Docenti.Dipartimento
D102VerdiD102
Corsi.MatrDocente
Docenti.NomeDoc
Docenti.MatrDocente
D104
D102
Docenti.MatrDocente
Bianchi
Verdi
Docenti.NomeDoc
Elettronica
Informatica
Docenti.Dipartimento
R
86
R = A pBIl semi-join di due relazioni A e B genera una relazione R
avente lo stesso schema di A contenente tutte le tuple di A per cui è vero il predicato specificato da p
Il predicato p è espresso nella stessa forma del theta-join (confronto tra attributi di A e di B)
Semi-join: definizione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 44
87
Il semi-join può essere espresso in funzione del theta-join
A pB = πschema(A)(A pB)
Il semi-join non gode della proprietà commutativa
Semi-join: proprietà
88
Trovare le informazioni relative ai docenti titolari di almeno un corso
Semi-join: esempio
Docenti Corsi
p
R
p: Docenti.MatrDocente=Corsi.MatrDocente
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 45
89
Trovare le informazioni relative ai docenti titolari di almeno un corso
R=Docenti Corsi
Semi-join: esempio
D104
D102
Docenti.MatrDocente
Bianchi
Verdi
Docenti.NomeDoc
Elettronica
Informatica
Docenti.Dipartimento
R
Docenti Corsi
p
R
p: Docenti.MatrDocente=Corsi.MatrDocente
p
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 46
91
Variante del join che permette di conservare l’informazione relativa alle tuple non semanticamente legate dal predicato di join
completa con valori nulli le tuple prive di controparte
Esistono tre tipi di outer-joinleft: sono completate solo le tuple del primo operandoright: sono completate solo le tuple del secondo operandofull: sono completate le tuple di entrambi gli operandi
Outer-join
92
Il left outer-join di due relazioni A e B genera le coppie formate da
una tupla di A e una di B “semanticamente legate”+
una tupla di A “non semanticamente legata” a tuple di B completata con valori nulli per tutti gli attributi di B
Left outer-join
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 47
93
Trovare le informazioni sui docenti e sui corsi che tengono
Left outer-join: esempio
94
Left outer-join: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
Semestre
D102Informatica 1M2170
MatrDocenteNomeCorsoCodiceCorsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 48
95
Left outer-join: esempio
1
2
2
1
Corsi.Semestre
D104Sistemi digitaliM4880ElettronicaBianchiD104
D104ElettronicaF1401ElettronicaBianchiD104
F0410
M2170
Corsi.Codice
Basi di dati
Informatica 1
Corsi.NomeCorso
D102
D102
Corsi.MatrDocente
InformaticaVerdiD102
Informatica
Docenti.Dipartimento
VerdiD102
Docenti.NomeDoc
Docenti.MatrDocente
R
96
Left outer-join: esempio
nullnullnullnullInformaticaNeriD105
D1041ElettronicaF1401ElettronicaBianchiD104
2
2
1
Corsi.Semestre
D104Sistemi digitaliM4880ElettronicaBianchiD104
F0410
M2170
Corsi.Codice
Basi di dati
Informatica 1
Corsi.NomeCorso
D102
D102
Corsi.MatrDocente
InformaticaVerdiD102
Informatica
Docenti.Dipartimento
VerdiD102
Docenti.NomeDoc
Docenti.MatrDocente
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 49
97
R = A p BIl left outer-join di due relazioni A e B genera una relazione R
avente come schema l’unione degli schemi di A e di Bcontenente le coppie formate da
una tupla di A e una tupla di B per cui è vero il predicato puna tupla di A che non è correlata mediante il predicato p a tuple di B completata con valori nulli per tutti gli attributi di B
Il left outer-join non è commutativo
Left outer-join: definizione
98
Trovare le informazioni sui docenti e sui corsi che tengono
Left outer-join: esempio
p: Docenti.MatrDocente=Corsi.MatrDocente
Docenti Corsi
R
p
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 50
Trovare le informazioni sui docenti e sui corsi che tengono
R = Docenti pCorsi
Left outer-join: esempio
p: Docenti.MatrDocente=Corsi.MatrDocente
Docenti Corsi
R
p
R
nullnullnullnullInformaticaNeriD105
D1041ElettronicaF1401ElettronicaBianchiD104
2
2
1
Corsi.Semestre
D104Sistemi digitaliM4880ElettronicaBianchiD104
F0410
M2170
Corsi.Codice
Basi di dati
Informatica 1
Corsi.NomeCorso
D102
D102
Corsi.MatrDocente
InformaticaVerdiD102
Informatica
Docenti.Dipartimento
VerdiD102
Docenti.NomeDoc
Docenti.MatrDocente
100
R = A p BIl right outer-join di due relazioni A e B genera una relazione R
avente come schema l’unione degli schemi di A e di Bcontenente le coppie formate da
una tupla di A e una tupla di B per cui è vero il predicato puna tupla di B che non è correlata mediante il predicato p a tuple di A completata con valori nulli per tutti gli attributi di A
Il right outer-join non è commutativo
Right outer-join: definizione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 51
101
R = A p BIl full outer-join di due relazioni A e B genera una relazione R
avente come schema l’unione degli schemi di A e di B
Full outer-join: definizione
102
R = A p BIl full outer-join di due relazioni A e B genera una relazione R
contenente le coppie formate dauna tupla di A e una tupla di B per cui è vero il predicato puna tupla di A che non è correlata mediante il predicato p a tuple di B completata con valori nulli per tutti gli attributi di B una tupla di B che non è correlata mediante il predicato p a tuple di A completata con valori nulli per tutti gli attributi di A
Full outer-join: definizione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 52
103
R = A p BIl full outer-join è commutativo
Full outer-join: proprietà
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 53
105
L’unione di due relazioni A e B seleziona tutte le tuple presenti in almeno una delle due relazioni
Unione
A B
106
Unione
A BA B
L’unione di due relazioni A e B seleziona tutte le tuple presenti in almeno una delle due relazioni
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 54
107
Unione: relazioni d’esempio
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
108
Trovare le informazioni relative ai docenti dei corsi di laurea o di master
Unione: esempio
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 55
Unione: esempio
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
R
ElettronicaBianchiD104
InformaticaNeriD105
D101
D102
MatrDocente
ElettricaRossi
InformaticaVerdi
DipartimentoNomeDoc
DocentiMaster
Unione: esempio
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Nota bene:i duplicati sono eliminati
DocentiMasterR
ElettronicaBianchiD104
InformaticaNeriD105
D101
D102
MatrDocente
ElettricaRossi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 56
111
R = A ∪ BL’unione di due relazioni A e B genera una relazione R
avente lo stesso schema di A e Bcontenente tutte le tuple appartenenti ad A e tutte le tuple appartenenti a B (o a entrambi)
Compatibilitàle relazioni A e B devono avere lo stesso schema (numero e tipo degli attributi)
Le tuple duplicate sono eliminateL’unione è commutativa e associativa
Unione: definizione
112
Trovare le informazioni relative ai docenti dei corsi di laurea o di master
Unione: esempio
DocentiLaurea DocentiMaster
∪R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 57
113
Trovare le informazioni relative ai docenti dei corsi di laurea o di master
R = DocentiLaurea ∪ DocentiMaster
Unione: esempio
DocentiLaurea DocentiMaster
∪R
R
ElettronicaBianchiD104
InformaticaNeriD105
D101
D102
MatrDocente
ElettricaRossi
InformaticaVerdi
DipartimentoNomeDoc
114
L’intersezione di due relazioni A e B seleziona tutte le tuple presenti in entrambe le relazioni
Intersezione
A B
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 58
115
L’intersezione di due relazioni A e B seleziona tutte le tuple presenti in entrambe le relazioni
Intersezione
A BA B
Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master
Intersezione: esempio
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 59
117
Intersezione: esempio
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
118
Intersezione: esempio
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
RD102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 60
119
R = A ∩ BL’ intersezione di due relazioni A e B genera una relazione R
avente lo stesso schema di A e Bcontenente tutte le tuple appartenenti sia ad A sia a B
Compatibilitàle relazioni A e B devono avere lo stesso schema (numero e tipo degli attributi)
L’intersezione è commutativa e associativa
Intersezione: definizione
120
Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master
Intersezione: esempio
DocentiLaurea DocentiMaster
∩R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 61
121
Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master
R = DocentiLaurea ∩ DocentiMaster
Intersezione: esempio
DocentiLaurea DocentiMaster
∩R
RD102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
Algebra relazionale
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 62
123
La differenza di due relazioni A e B seleziona tutte le tuple presenti esclusivamente in A
Differenza
A B
124
La differenza di due relazioni A e B seleziona tutte le tuple presenti esclusivamente in A
Differenza
A BA-B
A B
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 63
125
Differenza
A BA-B
A B
A BB-A
A-B≠B-A
126
Trovare i docenti di corsi di laurea ma non di master
Differenza: esempio (n.1)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 64
127
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Differenza: esempio (n.1)
128
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
RInformaticaNeriD105
D104
MatrDocente
ElettronicaBianchi
DipartimentoNomeDoc
Differenza: esempio (n.1)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 65
129
R = A - BLa differenza di due relazioni A e B genera una relazione R
avente lo stesso schema di A e di B contenente tutte le tuple appartenenti ad A che non appartengono a B
Compatibilitàle relazioni A e B devono avere lo stesso schema (numero e tipo degli attributi)
La differenza non gode né della proprietàcommutativa, né della proprietà associativa
Differenza: definizione
130
Trovare i docenti di corsi di laurea ma non di master
DocentiLaurea DocentiMaster
-R
Differenza: esempio (n.1)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 66
131
Trovare i docenti di corsi di laurea ma non di master
R = DocentiLaurea - DocentiMaster
DocentiLaurea DocentiMaster
-R
InformaticaNeriD105
D104
MatrDocente
ElettronicaBianchi
DipartimentoNomeDocR
Differenza: esempio (n.1)
132
Differenza: esempio (n. 2)
Trovare i docenti di corsi di master ma non di laurea
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 67
133
Trovare i docenti di corsi di master ma non di laurea
R = DocentiMaster - DocentiLaurea
Differenza: esempio (n. 2)
DocentiMaster DocentiLaurea
-R
134
Differenza: esempio (n. 2)
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 68
135
Differenza: esempio (n. 2)
DocentiMaster
ElettricaRossiD101
D102
MatrDocente
InformaticaVerdi
DipartimentoNomeDoc
DocentiLaurea
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
ElettricaRossiD101
MatrDocente DipartimentoNomeDocR
136
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
Differenza: esempio (n. 3)
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 69
137
Differenza: esempio (n. 3)
DocentiπMatrDocente
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
138
Differenza: esempio (n. 3)
Docenti CorsiπMatrDocente πMatrDocente
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 70
139
Differenza: esempio (n. 3)
Docenti Corsi
-πMatrDocente πMatrDocente
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
140
Differenza: esempio (n. 3)
Docenti Corsi
-
R
πMatrDocente πMatrDocente
Docenti
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 71
141
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
R = Docenti ((πMatrDocenteDocenti) – (πMatrDocenteCorsi))
Differenza: esempio (n. 3)
Docenti Corsi
-
R
πMatrDocente πMatrDocente
Docenti
142
Differenza: esempio (n. 3)
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 72
143
Differenza: esempio (n. 3)
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Matricole dei docenti
Matricole dei docenti che tengono almeno un corso
144
Differenza: esempio (n. 3)
D104
D102
MatrDocente
D105
D104
D102
MatrDocente
D105
MatrDocenteDifferenza
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 73
145
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Differenza: esempio (n. 3)
D105
MatrDocenteNeri
NomeDocInformatica
Dipartimento
Natural JoinDocenti
R
D105
MatrDocente
146
L’anti-join tra due relazioni A e B seleziona tutte le tuple di A “semanticamente non legate”a tuple di B
le informazioni di B non compaiono nel risultato
Anti-join
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 74
147
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
Anti-join: esempio
148
Anti-join: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 75
149
Anti-join: esempio
D1041ElettronicaF1401
D1042Sistemi digitaliM4880
D1022Basi di datiF0410
1
SemestreD102Informatica 1M2170
MatrDocenteNomeCorsoCodice
Corsi
Docenti
InformaticaNeriD105
D104
D102
MatrDocente
ElettronicaBianchi
InformaticaVerdi
DipartimentoNomeDoc
D105
MatrDocenteNeri
NomeDocInformatica
DipartimentoR
150
R = A BL’anti-join di due relazioni A e B genera una relazione R
avente lo stesso schema di Acontenente tutte le tuple di A per cui non esiste nessuna tupla in B per cui è vero il predicato p
Il predicato p è espresso nella stessa forma del theta-join e del semi-joinL’anti-join non gode né della proprietàcommutativa, né della proprietà associativa
Anti-join: definizione
p
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 76
151
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
Anti-join: esempio
Docenti Corsi
R
p
p: Docenti.MatrDocente=Corsi.MatrDocente
152
Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi
R = Docenti Corsi
Anti-join: esempio
R
D105
MatrDocenteNeri
NomeDocInformatica
Dipartimento
Docenti Corsi
R
p
p: Docenti.MatrDocente=Corsi.MatrDocente
p
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 77
Algebra relazionale
154
Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno
Divisione: esempio
EsamiSuperati
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorso
CorsiPrimoAnno
…
…
…
…
CodCorso
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 78
155
Divisione: esempio (n. 1)
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC1
CodCorso
EsamiSuperati CorsiPrimoAnno
156
Divisione: esempio (n. 1)
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC1
CodCorso
EsamiSuperati CorsiPrimoAnno
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 79
157
Divisione: esempio
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC1
CodCorso
EsamiSuperati CorsiPrimoAnno
R
S1
S2
MatrStudente
158
Divisione: esempio (n. 2)
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC2
C4
CodCorso
EsamiSuperati CorsiPrimoAnno
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 80
159
Divisione: esempio (n. 2)
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC2
C4
CodCorso
EsamiSuperati CorsiPrimoAnno
160
Divisione: esempio (n. 2)
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorsoC2
C4
CodCorso
EsamiSuperati CorsiPrimoAnno
R
S1
S4
MatrStudente
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 81
161
Divisione: esempio (n. 3)
C5
C4
C3
C2
C1
C6
CodCorso
EsamiSuperati CorsiPrimoAnno
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorso
162
Divisione: esempio (n. 3)
C2
C3
C4
C5
C1
C6
CodCorso
EsamiSuperati CorsiPrimoAnno
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorso
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 82
163
Divisione: esempio (n. 3)
C2
C3
C4
C5
C1
C6
CodCorso
EsamiSuperati CorsiPrimoAnno
C2S4
C4S4
C2S3
C3S1
C2S1
C1S1
C6S1
C5S1
C4S1
C5S4
C2S2
C1S2
MatrStudente CodCorso
R
S1
MatrStudente
164
R = A / BLa divisione della relazione A per la relazione B genera una relazione R
avente come schema schema(A) - schema(B)contenente tutte le tuple di A tali che per ogni tupla (Y:y) presente in B esiste una tupla(X:x, Y:y) in A
La divisione non gode né della proprietàcommutativa, né della proprietà associativa
Divisione: definizione
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 83
165
Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno
Divisione: esempio
EsamiSuperati CorsiPrimoAnno
/
R
166
Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno
R = EsamiSuperati / CorsiPrimoAnno
Divisione: esempio
EsamiSuperati CorsiPrimoAnno
/
R
Modello relazionale e algebra relazionale Algebra relazionale
©2007 Politecnico di Torino 84
167
Altri operatori
Sono stati proposti numerosi altri operatori per estendere il potere espressivo dell’algebra relazionale
estensione con un nuovo attributo, definito da un’espressione scalare
PESO_LORDO=PESO_NETTO+TARA
calcolo di funzioni aggregate max, min, avg, count, sumeventualmente con la definizione di sottoinsiemi in cui raggruppare i dati (GROUP BY di SQL)
Top Related