Primarni ključ vs Jedinstveni ključ
Stupac ili skup stupaca pomoću kojih se može prepoznati ili pristupiti retku ili skupu redaka u bazi podataka naziva se ključem. Jedinstveni ključ je ključ koji može jedinstveno prepoznati red u tablici u kontekstu relacijskih baza podataka. Jedinstveni ključ sastoji se od jednog stupca ili skupa stupaca. Primarni ključ je i kombinacija stupaca u tablici koji jedinstveno identificiraju red. Ali to se smatra posebnim slučajem jedinstvenog ključa.
Što je jedinstveni ključ?
Kao što je spomenuto ranije, jedinstveni ključ je jedan stupac ili skup stupaca koji mogu jedinstveno identificirati red u tablici. Dakle, jedinstveni je ključ ograničen na način da mu dvije vrijednosti nisu jednake. Jedno od važnih svojstava je da jedinstveni ključevi ne nameću ograničenje NOT NULL. Budući da NULL predstavlja nedostatak vrijednosti, ako dva retka imaju NULL u stupcu, to ne znači da su vrijednosti jednake. Stupac definiran kao jedinstveni ključ omogućuje samo jednu NULL vrijednost u tom stupcu. Tada se to može koristiti za jedinstveno prepoznavanje tog retka. Na primjer, u tablici koja sadrži podatke o studentu ID učenika može se definirati kao jedinstveni ključ. Budući da nijedna dva studenta ne mogu imati isti ID, to jedinstveno identificira pojedinog učenika. Dakle, stupac ID učenika zadovoljava sva svojstva jedinstvenog ključa. Ovisno o dizajnu baze podataka, tablica može imati više jedinstvenih ključeva.
Što je primarni ključ?
Primarni ključ je također stupac ili kombinacija stupaca koji jedinstveno definira red u tablici relacijske baze podataka. Tablica može imati najviše jedan primarni ključ. Primarni ključ nameće implicitno ograničenje NOT NULL. Dakle, stupac koji je definiran kao primarni ključ ne može u sebi imati NULL vrijednosti. Primarni ključ može biti uobičajeni atribut u tablici za koji je zajamčeno da je jedinstven, poput broja socijalnog osiguranja ili može biti jedinstvena vrijednost koju generira sustav upravljanja bazama podataka, kao što je globalno jedinstveni identifikator (GUID) u Microsoftovom SQL Serveru. Primarni ključevi su definirani pomoću PRIMARY KEY ograničenja u ANSI SQL standardu. Primarni ključ se također može definirati prilikom stvaranja tablice. SQL omogućava da se primarni ključ sastoji od jednog ili više stupaca, a svaki stupac koji je uključen u primarni ključ implicitno je definiran da NIJE NULL. No neki sustavi za upravljanje bazama podataka izričito izrađuju stupce primarnog ključa NIJE NULL.
Razlika između primarnog i jedinstvenog ključa
Iako su i primarni i jedinstveni ključ jedan ili više stupaca koji jedinstveno mogu prepoznati red u tablici, oni imaju neke važne razlike. Najvažnije je da tablica može imati samo jedan primarni ključ, dok može imati više jedinstvenih ključeva. Primarni ključ može se smatrati posebnim slučajem jedinstvenog ključa. Druga je razlika što primarni ključevi imaju implicitno NULL ograničenje, dok jedinstveni ključ nema to ograničenje. Stoga jedinstveni stupovi ključeva mogu ili ne sadrže NULL vrijednosti, ali stupci primarnog ključa ne mogu sadržavati NULL vrijednosti.