संबंध (डेटाबेस)

डेटाबेस सिद्धांत में, एक संबंध, जैसा कि मूल रूप से एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। एफ कॉड, टुपल्स का एक सेट (गणित) है (डी1, डी2, ..., डीn), जहां प्रत्येक तत्व डीj D का सदस्य हैj, एक डेटा डोमेन। कॉड की मूल परिभाषा के बावजूद, और गणित में सामान्य परिभाषा के विपरीत, संबंध के ट्यूपल्स के तत्वों के लिए कोई क्रम नहीं है। इसके बजाय, प्रत्येक तत्व को एक विशेषता मान कहा जाता है। एक विशेषता एक नाम एक डोमेन के साथ जोड़ा जाता है (आजकल अधिक सामान्यतः एक प्रकार या डेटा प्रकार के रूप में जाना जाता है)। एक विशेषता मान उस विशेषता के डोमेन के एक तत्व के साथ जोड़ा गया एक विशेषता नाम है, और एक टपल विशेषता मानों का एक सेट है जिसमें दो अलग-अलग तत्वों का एक ही नाम नहीं है। इस प्रकार, कुछ खातों में, एक टपल को फ़ंक्शन (गणित) के रूप में वर्णित किया जाता है, नामों को मूल्यों पर मैप करना।

एट्रिब्यूट्स का एक सेट जिसमें दो अलग-अलग तत्वों का एक ही नाम नहीं होता है, हेडिंग कहलाता है। उपरोक्त परिभाषाओं से यह पता चलता है कि प्रत्येक ट्यूपल के लिए एक अद्वितीय शीर्षक से मेल खाता है, ट्यूपल से नामों का सेट होने के नाते, उन डोमेन के साथ जोड़ा जाता है जहां से ट्यूपल के डोमेन तत्व लिए जाते हैं। टुपल्स का एक सेट जो सभी एक ही शीर्षक के अनुरूप होते हैं, उन्हें बॉडी कहा जाता है। एक संबंध इस प्रकार एक निकाय के साथ जोड़ा गया शीर्षक है, संबंध का शीर्षक उसके शरीर में प्रत्येक टपल का शीर्षक भी है। शीर्षक बनाने वाली विशेषताओं की संख्या को डिग्री कहा जाता है, जो शब्द टुपल्स और संबंधों पर भी लागू होता है। शब्द n-tuple डिग्री n (n ≥ 0) के टपल को संदर्भित करता है।

एडगर एफ कॉड | ई। F. Codd ने संबंध शब्द का प्रयोग परिमित संबंध के अपने गणितीय अर्थ में किया, n सेट S के कुछ सेट पर tuples का एक सेट1, एस2, .... ,एसn. इस प्रकार, एन-एरी संबंध की व्याख्या क्लोज्ड-वर्ल्ड धारणा के तहत की जाती है। क्लोज्ड-वर्ल्ड धारणा, कुछ एन-एडिक प्रेडिकेट (गणितीय तर्क) के विस्तार के रूप में: सभी और केवल वे एन-टुपल्स जिनके मूल्य, संबंधित मुक्त के लिए प्रतिस्थापित विधेय में चर, उपज प्रस्ताव जो सही हैं, संबंध में दिखाई देते हैं।

संबंध स्कीमा शब्द उस शीर्षक के संदर्भ में परिभाषित बाधाओं के एक सेट के साथ जोड़े गए शीर्षक को संदर्भित करता है। इस प्रकार एक संबंध को एक संबंध स्कीमा की तात्कालिकता के रूप में देखा जा सकता है यदि इसमें उस स्कीमा का शीर्षक है और यह लागू बाधाओं को संतुष्ट करता है।

कभी-कभी नाम शामिल करने के लिए एक संबंध स्कीमा लिया जाता है। एक संबंधपरक डेटाबेस परिभाषा (डेटाबेस स्कीमा, जिसे कभी-कभी एक संबंधपरक स्कीमा के रूप में संदर्भित किया जाता है) को इस प्रकार नामित संबंध स्कीमा के संग्रह के रूप में माना जा सकता है। कार्यान्वयन में, प्रत्येक विशेषता का डोमेन प्रभावी रूप से एक डेटा प्रकार होता है और एक नामित संबंध स्कीमा प्रभावी रूप से एक गनर (संक्षिप्त रूप में रिल्वर) है।

SQL में, संबंधपरक डेटाबेस के लिए एक डेटाबेस भाषा, संबंधों को तालिका (डेटाबेस) द्वारा दर्शाया जाता है, जहाँ तालिका की प्रत्येक पंक्ति एक एकल टपल का प्रतिनिधित्व करती है, और जहाँ प्रत्येक विशेषता के मान एक स्तंभ बनाते हैं।

उदाहरण
नीचे एक संबंध का एक उदाहरण दिया गया है जिसमें तीन नामित विशेषताएँ हैं: पूर्णांकों के डोमेन से 'आईडी', और स्ट्रिंग (कंप्यूटर विज्ञान) के डोमेन से 'नाम' और 'पता':

मुक्त चरों को निरूपित करने के लिए विशेषता नामों का उपयोग करते हुए, इस संबंध के लिए एक विधेय हो सकता है, कर्मचारी संख्या आईडी को नाम के रूप में जाना जाता है और पता पर रहता है। संबंध की परीक्षा हमें बताती है कि केवल चार टुपल्स हैं जिनके लिए विधेय सत्य है। इसलिए, उदाहरण के लिए, कर्मचारी 102 को केवल इसी नाम से जाना जाता है, योनेज़ावा अकिनोरी, और नाहा, ओकिनावा के अलावा कहीं और नहीं रहता है। साथ ही, दिखाए गए चार कर्मचारियों के अलावा कोई अन्य कर्मचारी नहीं है, जिसका नाम और पता दोनों हो।

'बॉडी' की परिभाषा के तहत, किसी बॉडी के टुपल्स किसी विशेष क्रम में प्रकट नहीं होते हैं - कोई यह नहीं कह सकता 'मुराटा मकोतो' का टुपल 'मात्सुमोतो युकिहिरो' के टुपल से ऊपर है, न ही कोई कह सकता है 'योनेज़ावा का टपल' अकिनोरी' पहला टपल है। एक समान टिप्पणी SQL तालिका की पंक्तियों पर लागू होती है।

'शीर्षक' की परिभाषा के तहत, किसी तत्व के गुण किसी विशेष क्रम में प्रकट नहीं होते हैं, न ही, इसलिए टपल के तत्व करते हैं। इसी तरह की टिप्पणी यहां SQL पर लागू नहीं होती है, जो तालिका के कॉलम के लिए ऑर्डरिंग को परिभाषित करती है।

संबंध चर
वास्तविक दुनिया में परिवर्तनों के जवाब में डेटाबेस को अद्यतन करने के उद्देश्यों के लिए एक रिलेशनल डेटाबेस में रिलेवर | रिलेशन वेरिएबल्स (रिलेवर्स) नामित होते हैं। एकल रिल्वर के लिए एक अद्यतन उस चर को निर्दिष्ट संबंध के मुख्य भाग को टुपल्स के एक अलग सेट द्वारा प्रतिस्थापित करने का कारण बनता है। Relvars को दो वर्गों में वर्गीकृत किया गया है: आधार संबंध चर और व्युत्पन्न संबंध चर, बाद वाले को आभासी relvars के रूप में भी जाना जाता है लेकिन आमतौर पर अल्पावधि दृश्य द्वारा संदर्भित किया जाता है।

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

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

डेटा परिभाषा भाषा (DDL) का उपयोग करके, यह आधार संबंध चर को परिभाषित करने में सक्षम है। एसक्यूएल में,  सिंटैक्स का उपयोग बेस टेबल को परिभाषित करने के लिए किया जाता है। निम्नलिखित एक उदाहरण है।

<वाक्यविन्यास लैंग = एसक्यूएल> लोगों की सूची बनाएं ( आईडी पूर्णांक, नाम चार (40), पता चार (200), प्राथमिक कुंजी (आईडी) ) 

डेटा डेफिनिशन लैंग्वेज (DDL) का उपयोग व्युत्पन्न संबंध चर को परिभाषित करने के लिए भी किया जाता है। एसक्यूएल में,  सिंटैक्स का उपयोग व्युत्पन्न संबंध चर को परिभाषित करने के लिए किया जाता है। निम्नलिखित एक उदाहरण है।

<वाक्यविन्यास लैंग = एसक्यूएल> देखें सूची_ऑफ_ओकिनावा_लोगों के रूप में देखें ( आईडी, नाम, पता चुनें लोगों की सूची से  जहां पता '%, ओकिनावा' जैसा है ) 

यह भी

 * रेल्वर | रेल्वर (संबंधपरक चर)