सरोगेट कुंजी: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{Short description|Unique identifier for either an entity in the modeled world or an object in the database}} | {{Short description|Unique identifier for either an entity in the modeled world or an object in the database}} | ||
सरोगेट कुंजी (या सिंथेटिक कुंजी, स्यूडोकी, इकाई पहचानकर्ता, तथ्यहीन कुंजी, या तकनीकी कुंजी) | '''सरोगेट कुंजी''' (या सिंथेटिक कुंजी, स्यूडोकी, इकाई पहचानकर्ता, तथ्यहीन कुंजी, या तकनीकी कुंजी) डेटाबेस में या तो मॉडलिंग की विश्व में इकाई या डेटाबेस में वस्तु के लिए विशिष्ट पहचानकर्ता है। प्राकृतिक कुंजी प्राकृतिक (या व्यवसाय) कुंजी के विपरीत, सरोगेट कुंजी अनुप्रयोग डेटा से प्राप्त नहीं होती है।<ref name=":0">{{Cite web|url=https://www.techopedia.com/definition/22403/surrogate-key|title=What is a Surrogate Key? - Definition from Techopedia|website=Techopedia.com|language=en|access-date=2020-02-21}}</ref> | ||
== परिभाषा == | == परिभाषा == | ||
| Line 10: | Line 10: | ||
; सरोगेट (2) - वाइरिंगा और डी जॉन्ज (1991): सरोगेट डेटाबेस में ही एक वस्तु का प्रतिनिधित्व करता है। सरोगेट आंतरिक रूप से प्रणाली द्वारा उत्पन्न होता है और उपयोगकर्ता या अनुप्रयोग के लिए अदृश्य होता है। | ; सरोगेट (2) - वाइरिंगा और डी जॉन्ज (1991): सरोगेट डेटाबेस में ही एक वस्तु का प्रतिनिधित्व करता है। सरोगेट आंतरिक रूप से प्रणाली द्वारा उत्पन्न होता है और उपयोगकर्ता या अनुप्रयोग के लिए अदृश्य होता है। | ||
सरोगेट (1) परिभाषा | सरोगेट (1) परिभाषा भंडारण मॉडल के अतिरिक्त डेटा मॉडल से संबंधित है और इस पूरे लेख में इसका उपयोग किया गया है। दिनांक (1998) देखें। | ||
सरोगेट और प्राथमिक कुंजी के बीच महत्वपूर्ण अंतर इस बात पर निर्भर करता है कि डेटाबेस | सरोगेट और प्राथमिक कुंजी के बीच महत्वपूर्ण अंतर इस बात पर निर्भर करता है कि डेटाबेस वर्तमान डेटाबेस है या अस्थायी डेटाबेस है। चूंकि वर्तमान डेटाबेस केवल वर्तमान में मान्य डेटा को संग्रहीत करता है, मॉडल की विश्व में सरोगेट और डेटाबेस की प्राथमिक कुंजी के बीच एक-से-एक पत्राचार होता है। इस स्थिति में सरोगेट को प्राथमिक कुंजी के रूप में उपयोग किया जा सकता है, जिसके परिणामस्वरूप सरोगेट कुंजी शब्द होता है। अस्थायी डेटाबेस में, चूंकि, प्राथमिक कुंजी और सरोगेट के बीच कई-से-एक संबंध होते हैं। चूँकि डेटाबेस में सरोगेट के अनुरूप कई ऑब्जेक्ट हो सकते हैं, हम सरोगेट को प्राथमिक कुंजी के रूप में उपयोग नहीं कर सकते हैं; सरोगेट के अतिरिक्त, प्रत्येक वस्तु को विशिष्ट रूप से पहचानने के लिए अन्य विशेषता की आवश्यकता होती है। | ||
चूंकि हॉल एट अल. (1976) इस बारे में कुछ नहीं कहते हैं, अन्य लोगों ने तर्क दिया है कि किराए की कोख में निम्नलिखित विशेषताएं होनी चाहिएː | चूंकि हॉल एट अल. (1976) इस बारे में कुछ नहीं कहते हैं, अन्य लोगों ने तर्क दिया है कि किराए की कोख में निम्नलिखित विशेषताएं होनी चाहिएː | ||
| Line 25: | Line 25: | ||
== अभ्यास में सरोगेट == | == अभ्यास में सरोगेट == | ||
वर्तमान डेटाबेस में, सरोगेट कुंजी [[प्राथमिक कुंजी]] हो सकती है, जो | वर्तमान डेटाबेस में, सरोगेट कुंजी [[प्राथमिक कुंजी]] हो सकती है, जो डेटाबेस प्रबंधन प्रणाली द्वारा उत्पन्न होती है और डेटाबेस में किसी भी अनुप्रयोग डेटा से प्राप्त नहीं होती है। सरोगेट कुंजी का एकमात्र महत्व प्राथमिक कुंजी के रूप में कार्य करना है। यह भी संभव है कि सरोगेट कुंजी डेटाबेस से उत्पन्न [[सार्वभौमिक अद्वितीय पहचानकर्ता|यूयूआईडी]] (उदाहरण के लिए, प्रत्येक कर्मचारी के यूयूआईडी के अतिरिक्त प्रत्येक कर्मचारी के लिए एचआर नंबर) के अतिरिक्त उपस्थित हो। | ||
सरोगेट कुंजी अधिकांशतः अनुक्रमिक संख्या (उदाहरण के लिए अनुकूली सर्वर एंटरप्राइज़ या माइक्रोसॉफ्ट एसक्यूएल सर्वर पहचान कॉलम, [[PostgreSQL|पोस्टग्रेएसक्यूएल]] या [[Informix|इन्फोर्मिक्स]] <code>serial</code>, [[Oracle Corporation|ओरेकल कॉर्पोरेशन]] या माइक्रोसॉफ्ट एसक्यूएल सर्वर <code>SEQUENCE</code> या कॉलम परिभाषित किया गया है <code>AUTO_INCREMENT</code> [[MySQL|माई एसक्यूएल]] में) होती है। कुछ डेटाबेस सरोगेट कुंजियों के लिए संभावित डेटा प्रकार के रूप में | सरोगेट कुंजी अधिकांशतः अनुक्रमिक संख्या (उदाहरण के लिए अनुकूली सर्वर एंटरप्राइज़ या माइक्रोसॉफ्ट एसक्यूएल सर्वर पहचान कॉलम, [[PostgreSQL|पोस्टग्रेएसक्यूएल]] या [[Informix|इन्फोर्मिक्स]] <code>serial</code>, [[Oracle Corporation|ओरेकल कॉर्पोरेशन]] या माइक्रोसॉफ्ट एसक्यूएल सर्वर <code>SEQUENCE</code> या कॉलम परिभाषित किया गया है <code>AUTO_INCREMENT</code> [[MySQL|माई एसक्यूएल]] में) होती है। कुछ डेटाबेस सरोगेट कुंजियों के लिए संभावित डेटा प्रकार के रूप में यूयूआईडी/गाइड (उदाहरण के लिए [http://www.postgresql.org/docs/current/static/datatype-uuid.html पोस्टग्रेएसक्यूएल <code>यूयूआईडी</code>] या [http://msdn.microsoft.com/en-us/library/ms187942.aspx एसक्यूएल सर्वर <code>UNIQUEIDENTIFIER</code>]) प्रदान करते हैं। | ||
अन्य सभी स्तंभों से स्वतंत्र कुंजी होने से डेटाबेस संबंधों को डेटा मूल्यों या डेटाबेस डिज़ाइन (डेटाबेस को अधिक [[चुस्त सॉफ्टवेयर विकास]] बनाने) में परिवर्तन से अलग किया जाता है और विशिष्टता की गारंटी देता है। | अन्य सभी स्तंभों से स्वतंत्र कुंजी होने से डेटाबेस संबंधों को डेटा मूल्यों या डेटाबेस डिज़ाइन (डेटाबेस को अधिक [[चुस्त सॉफ्टवेयर विकास]] बनाने) में परिवर्तन से अलग किया जाता है और विशिष्टता की गारंटी देता है। | ||
| Line 139: | Line 139: | ||
== संदर्भ == | == संदर्भ == | ||
=== उद्धरण === | === उद्धरण === | ||
{{Reflist}} | {{Reflist}} | ||
=== स्रोत === | === स्रोत === | ||
| Line 195: | Line 191: | ||
| access-date = 2006-12-03 | | access-date = 2006-12-03 | ||
}} | }} | ||
{{Refend}} | {{Refend}} | ||
{{DEFAULTSORT:Surrogate Key}} | {{DEFAULTSORT:Surrogate Key}} | ||
[[Category:CS1|Surrogate Key]] | [[Category:CS1|Surrogate Key]] | ||
Latest revision as of 16:08, 2 November 2023
सरोगेट कुंजी (या सिंथेटिक कुंजी, स्यूडोकी, इकाई पहचानकर्ता, तथ्यहीन कुंजी, या तकनीकी कुंजी) डेटाबेस में या तो मॉडलिंग की विश्व में इकाई या डेटाबेस में वस्तु के लिए विशिष्ट पहचानकर्ता है। प्राकृतिक कुंजी प्राकृतिक (या व्यवसाय) कुंजी के विपरीत, सरोगेट कुंजी अनुप्रयोग डेटा से प्राप्त नहीं होती है।[1]
परिभाषा
सरोगेट की कम से कम दो परिभाषाएँ हैं:
- सरोगेट (1) - हॉल, ओवलेट और टॉड (1976)
- सरोगेट बाहरी विश्व में एक इकाई का प्रतिनिधित्व करता है। सरोगेट आंतरिक रूप से प्रणाली द्वारा उत्पन्न होता है लेकिन फिर भी उपयोगकर्ता या अनुप्रयोग को दिखाई देता है।[2]
- सरोगेट (2) - वाइरिंगा और डी जॉन्ज (1991)
- सरोगेट डेटाबेस में ही एक वस्तु का प्रतिनिधित्व करता है। सरोगेट आंतरिक रूप से प्रणाली द्वारा उत्पन्न होता है और उपयोगकर्ता या अनुप्रयोग के लिए अदृश्य होता है।
सरोगेट (1) परिभाषा भंडारण मॉडल के अतिरिक्त डेटा मॉडल से संबंधित है और इस पूरे लेख में इसका उपयोग किया गया है। दिनांक (1998) देखें।
सरोगेट और प्राथमिक कुंजी के बीच महत्वपूर्ण अंतर इस बात पर निर्भर करता है कि डेटाबेस वर्तमान डेटाबेस है या अस्थायी डेटाबेस है। चूंकि वर्तमान डेटाबेस केवल वर्तमान में मान्य डेटा को संग्रहीत करता है, मॉडल की विश्व में सरोगेट और डेटाबेस की प्राथमिक कुंजी के बीच एक-से-एक पत्राचार होता है। इस स्थिति में सरोगेट को प्राथमिक कुंजी के रूप में उपयोग किया जा सकता है, जिसके परिणामस्वरूप सरोगेट कुंजी शब्द होता है। अस्थायी डेटाबेस में, चूंकि, प्राथमिक कुंजी और सरोगेट के बीच कई-से-एक संबंध होते हैं। चूँकि डेटाबेस में सरोगेट के अनुरूप कई ऑब्जेक्ट हो सकते हैं, हम सरोगेट को प्राथमिक कुंजी के रूप में उपयोग नहीं कर सकते हैं; सरोगेट के अतिरिक्त, प्रत्येक वस्तु को विशिष्ट रूप से पहचानने के लिए अन्य विशेषता की आवश्यकता होती है।
चूंकि हॉल एट अल. (1976) इस बारे में कुछ नहीं कहते हैं, अन्य लोगों ने तर्क दिया है कि किराए की कोख में निम्नलिखित विशेषताएं होनी चाहिएː
- मूल्य का पुन: उपयोग नहीं किया जाता है।
- मूल्य प्रणाली जनित है।
- मूल्य उपयोगकर्ता या अनुप्रयोग द्वारा हेरफेर करने योग्य नहीं है।
- मूल्य में कोई अर्थपूर्ण अर्थ नहीं है।
- मूल्य उपयोगकर्ता या अनुप्रयोग को दिखाई नहीं देता है।
- मान विभिन्न डोमेन से कई मानों से बना नहीं है।
अभ्यास में सरोगेट
वर्तमान डेटाबेस में, सरोगेट कुंजी प्राथमिक कुंजी हो सकती है, जो डेटाबेस प्रबंधन प्रणाली द्वारा उत्पन्न होती है और डेटाबेस में किसी भी अनुप्रयोग डेटा से प्राप्त नहीं होती है। सरोगेट कुंजी का एकमात्र महत्व प्राथमिक कुंजी के रूप में कार्य करना है। यह भी संभव है कि सरोगेट कुंजी डेटाबेस से उत्पन्न यूयूआईडी (उदाहरण के लिए, प्रत्येक कर्मचारी के यूयूआईडी के अतिरिक्त प्रत्येक कर्मचारी के लिए एचआर नंबर) के अतिरिक्त उपस्थित हो।
सरोगेट कुंजी अधिकांशतः अनुक्रमिक संख्या (उदाहरण के लिए अनुकूली सर्वर एंटरप्राइज़ या माइक्रोसॉफ्ट एसक्यूएल सर्वर पहचान कॉलम, पोस्टग्रेएसक्यूएल या इन्फोर्मिक्स serial, ओरेकल कॉर्पोरेशन या माइक्रोसॉफ्ट एसक्यूएल सर्वर SEQUENCE या कॉलम परिभाषित किया गया है AUTO_INCREMENT माई एसक्यूएल में) होती है। कुछ डेटाबेस सरोगेट कुंजियों के लिए संभावित डेटा प्रकार के रूप में यूयूआईडी/गाइड (उदाहरण के लिए पोस्टग्रेएसक्यूएल यूयूआईडी या एसक्यूएल सर्वर UNIQUEIDENTIFIER) प्रदान करते हैं।
अन्य सभी स्तंभों से स्वतंत्र कुंजी होने से डेटाबेस संबंधों को डेटा मूल्यों या डेटाबेस डिज़ाइन (डेटाबेस को अधिक चुस्त सॉफ्टवेयर विकास बनाने) में परिवर्तन से अलग किया जाता है और विशिष्टता की गारंटी देता है।
अस्थायी डेटाबेस में, सरोगेट कुंजी और प्राकृतिक कुंजी के बीच अंतर करना आवश्यक है। प्रत्येक पंक्ति में व्यवसाय कुंजी और सरोगेट कुंजी दोनों होंगी। सरोगेट कुंजी डेटाबेस में अनूठी पंक्ति की पहचान करती है, व्यापार कुंजी मॉडलिंग की विश्व की अनूठी इकाई की पहचान करती है। तालिका पंक्ति परिभाषित समय अवधि के लिए इकाई की सभी विशेषताओं को धारण करने वाले समय के एक टुकड़े का प्रतिनिधित्व करती है। वे स्लाइस व्यावसायिक इकाई के पूरे जीवन काल को दर्शाते हैं। उदाहरण के लिए, तालिका कर्मचारी अनुबंध अनुबंधित कार्य घंटों का ट्रैक रखने के लिए अस्थायी जानकारी रख सकता है। अनुबंध के लिए व्यापार कुंजी दोनों पंक्तियों में समान (गैर-अद्वितीय) होगी चूंकि प्रत्येक पंक्ति के लिए सरोगेट कुंजी अद्वितीय है।
| सरोगेट कुंजी | व्यापार कुंजी | कर्मचारीनाम | कामकाजी घंटे प्रति सप्ताह | रोवैलिडफ्रॉम | रोवैलिडटो |
|---|---|---|---|---|---|
| 1 | BOS0120 | जॉन स्मिथ | 40 | 2000-01-01 | 2000-12-31 |
| 56 | P0000123 | बॉब ब्राउन | 25 | 1999-01-01 | 2011-12-31 |
| 234 | BOS0120 | जॉन स्मिथ | 35 | 2001-01-01 | 2009-12-31 |
कुछ डेटाबेस डिज़ाइनर अन्य प्रत्याशी कुंजियों की उपयुक्तता की सावधान किए बिना व्यवस्थित रूप से सरोगेट कुंजियों का उपयोग करते हैं, जबकि अन्य डेटा में पहले से उपस्थित कुंजी का उपयोग करेंगे, यदि कोई है।
कुछ वैकल्पिक नाम सरोगेट अवधारणा की प्रकृति के अतिरिक्त नए सरोगेट मान उत्पन्न करने के विधि का वर्णन करते हैं।
सरोगेट्स उत्पन्न करने के दृष्टिकोण में सम्मिलित हैं:
- सार्वभौमिक रूप से अद्वितीय पहचानकर्ता (यूयूआईडी)
- विश्व स्तर पर विशिष्ट पहचानकर्ता (गाइडएस)
- वस्तु पहचानकर्ता (ओआईडी)
- अनुकूली सर्वर एंटरप्राइज़ या माइक्रोसॉफ्ट एसक्यूएल सर्वर पहचान स्तंभ
IDENTITYयाIDENTITY(n,n) - ओरेकल कॉर्पोरेशन
SEQUENCE, याGENERATED AS IDENTITY(संस्करण 12.1 से प्रारंभ)[3] - माइक्रोसॉफ्ट एसक्यूएल सर्वर
SEQUENCE(एसक्यूएल सर्वर 2012 से प्रारंभ)[4] पोस्टग्रेएसक्यूएल या आईबीएम इनफॉर्मिक्स सीरियल - माई एसक्यूएल
AUTO_INCREMENT - एसक्यूलाइट
INTEGER PRIMARY KEY(यदिAUTOINCREMENTका उपयोग किया जाता है, तो यह उन संख्याओं के पुन: उपयोग को रोक देगा जो पहले से ही उपयोग किए जा चुके हैं, लेकिन उपलब्ध हैं)[5] - माइक्रोसॉफ्ट पहुंच में वाहन नंबर डेटा प्रकार
- आईबीएम डाटाबेस और पोस्टग्रेएसक्यूएल
AS IDENTITY GENERATED BY DEFAULTके रूप में। - टेराडाटा में आइडेंटिटी कॉलम (डेटा परिभाषा भाषा में प्रयुक्त)।
- तालिका अनुक्रम जब अनुक्रम की गणना प्रक्रिया और फ़ील्ड के साथ अनुक्रम तालिका आईडी, अनुक्रमनाम, अनुक्रम वैल्यू और वृद्धि मूल्य द्वारा की जाती है।
लाभ
स्थिरता
पंक्ति उपस्थित होने पर सरोगेट कुंजियाँ सामान्यतः नहीं बदलतीं इसके निम्नलिखित लाभ हैं:
- अनुप्रयोग डेटाबेस में पंक्ति के लिए अपना संदर्भ नहीं खो सकते हैं (चूंकि पहचानकर्ता नहीं बदलता है)।
- प्राथमिक या प्राकृतिक कुंजी डेटा को सदैव संशोधित किया जा सकता है, यहां तक कि उन डेटाबेस के साथ भी जो संबंधित विदेशी कुंजी में कैस्केडिंग अपडेट का समर्थन नहीं करते हैं।
आवश्यकता परिवर्तन
विशेषताएँ जो विशिष्ट रूप से किसी इकाई की पहचान करती हैं, बदल सकती हैं, जो प्राकृतिक कुंजियों की उपयुक्तता को अमान्य कर सकती हैं। निम्नलिखित उदाहरण पर विचार करें:
- कर्मचारी का नेटवर्क उपयोगकर्ता नाम प्राकृतिक कुंजी के रूप में चुना जाता है। किसी अन्य कंपनी के साथ विलय होने पर, नए कर्मचारियों को सम्मिलित किया जाना चाहिए। कुछ नए नेटवर्क उपयोगकर्ता नाम विरोध उत्पन्न करते हैं क्योंकि उनके उपयोगकर्ता नाम (जब कंपनियां अलग थीं) स्वतंत्र रूप से उत्पन्न हुए थे।
इन स्थितियों में, सामान्यतः प्राकृतिक कुंजी में नई विशेषता (उदाहरण के लिए, मूल कंपनी कॉलम) जोड़ी जानी चाहिए।
सरोगेट कुंजी के साथ, सरोगेट कुंजी को परिभाषित करने वाली केवल तालिका बदली जानी चाहिए। प्राकृतिक कुंजी के साथ, प्राकृतिक कुंजी का उपयोग करने वाली सभी तालिकाओं (और संभवतः अन्य, संबंधित सॉफ़्टवेयर) को बदलना होगा।
कुछ समस्या डोमेन स्पष्ट रूप से उपयुक्त प्राकृतिक कुंजी की पहचान नहीं करते हैं। सरोगेट कुंजियाँ ऐसी प्राकृतिक कुंजी चुनने से बचें जो गलत हो सकती है।
प्रदर्शन
सरोगेट कुंजियाँ कॉम्पैक्ट डेटा प्रकार होती हैं, जैसे कि चार-बाइट पूर्णांक। यह डेटाबेस को एकाधिक कॉलम की तुलना में एकल कुंजी कॉलम को तेज़ी से क्वेरी करने की अनुमति देता है। इसके अतिरिक्त, चाबियों का एक गैर-अनावश्यक वितरण परिणामी बी-ट्री इंडेक्स को पूरी तरह से संतुलित करता है। यौगिक कुंजी की तुलना में सरोगेट कुंजियाँ भी सम्मिलित होने के लिए कम खर्चीली हैं।
अनुकूलता
कई डेटाबेस अनुप्रयोग डेवलपमेंट प्रणाली, ड्राइवर और ऑब्जेक्ट-रिलेशनल मैपिंग प्रणाली, जैसे कि रूबी ऑन रेल्स या हाइबरनेट (जावा) का उपयोग करते समय, प्रत्येक तालिका के लिए प्राकृतिक कुंजी के अतिरिक्त पूर्णांक या गाइड सरोगेट कुंजी का उपयोग करना बहुत सरल होता है डेटाबेस-प्रणाली-एग्नोस्टिक ऑपरेशंस और ऑब्जेक्ट-टू-रो मैपिंग का समर्थन करें।
एकरूपता
जब प्रत्येक तालिका में एक समान सरोगेट कुंजी होती है, तो तालिका-स्वतंत्र विधि से कोड लिखकर कुछ कार्यों को सरलता से स्वचालित किया जा सकता है।
सत्यापन
प्रसिद्ध पैटर्न या संरचना का पालन करने वाले कुंजी-मूल्यों को डिज़ाइन करना संभव है जो स्वचालित रूप से सत्यापित हो सकते हैं। उदाहरण के लिए, कुछ तालिका के कुछ कॉलम में उपयोग की जाने वाली कुंजियों को उन कुंजियों से अलग दिखने के लिए डिज़ाइन किया जा सकता है जिन्हें किसी अन्य कॉलम या तालिका में उपयोग करने का प्रयोजन है, जिससे उन अनुप्रयोग त्रुटियों का पता लगाना सरल हो जाता है जिसमें कुंजियाँ गुम हो गए हैं। चूँकि, सरोगेट कुंजियों की इस विशेषता का उपयोग कभी भी अनुप्रयोगों के किसी भी तर्क को चलाने के लिए नहीं किया जाना चाहिए, क्योंकि यह डेटाबेस सामान्यीकरण के सिद्धांतों का उल्लंघन करेगा।
हानि
अलगाव
जेनरेट की गई सरोगेट कुंजियों के मूल्यों का पंक्ति में रखे गए डेटा के वास्तविक विश्व के अर्थ से कोई संबंध नहीं है। सरोगेट कुंजी का उपयोग करके किसी अन्य तालिका के लिए विदेशी कुंजी संदर्भ रखने वाली पंक्ति का निरीक्षण करते समय, सरोगेट कुंजी की पंक्ति का अर्थ कुंजी से ही नहीं समझा जा सकता है। संबंधित डेटा आइटम देखने के लिए प्रत्येक विदेशी कुंजी को जोड़ा जाना चाहिए। यदि उचित डेटाबेस बाधाओं को सेट नहीं किया गया है, या विरासत प्रणाली से आयात किया गया डेटा जहां संदर्भित अखंडता नियोजित नहीं किया गया था, तो विदेशी-कुंजी मान होना संभव है जो प्राथमिक-कुंजी मान के अनुरूप नहीं है और इसलिए अमान्य है। (इस संबंध में, सीजे डेट सरोगेट चाबियों की अर्थहीनता को लाभ के रूप में मानते हैं)[6]
ऐसी त्रुटियों को खोजने के लिए, किसी को क्वेरी करनी चाहिए जो बाहरी कुंजी के साथ तालिका और प्राथमिक कुंजी के साथ तालिका के बीच बाएं बाहरी जोड़ का उपयोग करती है, रिकॉर्ड को अलग करने के लिए आवश्यक किसी भी फ़ील्ड के अतिरिक्त दोनों प्रमुख फ़ील्ड दिखाती है; सभी अमान्य विदेशी-कुंजी मानों में प्राथमिक-कुंजी कॉलम न्यूल के रूप में होगा। इस तरह की जांच करने की आवश्यकता इतनी सामान्य है कि माइक्रोसॉफ्ट एक्सेस वास्तव में खोज बेजोड़ क्वेरी विज़ार्ड प्रदान करता है जो संवाद के माध्यम से उपयोगकर्ता को चलने के बाद उपयुक्त एसक्यूएल उत्पन्न करता है। (चूंकि, ऐसे प्रश्नों को मैन्युअल रूप से लिखना बहुत मुश्किल नहीं है।) बेजोड़ प्रश्नों का पता लगाएं, सामान्यतः लीगेसी डेटा इनहेरिट करते समय डेटा क्लींजिंग प्रक्रिया के भाग के रूप में नियोजित किया जाता है।
निर्यात और साझा किए जाने वाले डेटा के लिए सरोगेट कुंजियाँ अप्राकृतिक हैं। विशेष कठिनाई यह है कि दो अन्य समान स्कीमाओं (उदाहरण के लिए, परीक्षण स्कीमा और विकास स्कीमा) से तालिकाओं में ऐसे रिकॉर्ड हो सकते हैं जो व्यावसायिक दृष्टि से समतुल्य हों, लेकिन अलग-अलग कुंजियाँ हों। क्षणिक डेटा को छोड़कर, सरोगेट कुंजियों को निर्यात नहीं करके इसे कम किया जा सकता है (सबसे स्पष्ट रूप से, उन अनुप्रयोगों को निष्पादित करने में जिनके पास डेटाबेस से "लाइव" कनेक्शन है)।
जब सरोगेट कुंजियाँ प्राकृतिक कुंजियों की जगह लेती हैं, तो डोमेन विशिष्ट संदर्भात्मक अखंडता से समझौता किया जाएगा। उदाहरण के लिए, ग्राहक मास्टर टेबल में, एक ही ग्राहक के पास अलग-अलग ग्राहक आईडी के अनुसार कई रिकॉर्ड हो सकते हैं, तथापि प्राकृतिक कुंजी (ग्राहक का नाम, जन्म तिथि और ई-मेल पते का संयोजन) अद्वितीय हो। समझौता को रोकने के लिए, तालिका की प्राकृतिक कुंजी को प्रतिस्थापित नहीं कि