Related


Introduzione

Una copertura minimale è un insieme di dipendenze funzionali che è equivalente all’insieme originale di dipendenze funzionali, ma con il minimo numero di dipendenze funzionali necessarie per descrivere le relazioni tra gli attributi.

oss: Un insieme di dipendenze funzionali , può avere più coperture minimali equivalenti. È proprio questo il motivo per cui l’algoritmo di decomposizione può produrre risultati diversi, ma tutti corretti.


Definizione

Sia un insieme di dipendenze funzionali. Una copertura minimale di è un insieme di dipendenze funzionali equivalente ad che rispetta queste 3 condizioni:

Condizione 1

Per ogni dipendenza funzionale in la parte destra è un singleton.

Importante: ogni attributo nella parte destra è non ridondante

Condizione 2

Per nessuna dipendenza funzionale in esiste tale che

Ovvero non accedere che:

  • se a tolgo e aggiungo

  • dopo queste operazioni è restato invariato allora

Importante: ogni attributo nella parte sinistra è non ridondante

Condizione 3

Per nessuna dipendenza funzionale in si ha che:

Ovvero: se a tolgo la dipendenza e il “significato” di resta invariato allora non va bene.

Importante: ogni dipendenza è non ridondante


Calcolo

Per ogni insieme di dipendenze funzionali esiste una copertura minimale equivalente ad che può essere ottenuta in tempo polinomiale in tre passi:

Passo 1

Usando la regola della decomposizione, le parti destre delle dipendenze funzionali vengono ridotte a singleton.

Ovvero: uguale ad e

Passo 2

Ogni dipendenza funzionale in tale che:

Deve essere sostituita da , se quest’ultima appartiene già ad la dipendenza originaria viene semplicemente eliminata, altrimenti il processo viene ripetuto ricorsivamente su

Il passo termina quando nessuna dipendenza funzionale può più essere ridotta.

Passo 3

Ogni dipendenza funzionale in tale che:

viene eliminata, in quanto risulta ridondante.


Verificare l’equivalenza

Il passo 2 ed il passo 3 richiedono la verifica dell’equivalenza tra due insiemi di dipendenze funzionali (Lemma 2).

Visto che ci troviamo in condizioni speciali vedremo che ci sono dei metodi semplificati per verificare l’equivalenza.

Verifica in passo 2

Assumiamo che:

  • F sia l’insieme di dipendenze funzionali
  • G sia l’insieme di dipendenze funzionali “ridotto”

Notiamo che i due insieme sono identici tranne per una dipendenza

  • F conterrà la dipendenza “originale” che chiameremo

  • F conterrà la dipendenza “ridotta” che chiameremo

oss:

Per verificare l’equivalenza tra F e G dobbiamo solo controllare che

  • la dipendenza “originale” ( si trovi in

  • la dipendenza “ridotta” ( si trovi in .

oss: non serve ricalcolare la chiusura di attributi di cui l’abbiamo già calcolata (non cambiano)

Verifica in passo 3

Assumiamo che:

  • F sia l’insieme delle dipendenze funzionali che contiene la dipendenza

  • G sia uguale ad ma è stata rimossa

oss: Notiamo che i due insieme differiscono soltanto per una dipendenza e che quindi

Quindi per verificare che ci resta soltanto da controllare che , che sarà sicuramente vero se

Ma visto che e differiscono soltanto per e basta verificare che ovvero che

oss: serve ricalcolare la chiusura di attributi di cui l’abbiamo già calcolata, infatti potrebbe cambiare


Esempi

Vedi altri esercizi qui

Esempio

Calcolare la copertura minimale di: