Nemojte koristiti ZIP broj ili broj socijalnog osiguranja
Baze podataka zavise od ključeva za čuvanje, sortiranje i upoređivanje ili kreiranje odnosa između zapisa. Ako ste neko vreme bili oko baza podataka, verovatno ste čuli za različite tipove ključeva: primarne tastere, 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 identifikovati svaki zapis koji se čuva u toj tablici.
Zašto je primarni ključ važan
Izbor primarnog ključa je jedna od najkritičnijih odluka koje ćete donijeti prilikom dizajniranja nove baze podataka . Najvažnije ograničenje je u tome što morate osigurati da je izabrani ključ jedinstven. Ako je moguće da dva zapisa - prošlost, sadašnjost ili budućnost - mogu podeliti 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 tabela koje se odnose na njega u relacionoj bazi podataka. U ovom aspektu, primarni ključ deluje kao cilj pokazivača. Zbog ovih međuzavisnosti, primarni ključ mora postojati kada se kreira zapis, i to se nikada ne može promijeniti.
Slabi izbori za primarne ključeve
Ono što neki ljudi mogu smatrati očiglednim izborom za primarni ključ mogu umesto toga biti loš izbor. Evo nekoliko primera:
- Zip-kodovi ne prave dobar primarni ključ za stolove gradova. Ako pravite jednostavnu pretragu gradova, poštanski broj je logičan primarni ključ. Međutim, nakon daljnje istrage, možete shvatiti da više od jednog grada deli poštanski broj. Na primjer, gradovi Neptuna, Neptun City, Tinton Falls i Wall Township u New Jersey-u svi dele poštanski broj 07753.
- Brojevi socijalnog osiguranja ne proizvode dobar primarni ključ iz više razloga. Većina ljudi smatra da je SSN privatna i ne želi da bude jasno vidljiva korisnicima baze podataka. Neki ljudi nemaju SSN-strance ili imigrante koji nikada nisu dobili karticu socijalnog osiguranja. SSN se takođe može ponovo upotrebiti nakon smrti osobe. Pojedinac može imati više od jedne SSN tokom života kada Uprava za socijalno osiguranje izda novi broj u slučajevima prevare ili krađe identiteta.
- E-adrese su takođe loš izbor za primarni ključ. Iako su jedinstveni, mogu se vremenom promeniti. Štaviše, ne svi imaju adresu e-pošte.
Izbor efektivnog primarnog ključa
Dakle, šta čini dobar primarni ključ? U većini slučajeva obratite se svom sistemu baze podataka za podršku.
Najbolja praksa u dizajnu baze podataka je korišćenje internom generisanog primarnog ključa. Sistem upravljanja bazom podataka obično može generirati jedinstveni identifikator koji nema značenje van sistema baze podataka. Na primer, možete koristiti tip podataka Microsoft Access AutoNumber da biste kreirali polje zvano RecordID. Tip podataka AutoNumber automatski povećava polje svaki put kada kreirate rekord. Iako je broj sam besmislen, on pruža pouzdan način za upućivanje pojedinačnog zapisa u upite.
Dobar primarni ključ je obično kratak, koristi brojeve i izbjegava posebne znakove ili mješavinu velikih i malih slova da bi olakšao brze pretragu i upoređivanje baze podataka.