3NF algorithm