Eerst bepalen we in welke applicatierelaties we geïnteresseerd zijn. Bijvoorbeeld "gebruiker [gebruikers-ID] heeft de rol docent" of "gebruiker [gebruikers-ID] heeft voornaam [voornaam] en wachtwoord [wachtwoord] en ...".
Elk krijgt een basisrelatie die de rijen waarden bevat die op die manier gerelateerd zijn. De parameters van de toepassingsrelatie van een relatie zijn de attributen. Bijv. Docent(gebruikers-ID) of Gebruiker(gebruikers-ID, voornaam, wachtwoord, ...).
Voor elke relatie bepaalt de betekenis van zijn toepassingsrelatie voor elke kolom van welke sets kolommen deze functioneel afhankelijk is. Bijv.:Gegeven gebruiker [gebruikers-ID] heeft voornaam [voornaam] en wachtwoord [wachtwoord] en ..., als u de gebruikers-ID kent, weet u dan de voornaam? Zo ja, dan is er FD {user ID} -> {voornaam}. Als u de gebruikersnaam en het wachtwoord kent, weet u dan de voornaam? En zo verder voor elke relatie en elke set van (mogelijk bepalende) attributen en elk (mogelijk bepaald) attribuut.
Dan vinden we daar een minimale dekking voor. Dit bepaalt de kandidaatsleutels.
Dus als je wat feedback over deze stappen wilt, doe ze dan.