Premessa

Portale di appartenenza: Basi di dati.

Cosa troverai in questa nota:

Prerequisiti: per comprendere pienamente il contenuto di questa nota, oltre le conoscenze minime che do per scontato che tu sappia giΓ , ti consiglio di aver letto in precedenza queste altre note:

Buona lettura! β˜οΈπŸ€“


L’algebra relazionale Γ¨ composizionale, ovvero si possono costruire espressioni di algebra relazionale componendo insieme gli operatori relazionali.

Definizione: composizione di operatori relazionali

Dati due operatori relazionali e , la loro composizione consiste nel dare come argomento dell’operatore il risultato dell’operazione di :

1 - Notazione ad albero sintattico

Per visualizzare comodamente un’interrogazione composta da una composizione di operatori si usa la notazione ad albero sintattico.

Notazione ad albero sintattico di una composizione

Una composizione di operatori relazionali si puΓ² rappresentare attraverso un albero sintattico, ossia un albero utile a visualizzare la sequenza di esecuzione delle operazioni. In particolare:

  • Sul nodo radice viene posto l’operatore eseguito per ultimo nella composizione.
  • Sui nodi foglia vengono poste le relazioni di partenza su cui vengono eseguite le operazioni.
  • Ogni nodo interno rappresenta uno degli operatori della composizione applicato al risultato del nodo figlio.
1: |latex
  \text{CORSI}
|

1 -> 2
2: |latex
  \sigma_{\text{CORSI.Durata} < 50}
|

3: |latex
  \text{STUDENTI}
|

2 -> 4
3 -> 4
4: |latex
  \pi_{\text{STUDENTI.Corso}} = \text{CORSI.}\underline{\text{CodiceCorso}}
|

4 -> 5
5: |latex
  \pi_{\text{STUDENTI.}\underline{\text{Matricola}}}
|

2 - Definizione di operatore derivato

Definizione: operatore derivato

Nell’algebra relazionale, un operatore derivato Γ¨ un operatore relazionale ottenuto dalla composizione di altri operatori di base o anch’essi derivati.

Gli operatori derivati piΓΉ comuni sono:

3 - Theta-join

Definizione: theta-join

Date due relazioni ed (con ) e un predicato tra due attributi e , il theta-join Γ¨ un operatore relazionale definito come la selezione di alcuni record secondo il predicato nel prodotto cartesiano :

Viene usato per mettere in correlazione dati estratti da due o piΓΉ relazioni diverse.

Osservazione: cardinalitΓ  del risultato del theta-join

Date due relazioni ed (con ) e un predicato tra un attributo e un attributo , la cardinalitΓ  della relazione prodotta dall’operazione di theta-join Γ¨:

Sappiamo perΓ² che , quindi:

Osservazione: theta-join con schemi non disgiunti

Nel caso in cui ci sia bisogno di effettuare un’operazione di theta-join tra due relazioni ed con schemi e non disgiunti (cioΓ¨ ), si puΓ² usare l’operazione di ridenominazione per cambiare il nome degli attributi in conflitto (a patto perΓ² che siano dello stesso tipo).

4 - Equi-join

Definizione: equi-join

Date due relazioni ed (con ) e un predicato tra due attributi e che confronta solamente le loro uguaglianze, l’equi-join Γ¨ un operatore relazionale definito come la selezione di alcuni record secondo il predicato nel prodotto cartesiano :

Rappresenta un caso particolare del theta-join in cui i confronti del predicato Γ¨ composto solo da uguaglianze.

Osservazione: partecipazione completa di una delle due relazioni nell'equi-join

Se si prova a effettuare un equi-join tra due relazioni ed (con ), in cui ha partecipazione completa (ossia ogni record di ha almeno una corrispondenza in ), otteniamo che la cardinalitΓ  sarΓ :

Osservazione: equi-join in corrispondenza di una chiave primaria

Siano due relazioni ed (dove Γ¨ un sottoinsieme di attributi qualsiasi e Γ¨ la chiave primaria di ) tali che .

Se si prova a effettuare un equi-join con un predicato del tipo (dove e ), per ogni record di si troverΓ  al piΓΉ una () corrispondenza con (altrimenti si violerebbe il vincolo di chiave primaria non essendoci piΓΉ unicitΓ  nei valori), quindi otteniamo che la cardinalitΓ  sarΓ :

Se proviamo a fare perΓ² la stessa cosa ma aggiungendo il vincolo di integritΓ  referenziale, otteniamo una corrispondenza 1 a 1 tra i record delle due relazioni.

Osservazione: equi-join in corrispondenza di una chiave primaria con vincolo di integritΓ  referenziale

Siano due relazioni ed (dove Γ¨ un sottoinsieme di attributi qualsiasi e Γ¨ la chiave primaria di ) tali che . Vale inoltre il vincolo di integritΓ  referenziale seguente:

Se si prova a effettuare un equi-join con un predicato del tipo (dove e ), per ogni record di si troverΓ  esattamente una () corrispondenza con , quindi otteniamo che la cardinalitΓ  sarΓ :

5 - Natural-join

Definizione: natural-join

Date due relazioni ed tali che gli sottoinsiemi di attributi , e sono disgiunti due a due e un predicato che verifica l’uguaglianza tra ogni attributo in col corrispondente in , il natural-join (anche detto inner-join) Γ¨ un operatore relazionale definito come la proiezione rispetto a , e dell’equi-join tra ed :

Viene usato per generalizzare il concetto di equi-join operando una proiezione sull’unione degli attributi di entrambe le relazioni coinvolte.

Le tuple che non hanno corrispondenze in entrambe le relazioni sono dette dangling e vengono scartate durante l’operazione.

Osservazione: natural-join su schemi disgiunti equivalente al prodotto cartesiano

Date due relazioni ed (con ), il loro natural-join diventa equivalente al loro prodotto cartesiano:

Osservazione: natural-join su schemi corrispondenti equivalente all'intersezione

Date due relazioni ed , il loro natural-join diventa equivalente alla loro intersezione:

CiΓ² accade perchΓ© il natural-join, per definizione, viene effettuato su tutti gli attributi (essendoci sempre una corrispondenza in entrambi gli schemi) e include solo i record che appaiono in entrambe, cosa che coincide proprio con la definizione di intersezione.

6 - Semi-join

Definizione: semi-join

Date due relazioni ed (con ) e un predicato , il semi-join Γ¨ un operatore relazionale definito come la proiezione rispetto allo schema del theta-join tra ed :

Viene usato per limitare il theta-join allo schema di una delle due relazioni.

Osservazione: cardinalitΓ  del risultato del semi-join

Date due relazioni ed (con ) e un predicato , la cardinalitΓ  della relazione prodotta dall’operazione di semi-join Γ¨:

CiΓ² accade perchΓ© il semi-join Γ¨ composto da una proiezione e la cardinalitΓ  di una proiezione Γ¨ al massimo uguale a quella dell’istanza a cui si riferisce.

7 - Outer-join

Definizione: outer-join

Gli outer-join sono operatori relazionali che effettuano un natural-join su cui perΓ² non vengono perse tutte le tuple dangling di una delle due relazioni o di entrambe e sono distinti in tre tipi:

7.1 - Left-join

Definizione: left-join

Date due relazioni ed tali che gli sottoinsiemi di attributi , e sono disgiunti a due a due e un predicato che verifica l’uguaglianza tra ogni attributo in col corrispondente in , il left-join Γ¨ un operatore relazionale (in particolare un outer-join) definito come un natural-join in cui le tuple dangling della relazione vengono mantenute e rispetto agli attributi assumono valore nullo, mentre le tuple dangling della relazione vengono scartate:

7.2 - Right-join

Definizione: right-join

Date due relazioni ed tali che gli sottoinsiemi di attributi , e sono disgiunti a due a due e un predicato che verifica l’uguaglianza tra ogni attributo in col corrispondente in , il right-join Γ¨ un operatore relazionale (in particolare un outer-join) definito come un natural-join in cui le tuple dangling della relazione vengono mantenute e rispetto agli attributi assumono valore nullo, mentre le tuple dangling della relazione vengono scartate:

7.3 - Full-join

Definizione: full-join

Date due relazioni ed tali che gli sottoinsiemi di attributi , e sono disgiunti a due a due e un predicato che verifica l’uguaglianza tra ogni attributo in col corrispondente in , il right-join Γ¨ un operatore relazionale (in particolare un outer-join) definito come un natural-join in cui sia le tuple dangling della relazione che quelle della relazione vengono mantenute e rispetto agli attributi e assumono valore nullo:

8 - Quoziente

Definizione: quoziente

Date due relazioni ed (con ), il quoziente Γ¨ un operatore relazionale definito nel seguente modo:

Viene usato per cercare i valori di un attributo che sono associati a ogni valore di altri attributi.

Osservazione: cardinalitΓ  del risultato del quoziente

Date due relazioni ed (con ), la cardinalitΓ  della relazione prodotta dall’operazione di quoziente Γ¨:

CiΓ² accade perchΓ© il semi-join Γ¨ composto da una proiezione e la cardinalitΓ  di una proiezione Γ¨ al massimo uguale a quella dell’istanza a cui si riferisce.

Osservazione: risoluzione delle interrogazioni con quantificatori universali tramite quoziente

Le interrogazioni con una quantificazione universale, ossia quelle interrogazioni in cui sono presenti parole chiave come β€œtutti”, β€œogni” e β€œsempre”, possono essere risolte tramite l’operatore quoziente.


Approfondimento