Najpierw określamy, jakie relacje aplikacji nas interesują. Np. „użytkownik [identyfikator użytkownika] ma rolę wykładowca” lub „użytkownik [identyfikator użytkownika] ma imię [imię] i hasło [hasło] i…”.
Każdy otrzymuje relację bazową, która zawiera wiersze wartości, które są w ten sposób powiązane. Parametrami relacji aplikacji relacji są jej atrybuty. Np. Wykładowca (ID użytkownika) lub Użytkownik (ID użytkownika, imię, hasło, ...).
Dla każdej relacji znaczenie jej relacji aplikacyjnej określa dla każdej kolumny, od jakich zestawów kolumn jest ona funkcjonalnie zależna. Np.:Podany użytkownik [ID użytkownika] ma imię [imię] i hasło [hasło] i ..., jeśli znasz ID użytkownika, to czy znasz imię? Jeśli tak jest FD {ID użytkownika} -> {imię}. Jeśli znasz ID użytkownika i hasło, czy znasz imię? I tak dalej dla każdej relacji i każdego zestawu (ewentualnie określających) atrybutów i każdego (ewentualnie określonego) atrybutu.
Następnie znajdujemy na to minimalną osłonę. To określa klucze kandydujące.
Więc jeśli potrzebujesz opinii na temat tych kroków, zrób je.