संदर्भिक समग्रता

From Vigyanwiki
Revision as of 21:00, 16 February 2023 by alpha>Indicwiki (Created page with "{{Short description|Where all data references are valid}} File:Referential integrity broken.png|thumb|350px|डेटाबेस का एक उदाहरण जिस...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
डेटाबेस का एक उदाहरण जिसने संदर्भित अखंडता को लागू नहीं किया है। इस उदाहरण में, एक विदेशी कुंजी है (artist_id) एल्बम तालिका में मूल्य जो एक गैर-मौजूद कलाकार को संदर्भित करता है - दूसरे शब्दों में एक विदेशी कुंजी मान होता है जिसका संदर्भ तालिका में कोई प्राथमिक कुंजी मान नहीं होता है। यहाँ क्या हुआ था कि एरोस्मिथ नाम का एक कलाकार था, जिसके पास एक artist_id का 4, जिसे कलाकार तालिका से हटा दिया गया था। हालांकि, एल्बम ईट द रिच (एरोस्मिथ गीत) ने इस कलाकार को संदर्भित किया। संदर्भित अखंडता लागू होने के साथ, यह संभव नहीं होता।

संदर्भित अखंडता डेटा की एक संपत्ति है जो बताती है कि इसके सभी संदर्भ मान्य हैं। संबंधपरक डेटाबेस के संदर्भ में, यह आवश्यक है कि यदि किसी संबंध (डेटाबेस) (तालिका) के एक गुण (स्तंभ) का मान किसी अन्य विशेषता के मान को संदर्भित करता है (या तो समान या भिन्न संबंध में), तो संदर्भित मान होना चाहिए अस्तित्व।[1]

संबंधपरक डेटाबेस में रखने के लिए संदर्भित अखंडता के लिए, आधार तालिका (डेटाबेस) में कोई भी कॉलम जिसे विदेशी कुंजी घोषित किया गया है, में केवल माता-पिता तालिका की प्राथमिक कुंजी या उम्मीदवार कुंजी से शून्य मान या मान हो सकते हैं।[2] दूसरे शब्दों में, जब एक विदेशी कुंजी मान का उपयोग किया जाता है, तो उसे मूल तालिका में एक मान्य, मौजूदा प्राथमिक कुंजी का संदर्भ देना चाहिए। उदाहरण के लिए, किसी अन्य तालिका में किसी विदेशी कुंजी द्वारा संदर्भित मान वाले रिकॉर्ड को हटाने से संदर्भित अखंडता टूट जाएगी। कुछ संबंधपरक डेटाबेस प्रबंधन प्रणाली (RDBMS) संदर्भात्मक अखंडता को लागू कर सकते हैं, सामान्य रूप से या तो विदेशी कुंजी पंक्तियों को हटाने के साथ-साथ अखंडता बनाए रखने के लिए, या एक त्रुटि वापस करके और डिलीट न करके। किस पद्धति का उपयोग किया जाता है, यह एक डेटा शब्दकोश में परिभाषित संदर्भात्मक अखंडता बाधा द्वारा निर्धारित किया जा सकता है।

विशेषण 'रेफ़रेंशियल' उस क्रिया का वर्णन करता है जो एक विदेशी कुंजी किसी अन्य तालिका में लिंक किए गए कॉलम को 'संदर्भित' करती है। सरल शब्दों में, 'संदर्भित अखंडता' गारंटी देता है कि 'संदर्भित' लक्ष्य मिल जाएगा। एक डेटाबेस में संदर्भित अखंडता की कमी, संबंधपरक डेटाबेस को अधूरा डेटा वापस करने के लिए प्रेरित कर सकती है, आमतौर पर त्रुटि का कोई संकेत नहीं होता है।

औपचारिकता

दो (संभवतः समान) पर एक समावेशन निर्भरता भविष्यवाणी करती है और एक स्कीमा से लिखा गया है , जहां , की विशिष्ट विशेषताएँ (स्तंभ नाम) हैं और . इसका अर्थ है कि स्तंभों में दिखाई देने वाले मानों का टपल के तथ्यों के लिए कॉलम में मानों के टपल के रूप में भी दिखाई देना चाहिए के कुछ तथ्य के लिए .

इस तरह की बाधा टपल पैदा करने वाली निर्भरता (TGD) का एक विशेष रूप है, जहां नियम के दोनों पक्षों में केवल एक संबंधपरक परमाणु होता है।[3] पहले क्रम के तर्क में इसे व्यक्त किया जा सकता है , कहाँ वेक्टर है (जिसका आकार है ) द्वारा साझा किए गए चर और , और कोई चर कई बार न तो TGD के शरीर में और न ही उसके सिर में प्रकट होता है।

समावेशन निर्भरता के बीच तार्किक निहितार्थ को अनुमान नियमों द्वारा स्वयंसिद्ध किया जा सकता है[4]: 193  और PSPACE एल्गोरिथम द्वारा निर्णायक भाषा हो सकती है। रैखिक परिबद्ध automaton के लिए स्वीकृति समस्या से कमी करके समस्या को PSPACE-पूर्ण दिखाया जा सकता है।[4]: 196  हालांकि, निर्भरता के बीच तार्किक निहितार्थ जो समावेशन निर्भरता या कार्यात्मक निर्भरता हो सकता है, मोनोइड्स के लिए शब्द समस्या (कम्प्यूटेबिलिटी) से कमी से अनिर्णीत है।[4]: 199 


घोषणात्मक संदर्भात्मक अखंडता

Declarative Referential Integrity (DRI) डेटा अखंडता सुनिश्चित करने के लिए SQL डेटाबेस प्रोग्रामिंग भाषा की तकनीकों में से एक है।

एसक्यूएल में अर्थ (संरचित क्वेरी भाषा)

एक तालिका (जिसे संदर्भित तालिका कहा जाता है) एक विदेशी कुंजी का उपयोग करके किसी अन्य तालिका (संदर्भित तालिका) में एक स्तंभ (या स्तंभों का एक समूह) को संदर्भित कर सकती है। संदर्भित तालिका में संदर्भित कॉलम एक अद्वितीय बाधा के तहत होना चाहिए, जैसे प्राथमिक कुंजी। साथ ही, स्व-संदर्भ संभव हैं (हालांकि एमएस एसक्यूएल सर्वर में पूरी तरह से लागू नहीं किया गया है[5]). संदर्भ तालिका में एक नई पंक्ति (डेटाबेस) डालने (एसक्यूएल) पर, संबंधपरक डेटाबेस प्रबंधन प्रणाली (आरडीबीएमएस) जांचती है कि संदर्भित तालिका में दर्ज कुंजी मान मौजूद है या नहीं। यदि नहीं, तो कोई सम्मिलन संभव नहीं है। अद्यतन (एसक्यूएल) और हटाएं (एसक्यूएल) पर डीआरआई क्रियाओं को निर्दिष्ट करना भी संभव है, जैसे कि कैस्केड (संदर्भित तालिका में संदर्भ तालिका में परिवर्तन/हटाएं), कोई कार्रवाई नहीं (यदि विशिष्ट पंक्ति संदर्भित है, तो बदलना) key की अनुमति नहीं है) या SET NULL / SET DEFAULT (संदर्भित तालिका में एक परिवर्तित/हटाई गई कुंजी के परिणामस्वरूप संदर्भित मानों को NULL या DEFAULT मान पर सेट किया जाता है यदि कोई निर्दिष्ट है)।[6]


उत्पाद विशिष्ट अर्थ

माइक्रोसॉफ्ट एसक्यूएल सर्वर में डीआरआई शब्द डेटाबेस ऑब्जेक्ट पर उपयोगकर्ताओं को अनुमति देने के लिए भी लागू होता है। एक डेटाबेस उपयोगकर्ता को DRI की अनुमति देना उन्हें एक टेबल पर विदेशी कुंजी बाधाओं को जोड़ने की अनुमति देता है।[7]


यह भी देखें

संदर्भ

  1. 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.
  2. Coronel et al. (2013). Database Systems 10th ed. Cengage Learning, ISBN 978-1-111-96960-8
  3. Kolaitis, Phokion G. "A Tutorial on Database Dependencies" (PDF). University of California Santa Cruz & IBM Research - Almaden. Retrieved 2021-12-10.
  4. 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.
  5. 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.
  6. ANSI/ISO/IEC 9075-1:2003, Information technology—Database languages—SQL
    • Part 1: Framework (SQL/Framework)
    • Part 2: Foundation (SQL/Foundation)
  7. Chigrik, Alexander (2003-08-13). "Managing Users Permissions on SQL Server". Database Journal. Retrieved 2006-12-17.


बाहरी संबंध