È migliore dell’applicazione indiscriminata degli assiomi di Armstrong per calcolare , ha complessità polinomiale.
Input: una schema di relazione , un insieme di dipendenze funzionali su , un sottoinsieme di .
Output: la chiusura di rispetto ad (restituita nella variabile )
- Inizialmente assegniamo stesso all’accumulatore di che useremo nel ciclo.
- Scegliamo in modo che sia determinata da un insieme di attributi appartenenti alla chiusura di come calcolata fino a questo momento; poi assegniamola a .
while: Fermiamoci quando non si può scegliere un attributo in modo che non sia già nella chiusura di .- Aggiungiamo alla chiusura di .
return
Dimostrazione che l’algoritmo è corretto
todo pag. 9 del pdf 11