Först avgör vi vilka applikationsrelationer vi är intresserade av. T.ex. "användare [användar-ID] har rollen som föreläsare" eller "användare [användar-ID] har förnamn [förnamn] och lösenord [lösenord] och ...".
Var och en får en basrelation som innehåller raderna med värden som är relaterade på det sättet. Parametrarna för en relations applikationsrelation är dess attribut. T.ex. föreläsare(användar-ID) eller användare(användar-ID, förnamn, lösenord, ...).
För varje relation bestämmer innebörden av dess tillämpningsförhållande för varje kolumn vilka uppsättningar kolumner den är funktionellt beroende av. T.ex.:Given användare [användar-ID] har förnamn [förnamn] och lösenord [lösenord] och ..., om du känner till användar-ID vet du då förnamn? I så fall finns det FD {användar-ID} -> {förnamn}. Om du känner till användar-ID och lösenord vet du förnamn? Och så vidare för varje relation och varje uppsättning (möjligen avgörande) attribut och varje (möjligen bestämd) attribut.
Då hittar vi en minimal täckning för det. Detta avgör kandidatnycklar.
Så om du vill ha feedback om dessa steg, gör dem.