W każdej relacji może istnieć wiele kluczy kandydujących. Klucz kandydujący to kolumna lub zbiór kolumn, które mogą występować jako jednoznaczny identyfikator wierszy w tabeli. Klucz główny jest wybierany ze zbioru kluczy kandydujących. Każdy klucz kandydujący, a więc także każdy klucz główny, musi mieć dwie właściwości. Musi być jednoznaczny i nie może mieć wartości null. Po pierwsze, z definicji każdy klucz kandydujący musi być jednoznacznym identyfikatorem. Dlatego nie może być żadnych powtarzających się układów wartości w kolumnach kluczy kandydującego lub głównego. Po drugie, wartość klucza głównego musi być określona dla każdego wiersza w tabeli.