प्राथमिक कुंजी आपकी तालिका में एक अद्वितीय कुंजी है जिसे आप चुनते हैं जो तालिका में रिकॉर्ड की सबसे विशिष्ट रूप से पहचान करती है। सभी तालिकाओं में एक प्राथमिक कुंजी होनी चाहिए, क्योंकि यदि आपको कभी किसी रिकॉर्ड को अपडेट करने या हटाने की आवश्यकता होती है तो आपको यह जानना होगा कि इसे विशिष्ट रूप से कैसे पहचाना जाए।
एक सरोगेट कुंजी एक कृत्रिम रूप से उत्पन्न कुंजी है। वे तब उपयोगी होते हैं जब आपके रिकॉर्ड में अनिवार्य रूप से कोई प्राकृतिक कुंजी नहीं होती है (जैसे कि Person
तालिका, चूंकि एक ही तिथि पर पैदा हुए दो लोगों के लिए एक ही नाम, या एक लॉग में रिकॉर्ड होना संभव है, क्योंकि दो घटनाओं के होने की संभावना है जैसे वे एक ही टाइमस्टैम्प ले जाते हैं)। अक्सर आप इन्हें स्वचालित रूप से बढ़ते फ़ील्ड में पूर्णांक के रूप में या प्रत्येक रिकॉर्ड के लिए स्वचालित रूप से जेनरेट किए गए GUID के रूप में कार्यान्वित देखेंगे। आईडी नंबर लगभग हमेशा सरोगेट कुंजी होते हैं।
हालांकि, प्राथमिक कुंजी के विपरीत, सभी तालिकाओं को सरोगेट कुंजियों की आवश्यकता नहीं होती है। यदि आपके पास एक तालिका है जो अमेरिका में राज्यों को सूचीबद्ध करती है, तो आपको वास्तव में उनके लिए एक आईडी नंबर की आवश्यकता नहीं है। आप प्राथमिक कुंजी कोड के रूप में राज्य के संक्षिप्त नाम का उपयोग कर सकते हैं।
सरोगेट कुंजी का मुख्य लाभ यह है कि उन्हें अद्वितीय के रूप में गारंटी देना आसान है। मुख्य नुकसान यह है कि उनका कोई अर्थ नहीं है। इसका कोई अर्थ नहीं है कि "28" विस्कॉन्सिन है, उदाहरण के लिए, लेकिन जब आप अपनी पता तालिका के राज्य कॉलम में 'WI' देखते हैं, तो आप जानते हैं कि आप किस राज्य के बारे में बात कर रहे हैं, यह देखने की आवश्यकता नहीं है कि आपके राज्य में कौन सा राज्य है टेबल।