Baze podataka ovise o ključevima za pohranu, sortiranje i usporedbu ili stvaranje odnosa između zapisa. Ako se već neko vrijeme bavite bazama podataka, vjerojatno ste čuli za različite vrste ključeva: primarne ključeve, ključeve kandidata i strane ključeve.
Kada kreirate novu tablicu baze podataka, od vas se traži da odaberete jedan primarni ključ koji će jedinstveno identificirati svaki zapis pohranjen u toj tablici.
Zašto je primarni ključ važan
Odabir primarnog ključa jedna je od najvažnijih odluka koje ćete donijeti u dizajnu nove baze podataka. Najvažnije ograničenje je da morate osigurati da je odabrani ključ jedinstven. Ako je moguće da dva zapisa (prošli, sadašnji ili budući) dijele istu vrijednost za atribut, to je loš izbor za primarni ključ.
Još jedan važan aspekt primarnog ključa je njegova upotreba od strane drugih tablica koje se na njega povezuju u relacijskoj bazi podataka. U ovom aspektu, primarni ključ djeluje kao cilj pokazivača. Zbog ovih međuovisnosti, primarni ključ mora postojati kada se kreira zapis i on se nikada ne može promijeniti.
Loš izbor za primarne ključeve
Ono što bi neki ljudi mogli smatrati očitim odabirom za primarni ključ moglo bi biti loš izbor. Evo nekoliko primjera:
- Poštanski brojevi nisu dobri primarni ključevi za tablicu gradova. Ako izrađujete jednostavnu tablicu pretraživanja gradova, poštanski broj se čini kao logičan primarni ključ. Međutim, nakon daljnjeg istraživanja, mogli biste shvatiti da više od jednog grada dijeli poštanski broj. Na primjer, gradovi New Jerseya Neptune, Neptune City, Tinton Falls i Wall Township svi dijele poštanski broj 07753.
- Brojevi socijalnog osiguranja nisu dobri primarni ključevi iz mnogo razloga. Većina ljudi svoj SSN smatra privatnim i ne želi da bude jasno vidljiv korisnicima baze podataka. Osim toga, neki ljudi nemaju SSN.
- Adrese e-pošte također su loš izbor za primarni ključ. Iako su jedinstveni, s vremenom se mogu promijeniti. Nadalje, nema svatko adresu e-pošte.
Što čini dobar primarni ključ
Dakle, kako odabrati učinkovit primarni ključ? U većini slučajeva obratite se svom sustavu baze podataka za podršku.
Najbolja praksa u dizajnu baze podataka je korištenje interno generiranog primarnog ključa. Vaš sustav za upravljanje bazom podataka može normalno generirati jedinstveni identifikator koji nema značenje izvan sustava baze podataka.
Na primjer, možete koristiti tip podataka Microsoft Access AutoNumber za stvaranje polja pod nazivom RecordID. Tip podataka AutoNumber automatski povećava polje svaki put kada stvorite zapis. Iako je sam broj besmislen, on pruža pouzdan način referenciranja pojedinačnog zapisa u upitima.
Dobar primarni ključ obično je kratak, koristi brojeve i izbjegava posebne znakove ili kombinaciju velikih i malih slova kako bi se olakšalo brzo traženje i usporedbe baze podataka.