Modello relazionale e algebra...

84
Modello relazionale e algebra relazionale Algebra relazionale ©2007 Politecnico di Torino 1 Modello relazionale e algebra relazionale 2 Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione e altri operatori

Transcript of Modello relazionale e algebra...

Page 1: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 2: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 3: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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 (/)

Page 4: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 5: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 6: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 7: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 8: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 9: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 10: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 11: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 12: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 13: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 14: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 15: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 16: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 17: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 18: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 19: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 20: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 21: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 22: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 23: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 24: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 25: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 26: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 27: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 28: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 29: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 30: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 31: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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à

Page 32: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 33: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 34: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 35: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 36: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 37: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 38: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 39: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 40: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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 (=)

Page 41: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 42: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 43: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 44: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 45: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 46: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 47: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 48: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 49: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 50: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 51: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 52: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 53: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 54: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 55: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 56: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 57: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 58: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 59: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 60: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 61: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 62: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 63: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 64: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 65: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 66: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 67: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 68: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)

Page 69: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 70: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 71: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 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

Page 72: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 73: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 74: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 75: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 76: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 77: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 78: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 79: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 80: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 81: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 82: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 83: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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

Page 84: Modello relazionale e algebra relazionalecorsiadistanza.polito.it/on-line/sistemi_info/pdf/U2_2.pdf · M4880 Sistemi digitali 2 Informatica F0410 Basi di dati 2 Informatica 1 Corsi.

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)