Related


Introduzione

Quando si decompone uno schema R su cui è definito un insieme di dipendenze funzionali F per ottenere altri schemi in 3NF, è importante preservare tutte le dipendenze in .

Quindi ci serve calcolare , però questo procedimento può essere lungo visto che richiede tempo esponenziale rispetto alla cardinalità di R ().

In realtà ci basta sapere se una dipendenza funzionale appartiene ad , e possiamo farlo calcolando e verificando che , infatti per il lemma 1: e poi il teorema dimostra che .

Inoltre il calcolo di può tornare utile per verificare che un insieme di attributi sia chiave di uno schema.


Calcolo Chiusura (Algo)

Il calcolo della chiusura di un insieme di attributi denotato come può essere fatto attraverso questo algoritmo.

\begin{flalign*} &Z:=X\\ &S:=\{A \mid Y\to V\in F,\,\, A\in V,\,\, Y\subseteq Z\}\\ \\ &\text{while } S\not\subset Z:\\ &\qquad\qquad Z:=Z\cup S\\ &\qquad\qquad S:=\{A \mid Y\to V\in F,\,\, A\in V,\,\, Y\subseteq Z\}\\ \end{flalign*}

Input

  • R:Schema relazionale
  • F:Insieme di dipendenze funzionali su
  • X:Un sottoinsieme di

Output

  • Z: Chiusura di rispetto ad

Approfondimento

Inizialmente abbiamo che:

  • che è uguale ad
  • contiene i singoli attributi che compongono le parti a destra delle dipendenze funzionali la cui parte sinistra è in .

Quindi inizialmente in avremo gli attributi determinati da .

Poi aggiungiamo questi elementi a e continuiamo a iterare sui nuovi insieme .

Ci fermiamo quando non ha elementi “nuovi” rispetto a .


Esempi

Aggiungere Esempi Migliori

Esempio 1

Notiamo che per ogni passaggio dobbiamo sempre far partire la catena di operazioni da .

È quindi più semplice vedere cosa abbiamo in e “combinando” i pezzi vedere cosa possiamo ottenere.

Adesso dobbiamo dimostrare che l’algoritmo è corretto, ovvero che calcola correttamente la chiusura di un insieme di attributi rispetto ad un insieme di dipendenze funzionali.


Dimostrazione

Aggiungi dimostrazioneeeeeee