Iako je primarni ključ odabran između kandidatskih ključeva, postoji određena razlika između primarnog i drugog ključa, o čemu će se detaljno govoriti u ovom članku. Dizajn baze podataka jedna je od najvažnijih aktivnosti koju treba obaviti prilikom održavanja i pohrane podataka. Tijekom ovog procesa dizajniranja moraju se stvoriti različite tablice s mnogim odnosima. Za pristup ovim tablicama u bazi podataka koriste se različite vrste ključeva u modernim jezicima za projektiranje baze podataka kao što su MYSQL, MSAccess, SQLite itd. Od ovih ključeva, kandidatski i primarni ključevi postali su nužni u praksi dizajniranja baza podataka.
Ključ kandidata je jedan stupac ili skup stupaca u tablici baze podataka za koju se može koristiti jedinstveno identificirati bilo koji zapis baze podataka bez upućivanja na bilo koje druge podatke. Svaka tablica baze podataka može imati jedan ili više ključeva kandidata. Skup ključeva kandidata može se stvoriti pomoću funkcionalnih ovisnosti. Nekoliko je važnih značajki u kandidatskom ključu. Oni su;
• ključevi kandidata trebaju biti jedinstveni unutar domene i ne bi trebali sadržavati NULL vrijednosti.
• ključ kandidata nikada se ne smije mijenjati i mora imati istu vrijednost za specifičnu pojavu subjekta.
Glavna svrha ključa kandidata je pomoći u prepoznavanju jednog retka od milijuna redaka u velikoj tablici. Svaki je ključ kandidata kvalificiran da postane primarni ključ. No, od svih kandidatskih ključeva najvažniji i posebni ključ kandidata postat će primarni ključ tablice i najbolji je kod kandidatskih ključeva.
Primarni ključ je najbolji ključ tablice tablice koja se koristi za jedinstvenu identifikaciju zapisa koji su pohranjeni u tablici. Prilikom stvaranja nove tablice u bazi podataka od nas se traži da odaberemo primarni ključ. Stoga je odabir primarnog ključa za tablicu najkritičnija odluka koju bi trebao donijeti dizajner baze podataka. Najvažnije ograničenje koje treba uzeti u obzir pri odlučivanju o primarnom ključu je da odabrani stupac tablice treba sadržavati samo jedinstvene vrijednosti, a ne smije sadržavati i NULL vrijednosti. Neki od primarnih ključeva koji se obično koriste pri dizajniranju tablica su Socijalni broj osiguranja (SSN), ID i Broj državne iskaznice (NIC).
Programer bi trebao zaboraviti odabrati primarni ključ jer ga je teško promijeniti. Stoga je, prema programerima, najbolja praksa stvaranja primarnog ključa upotreba interno generiranog primarnog ključa, poput Record ID-a stvorenog pomoću AutoNumber podataka tipa MS Access. Ako pokušamo umetnuti zapis u tablicu s primarnim ključem koji duplicira postojeći zapis, umetanje neće uspjeti. Vrijednost primarnog ključa ne smije se stalno mijenjati, stoga je važnije zadržati statički primarni ključ.
Primarni ključ je ključ najboljeg kandidata.
• Ključ kandidat je stupac koji se kvalificira kao jedinstven, a primarni ključ je stupac koji jedinstveno identificira zapis.
• Tabela bez kandidatnih ključeva ne predstavlja odnos.
• U bazi podataka može biti puno ključeva kandidata za tablicu, ali treba postojati samo jedan primarni ključ za tablicu.
• Iako je primarni ključ jedan od kandidatskih ključeva, ponekad je to jedini kandidatski ključ.
• Kad je odabran primarni ključ, ostali ključevi kandidata postaju jedinstveni ključevi.
• Praktično kandidatski ključ može sadržavati NULL vrijednosti iako trenutno ne sadrži nikakvu vrijednost. Dakle, kandidatski ključ nije kvalificiran za primarni ključ jer primarni ključ ne bi trebao sadržavati NULL vrijednosti.
• Također je moguće da kandidatski ključevi, koji su trenutno jedinstveni, mogu sadržavati duplicirane vrijednosti koje diskvalificiraju ključ kandidata da ne postane primarni ključ.
Sažetak:
Kandidatni ključ i primarni ključ bitni su ključevi koji se koriste u dizajniranju baza podataka u svrhu jedinstvene identifikacije podataka u zapisu i uspostavljanja odnosa među tablicama baze podataka. Tablica treba sadržavati samo jedan primarni ključ i može sadržavati više od jednog kandidatskog ključa. Danas je većina baza podataka sposobna automatski generirati vlastiti primarni ključ. Stoga primarni ključ i kandidatski ključevi pružaju brojnu podršku sustavima za upravljanje bazama podataka.
Ljubaznošću slika: