Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un...

347
Corso di Basi di Dati 4. Algebra relazionale Guido Pezzini A.A. 2016–2017 Guido Pezzini Basi di Dati I

Transcript of Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un...

Page 1: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Corso diBasi di Dati

4. Algebra relazionale

Guido Pezzini

A.A. 2016–2017

Guido Pezzini Basi di Dati I

Page 2: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 3: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati,

ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 4: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 5: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale,

in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 6: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 7: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale,

che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 8: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

L’algebra relazionale e un insieme di operazioni che sieffettuano su una base di dati relazionale.

Lo scopo e quello di interrogare la base di dati, ottenendo unrisultato sotto forma di relazioni, di solito derivate da quelledella base di dati.

Si tratta di un linguaggio procedurale, in cui cioe si arriva alrisultato voluto descrivendo i vari passaggi necessari adottenerlo in termini di operazioni semplici.

Esistono anche altri metodi di interrogazione, ad es. il calcolorelazionale, che e un linguaggio dichiarativo, in cui cioe siarriva al risultato voluto descrivendo le sue proprieta,piuttosto che i passaggi necessari ad ottenerlo.

Guido Pezzini Basi di Dati I

Page 9: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

Le operazioni che vedremo sono:

1 operazioni insiemistiche tradizionali: unione, intersezione,differenza (si possono applicare alle relazioni, con qualcherestrizione);

2 ridenominazione, proiezione, selezione;

3 join (in varie forme).

Guido Pezzini Basi di Dati I

Page 10: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

Le operazioni che vedremo sono:

1 operazioni insiemistiche tradizionali: unione, intersezione,differenza (si possono applicare alle relazioni, con qualcherestrizione);

2 ridenominazione, proiezione, selezione;

3 join (in varie forme).

Guido Pezzini Basi di Dati I

Page 11: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale

Le operazioni che vedremo sono:

1 operazioni insiemistiche tradizionali: unione, intersezione,differenza (si possono applicare alle relazioni, con qualcherestrizione);

2 ridenominazione, proiezione, selezione;

3 join (in varie forme).

Guido Pezzini Basi di Dati I

Page 12: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Considerando una relazione come un sottoinsieme

R ⊆ C1 × . . .× Cn

del prodotto cartesiano delle colonne C1, . . . ,Cn, l’unione di duerelazioni e definita naturalmente, cosı come l’intersezione e ladifferenza.

Guido Pezzini Basi di Dati I

Page 13: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.

Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 14: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 15: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:

Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 16: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 17: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 18: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Piu concretamente, consideriamo due relazioni R1,R2.Supponiamo abbiano lo stesso schema.Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Possiamo definirne l’unione, mettendo insieme le righe di entrambe:Laureati ∪ Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 RomaVerdi 35 Milano

(il DBMS provvede automaticamente adeliminare le eventuali ripetizioni!)

Guido Pezzini Basi di Dati I

Page 19: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Allo stesso modo possiamo definire l’intersezione:

Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati ∩ Dirigenti

Cognome Eta Residenza

Bianchi 37 Roma

(qui non c’e rischio di ripetizioni)

Guido Pezzini Basi di Dati I

Page 20: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Allo stesso modo possiamo definire l’intersezione:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati ∩ Dirigenti

Cognome Eta Residenza

Bianchi 37 Roma

(qui non c’e rischio di ripetizioni)

Guido Pezzini Basi di Dati I

Page 21: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Allo stesso modo possiamo definire l’intersezione:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati ∩ Dirigenti

Cognome Eta Residenza

Bianchi 37 Roma

(qui non c’e rischio di ripetizioni)

Guido Pezzini Basi di Dati I

Page 22: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Allo stesso modo possiamo definire l’intersezione:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati ∩ DirigentiCognome Eta Residenza

Bianchi 37 Roma

(qui non c’e rischio di ripetizioni)

Guido Pezzini Basi di Dati I

Page 23: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Allo stesso modo possiamo definire l’intersezione:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati ∩ DirigentiCognome Eta Residenza

Bianchi 37 Roma

(qui non c’e rischio di ripetizioni)

Guido Pezzini Basi di Dati I

Page 24: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:

Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r Dirigenti

Cognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 25: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r Dirigenti

Cognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 26: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r Dirigenti

Cognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 27: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r DirigentiCognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 28: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r DirigentiCognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni)

(ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 29: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r DirigentiCognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 30: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r DirigentiCognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r Laureati

Cognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 31: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

E la differenza:Esempio:Laureati Dirigenti

Cognome Eta Residenza

Rossi 34 RomaBianchi 37 Roma

Cognome Eta Residenza

Verdi 35 MilanoBianchi 37 Roma

Laureati r DirigentiCognome Eta Residenza

Rossi 34 Roma

(anche qui non c’e rischio di ripetizioni) (ma qui l’ordine conta!)

Dirigenti r LaureatiCognome Eta Residenza

Verdi 35 Milano

Guido Pezzini Basi di Dati I

Page 32: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.

Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni?

oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 33: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.

Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni?

oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 34: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni?

oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 35: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni?

oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 36: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni? oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 37: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni? oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili,

ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 38: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Unione, intersezione, differenza

Ripetiamo: Per queste operazioni e necessario che le relazioni sianosullo stesso schema.Se questo non e verificato, possiamo voler definire operazioni simili,ma dovremmo essere piu precisi nello specificare cosa vogliamo.Ad esempio, che colonne dovrebbe avere l’unione di due relazioniche hanno attributi diversi?

Selezioniamo solo le colonne comuni? oppure

Mettiamo anche le colonne che figurano in una sola dellerelazioni?

Vedremo che tali operazioni (piu complesse) sono possibili, ma nonsi chiamano unione, intersezione, differenza (vedi: join).

Guido Pezzini Basi di Dati I

Page 39: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.

La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita

ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 40: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita

ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 41: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita

ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 42: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 43: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 44: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

La ridenominazione e usata per cambiare gli attributi (cioe i nomidelle colonne) in una relazione.La rappresentiamo come un operatore, con il simbolo ρ, e lanotazione e la seguente:

ρNuovo nome←Vecchio nome(Relazione).

Esempio:Paternita ρGenitore←Padre(Paternita)

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Attenzione: i dati della tabella non cambiano!

Guido Pezzini Basi di Dati I

Page 45: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

Cambiare nome a delle colonne piu volte, una dopo l’altra, si indicanaturalmente concatenando gli operatori:

Esempio:Paternita

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Guido Pezzini Basi di Dati I

Page 46: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

Cambiare nome a delle colonne piu volte, una dopo l’altra, si indicanaturalmente concatenando gli operatori:

Esempio:Paternita

Padre Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Guido Pezzini Basi di Dati I

Page 47: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

Cambiare nome a delle colonne piu volte, una dopo l’altra, si indicanaturalmente concatenando gli operatori:

Esempio:ρGenitore←Padre(Paternita)

Genitore Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Guido Pezzini Basi di Dati I

Page 48: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione

Cambiare nome a delle colonne piu volte, una dopo l’altra, si indicanaturalmente concatenando gli operatori:

Esempio:ρParente←Genitore(ρGenitore←Padre(Paternita))

Parente Figlio

Adamo CainoAdamo AbeleAbramo IsaccoAbramo Ismaele

Guido Pezzini Basi di Dati I

Page 49: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

La ridenominazione e utile quando si vogliono applicare glioperatori insiemistici (unione, intersezione, differenza) a tabellecon attributi diversi.

Esempio: sarebbe naturale voler unire le tabellePaternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

Pero non si puo unirle immediatamente, cioe

Paternita ∪ Maternita

non e permesso, perche le tabelle non hanno gli stessi attributi.

Guido Pezzini Basi di Dati I

Page 50: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

La ridenominazione e utile quando si vogliono applicare glioperatori insiemistici (unione, intersezione, differenza) a tabellecon attributi diversi.

Esempio: sarebbe naturale voler unire le tabellePaternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

Pero non si puo unirle immediatamente, cioe

Paternita ∪ Maternita

non e permesso, perche le tabelle non hanno gli stessi attributi.

Guido Pezzini Basi di Dati I

Page 51: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

La ridenominazione e utile quando si vogliono applicare glioperatori insiemistici (unione, intersezione, differenza) a tabellecon attributi diversi.

Esempio: sarebbe naturale voler unire le tabellePaternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

Pero non si puo unirle immediatamente,

cioe

Paternita ∪ Maternita

non e permesso, perche le tabelle non hanno gli stessi attributi.

Guido Pezzini Basi di Dati I

Page 52: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

La ridenominazione e utile quando si vogliono applicare glioperatori insiemistici (unione, intersezione, differenza) a tabellecon attributi diversi.

Esempio: sarebbe naturale voler unire le tabellePaternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

Pero non si puo unirle immediatamente, cioe

Paternita ∪ Maternita

non e permesso, perche le tabelle non hanno gli stessi attributi.

Guido Pezzini Basi di Dati I

Page 53: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 54: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 55: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita)

ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 56: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita)

ρGenitore←Madre(Maternita)

Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 57: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 58: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

Ma gli attributi “Padre” e “Madre” possono essere raggruppatiinsieme come “Genitore”.

Allora prima va usata la ridenominazione:

Paternita MaternitaPadre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

Guido Pezzini Basi di Dati I

Page 59: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 60: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 61: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 62: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 63: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:

Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 64: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Ridenominazione e operatori insiemistici

e poi si puo usare l’unione:

ρGenitore←Padre(Paternita) ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Genitore Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Eva CainoEva Set

Osservazione: il nome stesso della nuova tabella contiene la tracciadi tutte le operazioni usate per ottenerla. Possiamo darle anche unnuovo nome:Genitorialita =ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Guido Pezzini Basi di Dati I

Page 65: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione e selezione

La proiezione e la selezione si usano per selezionare(rispettivamente) solo alcune colonne e solo alcune righe di unarelazione.

La proiezione e la piu semplice: bisogna solo indicare esplicitamentequali colonne si vogliono mantenere. Si usa la notazione

πColonne da mantenere(Relazione)

Guido Pezzini Basi di Dati I

Page 66: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione e selezione

La proiezione e la selezione si usano per selezionare(rispettivamente) solo alcune colonne e solo alcune righe di unarelazione.

La proiezione e la piu semplice: bisogna solo indicare esplicitamentequali colonne si vogliono mantenere.

Si usa la notazione

πColonne da mantenere(Relazione)

Guido Pezzini Basi di Dati I

Page 67: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione e selezione

La proiezione e la selezione si usano per selezionare(rispettivamente) solo alcune colonne e solo alcune righe di unarelazione.

La proiezione e la piu semplice: bisogna solo indicare esplicitamentequali colonne si vogliono mantenere. Si usa la notazione

πColonne da mantenere(Relazione)

Guido Pezzini Basi di Dati I

Page 68: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Cognome(Studenti)

Nome Cognome

Fabio RossiGiulia BianchiMarco RossiGiulia Verdi

Guido Pezzini Basi di Dati I

Page 69: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Cognome(Studenti)

Nome Cognome

Fabio RossiGiulia BianchiMarco RossiGiulia Verdi

Guido Pezzini Basi di Dati I

Page 70: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Cognome(Studenti)

Nome Cognome

Fabio RossiGiulia BianchiMarco RossiGiulia Verdi

Guido Pezzini Basi di Dati I

Page 71: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Altro esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Corso(Studenti)Nome Corso

Fabio MatematicaGiulia FisicaMarco ChimicaGiulia Fisica

Guido Pezzini Basi di Dati I

Page 72: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Altro esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Corso(Studenti)

Nome Corso

Fabio MatematicaGiulia FisicaMarco ChimicaGiulia Fisica

Guido Pezzini Basi di Dati I

Page 73: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Altro esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Corso(Studenti)Nome Corso

Fabio MatematicaGiulia FisicaMarco ChimicaGiulia Fisica

Guido Pezzini Basi di Dati I

Page 74: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Altro esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Corso(Studenti)Nome Corso

Fabio MatematicaGiulia FisicaMarco ChimicaGiulia Fisica

Anche qui il DBMS elimina automaticamente eventuali ripetizioni!

Guido Pezzini Basi di Dati I

Page 75: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

Altro esempio:Studenti

Nome Cognome Matricola Data di nascita Corso

Fabio Rossi 4453 1.12.1996 MatematicaGiulia Bianchi 8759 30.3.1994 FisicaMarco Rossi 6012 20.7.1995 ChimicaGiulia Verdi 1404 1.12.1996 Fisica

πNome,Corso(Studenti)Nome Corso

Fabio MatematicaGiulia FisicaMarco Chimica

Anche qui il DBMS elimina automaticamente eventuali ripetizioni!

Guido Pezzini Basi di Dati I

Page 76: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

In generale il numero di righe di

πColonne da mantenere(Relazione)

e ≤ il numero di righe di Relazione.

Il numero e uguale se e solo se

le colonne da mantenere sono unasuperchiave di Relazione.

Guido Pezzini Basi di Dati I

Page 77: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

In generale il numero di righe di

πColonne da mantenere(Relazione)

e ≤ il numero di righe di Relazione.

Il numero e uguale se e solo se

le colonne da mantenere sono unasuperchiave di Relazione.

Guido Pezzini Basi di Dati I

Page 78: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Proiezione

In generale il numero di righe di

πColonne da mantenere(Relazione)

e ≤ il numero di righe di Relazione.

Il numero e uguale se e solo se le colonne da mantenere sono unasuperchiave di Relazione.

Guido Pezzini Basi di Dati I

Page 79: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

La selezione si usa per selezionare alcune righe di una relazione.

Le righe da mantenere si indicano specificando un criterio, checiascuna di esse deve (singolarmente) rispettare. La notazione e laseguente:

σCriterio(Relazione)

Guido Pezzini Basi di Dati I

Page 80: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

La selezione si usa per selezionare alcune righe di una relazione.

Le righe da mantenere si indicano specificando un criterio, checiascuna di esse deve (singolarmente) rispettare.

La notazione e laseguente:

σCriterio(Relazione)

Guido Pezzini Basi di Dati I

Page 81: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

La selezione si usa per selezionare alcune righe di una relazione.

Le righe da mantenere si indicano specificando un criterio, checiascuna di esse deve (singolarmente) rispettare. La notazione e laseguente:

σCriterio(Relazione)

Guido Pezzini Basi di Dati I

Page 82: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σVoto≥28(Esami)

Guido Pezzini Basi di Dati I

Page 83: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σVoto≥28(Esami)

Guido Pezzini Basi di Dati I

Page 84: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σVoto≥28(Esami)

Studente Voto Lode Corso

6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica

Guido Pezzini Basi di Dati I

Page 85: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σVoto≥28(Esami)

Studente Voto Lode Corso

6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica

Guido Pezzini Basi di Dati I

Page 86: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Altro esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σCorso=Fisica(Esami)

Guido Pezzini Basi di Dati I

Page 87: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Altro esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σCorso=Fisica(Esami)

Guido Pezzini Basi di Dati I

Page 88: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Altro esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σCorso=Fisica(Esami)

Studente Voto Lode Corso

4453 28 no Fisica9928 23 no Fisica

Guido Pezzini Basi di Dati I

Page 89: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Altro esempio:Esami

Studente Voto Lode Corso

4453 21 no Analisi6887 30 sı Geometria4453 28 no Algebra4453 28 no Fisica1837 25 no Algebra9928 23 no Fisica

σCorso=Fisica(Esami)Studente Voto Lode Corso

4453 28 no Fisica9928 23 no Fisica

Guido Pezzini Basi di Dati I

Page 90: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Attenzione: Normalmente in un DBMS e possibile solo specificarecondizioni che riguardano la singola riga.

Non e possibile descrivere il sottoinsieme delle righe volute in modopiu generale.

Per tali operazioni piu complesse e necessaria un’implementazionead-hoc.

Guido Pezzini Basi di Dati I

Page 91: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Attenzione: Normalmente in un DBMS e possibile solo specificarecondizioni che riguardano la singola riga.

Non e possibile descrivere il sottoinsieme delle righe volute in modopiu generale.

Per tali operazioni piu complesse e necessaria un’implementazionead-hoc.

Guido Pezzini Basi di Dati I

Page 92: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Selezione

Attenzione: Normalmente in un DBMS e possibile solo specificarecondizioni che riguardano la singola riga.

Non e possibile descrivere il sottoinsieme delle righe volute in modopiu generale.

Per tali operazioni piu complesse e necessaria un’implementazionead-hoc.

Guido Pezzini Basi di Dati I

Page 93: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione.

Si puo applicare a relazioni chenon hanno gli stessi attributi.Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 94: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione. Si puo applicare a relazioni chenon hanno gli stessi attributi.

Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 95: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione. Si puo applicare a relazioni chenon hanno gli stessi attributi.Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 96: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione. Si puo applicare a relazioni chenon hanno gli stessi attributi.Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 97: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione. Si puo applicare a relazioni chenon hanno gli stessi attributi.Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 98: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join

L’operazione di join permette di combinare piu relazioni in modosimile agli operatori insiemistici, combinando caratteristiche siadell’unione sia dell’intersezione. Si puo applicare a relazioni chenon hanno gli stessi attributi.Ne vedremo diverse varianti, e anche operatori da esso derivati:

il join naturale,

il join n-ario,

il join esterno,

il self-join,

il theta-join e l’equi-join.

Queste varianti esistono perche

ci sono diversi possibili modi di trattare il fatto che le relazioninon hanno gli stessi attributi,

e conveniente combinare join con se stesso e con altreoperazioni.

Guido Pezzini Basi di Dati I

Page 99: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Definiamo il join naturale di due relazioni R1 ed R2,

definiterispettivamente sugli schemi S1 ed S2 (ricordiamo: sono i loroinsiemi degli attributi).Il join, denotato come

R1 on R2

e una relazione sullo schema

S1 ∪ S2

cioe uniamo le colonne delle due relazioni.Le righe del join R1 on R2 sono definite nel modo seguente:

R1 on R2 contiene una riga r ⇔ R1 ha una riga r1 che coincide conr sugli attributi S1, e R2 ha una riga r2 the coincide con r sugli

attributi S2.

Guido Pezzini Basi di Dati I

Page 100: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Definiamo il join naturale di due relazioni R1 ed R2, definiterispettivamente sugli schemi S1 ed S2 (ricordiamo: sono i loroinsiemi degli attributi).

Il join, denotato come

R1 on R2

e una relazione sullo schema

S1 ∪ S2

cioe uniamo le colonne delle due relazioni.Le righe del join R1 on R2 sono definite nel modo seguente:

R1 on R2 contiene una riga r ⇔ R1 ha una riga r1 che coincide conr sugli attributi S1, e R2 ha una riga r2 the coincide con r sugli

attributi S2.

Guido Pezzini Basi di Dati I

Page 101: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Definiamo il join naturale di due relazioni R1 ed R2, definiterispettivamente sugli schemi S1 ed S2 (ricordiamo: sono i loroinsiemi degli attributi).Il join, denotato come

R1 on R2

e una relazione sullo schema

S1 ∪ S2

cioe uniamo le colonne delle due relazioni.Le righe del join R1 on R2 sono definite nel modo seguente:

R1 on R2 contiene una riga r ⇔ R1 ha una riga r1 che coincide conr sugli attributi S1, e R2 ha una riga r2 the coincide con r sugli

attributi S2.

Guido Pezzini Basi di Dati I

Page 102: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Definiamo il join naturale di due relazioni R1 ed R2, definiterispettivamente sugli schemi S1 ed S2 (ricordiamo: sono i loroinsiemi degli attributi).Il join, denotato come

R1 on R2

e una relazione sullo schema

S1 ∪ S2

cioe uniamo le colonne delle due relazioni.

Le righe del join R1 on R2 sono definite nel modo seguente:

R1 on R2 contiene una riga r ⇔ R1 ha una riga r1 che coincide conr sugli attributi S1, e R2 ha una riga r2 the coincide con r sugli

attributi S2.

Guido Pezzini Basi di Dati I

Page 103: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Definiamo il join naturale di due relazioni R1 ed R2, definiterispettivamente sugli schemi S1 ed S2 (ricordiamo: sono i loroinsiemi degli attributi).Il join, denotato come

R1 on R2

e una relazione sullo schema

S1 ∪ S2

cioe uniamo le colonne delle due relazioni.Le righe del join R1 on R2 sono definite nel modo seguente:

R1 on R2 contiene una riga r ⇔ R1 ha una riga r1 che coincide conr sugli attributi S1, e R2 ha una riga r2 the coincide con r sugli

attributi S2.

Guido Pezzini Basi di Dati I

Page 104: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 105: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 106: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 107: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Rossi Vendite 1

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 108: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Rossi Vendite 1

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 109: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Rossi Vendite 1Neri Produzione 2

Guido Pezzini Basi di Dati I

Page 110: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Rossi Vendite 1Neri Produzione 2

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 111: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale

Osservazione: i due schemi S1 ed S2 possono avere attributi incomune!Esempio:R1 R2

Impiegato Reparto

Rossi VenditeNeri Produzione

Bianchi Produzione

Reparto Piano

Produzione 2Vendite 1

R1 onR2

Impiegato Reparto Piano

Rossi Vendite 1Neri Produzione 2

Bianchi Produzione 2

Guido Pezzini Basi di Dati I

Page 112: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Eva AbeleEva Set

Guido Pezzini Basi di Dati I

Page 113: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)

Genitore Figlio

Adamo CainoAdamo Abele

Eva AbeleEva Set

Guido Pezzini Basi di Dati I

Page 114: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

ρGenitore←Padre(Paternita) ∪ ρGenitore←Madre(Maternita)Genitore Figlio

Adamo CainoAdamo Abele

Eva AbeleEva Set

Guido Pezzini Basi di Dati I

Page 115: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

Guido Pezzini Basi di Dati I

Page 116: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternita

Padre Madre Figlio

Adamo Eva Caino

Guido Pezzini Basi di Dati I

Page 117: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

Guido Pezzini Basi di Dati I

Page 118: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale vs. ridenominazione + unione

Confrontiamo il join naturale con la composizione diridenominazione ed unione.Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

Guido Pezzini Basi di Dati I

Page 119: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2 (ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 120: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2 (ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 121: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2 (ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 122: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!

Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2 (ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 123: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2

(ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 124: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale: proprieta

Il numero di righe di R1 on R2 e minore o uguale a n1 · n2,dove ni e il numero di righe di Ri .

Non e detto che tutte le righe di R1 (o tutte le righe di R2)contribuiscano a qualche riga di R1 on R2.

Se sı, il join si dice completo.

All’estremo opposto, e anche possibile che il join sia vuoto!Questo accade quando nessuna riga di R1 e combinabile conalcuna riga di R2 (ricordiamo: le righe devono coincidere negliattributi comuni a R1 ed R2).

Guido Pezzini Basi di Dati I

Page 125: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Supponiamo che due relazioni abbiano un vincolo di integritareferenziale, e che le colonne corrispondentiabbiano tutte lo stesso nome.

Esempio:

Infrazioni(Prov., Numero) ⊆ Veicoli

Allora il join InfrazionionVeicoli ha esattamente tante righequante ne ha Infrazioni.

(Domanda: Perche?)

Guido Pezzini Basi di Dati I

Page 126: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Supponiamo che due relazioni abbiano un vincolo di integritareferenziale, e che le colonne corrispondentiabbiano tutte lo stesso nome.Esempio:

Infrazioni(Prov., Numero) ⊆ Veicoli

Allora il join InfrazionionVeicoli ha esattamente tante righequante ne ha Infrazioni.

(Domanda: Perche?)

Guido Pezzini Basi di Dati I

Page 127: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Supponiamo che due relazioni abbiano un vincolo di integritareferenziale, e che le colonne corrispondentiabbiano tutte lo stesso nome.Esempio:

Infrazioni(Prov., Numero) ⊆ Veicoli

Allora il join InfrazionionVeicoli ha esattamente tante righequante ne ha Infrazioni.

(Domanda: Perche?)

Guido Pezzini Basi di Dati I

Page 128: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Supponiamo che due relazioni abbiano un vincolo di integritareferenziale, e che le colonne corrispondentiabbiano tutte lo stesso nome.Esempio:

Infrazioni(Prov., Numero) ⊆ Veicoli

Allora il join InfrazionionVeicoli ha esattamente tante righequante ne ha Infrazioni.

(Domanda: Perche?)

Guido Pezzini Basi di Dati I

Page 129: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 130: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoli

Codice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 131: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale e vincoli di integrita referenziale

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 132: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2

= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni. Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 133: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2

= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni. Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 134: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni. Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 135: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni. Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 136: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni.

Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 137: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join naturale, intersezione e “prodotto cartesiano”

Consideriamo il join R1 on R2 di due relazioni R1, R2 sullo schemarispettivamente S1, S2, e con rispettivamente n1, n2 righe.

Se S1 = S2, allora

R1 on R2= R1 ∩ R2

Infatti R1 on R2 e sullo schema S1 ∪ S2 = S1 = S2, e contieneesattamente le righe di R1 che coincidono con qualche riga diR2.

All’estremo opposto, supponiamo S1 ∩ S2 = ∅. AlloraR1 on R2 contiene n1 · n2 righe, ottenute combinando ogni rigadi R1 con ogni riga di R2 senza restrizioni. Abbiamo cioe un“prodotto cartesiano” di R1 ed R2.

Guido Pezzini Basi di Dati I

Page 138: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 139: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 140: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 141: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 142: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 143: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 144: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 145: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn

=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 146: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn=onni=1 Ri

Questo si chiama join n-ario.

Guido Pezzini Basi di Dati I

Page 147: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join n-ario

Il join, considerato come operazione fra relazioni, e commutativo:

R1 on R2 = R2 on R1

ed associativo:

(R1 on R2) on R3 = R1 on (R2 on R3)

Quindi si puo scrivere anche un join di piu di due relazioni, senzaparentesi:

R1 on R2 on R3

o in generale di n relazioni:

R1 on R2 on . . . on Rn=onni=1 Ri

Questo si chiama join n-ario.Guido Pezzini Basi di Dati I

Page 148: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.

Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 149: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.

Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 150: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra,

viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 151: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti,

e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 152: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.

Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 153: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 154: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 155: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 156: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 157: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 158: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 159: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 160: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 161: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Il join R1 on R2 non include in generale tutte le righe di R1 ed R2.Esistono varianti che invece le includono tutte: i join esterni.Con essi, se una riga di una relazione non e compatibile con alcunariga dell’altra, viene estesa mettendo NULL negli attributimancanti, e viene inclusa nel join.Esistono tre versioni:

join esterno sinistro:

R1 onleft R2

che estende solo le righe di R1,

join esterno destro:

R1 onright R2

che estende solo le righe di R2,

join esterno completo:

R1 onfull R2

che estende le righe di entrambe R1 ed R2.

Guido Pezzini Basi di Dati I

Page 162: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 163: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternita

Padre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 164: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 165: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternita

Padre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 166: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 167: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva Caino

Adamo NULL Abele

Guido Pezzini Basi di Dati I

Page 168: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonleftMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL Abele

Guido Pezzini Basi di Dati I

Page 169: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonrightMaternita

Padre Madre Figlio

Adamo Eva CainoNULL Eva Set

Guido Pezzini Basi di Dati I

Page 170: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonrightMaternita

Padre Madre Figlio

Adamo Eva CainoNULL Eva Set

Guido Pezzini Basi di Dati I

Page 171: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonrightMaternita

Padre Madre Figlio

Adamo Eva CainoNULL Eva Set

Guido Pezzini Basi di Dati I

Page 172: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonrightMaternita

Padre Madre Figlio

Adamo Eva Caino

NULL Eva Set

Guido Pezzini Basi di Dati I

Page 173: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonrightMaternita

Padre Madre Figlio

Adamo Eva CainoNULL Eva Set

Guido Pezzini Basi di Dati I

Page 174: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonfullMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL AbeleNULL Eva Set

Guido Pezzini Basi di Dati I

Page 175: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonfullMaternita

Padre Madre Figlio

Adamo Eva CainoAdamo NULL AbeleNULL Eva Set

Guido Pezzini Basi di Dati I

Page 176: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonfullMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL AbeleNULL Eva Set

Guido Pezzini Basi di Dati I

Page 177: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonfullMaternitaPadre Madre Figlio

Adamo Eva Caino

Adamo NULL AbeleNULL Eva Set

Guido Pezzini Basi di Dati I

Page 178: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni

Esempio:Paternita Maternita

Padre Figlio

Adamo CainoAdamo Abele

Madre Figlio

Eva CainoEva Set

PaternitaonMaternitaPadre Madre Figlio

Adamo Eva Caino

PaternitaonfullMaternitaPadre Madre Figlio

Adamo Eva CainoAdamo NULL AbeleNULL Eva Set

Guido Pezzini Basi di Dati I

Page 179: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni e valori NULL

Attenzione: I join esterni introducono spesso valori NULL.

Vedremo in seguito come vengono definiti gli operatori dell’algebrarelazionale in presenza di tali valori.

Guido Pezzini Basi di Dati I

Page 180: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Join esterni e valori NULL

Attenzione: I join esterni introducono spesso valori NULL.Vedremo in seguito come vengono definiti gli operatori dell’algebrarelazionale in presenza di tali valori.

Guido Pezzini Basi di Dati I

Page 181: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Il join R on R di una relazione R con se stessa e uguale...

ad R.

Ma puo essere utile dopo una ridenominazione!

Si chiama allora self-join.

Guido Pezzini Basi di Dati I

Page 182: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Il join R on R di una relazione R con se stessa e uguale... ad R.

Ma puo essere utile dopo una ridenominazione!

Si chiama allora self-join.

Guido Pezzini Basi di Dati I

Page 183: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Il join R on R di una relazione R con se stessa e uguale... ad R.

Ma puo essere utile dopo una ridenominazione!

Si chiama allora self-join.

Guido Pezzini Basi di Dati I

Page 184: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Il join R on R di una relazione R con se stessa e uguale... ad R.

Ma puo essere utile dopo una ridenominazione!

Si chiama allora self-join.

Guido Pezzini Basi di Dati I

Page 185: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

Guido Pezzini Basi di Dati I

Page 186: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

Guido Pezzini Basi di Dati I

Page 187: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

Guido Pezzini Basi di Dati I

Page 188: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Nonno Genitore

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

Guido Pezzini Basi di Dati I

Page 189: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Nonno Genitore

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

Guido Pezzini Basi di Dati I

Page 190: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Nonno Genitore

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitore) on Genitore

Nonno Genitore Figlio

Giorgio Luca ElenaSilvia Maria ElenaEnzo Maria Elena

Guido Pezzini Basi di Dati I

Page 191: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Nonno Genitore

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitore) on Genitore

Nonno Genitore Figlio

Giorgio Luca ElenaSilvia Maria ElenaEnzo Maria Elena

Guido Pezzini Basi di Dati I

Page 192: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Self-join

Esempio:Genitori ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitori)

Genitore Figlio

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Nonno Genitore

Luca ElenaMaria Elena

Giorgio LucaSilvia MariaEnzo Maria

Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sonononni di Elena.

ρ(Nonno,Genitore)←(Genitore,Figlio)(Genitore) on Genitore

Nonno Genitore Figlio

Giorgio Luca ElenaSilvia Maria ElenaEnzo Maria Elena

Guido Pezzini Basi di Dati I

Page 193: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 194: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 195: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 196: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 197: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 198: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 199: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Come nell’esempio precedente, il join e spesso utile incombinazione con altri operatori. Si possono definire allora altrioperatori da esso “derivati”.

Ad esempio il theta-join, che e la composizione di selezione e join:

theta-join = selezione ◦ join

La notazione e:

onCriterio= σCriterio◦ on

Attenzione: In molti DBMS il theta-join e definito invece comecomposizione di selezione e prodotto cartesiano:

theta-join = selezione ◦ prodotto cartesiano

(ricordiamo: il prodotto cartesiano e il join di due relazioni senzaattributi in comune)

Guido Pezzini Basi di Dati I

Page 200: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 201: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoli

Codice Data Agente Prov Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 202: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 203: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionData = 4.3.2017VeicoliCodice Data Agente Prov. Numero Marca

366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 204: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionData = 4.3.2017Veicoli

Codice Data Agente Prov. Numero Marca

366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 205: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Theta-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionData = 4.3.2017VeicoliCodice Data Agente Prov. Numero Marca

366521 4.3.2017 102 MI 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 206: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 207: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 208: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 209: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 210: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 211: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Spesso il criterio C di un theta-join R1 onC R2 fra due relazioniR1,R2 e del tipo

valore in un attributo di R1 = valore in un attributo di R2

In questo caso il theta-join si chiama equi-join.

L’esempio tipico di equi-join e il join di due relazioni che si vuoleabbiano colonne in comune, ma dove i nomi non corrispondono.

Invece di

1 ridenominare gli attributi, e poi

2 usare il join,

si puo usare l’equi-join.

Guido Pezzini Basi di Dati I

Page 212: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

AgentiMatricola Nome

081 Rossi102 Neri277 Bianchi

InfrazionionAgente=MatricolaAgenti

Codice Data Agente Prov. Numero Matricola Nome

143886 20.1.2017 277 RM 4E5432 277 Bianchi366521 4.3.2017 102 MI 8D1526 102 Neri

Si possono poi elminare le colonne “doppie” con una proiezione.

Guido Pezzini Basi di Dati I

Page 213: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

AgentiMatricola Nome

081 Rossi102 Neri277 Bianchi

InfrazionionAgente=MatricolaAgenti

Codice Data Agente Prov. Numero Matricola Nome

143886 20.1.2017 277 RM 4E5432 277 Bianchi366521 4.3.2017 102 MI 8D1526 102 Neri

Si possono poi elminare le colonne “doppie” con una proiezione.

Guido Pezzini Basi di Dati I

Page 214: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

AgentiMatricola Nome

081 Rossi102 Neri277 Bianchi

InfrazionionAgente=MatricolaAgenti

Codice Data Agente Prov. Numero Matricola Nome

143886 20.1.2017 277 RM 4E5432 277 Bianchi366521 4.3.2017 102 MI 8D1526 102 Neri

Si possono poi elminare le colonne “doppie” con una proiezione.

Guido Pezzini Basi di Dati I

Page 215: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 MI 8D1526

AgentiMatricola Nome

081 Rossi102 Neri277 Bianchi

InfrazionionAgente=MatricolaAgenti

Codice Data Agente Prov. Numero Matricola Nome

143886 20.1.2017 277 RM 4E5432 277 Bianchi366521 4.3.2017 102 MI 8D1526 102 Neri

Si possono poi elminare le colonne “doppie” con una proiezione.

Guido Pezzini Basi di Dati I

Page 216: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join e join naturale

Alcuni DBMS non conservano i nomi delle colonne correlandorelazioni diverse: vi aggiungono il nome della relazione di partenza.

Esempio: Se viene usata Impiegati(Nome, Cognome,Dipartimento), i suoi attributi diventano Impiegati.Nome,Impiegati.Cognome, Impiegati.Dipartimento

In questi casi join naturale non esiste, in quanto colonneprovenienti da relazioni diverse non avranno mai lo stessoattributo. Viene quindi sostituito dall’equi-join.

Esempio Il join di Impiegati(Nome, Dipartimento) eEdifici(Indirizzo, Dipartimento) si fa come

Impiegati(Nome, Dipartimento)onImpiegati.Dipartimento = Edifici.Dipartimento

Edifici(Indirizzo, Dipartimento)

Guido Pezzini Basi di Dati I

Page 217: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join e join naturale

Alcuni DBMS non conservano i nomi delle colonne correlandorelazioni diverse: vi aggiungono il nome della relazione di partenza.

Esempio: Se viene usata Impiegati(Nome, Cognome,Dipartimento), i suoi attributi diventano Impiegati.Nome,Impiegati.Cognome, Impiegati.Dipartimento

In questi casi join naturale non esiste, in quanto colonneprovenienti da relazioni diverse non avranno mai lo stessoattributo. Viene quindi sostituito dall’equi-join.

Esempio Il join di Impiegati(Nome, Dipartimento) eEdifici(Indirizzo, Dipartimento) si fa come

Impiegati(Nome, Dipartimento)onImpiegati.Dipartimento = Edifici.Dipartimento

Edifici(Indirizzo, Dipartimento)

Guido Pezzini Basi di Dati I

Page 218: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join e join naturale

Alcuni DBMS non conservano i nomi delle colonne correlandorelazioni diverse: vi aggiungono il nome della relazione di partenza.

Esempio: Se viene usata Impiegati(Nome, Cognome,Dipartimento), i suoi attributi diventano Impiegati.Nome,Impiegati.Cognome, Impiegati.Dipartimento

In questi casi join naturale non esiste, in quanto colonneprovenienti da relazioni diverse non avranno mai lo stessoattributo. Viene quindi sostituito dall’equi-join.

Esempio Il join di Impiegati(Nome, Dipartimento) eEdifici(Indirizzo, Dipartimento) si fa come

Impiegati(Nome, Dipartimento)onImpiegati.Dipartimento = Edifici.Dipartimento

Edifici(Indirizzo, Dipartimento)

Guido Pezzini Basi di Dati I

Page 219: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join e join naturale

Alcuni DBMS non conservano i nomi delle colonne correlandorelazioni diverse: vi aggiungono il nome della relazione di partenza.

Esempio: Se viene usata Impiegati(Nome, Cognome,Dipartimento), i suoi attributi diventano Impiegati.Nome,Impiegati.Cognome, Impiegati.Dipartimento

In questi casi join naturale non esiste, in quanto colonneprovenienti da relazioni diverse non avranno mai lo stessoattributo. Viene quindi sostituito dall’equi-join.

Esempio Il join di Impiegati(Nome, Dipartimento) eEdifici(Indirizzo, Dipartimento) si fa come

Impiegati(Nome, Dipartimento)onImpiegati.Dipartimento = Edifici.Dipartimento

Edifici(Indirizzo, Dipartimento)

Guido Pezzini Basi di Dati I

Page 220: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equi-join e join naturale

Alcuni DBMS non conservano i nomi delle colonne correlandorelazioni diverse: vi aggiungono il nome della relazione di partenza.

Esempio: Se viene usata Impiegati(Nome, Cognome,Dipartimento), i suoi attributi diventano Impiegati.Nome,Impiegati.Cognome, Impiegati.Dipartimento

In questi casi join naturale non esiste, in quanto colonneprovenienti da relazioni diverse non avranno mai lo stessoattributo. Viene quindi sostituito dall’equi-join.

Esempio Il join di Impiegati(Nome, Dipartimento) eEdifici(Indirizzo, Dipartimento) si fa come

Impiegati(Nome, Dipartimento)onImpiegati.Dipartimento = Edifici.Dipartimento

Edifici(Indirizzo, Dipartimento)

Guido Pezzini Basi di Dati I

Page 221: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta,

se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte. Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema. Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 222: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta,

se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte. Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema. Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 223: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta, se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte.

Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema. Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 224: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta, se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte. Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema. Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 225: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta, se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte. Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema.

Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 226: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

L’algebra relazionale permette di formulare espressioni fra loroequivalenti, cioe che producono lo stesso risultato.

L’equivalenza puo essere

assoluta, se e vera sempre indipendentemente dagli schemidelle relazioni coinvolte. Si scrive

Relazione ≡ Altra relazione

relativa, se e vera solo su un certo schema. Si scrive

Relazione ≡schema Altra relazione

Guido Pezzini Basi di Dati I

Page 227: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ,

l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅.

L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera se e solo se S1 ∩ S2 = A. Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 228: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ, l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅.

L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera se e solo se S1 ∩ S2 = A. Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 229: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ, l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅.

L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera se e solo se S1 ∩ S2 = A. Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 230: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ, l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅. L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera

se e solo se S1 ∩ S2 = A. Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 231: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ, l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅. L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera se e solo se S1 ∩ S2 = A.

Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 232: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempi:

Per ogni relazione R e qualsiasi scelta di criteri C1,C2 per laselezione σ, l’equivalenza

σC1 AND C2(R) ≡ σC1(σC2(R))

e sempre vera.

Consideriamo due relazioni R1,R2 su schemi rispettivamenteS1,S2, e supponiamo A,B,C ⊆ S1 ∪ S2 con A ⊆ S1 ∩ S2 eB ∩ C = ∅. L’equivalenza

πA∪B(R1) on πA∪C (R2) ≡S πA∪B∪C (R1 on R2)

e vera se e solo se S1 ∩ S2 = A. Perche a sinistra il joinavviene su relazioni che hanno in comune solo A, mentre adestra R1 ed R2 possono avere piu colonne in comune, e allorail join in generale sara diverso.

Guido Pezzini Basi di Dati I

Page 233: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Tali equivalenze sono utili in pratica, perche alcune operazionirichiedono piu risorse (tempo e spazio) di altre.

Eseguendo una serie di operazioni, e molto utile

ridurre le dimensioni delle relazioni che vengono create neipassi intermedi, o almeno

far sı che le operazioni piu onerose (es. il join) venganoeseguite su relazioni piccole.

Le equivalenze servono ad ottimizzare i vari passaggi in questosenso.

Guido Pezzini Basi di Dati I

Page 234: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Tali equivalenze sono utili in pratica, perche alcune operazionirichiedono piu risorse (tempo e spazio) di altre.

Eseguendo una serie di operazioni, e molto utile

ridurre le dimensioni delle relazioni che vengono create neipassi intermedi, o almeno

far sı che le operazioni piu onerose (es. il join) venganoeseguite su relazioni piccole.

Le equivalenze servono ad ottimizzare i vari passaggi in questosenso.

Guido Pezzini Basi di Dati I

Page 235: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Tali equivalenze sono utili in pratica, perche alcune operazionirichiedono piu risorse (tempo e spazio) di altre.

Eseguendo una serie di operazioni, e molto utile

ridurre le dimensioni delle relazioni che vengono create neipassi intermedi, o almeno

far sı che le operazioni piu onerose (es. il join) venganoeseguite su relazioni piccole.

Le equivalenze servono ad ottimizzare i vari passaggi in questosenso.

Guido Pezzini Basi di Dati I

Page 236: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Tali equivalenze sono utili in pratica, perche alcune operazionirichiedono piu risorse (tempo e spazio) di altre.

Eseguendo una serie di operazioni, e molto utile

ridurre le dimensioni delle relazioni che vengono create neipassi intermedi, o almeno

far sı che le operazioni piu onerose (es. il join) venganoeseguite su relazioni piccole.

Le equivalenze servono ad ottimizzare i vari passaggi in questosenso.

Guido Pezzini Basi di Dati I

Page 237: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Tali equivalenze sono utili in pratica, perche alcune operazionirichiedono piu risorse (tempo e spazio) di altre.

Eseguendo una serie di operazioni, e molto utile

ridurre le dimensioni delle relazioni che vengono create neipassi intermedi, o almeno

far sı che le operazioni piu onerose (es. il join) venganoeseguite su relazioni piccole.

Le equivalenze servono ad ottimizzare i vari passaggi in questosenso.

Guido Pezzini Basi di Dati I

Page 238: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Alcune equivalenze utili:

Atomizzazione delle selezioni:

σC1 AND C2(R) ≡ σC1(σC2(R))

che abbiamo gia visto.

Idempotenza delle proiezioni:

πA(R) ≡ πA(πA∪B(R))

dove A e B sono sottoinsiemi degli attributi di R.

Anticipazione della selezione rispetto al join:

σC (R1 on R2) ≡ R1 on σC (R2)

che vale solo se il criterio di selezione C fa riferimento solo adattributi di R2 e non di R1.

Guido Pezzini Basi di Dati I

Page 239: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Alcune equivalenze utili:

Atomizzazione delle selezioni:

σC1 AND C2(R) ≡ σC1(σC2(R))

che abbiamo gia visto.

Idempotenza delle proiezioni:

πA(R) ≡ πA(πA∪B(R))

dove A e B sono sottoinsiemi degli attributi di R.

Anticipazione della selezione rispetto al join:

σC (R1 on R2) ≡ R1 on σC (R2)

che vale solo se il criterio di selezione C fa riferimento solo adattributi di R2 e non di R1.

Guido Pezzini Basi di Dati I

Page 240: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Alcune equivalenze utili:

Atomizzazione delle selezioni:

σC1 AND C2(R) ≡ σC1(σC2(R))

che abbiamo gia visto.

Idempotenza delle proiezioni:

πA(R) ≡ πA(πA∪B(R))

dove A e B sono sottoinsiemi degli attributi di R.

Anticipazione della selezione rispetto al join:

σC (R1 on R2) ≡ R1 on σC (R2)

che vale solo se il criterio di selezione C fa riferimento solo adattributi di R2 e non di R1.

Guido Pezzini Basi di Dati I

Page 241: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Anticipazione della proiezione rispetto al join: Siano R1,R2

relazioni definite sugli schemi risp. S1, S2. Sia T2 ⊆ S2 conT2 ⊇ S1 ∩ S2. Allora nel join solo le colonne di T2 vengonoconfrontate con colonne di S1, e vale

πS1∪T2(R1 on R2) ≡ R1 on πT2(R2)

Combinando l’equivalenza precedente con l’idempotenza delleproiezioni otteniamo:

πX (R1 onC R2) ≡ πX (πT1(R1) onC πT2(R2))

che vale sotto le seguenti ipotesi:R1,R2 sono relazioni su risp. S1,S2,il criterio C di theta-join coinvolge sottoinsiemi J1 di S1 e J2 diS2, con Ji ⊇ S1 ∩ S2,T1 = (S1 ∩ X ) ∪ J1, T2 = (S2 ∩ X ) ∪ J2

Cioe: facendo una proiezione dopo un theta-join, possiamoeliminare sin dall’inizio le colonne che non compaiono dopo laproiezione e che non sono coinvolte nel theta-join.

Guido Pezzini Basi di Dati I

Page 242: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Anticipazione della proiezione rispetto al join: Siano R1,R2

relazioni definite sugli schemi risp. S1, S2. Sia T2 ⊆ S2 conT2 ⊇ S1 ∩ S2. Allora nel join solo le colonne di T2 vengonoconfrontate con colonne di S1, e vale

πS1∪T2(R1 on R2) ≡ R1 on πT2(R2)

Combinando l’equivalenza precedente con l’idempotenza delleproiezioni otteniamo:

πX (R1 onC R2) ≡ πX (πT1(R1) onC πT2(R2))

che vale sotto le seguenti ipotesi:R1,R2 sono relazioni su risp. S1,S2,il criterio C di theta-join coinvolge sottoinsiemi J1 di S1 e J2 diS2, con Ji ⊇ S1 ∩ S2,T1 = (S1 ∩ X ) ∪ J1, T2 = (S2 ∩ X ) ∪ J2

Cioe: facendo una proiezione dopo un theta-join, possiamoeliminare sin dall’inizio le colonne che non compaiono dopo laproiezione e che non sono coinvolte nel theta-join.

Guido Pezzini Basi di Dati I

Page 243: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Anticipazione della proiezione rispetto al join: Siano R1,R2

relazioni definite sugli schemi risp. S1, S2. Sia T2 ⊆ S2 conT2 ⊇ S1 ∩ S2. Allora nel join solo le colonne di T2 vengonoconfrontate con colonne di S1, e vale

πS1∪T2(R1 on R2) ≡ R1 on πT2(R2)

Combinando l’equivalenza precedente con l’idempotenza delleproiezioni otteniamo:

πX (R1 onC R2) ≡ πX (πT1(R1) onC πT2(R2))

che vale sotto le seguenti ipotesi:R1,R2 sono relazioni su risp. S1,S2,il criterio C di theta-join coinvolge sottoinsiemi J1 di S1 e J2 diS2, con Ji ⊇ S1 ∩ S2,T1 = (S1 ∩ X ) ∪ J1, T2 = (S2 ∩ X ) ∪ J2

Cioe: facendo una proiezione dopo un theta-join, possiamoeliminare sin dall’inizio le colonne che non compaiono dopo laproiezione e che non sono coinvolte nel theta-join.

Guido Pezzini Basi di Dati I

Page 244: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 245: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni.

Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 246: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 247: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 248: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 249: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 250: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Esempio:Vediamo come queste equivalenze vengono usate in pratica.Consideriamo due relazioni:

Impiegati(Matricola, Nome, Cognome, Eta, Stipendio),

Supervisione(Capo, Impiegato).

Supponiamo di voler elencare i capi degli impiegati con meno di 30anni. Dobbiamo prima costruire una relazione che contenga leinformazioni di entrambe le tabelle:

Impiegati on Supervisione

Poi imponiamo:

Impiegato di Supervisione si riferisce a Matricola diImpiegati (vincolo di integrita referenziale),

vogliamo solo i capi con meno di 30 anni.

Quindi:

σEta<30 AND Matricola=Impiegato(Impiegati on Supervisione)

Guido Pezzini Basi di Dati I

Page 251: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine vogliamo solo il campo “Capo”:

πCapo(σEta<30 AND Matricola=Impiegato(Impiegati onSupervisione))

E un’espressione poco efficiente, perche coinvolge pochi attributidelle due tabelle, ma crea subito un prodotto cartesiano, il cuinumero di righe e il prodotto del numero di righe di Impiegati edi Supervisione.Per ottimizzarla, spezziamo prima le selezioni in passi elementari:

πCapo(σEta<30(σMatricola=Impiegato(Impiegati on Supervisione)))

Poi possiamo usare l’equi-join al posto della selezione e join:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Guido Pezzini Basi di Dati I

Page 252: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine vogliamo solo il campo “Capo”:

πCapo(σEta<30 AND Matricola=Impiegato(Impiegati onSupervisione))

E un’espressione poco efficiente, perche coinvolge pochi attributidelle due tabelle, ma crea subito un prodotto cartesiano, il cuinumero di righe e il prodotto del numero di righe di Impiegati edi Supervisione.Per ottimizzarla, spezziamo prima le selezioni in passi elementari:

πCapo(σEta<30(σMatricola=Impiegato(Impiegati on Supervisione)))

Poi possiamo usare l’equi-join al posto della selezione e join:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Guido Pezzini Basi di Dati I

Page 253: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine vogliamo solo il campo “Capo”:

πCapo(σEta<30 AND Matricola=Impiegato(Impiegati onSupervisione))

E un’espressione poco efficiente, perche coinvolge pochi attributidelle due tabelle, ma crea subito un prodotto cartesiano, il cuinumero di righe e il prodotto del numero di righe di Impiegati edi Supervisione.

Per ottimizzarla, spezziamo prima le selezioni in passi elementari:

πCapo(σEta<30(σMatricola=Impiegato(Impiegati on Supervisione)))

Poi possiamo usare l’equi-join al posto della selezione e join:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Guido Pezzini Basi di Dati I

Page 254: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine vogliamo solo il campo “Capo”:

πCapo(σEta<30 AND Matricola=Impiegato(Impiegati onSupervisione))

E un’espressione poco efficiente, perche coinvolge pochi attributidelle due tabelle, ma crea subito un prodotto cartesiano, il cuinumero di righe e il prodotto del numero di righe di Impiegati edi Supervisione.Per ottimizzarla, spezziamo prima le selezioni in passi elementari:

πCapo(σEta<30(σMatricola=Impiegato(Impiegati on Supervisione)))

Poi possiamo usare l’equi-join al posto della selezione e join:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Guido Pezzini Basi di Dati I

Page 255: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine vogliamo solo il campo “Capo”:

πCapo(σEta<30 AND Matricola=Impiegato(Impiegati onSupervisione))

E un’espressione poco efficiente, perche coinvolge pochi attributidelle due tabelle, ma crea subito un prodotto cartesiano, il cuinumero di righe e il prodotto del numero di righe di Impiegati edi Supervisione.Per ottimizzarla, spezziamo prima le selezioni in passi elementari:

πCapo(σEta<30(σMatricola=Impiegato(Impiegati on Supervisione)))

Poi possiamo usare l’equi-join al posto della selezione e join:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Guido Pezzini Basi di Dati I

Page 256: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Questa che abbiamo ottenuto

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

e gia un’espressione migliore,

perche un equi-join di solito eimplementato internamente in modo piu efficiente di un prodottocartesiano seguito da una selezione.

Ad esempio il DBMS non ha bisogno di immagazzinare tutti i datidel prodotto cartesiano prima di iniziare a fare la selezione, puoapplicarla di riga in riga mentre crea il prodotto cartesiano,registrando effettivamente la riga solo se il criterio e rispettato.(Questo dipende chiaramente dal DBMS.)

Guido Pezzini Basi di Dati I

Page 257: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Questa che abbiamo ottenuto

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

e gia un’espressione migliore, perche un equi-join di solito eimplementato internamente in modo piu efficiente di un prodottocartesiano seguito da una selezione.

Ad esempio il DBMS non ha bisogno di immagazzinare tutti i datidel prodotto cartesiano prima di iniziare a fare la selezione, puoapplicarla di riga in riga mentre crea il prodotto cartesiano,registrando effettivamente la riga solo se il criterio e rispettato.(Questo dipende chiaramente dal DBMS.)

Guido Pezzini Basi di Dati I

Page 258: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Questa che abbiamo ottenuto

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

e gia un’espressione migliore, perche un equi-join di solito eimplementato internamente in modo piu efficiente di un prodottocartesiano seguito da una selezione.

Ad esempio il DBMS non ha bisogno di immagazzinare tutti i datidel prodotto cartesiano prima di iniziare a fare la selezione,

puoapplicarla di riga in riga mentre crea il prodotto cartesiano,registrando effettivamente la riga solo se il criterio e rispettato.(Questo dipende chiaramente dal DBMS.)

Guido Pezzini Basi di Dati I

Page 259: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Questa che abbiamo ottenuto

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

e gia un’espressione migliore, perche un equi-join di solito eimplementato internamente in modo piu efficiente di un prodottocartesiano seguito da una selezione.

Ad esempio il DBMS non ha bisogno di immagazzinare tutti i datidel prodotto cartesiano prima di iniziare a fare la selezione, puoapplicarla di riga in riga mentre crea il prodotto cartesiano,registrando effettivamente la riga solo se il criterio e rispettato.

(Questo dipende chiaramente dal DBMS.)

Guido Pezzini Basi di Dati I

Page 260: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Questa che abbiamo ottenuto

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

e gia un’espressione migliore, perche un equi-join di solito eimplementato internamente in modo piu efficiente di un prodottocartesiano seguito da una selezione.

Ad esempio il DBMS non ha bisogno di immagazzinare tutti i datidel prodotto cartesiano prima di iniziare a fare la selezione, puoapplicarla di riga in riga mentre crea il prodotto cartesiano,registrando effettivamente la riga solo se il criterio e rispettato.(Questo dipende chiaramente dal DBMS.)

Guido Pezzini Basi di Dati I

Page 261: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 262: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 263: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 264: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 265: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 266: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Continuiamo da:

πCapo(σEta<30(Impiegati onMatricola=Impiegato Supervisione))

Notiamo che nell’equi-join:

ci interessano comunque solo gli impiegati con meno di 30anni,

solo l’attributo Matricola viene coinvolto nell’equi-join,

e poi nessun attributo di Impiegati rimane dopo laproiezione finale.

Usiamo allora l’ultima equivalenza vista, ottenendo:

πCapo(πMatricola(σEta<30(Impiegati)) onMatricola=Impiegato

Supervisione)

Questa espressione e ancora migliore: l’equi-join viene fatto surelazioni probabilmente piu piccole di quelle di partenza.

Guido Pezzini Basi di Dati I

Page 267: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione! Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi, allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 268: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione! Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi, allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 269: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione!

Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi, allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 270: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione! Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi, allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 271: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione! Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi,

allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 272: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Vediamo altre equivalenze.

Distributivita della selezione rispetto all’unione:

σC (R1 ∪ R2) ≡ σC (R1) ∪ σC (R2)

e lo stesso con intersezione (∩) e differenza (r).

Distributivita della proiezione rispetto all’unione:

πX (R1 ∪ R2) ≡ πX (R1) ∪ πX (R2)

Attenzione: La proiezione non e distributiva rispetto alladifferenza, ne all’intersezione! Cioe in generale

πX (R1 ∩ R2) 6≡ πX (R1) ∩ πX (R2),πX (R1 r R2) 6≡ πX (R1) r πX (R2).

Ad esempio, se una riga r1 di R1 coincide con una riga r2 di R2 suX , ma r1 ed r2 non coincidono su altri attributi, allora r1 comparirain πX (R1 r R2) ma non in πX (R1) r πX (R2).

Guido Pezzini Basi di Dati I

Page 273: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 274: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 275: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 276: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 277: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 278: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Equivalenza di espressioni algebriche

Infine:

la selezione con piu criteri, legati logicamente con AND, OR,NOT, e legata agli operatori insiemistici:

σC1 OR C2(R) ≡ σC1(R) ∪ σC2(R)

σC1 AND C2(R) ≡ σC1(R) ∩ σC2(R)

σC1 AND NOT C2(R) ≡ σC1(R) r σC2(R)

l’unione e l’intersezione sono commutative ed associative,

distributivita del join rispetto all’unione:

R on (R1 ∪ R2) = (R on R1) ∪ (R on R2)

il theta-join e l’equi-join non sono associativi!

Guido Pezzini Basi di Dati I

Page 279: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Finora abbiamo visto gli operatori dell’algebra relazionaleipotizzando che non siano presenti valori NULL.

In pratica pero tali valori vanno ammessi, ed e necessario che ilcomportamento del DBMS in loro presenza sia ben specificato, ades. di fronte ad operazioni di confronto.Esempio:Persone

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Come interpretare l’espressione

Eta ≥ 30

in questa relazione?

Guido Pezzini Basi di Dati I

Page 280: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Finora abbiamo visto gli operatori dell’algebra relazionaleipotizzando che non siano presenti valori NULL.

In pratica pero tali valori vanno ammessi, ed e necessario che ilcomportamento del DBMS in loro presenza sia ben specificato,

ades. di fronte ad operazioni di confronto.Esempio:Persone

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Come interpretare l’espressione

Eta ≥ 30

in questa relazione?

Guido Pezzini Basi di Dati I

Page 281: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Finora abbiamo visto gli operatori dell’algebra relazionaleipotizzando che non siano presenti valori NULL.

In pratica pero tali valori vanno ammessi, ed e necessario che ilcomportamento del DBMS in loro presenza sia ben specificato, ades. di fronte ad operazioni di confronto.

Esempio:Persone

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Come interpretare l’espressione

Eta ≥ 30

in questa relazione?

Guido Pezzini Basi di Dati I

Page 282: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Finora abbiamo visto gli operatori dell’algebra relazionaleipotizzando che non siano presenti valori NULL.

In pratica pero tali valori vanno ammessi, ed e necessario che ilcomportamento del DBMS in loro presenza sia ben specificato, ades. di fronte ad operazioni di confronto.Esempio:Persone

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Come interpretare l’espressione

Eta ≥ 30

in questa relazione?

Guido Pezzini Basi di Dati I

Page 283: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Finora abbiamo visto gli operatori dell’algebra relazionaleipotizzando che non siano presenti valori NULL.

In pratica pero tali valori vanno ammessi, ed e necessario che ilcomportamento del DBMS in loro presenza sia ben specificato, ades. di fronte ad operazioni di confronto.Esempio:Persone

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Come interpretare l’espressione

Eta ≥ 30

in questa relazione?

Guido Pezzini Basi di Dati I

Page 284: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 285: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA,

visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 286: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 287: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 288: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 289: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 290: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Vediamo vari modi di dare una risposta.

In ogni caso partiamo dal presupposto che NON consideriamo ladisuguaglianza

NULL ≥ 30

come VERA, visto che nella relazione il dato NULL nel dominioEta vuol dire chiaramente che l’eta della persona non e nota,quindi non si puo affermare con certezza che sia ≥ 30.

Esempio:Una selezione sceglie le righe su cui il criterio e VERO.Allora qui abbiamoσEta≥30(Persone)

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 291: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Questo presupposto e ragionevole, pero va formalizzatoprecisamente per evitare risultati inaspettati.

Esempio: La relazione

σEta≥30(Persone) ∪ σEta<30(Persone)

dovrebbe essere uguale a...Persone, ma non lo e in presenza divalori NULL!Infatti abbiamo

σEta≥30(Persone) ∪ σEta<30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 292: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Questo presupposto e ragionevole, pero va formalizzatoprecisamente per evitare risultati inaspettati.Esempio: La relazione

σEta≥30(Persone) ∪ σEta<30(Persone)

dovrebbe essere uguale a...

Persone, ma non lo e in presenza divalori NULL!Infatti abbiamo

σEta≥30(Persone) ∪ σEta<30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 293: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Questo presupposto e ragionevole, pero va formalizzatoprecisamente per evitare risultati inaspettati.Esempio: La relazione

σEta≥30(Persone) ∪ σEta<30(Persone)

dovrebbe essere uguale a...Persone

, ma non lo e in presenza divalori NULL!Infatti abbiamo

σEta≥30(Persone) ∪ σEta<30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 294: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Questo presupposto e ragionevole, pero va formalizzatoprecisamente per evitare risultati inaspettati.Esempio: La relazione

σEta≥30(Persone) ∪ σEta<30(Persone)

dovrebbe essere uguale a...Persone, ma non lo e in presenza divalori NULL!

Infatti abbiamo

σEta≥30(Persone) ∪ σEta<30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 295: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Questo presupposto e ragionevole, pero va formalizzatoprecisamente per evitare risultati inaspettati.Esempio: La relazione

σEta≥30(Persone) ∪ σEta<30(Persone)

dovrebbe essere uguale a...Persone, ma non lo e in presenza divalori NULL!Infatti abbiamo

σEta≥30(Persone) ∪ σEta<30(Persone)

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Guido Pezzini Basi di Dati I

Page 296: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 297: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 298: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 299: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 300: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 301: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 302: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 303: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Un modo di formalizzare la nostra scelta e di usare una logica a trevalori:

vero,

falso,

sconosciuto.

Gli operatori logici NOT, AND, OR con questi tre valori sono iseguenti:

NOT

V FF VS S

AND V F S

V V F SF F F FS S F S

OR V F S

V V V VF V F SS V S S

Guido Pezzini Basi di Dati I

Page 304: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una logica a tre valori come questa puo essere usata per formularel’algebra relazionale con valori NULL in modo formalmentecorretto.

Ma non rende piu intuitivi risultati come l’esempio precedente: larelazione

σEta≥30(Persone) ∪ σEta<30(Persone)

rimane diversa da Persone.Con espressioni eventualmente molto piu complicate, il rischio diinserire operatori aspettandosi un risultato diverso e alto.

Guido Pezzini Basi di Dati I

Page 305: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una logica a tre valori come questa puo essere usata per formularel’algebra relazionale con valori NULL in modo formalmentecorretto.Ma non rende piu intuitivi risultati come l’esempio precedente: larelazione

σEta≥30(Persone) ∪ σEta<30(Persone)

rimane diversa da Persone.

Con espressioni eventualmente molto piu complicate, il rischio diinserire operatori aspettandosi un risultato diverso e alto.

Guido Pezzini Basi di Dati I

Page 306: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una logica a tre valori come questa puo essere usata per formularel’algebra relazionale con valori NULL in modo formalmentecorretto.Ma non rende piu intuitivi risultati come l’esempio precedente: larelazione

σEta≥30(Persone) ∪ σEta<30(Persone)

rimane diversa da Persone.Con espressioni eventualmente molto piu complicate, il rischio diinserire operatori aspettandosi un risultato diverso e alto.

Guido Pezzini Basi di Dati I

Page 307: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una formalizzazione migliore (adottata in SQL) consiste nel

1 aggiungere gli operatori

IS NULL, IS NOT NULL,

2 considerare automaticamente FALSA ogni condizione logica secoinvolge dati NULL, come se si aggiungesse sempreimplicitamente “AND IS NOT NULL”.

Esempio: L’espressione

Eta ≥ 30

va letta come

(Eta ≥ 30) AND (Eta IS NOT NULL)

Guido Pezzini Basi di Dati I

Page 308: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una formalizzazione migliore (adottata in SQL) consiste nel

1 aggiungere gli operatori

IS NULL, IS NOT NULL,

2 considerare automaticamente FALSA ogni condizione logica secoinvolge dati NULL, come se si aggiungesse sempreimplicitamente “AND IS NOT NULL”.

Esempio: L’espressione

Eta ≥ 30

va letta come

(Eta ≥ 30) AND (Eta IS NOT NULL)

Guido Pezzini Basi di Dati I

Page 309: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una formalizzazione migliore (adottata in SQL) consiste nel

1 aggiungere gli operatori

IS NULL, IS NOT NULL,

2 considerare automaticamente FALSA ogni condizione logica secoinvolge dati NULL, come se si aggiungesse sempreimplicitamente “AND IS NOT NULL”.

Esempio: L’espressione

Eta ≥ 30

va letta come

(Eta ≥ 30) AND (Eta IS NOT NULL)

Guido Pezzini Basi di Dati I

Page 310: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Una formalizzazione migliore (adottata in SQL) consiste nel

1 aggiungere gli operatori

IS NULL, IS NOT NULL,

2 considerare automaticamente FALSA ogni condizione logica secoinvolge dati NULL, come se si aggiungesse sempreimplicitamente “AND IS NOT NULL”.

Esempio: L’espressione

Eta ≥ 30

va letta come

(Eta ≥ 30) AND (Eta IS NOT NULL)

Guido Pezzini Basi di Dati I

Page 311: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

In questo modo non sorprende che

σEta≥30(Persone) ∪ σEta<30(Persone)6=

Persone

perche in realta va letta come

σ Eta≥30AND

Eta IS NOT NULL

(Persone) ∪ σ Eta<30AND

Eta IS NOT NULL

(Persone)

6=Persone

Avremo invece

σEta≥30(Persone) ∪ σEta<30(Persone) ∪ σEta IS NULL(Persone)=

Persone

Guido Pezzini Basi di Dati I

Page 312: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

In questo modo non sorprende che

σEta≥30(Persone) ∪ σEta<30(Persone)6=

Persone

perche in realta va letta come

σ Eta≥30AND

Eta IS NOT NULL

(Persone) ∪ σ Eta<30AND

Eta IS NOT NULL

(Persone)

6=Persone

Avremo invece

σEta≥30(Persone) ∪ σEta<30(Persone) ∪ σEta IS NULL(Persone)=

Persone

Guido Pezzini Basi di Dati I

Page 313: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

In questo modo non sorprende che

σEta≥30(Persone) ∪ σEta<30(Persone)6=

Persone

perche in realta va letta come

σ Eta≥30AND

Eta IS NOT NULL

(Persone) ∪ σ Eta<30AND

Eta IS NOT NULL

(Persone)

6=Persone

Avremo invece

σEta≥30(Persone) ∪ σEta<30(Persone) ∪ σEta IS NULL(Persone)=

Persone

Guido Pezzini Basi di Dati I

Page 314: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

In questo modo non sorprende che

σEta≥30(Persone) ∪ σEta<30(Persone)6=

Persone

perche in realta va letta come

σ Eta≥30AND

Eta IS NOT NULL

(Persone) ∪ σ Eta<30AND

Eta IS NOT NULL

(Persone)

6=Persone

Avremo invece

σEta≥30(Persone) ∪ σEta<30(Persone) ∪ σEta IS NULL(Persone)=

Persone

Guido Pezzini Basi di Dati I

Page 315: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.

Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 316: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima,

cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 317: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 318: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 319: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q

P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 320: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q

P∩Q PrQ

Nome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 321: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q

PrQ

Nome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 322: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q

PrQ

Nome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 323: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 324: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Discutiamo il comportamento dei singoli operatori che abbiamovisto, in presenza di valori NULL.Attenzione: Unione, intersezione, differenza si comportano comeprima, cioe come se NULL fosse un valore come gli altri.

P QNome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∪Q P∩Q PrQNome Eta

Rossi 31Neri 28

Bianchi NULLNULL 31

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Neri 28

Guido Pezzini Basi di Dati I

Page 325: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:

P πEta(P)Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto (aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 326: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:P

πEta(P)

Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto (aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 327: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:P πEta(P)

Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto (aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 328: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:P πEta(P)

Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto (aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 329: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:P πEta(P)

Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto

(aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 330: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

La proiezione si comporta allo stesso modo:P πEta(P)

Nome Eta

Rossi 31Neri NULL

Bianchi NULL

Eta

31NULL

E la selezione si comporta come abbiamo visto (aggiungendo cioesempre “AND IS NOT NULL”).

Guido Pezzini Basi di Dati I

Page 331: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Il join

e uguale ad un equi-join dove si richiede uguaglianza su tuttigli attributi comuni. Quindi si aggiunge come sopra “AND IS NOTNULL” quando si confrontano le righe sulle colonne comuni.

La conseguenza e che due righe non sono compatibili se hannovalori NULL su colonne comuni, anche se coincidono su tutti ivalori noti.

Guido Pezzini Basi di Dati I

Page 332: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Il join e uguale ad un equi-join dove si richiede uguaglianza su tuttigli attributi comuni.

Quindi si aggiunge come sopra “AND IS NOTNULL” quando si confrontano le righe sulle colonne comuni.

La conseguenza e che due righe non sono compatibili se hannovalori NULL su colonne comuni, anche se coincidono su tutti ivalori noti.

Guido Pezzini Basi di Dati I

Page 333: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Il join e uguale ad un equi-join dove si richiede uguaglianza su tuttigli attributi comuni. Quindi si aggiunge come sopra “AND IS NOTNULL” quando si confrontano le righe sulle colonne comuni.

La conseguenza e che due righe non sono compatibili se hannovalori NULL su colonne comuni, anche se coincidono su tutti ivalori noti.

Guido Pezzini Basi di Dati I

Page 334: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Il join e uguale ad un equi-join dove si richiede uguaglianza su tuttigli attributi comuni. Quindi si aggiunge come sopra “AND IS NOTNULL” quando si confrontano le righe sulle colonne comuni.

La conseguenza e che due righe non sono compatibili se hannovalori NULL su colonne comuni, anche se coincidono su tutti ivalori noti.

Guido Pezzini Basi di Dati I

Page 335: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat

366521 4.3.2017 102 MI ? NULL 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 336: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoli

Codice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat

366521 4.3.2017 102 MI ? NULL 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 337: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat

366521 4.3.2017 102 MI ? NULL 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 338: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102

MI ? NULL

8D1526 Audi

Guido Pezzini Basi di Dati I

Page 339: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI ? NULL 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 340: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat366521 4.3.2017 102 MI ? NULL 8D1526 Audi

Guido Pezzini Basi di Dati I

Page 341: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Esempio:Infrazioni

Codice Data Agente Prov. Numero

143886 20.1.2017 277 RM 4E5432366521 4.3.2017 102 NULL 8D1526

VeicoliProv. Numero Marca

FI 2B5881 FordRM 4E5432 FiatMI 8D1526 Audi

InfrazionionVeicoliCodice Data Agente Prov. Numero Marca

143886 20.1.2017 277 RM 4E5432 Fiat

Guido Pezzini Basi di Dati I

Page 342: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!

Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q PonQNome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 343: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q PonQNome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 344: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q

PonQNome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 345: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q

PonQ

Nome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 346: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q PonQNome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I

Page 347: Corso di Basi di Dati 4. Algebra relazionale - mat.uniroma1.it · L’algebra relazionale e un insieme di operazioni che si e ettuano su una base di dati relazionale. Lo scopo e quello

Algebra relazionale con valori NULL

Attenzione: Con valori NULL, il join di due relazioni con gli stessiattributi non e uguale alla loro intersezione!Esempio:P Q

Nome Eta

Rossi 31Neri 28

Bianchi NULL

Nome Eta

Rossi 31NULL 31

Bianchi NULL

P∩Q PonQNome Eta

Rossi 31Bianchi NULL

Nome Eta

Rossi 31

Guido Pezzini Basi di Dati I