Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi...

28
Basi di dati Algebra relazionale Elena Baralis ©2007 Politecnico di Torino 1 D B M G Modello relazionale e algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join D B M G 2 Outer join Unione e intersezione Differenza e antijoin Divisione e altri operatori D B M G Algebra relazionale Algebra relazionale Estende l’algebra degli insiemi per il modello relazionale Definisce un insieme di operatori che operano su relazioni e producono come risultato una l i D B M G 4 relazione Gode della proprietà di chiusura il risultato di qualunque operazione algebrica su relazioni è a sua volta una relazione Operatori dell’algebra relazionale Operatori unari selezione (σ) proiezione (π) Operatori binari D B M G 5 prodotto cartesiano (×) join ( unione () intersezione () differenza (-) divisione (/) Operatori dell’algebra relazionale Operatori insiemistici unione () intersezione () differenza (-) D B M G 6 prodotto cartesiano (×) Operatori relazionali selezione (σ) proiezione (π) join ( ) divisione (/)

Transcript of Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi...

Page 1: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 1

DBMG

Modello relazionale e algebra relazionale

Algebra relazionale

IntroduzioneSelezione e proiezioneProdotto cartesiano e joinNatural join, theta-join e semi-join

DBMG 2

j , j jOuter joinUnione e intersezioneDifferenza e antijoinDivisione e altri operatori

DBMG

Algebra relazionale

Algebra relazionale

Estende l’algebra degli insiemi per il modello relazionaleDefinisce un insieme di operatori che operano su relazioni e producono come risultato una

l i

DBMG 4

relazioneGode della proprietà di chiusura

il risultato di qualunque operazione algebrica su relazioni è a sua volta una relazione

Operatori dell’algebra relazionale

Operatori unariselezione (σ)proiezione (π)

Operatori binari

DBMG 5

prodotto cartesiano (×)join ( )unione (∪)intersezione (∩)differenza (-) divisione (/)

Operatori dell’algebra relazionale

Operatori insiemisticiunione (∪)intersezione (∩)differenza (-)

DBMG 6

prodotto cartesiano (×)

Operatori relazionaliselezione (σ)proiezione (π)join ( )divisione (/)

Page 2: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 2

Relazioni d’esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG 7

F0410 Basi di dati 2 D102

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG

Algebra relazionale

Selezione

La selezione estrae un sottoinsieme “orizzontale”della relazione

opera una decomposizione orizzontale della relazione

DBMG 9

Selezione: esempio

Trovare i corsi tenuti nel secondo semestre

DBMG 10

Selezione: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG 11

F0410 Basi di dati 2 D102

Selezione: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104F1401 Elettronica 1 D104

Corsi

DBMG 12

Codice NomeCorso Semestre MatrDocenteM4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102

R

F0410 Basi di dati 2 D102

Page 3: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 3

Selezione: definizione

R = σpALa selezione genera una relazione R

avente lo stesso schema di Acontenente tutte le tuple della relazione A per cui è

DBMG 13

è vero il predicato pIl 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

Selezione: esempio

Trovare i corsi tenuti nel secondo semestre

DBMG 14

Corsi

Selezione: esempio

Trovare i corsi che tenuti nel secondo semestre

σSemestre=2

DBMG 15

Corsi

Selezione: esempio

Trovare i corsi tenuti nel secondo semestre

σSemestre=2

R

DBMG 16

Corsi

Selezione: esempio

Trovare i corsi tenuti nel secondo semestreR = σSemestre=2Corsi

σSemestre=2

R

DBMG 17

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Corsi

Proiezione

La proiezione estrae un sottoinsieme “verticale”della relazione

opera una decomposizione verticale della relazione

DBMG 18

Page 4: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 4

Proiezione: esempio (n. 1)

Trovare il nome dei docenti

DBMG 19

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Proiezione: esempio (n. 1)

DBMG 20

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Proiezione: esempio (n. 1)

DBMG 21

R NomeDocVerdi

Neri

Bianchi

Proiezione: definizione

R = πLALa proiezione genera una relazione R

avente come schema la lista di attributi L (sottoinsieme dello schema di A)

DBMG 22

contenente tutte le tuple presenti in A

Trovare il nome dei docenti

Docenti

πNomeDoc

R

Proiezione: esempio (n. 1)

DBMG 23

Docenti

Trovare il nome dei docenti

R = πNomeDocDocenti

Docenti

πNomeDoc

R

Proiezione: esempio (n. 1)

DBMG 24

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Docenti

Page 5: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 5

Proiezione: esempio (n. 2)

Trovare i nomi dei dipartimenti in cui è presente almeno un docente

DBMG 25

Proiezione: esempio (n. 2)

Trovare i nomi dei dipartimenti in cui è presente almeno un docente

R = πDipartimentoDocentiπDipartimento

R

DBMG 26

Docenti

Proiezione: esempio (n. 2)

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 27

Proiezione: esempio (n. 2)

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi InformaticaD105 Neri InformaticaD104 Bianchi Elettronica

DBMG 28

R DipartimentoInformatica

Elettronica

Proiezione: definizione

R = πLALa proiezione genera una relazione R

avente come schema la lista di attributi L (sottoinsieme dello schema di A)

DBMG 29

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

Selezione+proiezione: esempio

Selezionare il nome dei corsi nel secondo semestre

DBMG 30

Page 6: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 6

Selezione+proiezione: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG

F0410 Basi di dati 2 D102

Selezione+proiezione: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104F1401 Elettronica 1 D104

Corsi

DBMG

Codice NomeCorso Semestre MatrDocenteM4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102

Selezione

F0410 Basi di dati 2 D102

Selezione+proiezione: esempio

Codice NomeCorso Semestre MatrDocenteM4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102

DBMG 33

NomeCorsoSistemi digitali

Basi di dati

Proiezione

R

Selezione+proiezione: esempio

σSemestre=2

Trovare il nome dei corsi nel secondo semestre

DBMG 34

Corsi

Selezione+proiezione: esempio

σSemestre=2

πNomeCorso

RTrovare il nome dei corsi nel secondo semestre

DBMG 35

Corsi

Selezione+proiezione: esempio

σSemestre=2

πNomeCorso

RTrovare il nome dei corsi nel secondo semestre

R = πNomeCorso(σSemestre=2Corsi)

DBMG 36

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Corsi

Page 7: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 7

Selezione+proiezione: esempio (corretto?)

Trovare il nome dei corsi nel secondo semestre

R = σSemestre=2 (πNomeCorsoCorsi)

σSemestre=2

πNomeCorso

R

DBMG 37

CorsiCodice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Selezione+proiezione: soluzione errata

Corsi Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

DBMG 38

F0410 Basi di dati 2 D102

Selezione+proiezione: soluzione errata

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG 39

NomeCorsoInformatica 1

Sistemi digitali

ElettronicaBasi di dati

Proiezione

F0410 Basi di dati 2 D102

Selezione+proiezione: soluzione errata

NomeCorsoInformatica 1

Sistemi digitali

DBMG 40

L’attributo Semestre non esiste piùnon è più disponibile l’informazione relativa al semestre

non si può eseguire l’operazione di selezione

ElettronicaBasi di dati

Selezione+proiezione: soluzione errata

Trovare il nome dei corsi nel secondo semestre

R = σSemestre=2 (πNomeCorsoCorsi)

σSemestre=2

πNomeCorso

R

DBMG 41

CorsiCodice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

DBMG

Algebra relazionale

Page 8: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 8

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

DBMG 43

Prodotto cartesiano: esempio

Trovare il prodotto cartesiano tra Corsi e Docenti

DBMG 44

Prodotto cartesiano: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG 45

F0410 Basi di dati 2 D102

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Prodotto cartesiano: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M2170 Informatica 1 1 D102 D105 Neri Informatica

M2170 Informatica 1 1 D102 D104 Bianchi Elettronica

R

DBMG 46

Prodotto cartesiano: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M2170 Informatica 1 1 D102 D105 Neri Informatica

M2170 Informatica 1 1 D102 D104 Bianchi Elettronica

R

DBMG 47

M4880 Sistemi digitali

2 D104 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D105 Neri Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

Prodotto cartesiano: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M2170 Informatica 1 1 D102 D105 Neri Informatica

M2170 Informatica 1 1 D102 D104 Bianchi Elettronica

R

DBMG 48

M4880 Sistemi digitali

2 D104 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D105 Neri Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 D102 Verdi Informatica

F1401 Elettronica 1 D104 D105 Neri Informatica

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 D102 Verdi Informatica

F0410 Basi di dati 2 D102 D105 Neri Informatica

F0410 Basi di dati 2 D102 D104 Bianchi Elettronica

Page 9: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 9

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

DBMG 49

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)

Trovare il prodotto cartesiano tra Corsi e Docenti

Prodotto cartesiano: esempio

R

DBMG 50

Corsi Docenti

Trovare il prodotto cartesiano tra Corsi e Docenti

R = Corsi × Docenti

Prodotto cartesiano: esempio

R

DBMG 51

Corsi Docenti

Legame tra attributi

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M2170 Informatica 1 1 D102 D105 Neri Informatica

M2170 Informatica 1 1 D102 D104 Bianchi Elettronica

R

DBMG 52

M4880 Sistemi digitali

2 D104 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D105 Neri Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 D102 Verdi Informatica

F1401 Elettronica 1 D104 D105 Neri Informatica

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 D102 Verdi Informatica

F0410 Basi di dati 2 D102 D105 Neri Informatica

F0410 Basi di dati 2 D102 D104 Bianchi Elettronica

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”

DBMG 53

Join: esempio

Trovare le informazioni sui corsi e sui docenti che li tengono

DBMG 54

Page 10: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 10

Join: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

Corsi

DBMG 55

F0410 Basi di dati 2 D102

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Join: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M2170 Informatica 1 1 D102 D105 Neri Informatica

M2170 Informatica 1 1 D102 D104 Bianchi Elettronica

DBMG 56

M4880 Sistemi digitali

2 D104 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D105 Neri Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 D102 Verdi Informatica

F1401 Elettronica 1 D104 D105 Neri Informatica

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 D102 Verdi Informatica

F0410 Basi di dati 2 D102 D105 Neri Informatica

F0410 Basi di dati 2 D102 D104 Bianchi Elettronica

Join: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

R

DBMG 57

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 D102 Verdi Informatica

Join: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

M2170 Informatica 1 1 D102 D102 Verdi Informatica

M4880 Sistemi digitali

2 D104 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

R

DBMG 58

Nota bene: il docente (D105,Neri,Informatica), che non tiene alcun corso, non compare nel risultato del join

F1401 Elettronica 1 D104 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 D102 Verdi Informatica

Join: definizione

Il join è un operatore derivatopuò essere espresso utilizzando gli operatori ×, σp, πL

Il join è definito separatamente perché esprime i t ti t lt i i i ti ll

DBMG 59

sinteticamente molte operazioni ricorrenti nelle interrogazioniEsistono diversi tipi di join

natural jointheta-join (e il suo sottocaso equi-join)semi-join

DBMG

Algebra relazionale

Page 11: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 11

R = A BIl natural join di due relazioni A e B genera una relazione R

avente come schema

Natural join: definizione

DBMG 61

gli 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 tupla di A e una tupla di B per cui il valore degli attributi comuni è uguale

R = A BIl natural join è commutativo e associativo

Natural join: proprietà

DBMG 62

Natural join: esempio

Corsi Docenti

RTrovare le informazioni sui corsi e sui docenti che li tengono

DBMG 63

Co s oce t

Trovare le informazioni sui corsi e sui docenti che li tengono

R = Corsi Docenti

Natural join: esempio

Corsi Docenti

R

DBMG 64

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre MatrDocente

Docenti.NomeDoc

Docenti.Diparimento

M2170 Informatica 1 1 D102 Verdi Informatica

M4880 Sistemi digitali 2 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 Verdi Informatica

R

Corsi Docenti

Trovare le informazioni sui corsi e sui docenti che li tengono

R = Corsi Docenti

Natural join: esempio

Corsi Docenti

R

DBMG 65

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre MatrDocente

Docenti.NomeDoc

Docenti.Diparimento

M2170 Informatica 1 1 D102 Verdi Informatica

M4880 Sistemi digitali 2 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 Verdi Informatica

R

Co s oce t

Trovare le informazioni sui corsi e sui docenti che li tengono

R = Corsi Docenti

Natural join: esempio

Corsi Docenti

R

DBMG 66

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre MatrDocente

Docenti.NomeDoc

Docenti.Diparimento

M2170 Informatica 1 1 D102 Verdi Informatica

M4880 Sistemi digitali 2 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 Verdi Informatica

R

Co s oce t

Page 12: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 12

Trovare le informazioni sui corsi e sui docenti che li tengono

R = Corsi Docenti

Natural join: esempio

Corsi Docenti

R

DBMG 67

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre MatrDocente

Docenti.NomeDoc

Docenti.Diparimento

M2170 Informatica 1 1 D102 Verdi Informatica

M4880 Sistemi digitali 2 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 Bianchi Elettronica

F0410 Basi di dati 2 D102 Verdi Informatica

R

Corsi Docenti

Natural join: esempio

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre MatrDocente

Docenti.NomeDoc

Docenti.Diparimento

M2170 Informatica 1 1 D102 Verdi Informatica

M4880 Sistemi digitali 2 D104 Bianchi Elettronica

F1401 Elettronica 1 D104 Bianchi Elettronica

F0410 B i di d ti 2 D102 V di I f ti

R

DBMG 68

Nota bene: l’attributo comune MatrDocente è presente una volta sola nello schema della relazione risultante R

F0410 Basi di dati 2 D102 Verdi Informatica

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”

DBMG 69

Theta-join: esempio

Trovare la matricola dei docenti che sono titolari di almeno due corsi

DBMG 70

Theta-join: esempio

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi C1

DBMG 71

F0410 Basi di dati 2 D102

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi C2

Trovare la matricola dei docenti che sono titolari di almeno due corsi

Theta-join: esempio

p

DBMG 72

p: C1.MatrDocente=C2.MatrDocente

Corsi C1 Corsi C2

Page 13: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 13

Theta-join: esempio

p

Trovare la matricola dei docenti che sono titolari di almeno due corsi

DBMG 73

p: C1.MatrDocente=C2.MatrDocente ∧ C1.Codice<>C2.Codice

Corsi C1 Corsi C2

Theta-join: esempio

p

RπC1.MatrDocente

Trovare la matricola dei docenti che sono titolari di almeno due corsi

DBMG 74

p: C1.MatrDocente=C2.MatrDocente ∧ C1.Codice<>C2.Codice

R = πC1.MatrDocente((Corsi C1) (Corsi C2))p

Corsi C1 Corsi C2

Theta-join: esempio

Corsi C1.Codice

Corsi C1.NomeCorso

Corsi C1.Semestre

Corsi C1.MatrDocente

Corsi C2.Codice

Corsi C2.NomeCorso

Corsi C2.Semestre

Corsi C2.MatrDocente

M2170 Informatica 1 1 D102 M2170 Informatica 1 1 D102

M2170 Informatica 1 1 D102 M4880 Sistemi digitali 2 D104

M2170 Informatica 1 1 D102 F1401 Elettronica 1 D104

M2170 Informatica 1 1 D102 F0410 Basi di dati 2 D102

M4880 Sistemi digitali 2 D104 M2170 Informatica 1 1 D102

DBMG

g

M4880 Sistemi digitali 2 D104 M4880 Sistemi digitali 2 D104

M4880 Sistemi digitali 2 D104 F1401 Elettronica 1 D104

M4880 Sistemi digitali 2 D104 F0410 Basi di dati 2 D102

F1401 Elettronica 1 D104 M2170 Informatica 1 1 D102

F1401 Elettronica 1 D104 M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104 F1401 Elettronica 1 D104

F1401 Elettronica 1 D104 F0410 Basi di dati 2 D102

F0410 Basi di dati 2 D102 M2170 Informatica 1 1 D102

F0410 Basi di dati 2 D102 M4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102 F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102 F0410 Basi di dati 2 D102

Theta-join: esempio

Corsi C1.Codice

Corsi C1.NomeCorso

Corsi C1.Semestre

Corsi C1.MatrDocente

Corsi C2.Codice

Corsi C2.NomeCorso

Corsi C2.Semestre

Corsi C2.MatrDocente

M2170 Informatica 1 1 D102 M2170 Informatica 1 1 D102

M2170 Informatica 1 1 D102 M4880 Sistemi digitali 2 D104

M2170 Informatica 1 1 D102 F1401 Elettronica 1 D104

M2170 Informatica 1 1 D102 F0410 Basi di dati 2 D102

M4880 Sistemi digitali 2 D104 M2170 Informatica 1 1 D102

DBMG

g

M4880 Sistemi digitali 2 D104 M4880 Sistemi digitali 2 D104

M4880 Sistemi digitali 2 D104 F1401 Elettronica 1 D104

M4880 Sistemi digitali 2 D104 F0410 Basi di dati 2 D102

F1401 Elettronica 1 D104 M2170 Informatica 1 1 D102

F1401 Elettronica 1 D104 M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104 F1401 Elettronica 1 D104

F1401 Elettronica 1 D104 F0410 Basi di dati 2 D102

F0410 Basi di dati 2 D102 M2170 Informatica 1 1 D102

F0410 Basi di dati 2 D102 M4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102 F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102 F0410 Basi di dati 2 D102

Theta-join: esempio

Corsi C1.Codice

Corsi C1.NomeCorso

Corsi C1.Semestre

Corsi C1.MatrDocente

Corsi C2.Codice

Corsi C2.NomeCorso

Corsi C2.Semestre

Corsi C2.MatrDocente

M2170 Informatica 1 1 D102 F0410 Basi di dati 2 D102

M4880 Sistemi digitali 2 D104 F1401 Elettronica 1 D104

F1401 Elettronica 1 D104 M4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102 M2170 Informatica 1 1 D102

DBMG 77

Theta-join: esempio

Corsi C1.Codice

Corsi C1.NomeCorso

Corsi C1.Semestre

Corsi C1.MatrDocente

Corsi C2.Codice

Corsi C2.NomeCorso

Corsi C2.Semestre

Corsi C2.MatrDocente

M2170 Informatica 1 1 D102 F0410 Basi di dati 2 D102

M4880 Sistemi digitali 2 D104 F1401 Elettronica 1 D104

F1401 Elettronica 1 D104 M4880 Sistemi digitali 2 D104

F0410 Basi di dati 2 D102 M2170 Informatica 1 1 D102

DBMG 78

Corsi C1.MatrDocente

D102

D104

R

Page 14: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 14

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 B

DBMG 79

di Bcontenente tutte le coppie costituite da una tupla di 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

Equi-join: definizione

R = A pBEqui-join

caso particolare del theta-join in cui θ è l’operatore di uguaglianza (=)

DBMG 80

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

DBMG 81

Trovare le informazioni relative ai docenti titolari di almeno un corso

Semi-join: esempio

DBMG 82

Semi-join: esempio

Docenti MatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 83

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Semi-join: esempio

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

D102 Verdi Informatica M2170 Informatica 1 1 D102

D102 Verdi Informatica M4880 Sistemi digitali

2 D104

D102 Verdi Informatica F1401 Elettronica 1 D104

DBMG 84

D102 Verdi Informatica F1401 Elettronica 1 D104

D102 Verdi Informatica F0410 Basi di dati 2 D102

D105 Neri Informatica M2170 Informatica 1 1 D102

D105 Neri Informatica M4880 Sistemi digitali

2 D104

D105 Neri Informatica F1401 Elettronica 1 D104

D105 Neri Informatica F0410 Basi di dati 2 D102

D104 Bianchi Elettronica M2170 Informatica 1 1 D102

D104 Bianchi Elettronica M4880 Sistemi digitali

2 D104

D104 Bianchi Elettronica F1401 Elettronica 1 D104

D104 Bianchi Elettronica F0410 Basi di dati 2 D102

Page 15: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 15

Semi-join: esempio

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

D102 Verdi Informatica M2170 Informatica 1 1 D102

D102 Verdi Informatica F0410 Basi di dati 2 D102

D104 Bianchi Elettronica M4880 Sistemi digitali

2 D104

DBMG 85

digitali

D104 Bianchi Elettronica F1401 Elettronica 3 D104

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

D102 Verdi Informatica

D104 Bianchi Elettronica

R

R = A pBIl semi-join di due relazioni A e B genera una relazione R

avente lo stesso schema di A

Semi-join: definizione

DBMG 86

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)

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à

DBMG 87

Trovare le informazioni relative ai docenti titolari di almeno un corso

Semi-join: esempio

p

R

DBMG 88

Docenti Corsi

p: Docenti.MatrDocente=Corsi.MatrDocente

Trovare le informazioni relative ai docenti titolari di almeno un corso

Semi-join: esempio

p

R

DBMG 89

R=Docenti Corsi

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

D102 Verdi Informatica

D104 Bianchi Elettronica

R

Docenti Corsi

p: Docenti.MatrDocente=Corsi.MatrDocente

p

DBMG

Algebra relazionale

Page 16: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 16

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

Outer-join

DBMG 91

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

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” +

Left outer-join

DBMG 92

una tupla di A “non semanticamente legata” a tuple di B completata con valori nulli per tutti gli attributi di B

Trovare le informazioni sui docenti e sui corsi che tengono

Left outer-join: esempio

DBMG 93

Left outer-join: esempio

Docenti MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 94

Codice NomeCorso Semestre MatrDocente

M2170 Informatica 1 1 D102

M4880 Sistemi digitali

2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Left outer-join: esempio

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

D102 Verdi Informatica M2170 Informatica 1 1 D102

D102 Verdi Informatica F0410 Basi di dati 2 D102

D104 Bianchi Elettronica M4880 Sistemi digitali

2 D104

R

DBMG 95

digitali

D104 Bianchi Elettronica F1401 Elettronica 1 D104

Left outer-join: esempio

Docenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

D102 Verdi Informatica M2170 Informatica 1 1 D102

D102 Verdi Informatica F0410 Basi di dati 2 D102

D104 Bianchi Elettronica M4880 Sistemi digitali

2 D104

R

DBMG 96

digitali

D104 Bianchi Elettronica F1401 Elettronica 1 D104

D105 Neri Informatica null null null null

Page 17: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 17

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 B

Left outer-join: definizione

DBMG 97

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

Trovare le informazioni sui docenti e sui corsi che tengono

Left outer-join: esempio

R

p

DBMG 98

p: Docenti.MatrDocente=Corsi.MatrDocente

Docenti Corsi

p

Trovare le informazioni sui docenti e sui corsi che tengono

R = Docenti pCorsi

Left outer-join: esempio

R

p

DBMG

p: Docenti.MatrDocente=Corsi.MatrDocente

Docenti Corsi

p

RDocenti.MatrDocente

Docenti.NomeDoc

Docenti.Dipartimento

Corsi.Codice

Corsi.NomeCorso

Corsi.Semestre

Corsi.MatrDocente

D102 Verdi Informatica M2170 Informatica 1 1 D102

D102 Verdi Informatica F0410 Basi di dati 2 D102

D104 Bianchi Elettronica M4880 Sistemi digitali 2 D104

D104 Bianchi Elettronica F1401 Elettronica 1 D104

D105 Neri Informatica null null null null

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 B

Right outer-join: definizione

DBMG 100

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

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

DBMG 101

B

R = A p BIl full outer-join di due relazioni A e B genera una relazione R

contenente le coppie formate da

Full outer-join: definizione

DBMG 102

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 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

Page 18: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 18

R = A p BIl full outer-join è commutativo

Full outer-join: proprietà

DBMG 103

DBMG

Algebra relazionale

L’unione di due relazioni A e B seleziona tutte le tuple presenti in almeno una delle due relazioni

Unione

DBMG 105

A B

Unione

L’unione di due relazioni A e B seleziona tutte le tuple presenti in almeno una delle due relazioni

DBMG 106

A BA B

Unione: relazioni d’esempio

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 107

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

Trovare le informazioni relative ai docenti dei corsi di laurea o di master

Unione: esempio

DBMG 108

Page 19: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 19

Unione: esempio

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

R

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

D101 Rossi Elettrica

DocentiMaster

Unione: esempio

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

Nota bene:i duplicati sono eliminati

DocentiMasterR

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

D101 Rossi Elettrica

R = A ∪ BL’unione di due relazioni A e B genera una relazione R

avente lo stesso schema di A e B

Unione: definizione

DBMG 111

contenente 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

Trovare le informazioni relative ai docenti dei corsi di laurea o di master

Unione: esempio

∪R

DBMG 112

DocentiLaurea DocentiMaster

Trovare le informazioni relative ai docenti dei corsi di laurea o di master

R = DocentiLaurea ∪ DocentiMaster

Unione: esempio

∪R

DBMG 113

DocentiLaurea DocentiMaster

R MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

D101 Rossi Elettrica

L’intersezione di due relazioni A e B seleziona tutte le tuple presenti in entrambe le relazioni

Intersezione

DBMG 114

A B

Page 20: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 20

L’intersezione di due relazioni A e B seleziona tutte le tuple presenti in entrambe le relazioni

Intersezione

DBMG 115

A BA B

Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master

Intersezione: esempio

DBMG

Intersezione: esempio

DocentiMaster

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 117

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

Intersezione: esempio

DocentiMaster

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 118

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

R MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

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

Intersezione: definizione

DBMG 119

contenente 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

Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master

Intersezione: esempio

∩R

DBMG 120

DocentiLaurea DocentiMaster

Page 21: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 21

Trovare le informazioni relative ai docenti sia di corsi di laurea, sia di master

R = DocentiLaurea ∩ DocentiMaster

Intersezione: esempio

∩R

DBMG 121

DocentiLaurea DocentiMaster

R MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

DBMG

Algebra relazionale

La differenza di due relazioni A e B seleziona tutte le tuple presenti esclusivamente in A

Differenza

DBMG 123

A B

La differenza di due relazioni A e B seleziona tutte le tuple presenti esclusivamente in A

Differenza

DBMG 124

A BA-B

A B

Differenza

A A

DBMG 125

A BA-B

A B

A BB-A

A-B≠B-A

Trovare i docenti di corsi di laurea ma non di master

Differenza: esempio (n.1)

DBMG 126

Page 22: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 22

DocentiMaster

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Differenza: esempio (n.1)

DBMG 127

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

DocentiMaster

DocentiLaureaMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Differenza: esempio (n.1)

DBMG 128

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

R MatrDocente NomeDoc Dipartimento

D105 Neri Informatica

D104 Bianchi Elettronica

R = A - BLa differenza di due relazioni A e B genera una relazione R

avente lo stesso schema di A e di B

Differenza: definizione

DBMG 129

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

Trovare i docenti di corsi di laurea ma non di master

-R

Differenza: esempio (n.1)

DBMG 130

DocentiLaurea DocentiMaster

Trovare i docenti di corsi di laurea ma non di master

R = DocentiLaurea - DocentiMaster

-R

Differenza: esempio (n.1)

DBMG 131

DocentiLaurea DocentiMaster

MatrDocente NomeDoc Dipartimento

D105 Neri Informatica

D104 Bianchi Elettronica

R

Differenza: esempio (n. 2)

Trovare i docenti di corsi di master ma non di laurea

DBMG 132

Page 23: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 23

Trovare i docenti di corsi di master ma non di laurea

R = DocentiMaster - DocentiLaurea

Differenza: esempio (n. 2)

-R

DBMG 133

DocentiMaster DocentiLaurea

Differenza: esempio (n. 2)

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

DocentiLaurea

DBMG 134

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Differenza: esempio (n. 2)

DocentiMasterMatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D101 Rossi Elettrica

DocentiLaurea

DBMG 135

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

MatrDocente NomeDoc Dipartimento

D101 Rossi Elettrica

R

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

Differenza: esempio (n. 3)

DBMG 136

Differenza: esempio (n. 3)

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

DBMG 137

DocentiπMatrDocente

Differenza: esempio (n. 3)

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

DBMG 138

Docenti CorsiπMatrDocente πMatrDocente

Page 24: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 24

Differenza: esempio (n. 3)

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

DBMG 139

Docenti Corsi

-πMatrDocente πMatrDocente

Differenza: esempio (n. 3)

R

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

DBMG 140

Docenti Corsi

-πMatrDocente πMatrDocente

Docenti

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

Differenza: esempio (n. 3)

R

DBMG 141

R = Docenti ((πMatrDocenteDocenti) – (πMatrDocenteCorsi))

Docenti Corsi

-πMatrDocente πMatrDocente

Docenti

Differenza: esempio (n. 3)

DocentiMatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 142

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Differenza: esempio (n. 3)

DocentiMatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

Matricole dei docenti

DBMG 143

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Matricole dei docenti che tengono almeno un corso

Differenza: esempio (n. 3)

MatrDocenteD102

D105

D104M t D tDiff

DBMG 144

MatrDocenteD102

D104

MatrDocenteD105

Differenza

Page 25: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 25

Differenza: esempio (n. 3)

Natural JoinDocenti

MatrDocenteD105

DBMG 145

MatrDocente NomeDoc Dipartimento

D102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

MatrDocente NomeDoc DipartimentoD105 Neri Informatica

R

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

DBMG 146

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

Anti-join: esempio

DBMG 147

Anti-join: esempio

Corsi

DocentiMatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 148

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

Anti-join: esempio

Corsi

DocentiMatrDocente NomeDoc DipartimentoD102 Verdi Informatica

D105 Neri Informatica

D104 Bianchi Elettronica

DBMG 149

Codice NomeCorso Semestre MatrDocenteM2170 Informatica 1 1 D102

M4880 Sistemi digitali 2 D104

F1401 Elettronica 1 D104

F0410 Basi di dati 2 D102

Corsi

MatrDocente NomeDoc DipartimentoD105 Neri Informatica

R

R = A BL’anti-join di due relazioni A e B genera una relazione R

avente lo stesso schema di A

Anti-join: definizione

p

DBMG 150

contenente 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

Page 26: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 26

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

Anti-join: esempio

R

p

DBMG 151

Docenti Corsip: Docenti.MatrDocente=Corsi.MatrDocente

Trovare Matricola, Nome e Dipartimento dei docenti che non tengono corsi

R = Docenti Corsi

Anti-join: esempio

R

pp

DBMG 152

RMatrDocente NomeDoc DipartimentoD105 Neri Informatica

Docenti Corsip: Docenti.MatrDocente=Corsi.MatrDocente

p

DBMG

Algebra relazionale

Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno

Divisione: esempio

EsamiSuperati

MatrStudente CodCorso

S1 C1

CorsiPrimoAnnoCodCorso

DBMG 154

S1 C1

S1 C2

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Divisione: esempio (n. 1)

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC1

EsamiSuperati CorsiPrimoAnno

DBMG 155

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Divisione: esempio (n. 1)

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC1

EsamiSuperati CorsiPrimoAnno

DBMG 156

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Page 27: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 27

Divisione: esempio

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC1

EsamiSuperati CorsiPrimoAnno

DBMG 157

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

RMatrStudente

S1

S2

Divisione: esempio (n. 2)

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC2

C4

EsamiSuperati CorsiPrimoAnno

DBMG 158

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Divisione: esempio (n. 2)

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC2

C4

EsamiSuperati CorsiPrimoAnno

DBMG 159

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Divisione: esempio (n. 2)

MatrStudente CodCorsoS1 C1

S1 C2

S1 C3

CodCorsoC2

C4

EsamiSuperati CorsiPrimoAnno

DBMG 160

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

RMatrStudente

S1

S4

Divisione: esempio (n. 3)

CodCorsoC1

C2

C3

EsamiSuperati CorsiPrimoAnnoMatrStudente CodCorso

S1 C1

S1 C2

S1 C3

DBMG 161

C3

C4

C5

C6

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Divisione: esempio (n. 3)

CodCorsoC1

C2

C3

EsamiSuperati CorsiPrimoAnnoMatrStudente CodCorso

S1 C1

S1 C2

S1 C3

DBMG 162

C3

C4

C5

C6

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

Page 28: Basi di dati Algebra relazionale - innovit.org · M4880 Sistemi digitali 2 D104 D102 Verdi Informatica M4880 Sistemi digitali 2 D104 D105 Neri Informatica M4880 Sistemi digitali 2

Basi di dati Algebra relazionale

Elena Baralis©2007 Politecnico di Torino 28

Divisione: esempio (n. 3)

CodCorsoC1

C2

C3

EsamiSuperati CorsiPrimoAnnoMatrStudente CodCorso

S1 C1

S1 C2

S1 C3

DBMG 163

C3

C4

C5

C6

S1 C3

S1 C4

S1 C5

S1 C6

S2 C1

S2 C2

S3 C2

S4 C2

S4 C4

S4 C5

RMatrStudente

S1

R = A / BLa divisione della relazione A per la relazione B genera una relazione R

avente come schema schema(A) - schema(B)

Divisione: definizione

DBMG 164

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

Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno

Divisione: esempio

/

R

DBMG 165

EsamiSuperati CorsiPrimoAnno

/

Trovare gli studenti che hanno superato l’esame di tutti i corsi del primo anno

Divisione: esempio

/

R

DBMG 166

R = EsamiSuperati / CorsiPrimoAnno

EsamiSuperati CorsiPrimoAnno

/

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

DBMG 167

un espressione scalarePESO_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)