Vào:
F: là tập phụ thuộc hàm trong Q.
Ra:
Tập phụ thuộc hàm.
Begin:
Bước 1:
Với mỗi phụ thuộc hàm X Y trong F, ta xét xem X có dư thừa không:
Foreach (phụ thuộc hàm X Y trong F)
{
Foreach (thuộc tính B trong X)
{
If (member (F, X – B Y))
{
Thay X Y trong F bằng X-B Y;
}
}
}
Bước 2:
Với mỗi phụ thuộc hàm X Y trong F, ta xét xem Y nhiều hơn 1 thuộc tính không.
foreach (PhuThuocHam X Y trong F)
{
if (số thuộc tính trong Y > 1)
{
foreach (mỗi thuộc tính C trong Y)
{
Thêm X C vào F;
}
Xóa X Y trong F;
}
}
Bước 3:
Kiểm tra xem trong F có tồn tại phụ thuộc hàm thừa không:
foreach (mỗi phụ thuộc hàm X Y trong F)
{
If (Equivalence(F – {X Y}, F))
Xóa phụ thuộc hàm X Y trong F;
}
End.