È 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 )

  1. Inizialmente assegniamo stesso all’accumulatore di che useremo nel ciclo.
  2. Scegliamo in modo che sia determinata da un insieme di attributi appartenenti alla chiusura di come calcolata fino a questo momento; poi assegniamola a .
  3. while : Fermiamoci quando non si può scegliere un attributo in modo che non sia già nella chiusura di .
    1. Aggiungiamo alla chiusura di .
  4. return

Dimostrazione che l’algoritmo è corretto

todo pag. 9 del pdf 11