Представяме си един UNIQUE ключ. Ако махнем едно поле и уникалността се запази – това е Супер ключ. Ако се счупи – това е Потенциален ключ.
Супер ключ е нещо като лошо дефиниран UNIQUE ключ, тоест – има излишни атрибути, които и да махнем от този UNIQUE ключ, няма да счупим начинът, по който можем уникално да определим даденият запис.
Разликата между Супер ключ и Потенциален ключ е, че единият удовлетворява само изискването за уникалност, другият – и за минималност.
Потенциално, всеки от Потенциалните ключове може да е Първичен ключ, принципна разлика между двете няма.
Просто си задай въпроса: „Кое поле, или минимална комбинация от полета, може да ми гарантира уникалността на реда“, и това е.
Eто пример, това са възможните Супер ключове:
{p_id}
{p_id, p_firstname}
{p_id, p_surname}
{p_id, p_firstname, p_surname}
Koй е Потенциалният ключ?
{p_id} защото отговаря и на изискването за уникалност, и за минималност.
Prime attribute са тези полета, които са част от някои от Потенциалните ключове.
Съответно, Non-prime attributes са такива, които дори и да са част от някой от Супер ключовете, не са част от никой от Потенциалните ключове.
Литература: