संदर्भिक समग्रता: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Where all data references are valid}} | {{Short description|Where all data references are valid}} | ||
[[File:Referential integrity broken.png|thumb|350px|डेटाबेस का उद्योगउदाहरण जिसने | [[File:Referential integrity broken.png|thumb|350px|डेटाबेस का उद्योगउदाहरण जिसने संदर्भिक समग्रता को प्रायुक्त नहीं किया है। इस उदाहरण में, उद्योगविदेशी कुंजी है (<code>artist_id</code>) एल्बम तालिका में मूल्य जो उद्योगगैर-उपस्थित कलाकार को संदर्भित करता है - दूसरे शब्दों में उद्योग[[विदेशी कुंजी]] मान होता है जिसका संदर्भ तालिका में कोई [[प्राथमिक कुंजी]] मान नहीं होता है। यहाँ क्या हुआ था कि [[एरोस्मिथ]] नाम का उद्योगकलाकार था, जिसके पास उद्योग<code>artist_id</code> का <code>4</code>, जिसे कलाकार तालिका से हटा दिया गया था। चूंकि, एल्बम ईट द रिच (एरोस्मिथ गीत) ने इस कलाकार को संदर्भित किया। संदर्भिक समग्रता प्रायुक्त होने के साथ, यह संभव नहीं होता।]]संदर्भिक समग्रता डेटा की एक उद्योगगुण है जो बताती है कि इसके सभी संदर्भ मान्य हैं। संबंधपरक डेटाबेस के संदर्भ में, यह आवश्यक है कि यदि किसी [[संबंध (डेटाबेस)]] (तालिका) के उद्योगगुण (स्तंभ) का मान किसी अन्य गुण (या तो समान या भिन्न संबंध में) के मान को संदर्भित करता है, तो संदर्भित मान उपस्थित होना चाहिए।<ref>{{cite web |last=Chapple |first=Mike |title=Referential Integrity |publisher=About.com |url=http://databases.about.com/cs/administration/g/refintegrity.htm |access-date = 2011-03-20 |quote='''Definition''': Referential integrity is a database concept that ensures that relationships between tables remain consistent. When one table has a foreign key to another table, the concept of referential integrity states that you may not add a record to the table that contains the foreign key unless there is a corresponding record in the linked table.}}</ref> | ||
संबंधपरक डेटाबेस में रखने के लिए | संबंधपरक डेटाबेस में रखने के लिए संदर्भिक समग्रता के लिए, आधार [[तालिका (डेटाबेस)]] में कोई भी स्तंभ जिसे विदेशी कुंजी घोषित किया गया है, में केवल माता-पिता तालिका की प्राथमिक कुंजी या [[उम्मीदवार कुंजी]] से शून्य मान या मान हो सकते हैं।<ref>Coronel et al. (2013). Database Systems 10th ed. Cengage Learning, {{ISBN|978-1-111-96960-8}}</ref> दूसरे शब्दों में, जब उद्योगविदेशी कुंजी मान का उपयोग किया जाता है, तो उसे मूल तालिका में उद्योगमान्य, वर्तमान प्राथमिक कुंजी का संदर्भ देना चाहिए। उदाहरण के लिए, किसी अन्य तालिका में किसी विदेशी कुंजी द्वारा संदर्भित मान वाले रिकॉर्ड को हटाने से संदर्भिक समग्रता टूट जाएगी। कुछ [[संबंधपरक डेटाबेस प्रबंधन प्रणाली]] (आरडीबीएमएस) संदर्भात्मक समग्रता को प्रायुक्त कर सकते हैं, सामान्य रूप से या तो विदेशी कुंजी पंक्तियों को हटाने के साथ-साथ समग्रता बनाए रखने के लिए, या उद्योगत्रुटि वापस करके और डिलीट न करके। किस पद्धति का उपयोग किया जाता है, यह उद्योग[[डेटा शब्दकोश]] में परिभाषित संदर्भात्मक समग्रता बाधा द्वारा निर्धारित किया जा सकता है। | ||
विशेषण 'निर्देशीय' उस क्रिया का वर्णन करता है जो उद्योगविदेशी कुंजी किसी अन्य तालिका में लिंक किए गए स्तंभ को 'संदर्भित' करती है। सरल शब्दों में, ' | विशेषण 'निर्देशीय' उस क्रिया का वर्णन करता है जो उद्योगविदेशी कुंजी किसी अन्य तालिका में लिंक किए गए स्तंभ को 'संदर्भित' करती है। सरल शब्दों में, 'संदर्भिक समग्रता' गारंटी देता है कि 'संदर्भित' लक्ष्य मिल जाएगा। उद्योगडेटाबेस में संदर्भिक समग्रता की कमी, संबंधपरक डेटाबेस को अधूरा डेटा वापस करने के लिए प्रेरित कर सकती है, सामान्यतः त्रुटि का कोई संकेत नहीं होता है। | ||
== औपचारिकता == | == औपचारिकता == | ||
दो (संभवतः समान) पर उद्योगसमावेशन निर्भरता उद्योगस्कीमा से <math>R</math> और <math>S</math> की भविष्यवाणी करती है जिसे <math>R[A_1, ..., A_n] \subseteq S[B_1, ..., B_n]</math> लिखा जाता है, जहां <math>A_i</math>, <math>B_i</math> <math>R</math> और <math>S</math> की विशिष्ट विशेषताएँ (स्तंभ नाम) है। इसका अर्थ है कि स्तंभों <math>A_1, ..., A_n</math> में दिखाई देने वाले मानों के टुपल्स <math>R</math> के तथ्यों के लिए स्तंभ में मानों <math>B_1, ..., B_n</math> के कुछ तथ्य के लिए <math>S</math> के टपल के रूप में भी दिखाई देने चाहिए।. | दो (संभवतः समान) पर उद्योगसमावेशन निर्भरता उद्योगस्कीमा से <math>R</math> और <math>S</math> की भविष्यवाणी करती है जिसे <math>R[A_1, ..., A_n] \subseteq S[B_1, ..., B_n]</math> लिखा जाता है, जहां <math>A_i</math>, <math>B_i</math> <math>R</math> और <math>S</math> की विशिष्ट विशेषताएँ (स्तंभ नाम) है। इसका अर्थ है कि स्तंभों <math>A_1, ..., A_n</math> में दिखाई देने वाले मानों के टुपल्स <math>R</math> के तथ्यों के लिए स्तंभ में मानों <math>B_1, ..., B_n</math> के कुछ तथ्य के लिए <math>S</math> के टपल के रूप में भी दिखाई देने चाहिए।. | ||
इस | इस प्रकार की बाधा [[टपल पैदा करने वाली निर्भरता]] (टीजीडी) का उद्योगविशेष रूप है, जहां नियम के दोनों पक्षों में केवल उद्योगसंबंधपरक परमाणु होता है।<ref>{{cite web|url=https://www.knaw.nl/shared/resources/actueel/bestanden/kolaitis.pdf#page=5|title=A Tutorial on Database Dependencies|publisher=University of California Santa Cruz & IBM Research - Almaden|last=Kolaitis|first=Phokion G.|date=|access-date=2021-12-10}}</ref> पहले क्रम के तर्क <math>\forall \vec{x},\vec{y} . (R(\vec{x},\vec{y}) \rightarrow \exists \vec{z} . S(\vec{x},\vec{z}))</math> में इसे व्यक्त किया जा सकता है, जहाँ <math>\vec{x}</math> वेक्टर है (जिसका आकार है <math>n</math>) द्वारा साझा किए गए चर <math>R</math> और <math>S</math>, और कोई चर कई बार न तो टीजीडी के शरीर में और न ही उसके सिर में प्रकट होता है। | ||
समावेशन निर्भरता के बीच तार्किक निहितार्थ को अनुमान नियमों द्वारा स्वयंसिद्ध किया जा सकता है।<ref name=foundations-db>{{cite book |last1=Abiteboul |first1=Serge |author-link1=Serge Abiteboul |last2=Hull |first2=Richard B. |last3=Vianu |first3=Victor |author-link3=Victor Vianu |date=1994 |title=Foundations of Databases |chapter=9. Inclusion Dependency |publisher=Addison-Wesley |pages=192–199 |url=http://webdam.inria.fr/Alice/}}</ref>{{rp|193}} | समावेशन निर्भरता के बीच तार्किक निहितार्थ को अनुमान नियमों द्वारा स्वयंसिद्ध किया जा सकता है।<ref name=foundations-db>{{cite book |last1=Abiteboul |first1=Serge |author-link1=Serge Abiteboul |last2=Hull |first2=Richard B. |last3=Vianu |first3=Victor |author-link3=Victor Vianu |date=1994 |title=Foundations of Databases |chapter=9. Inclusion Dependency |publisher=Addison-Wesley |pages=192–199 |url=http://webdam.inria.fr/Alice/}}</ref>{{rp|193}} | ||
और [[PSPACE|पीएसपीएसीई]] एल्गोरिथम द्वारा [[निर्णायक भाषा]] हो सकती है। [[रैखिक परिबद्ध automaton|रैखिक परिबद्ध स्वयं गतिशील]] के लिए स्वीकृति समस्या से कमी करके समस्या को पीएसपीएसीई-पूर्ण दिखाया जा सकता है।<ref name="foundations-db" />{{rp|196}} | और [[PSPACE|पीएसपीएसीई]] एल्गोरिथम द्वारा [[निर्णायक भाषा]] हो सकती है। [[रैखिक परिबद्ध automaton|रैखिक परिबद्ध स्वयं गतिशील]] के लिए स्वीकृति समस्या से कमी करके समस्या को पीएसपीएसीई-पूर्ण दिखाया जा सकता है।<ref name="foundations-db" />{{rp|196}} चूंकि, निर्भरता के बीच तार्किक निहितार्थ जो समावेशन निर्भरता या [[कार्यात्मक निर्भरता]] हो सकता है, [[मोनोइड्स]] के लिए [[शब्द समस्या (कम्प्यूटेबिलिटी)]] से कमी से अनिर्णीत है।<ref name="foundations-db" />{{rp|199}} | ||
== घोषणात्मक संदर्भात्मक == | == घोषणात्मक संदर्भात्मक == | ||
घोषणात्मक संदर्भात्मक | घोषणात्मक संदर्भात्मक समग्रता (डीआरआई) डेटा समग्रता सुनिश्चित करने के लिए [[SQL|एसक्यूएल]] डेटाबेस प्रोग्रामिंग भाषा की तकनीकों में से उद्योग है। | ||
===एसक्यूएल में अर्थ (संरचित क्वेरी भाषा)=== | ===एसक्यूएल में अर्थ (संरचित क्वेरी भाषा)=== | ||
{{main|विदेशी कुंजी}} | {{main|विदेशी कुंजी}} | ||
उद्योगतालिका (जिसे संदर्भित तालिका कहा जाता है) एक विदेशी कुंजी का उपयोग करके किसी अन्य तालिका (संदर्भित तालिका) में एक स्तंभ (या स्तंभों का एक समूह) को संदर्भित कर सकती है। संदर्भित तालिका में संदर्भित कॉलम एक अद्वितीय बाधा के तहत होना चाहिए, जैसे प्राथमिक कुंजी। साथ ही, आत्म-संदर्भ संभव हैं ( | उद्योगतालिका (जिसे संदर्भित तालिका कहा जाता है) एक विदेशी कुंजी का उपयोग करके किसी अन्य तालिका (संदर्भित तालिका) में एक स्तंभ (या स्तंभों का एक समूह) को संदर्भित कर सकती है। संदर्भित तालिका में संदर्भित कॉलम एक अद्वितीय बाधा के तहत होना चाहिए, जैसे प्राथमिक कुंजी। साथ ही, आत्म-संदर्भ संभव हैं (चूंकि एमएस एसक्यूएल सर्वर में पूरी तरह से प्रायुक्त नहीं किया गया है)।<ref>{{cite web |author=Microsoft Support |date=2007-02-11 |title=Error message 1785 occurs when you create a FOREIGN KEY constraint that may cause multiple cascade paths |publisher=microsoft.com |url=http://support.microsoft.com/kb/321843/en-us |access-date=2009-01-24}}</ref> संदर्भ तालिका में उद्योगनई [[पंक्ति (डेटाबेस)]] डालने (एसक्यूएल) पर, संबंधपरक डेटाबेस प्रबंधन प्रणाली (आरडीबीएमएस) जांचती है कि संदर्भित तालिका में दर्ज कुंजी मान उपस्थित है या नहीं। यदि नहीं, तो कोई सम्मिलन संभव नहीं है। [[अद्यतन (एसक्यूएल)]] और [[हटाएं (एसक्यूएल)]] पर डीआरआई क्रियाओं को निर्दिष्ट करना भी संभव है, जैसे कि कैस्केड (संदर्भित तालिका में संदर्भ तालिका में परिवर्तन/हटाएं), कोई कार्रवाई नहीं (यदि विशिष्ट पंक्ति संदर्भित है, तो बदलना) कुंजी की अनुमति नहीं है) या शून्य सेट करें / सेट डिफॉल्ट (संदर्भित तालिका में उद्योगपरिवर्तित/हटाई गई कुंजी के परिणामस्वरूप संदर्भित मानों को शून्य या डिफॉल्ट मान पर सेट किया जाता है यदि कोई निर्दिष्ट है)।<ref> | ||
ANSI/ISO/IEC 9075-1:2003, Information technology—Database languages—SQL | ANSI/ISO/IEC 9075-1:2003, Information technology—Database languages—SQL | ||
* Part 1: Framework (SQL/Framework) | * Part 1: Framework (SQL/Framework) | ||
Line 29: | Line 29: | ||
=== उत्पाद विशिष्ट अर्थ === | === उत्पाद विशिष्ट अर्थ === | ||
[[माइक्रोसॉफ्ट एसक्यूएल सर्वर]] में डीआरआई शब्द डेटाबेस ऑब्जेक्ट पर उपयोगकर्ताओं को अनुमति देने के लिए भी | [[माइक्रोसॉफ्ट एसक्यूएल सर्वर]] में डीआरआई शब्द डेटाबेस ऑब्जेक्ट पर उपयोगकर्ताओं को अनुमति देने के लिए भी प्रायुक्त होता है। उद्योगडेटाबेस उपयोगकर्ता को डीआरई की अनुमति देना उन्हें उद्योगटेबल पर विदेशी कुंजी बाधाओं को जोड़ने की अनुमति देता है।<ref>{{cite web |last=Chigrik |first=Alexander |date=2003-08-13 |title=Managing Users Permissions on SQL Server |publisher=Database Journal |url=http://www.databasejournal.com/features/mssql/article.php/2246271 |access-date=2006-12-17}}</ref> | ||
Revision as of 09:28, 22 February 2023
संदर्भिक समग्रता डेटा की एक उद्योगगुण है जो बताती है कि इसके सभी संदर्भ मान्य हैं। संबंधपरक डेटाबेस के संदर्भ में, यह आवश्यक है कि यदि किसी संबंध (डेटाबेस) (तालिका) के उद्योगगुण (स्तंभ) का मान किसी अन्य गुण (या तो समान या भिन्न संबंध में) के मान को संदर्भित करता है, तो संदर्भित मान उपस्थित होना चाहिए।[1]
संबंधपरक डेटाबेस में रखने के लिए संदर्भिक समग्रता के लिए, आधार तालिका (डेटाबेस) में कोई भी स्तंभ जिसे विदेशी कुंजी घोषित किया गया है, में केवल माता-पिता तालिका की प्राथमिक कुंजी या उम्मीदवार कुंजी से शून्य मान या मान हो सकते हैं।[2] दूसरे शब्दों में, जब उद्योगविदेशी कुंजी मान का उपयोग किया जाता है, तो उसे मूल तालिका में उद्योगमान्य, वर्तमान प्राथमिक कुंजी का संदर्भ देना चाहिए। उदाहरण के लिए, किसी अन्य तालिका में किसी विदेशी कुंजी द्वारा संदर्भित मान वाले रिकॉर्ड को हटाने से संदर्भिक समग्रता टूट जाएगी। कुछ संबंधपरक डेटाबेस प्रबंधन प्रणाली (आरडीबीएमएस) संदर्भात्मक समग्रता को प्रायुक्त कर सकते हैं, सामान्य रूप से या तो विदेशी कुंजी पंक्तियों को हटाने के साथ-साथ समग्रता बनाए रखने के लिए, या उद्योगत्रुटि वापस करके और डिलीट न करके। किस पद्धति का उपयोग किया जाता है, यह उद्योगडेटा शब्दकोश में परिभाषित संदर्भात्मक समग्रता बाधा द्वारा निर्धारित किया जा सकता है।
विशेषण 'निर्देशीय' उस क्रिया का वर्णन करता है जो उद्योगविदेशी कुंजी किसी अन्य तालिका में लिंक किए गए स्तंभ को 'संदर्भित' करती है। सरल शब्दों में, 'संदर्भिक समग्रता' गारंटी देता है कि 'संदर्भित' लक्ष्य मिल जाएगा। उद्योगडेटाबेस में संदर्भिक समग्रता की कमी, संबंधपरक डेटाबेस को अधूरा डेटा वापस करने के लिए प्रेरित कर सकती है, सामान्यतः त्रुटि का कोई संकेत नहीं होता है।
औपचारिकता
दो (संभवतः समान) पर उद्योगसमावेशन निर्भरता उद्योगस्कीमा से और की भविष्यवाणी करती है जिसे लिखा जाता है, जहां , और की विशिष्ट विशेषताएँ (स्तंभ नाम) है। इसका अर्थ है कि स्तंभों में दिखाई देने वाले मानों के टुपल्स के तथ्यों के लिए स्तंभ में मानों के कुछ तथ्य के लिए के टपल के रूप में भी दिखाई देने चाहिए।.
इस प्रकार की बाधा टपल पैदा करने वाली निर्भरता (टीजीडी) का उद्योगविशेष रूप है, जहां नियम के दोनों पक्षों में केवल उद्योगसंबंधपरक परमाणु होता है।[3] पहले क्रम के तर्क में इसे व्यक्त किया जा सकता है, जहाँ वेक्टर है (जिसका आकार है ) द्वारा साझा किए गए चर और , और कोई चर कई बार न तो टीजीडी के शरीर में और न ही उसके सिर में प्रकट होता है।
समावेशन निर्भरता के बीच तार्किक निहितार्थ को अनुमान नियमों द्वारा स्वयंसिद्ध किया जा सकता है।[4]: 193
और पीएसपीएसीई एल्गोरिथम द्वारा निर्णायक भाषा हो सकती है। रैखिक परिबद्ध स्वयं गतिशील के लिए स्वीकृति समस्या से कमी करके समस्या को पीएसपीएसीई-पूर्ण दिखाया जा सकता है।[4]: 196 चूंकि, निर्भरता के बीच तार्किक निहितार्थ जो समावेशन निर्भरता या कार्यात्मक निर्भरता हो सकता है, मोनोइड्स के लिए शब्द समस्या (कम्प्यूटेबिलिटी) से कमी से अनिर्णीत है।[4]: 199
घोषणात्मक संदर्भात्मक
घोषणात्मक संदर्भात्मक समग्रता (डीआरआई) डेटा समग्रता सुनिश्चित करने के लिए एसक्यूएल डेटाबेस प्रोग्रामिंग भाषा की तकनीकों में से उद्योग है।
एसक्यूएल में अर्थ (संरचित क्वेरी भाषा)
उद्योगतालिका (जिसे संदर्भित तालिका कहा जाता है) एक विदेशी कुंजी का उपयोग करके किसी अन्य तालिका (संदर्भित तालिका) में एक स्तंभ (या स्तंभों का एक समूह) को संदर्भित कर सकती है। संदर्भित तालिका में संदर्भित कॉलम एक अद्वितीय बाधा के तहत होना चाहिए, जैसे प्राथमिक कुंजी। साथ ही, आत्म-संदर्भ संभव हैं (चूंकि एमएस एसक्यूएल सर्वर में पूरी तरह से प्रायुक्त नहीं किया गया है)।[5] संदर्भ तालिका में उद्योगनई पंक्ति (डेटाबेस) डालने (एसक्यूएल) पर, संबंधपरक डेटाबेस प्रबंधन प्रणाली (आरडीबीएमएस) जांचती है कि संदर्भित तालिका में दर्ज कुंजी मान उपस्थित है या नहीं। यदि नहीं, तो कोई सम्मिलन संभव नहीं है। अद्यतन (एसक्यूएल) और हटाएं (एसक्यूएल) पर डीआरआई क्रियाओं को निर्दिष्ट करना भी संभव है, जैसे कि कैस्केड (संदर्भित तालिका में संदर्भ तालिका में परिवर्तन/हटाएं), कोई कार्रवाई नहीं (यदि विशिष्ट पंक्ति संदर्भित है, तो बदलना) कुंजी की अनुमति नहीं है) या शून्य सेट करें / सेट डिफॉल्ट (संदर्भित तालिका में उद्योगपरिवर्तित/हटाई गई कुंजी के परिणामस्वरूप संदर्भित मानों को शून्य या डिफॉल्ट मान पर सेट किया जाता है यदि कोई निर्दिष्ट है)।[6]
उत्पाद विशिष्ट अर्थ
माइक्रोसॉफ्ट एसक्यूएल सर्वर में डीआरआई शब्द डेटाबेस ऑब्जेक्ट पर उपयोगकर्ताओं को अनुमति देने के लिए भी प्रायुक्त होता है। उद्योगडेटाबेस उपयोगकर्ता को डीआरई की अनुमति देना उन्हें उद्योगटेबल पर विदेशी कुंजी बाधाओं को जोड़ने की अनुमति देता है।[7]
यह भी देखें
- रिक्त सूचक#अशक्त अपसंदर्भन
- झूलने वाला सूचक
- डोमेन/कुंजी सामान्य रूप
- इकाई
- कार्यात्मक निर्भरता
- प्रसार बाधा
- सरोगेट कुंजी
- धीरे-धीरे आयाम बदल रहा है
संदर्भ
- ↑ Chapple, Mike. "Referential Integrity". About.com. Retrieved 2011-03-20.
Definition: Referential integrity is a database concept that ensures that relationships between tables remain consistent. When one table has a foreign key to another table, the concept of referential integrity states that you may not add a record to the table that contains the foreign key unless there is a corresponding record in the linked table.
- ↑ Coronel et al. (2013). Database Systems 10th ed. Cengage Learning, ISBN 978-1-111-96960-8
- ↑ Kolaitis, Phokion G. "A Tutorial on Database Dependencies" (PDF). University of California Santa Cruz & IBM Research - Almaden. Retrieved 2021-12-10.
- ↑ 4.0 4.1 4.2 Abiteboul, Serge; Hull, Richard B.; Vianu, Victor (1994). "9. Inclusion Dependency". Foundations of Databases. Addison-Wesley. pp. 192–199.
- ↑ Microsoft Support (2007-02-11). "Error message 1785 occurs when you create a FOREIGN KEY constraint that may cause multiple cascade paths". microsoft.com. Retrieved 2009-01-24.
- ↑
ANSI/ISO/IEC 9075-1:2003, Information technology—Database languages—SQL
- Part 1: Framework (SQL/Framework)
- Part 2: Foundation (SQL/Foundation)
- ↑ Chigrik, Alexander (2003-08-13). "Managing Users Permissions on SQL Server". Database Journal. Retrieved 2006-12-17.