Andmebaasi esmase võtme valimine
Andmebaasid sõltuvad võtmetest kirjete salvestamiseks, sortimiseks ja võrdlemiseks või suhete loomiseks. Kui olete juba mõnda aega andmebaasidega tegelenud, olete ilmselt kuulnud erinevat tüüpi võtmetest: esmased võtmed, kandidaatide võtmed, ja võõrvõtmed.
Kui loote uue andmebaasitabeli, palutakse teil see valida esmane võti mis tuvastab unikaalselt iga sellesse tabelisse salvestatud kirje.
Miks on esmane võti oluline?
Primaarvõtme valimine on üks kriitilisemaid otsuseid, mille teete uue andmebaasi kujundamine. Kõige olulisem piirang on see, et peate tagama, et valitud võti on kordumatu. Kui on võimalik, et kaks kirjet (minevik, olevik või tulevik) jagavad atribuudi jaoks sama väärtust, on see esmase võtme jaoks halb valik.
Primaarvõtme teine oluline aspekt on selle kasutamine teistes tabelites, mis lingivad sellega relatsiooniandmebaasis. Selles aspektis toimib primaarvõti osuti sihtmärgina. Nende vastastikuste sõltuvuste tõttu peab kirje loomisel olema esmane võti ja see ei saa kunagi muutuda.
Halvad valikud esmaste võtmete jaoks
See, mida mõned inimesed võivad pidada primaarvõtme ilmseks valikuks, võib olla hoopis halb valik. Siin on mõned näited.
- Sihtnumbrid ei tee linnade tabeli jaoks häid esmaseid võtmeid. Kui teete lihtsat linnade otsingutabelit, näib sihtnumber olevat loogiline esmane võti. Edasisel uurimisel võite aga mõista, et rohkem kui ühel linnal on sihtnumber. Näiteks New Jersey linnad Neptune, Neptune City, Tinton Falls ja Wall Township jagavad kõik sihtnumbrit 07753.
- Sotsiaalkindlustuse numbrid ei tee häid esmaseid võtmeid mitmel põhjusel. Enamik inimesi peab oma SSN-i privaatseks ega soovi seda andmebaasi kasutajatele selgelt näha. Lisaks pole mõnel inimesel SSN-i.
- Meiliaadressid on ka halb valik primaarvõtme jaoks. Kuigi need on ainulaadsed, võivad need aja jooksul muutuda. Lisaks pole kõigil meiliaadressi.
Mis teeb hea esmase võtme?
Niisiis, kuidas valida tõhus primaarvõti? Enamikul juhtudel pöörduge abi saamiseks oma andmebaasisüsteemi poole.
Andmebaasi kujundamise parim tava on kasutada sisemiselt loodud primaarvõtit. Sinu andmebaasihaldussüsteem saab tavaliselt genereerida kordumatu identifikaatori, millel pole väljaspool andmebaasisüsteemi mingit tähendust.
Näiteks võite kasutada andmetüüpi Microsoft Access AutoNumber, et luua välja nimega RecordID. Andmetüüp AutoNumber suurendab automaatselt välja iga kord, kui loote kirje. Kuigi number ise on mõttetu, pakub see usaldusväärset viisi päringutes üksikule kirjele viitamiseks.
Hea esmane võti on tavaliselt lühike, kasutab numbreid ja väldib erimärke või suur- ja väiketähtede kombinatsiooni, et hõlbustada kiiret andmebaasiotsingut ja võrdlust.