संबंध (डेटाबेस)
डेटाबेस सिद्धांत में, एक संबंध, जैसा कि मूल रूप से एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। एफ कॉड,[1] टुपल्स का एक सेट (गणित) है (डी1, डी2, ..., डीn), जहां प्रत्येक तत्व डीj D का सदस्य हैj, एक डेटा डोमेन। कॉड की मूल परिभाषा के बावजूद, और गणित में सामान्य परिभाषा के विपरीत, संबंध के ट्यूपल्स के तत्वों के लिए कोई क्रम नहीं है।[2][3] इसके बजाय, प्रत्येक तत्व को एक विशेषता मान कहा जाता है। एक विशेषता एक नाम एक डोमेन के साथ जोड़ा जाता है (आजकल अधिक सामान्यतः एक प्रकार या डेटा प्रकार के रूप में जाना जाता है)। एक विशेषता मान उस विशेषता के डोमेन के एक तत्व के साथ जोड़ा गया एक विशेषता नाम है, और एक टपल विशेषता मानों का एक सेट है जिसमें दो अलग-अलग तत्वों का एक ही नाम नहीं है। इस प्रकार, कुछ खातों में, एक टपल को फ़ंक्शन (गणित) के रूप में वर्णित किया जाता है, नामों को मूल्यों पर मैप करना।
एट्रिब्यूट्स का एक सेट जिसमें दो अलग-अलग तत्वों का एक ही नाम नहीं होता है, हेडिंग कहलाता है। उपरोक्त परिभाषाओं से यह पता चलता है कि प्रत्येक ट्यूपल के लिए एक अद्वितीय शीर्षक से मेल खाता है, ट्यूपल से नामों का सेट होने के नाते, उन डोमेन के साथ जोड़ा जाता है जहां से ट्यूपल के डोमेन तत्व लिए जाते हैं। टुपल्स का एक सेट जो सभी एक ही शीर्षक के अनुरूप होते हैं, उन्हें बॉडी कहा जाता है। एक संबंध इस प्रकार एक निकाय के साथ जोड़ा गया शीर्षक है, संबंध का शीर्षक उसके शरीर में प्रत्येक टपल का शीर्षक भी है। शीर्षक बनाने वाली विशेषताओं की संख्या को डिग्री कहा जाता है, जो शब्द टुपल्स और संबंधों पर भी लागू होता है। शब्द n-tuple डिग्री n (n ≥ 0) के टपल को संदर्भित करता है।
एडगर एफ कॉड | ई। F. Codd ने संबंध शब्द का प्रयोग परिमित संबंध के अपने गणितीय अर्थ में किया, n सेट S के कुछ सेट पर tuples का एक सेट1, एस2, .... ,एसn.[4] इस प्रकार, एन-एरी संबंध की व्याख्या क्लोज्ड-वर्ल्ड धारणा के तहत की जाती है। क्लोज्ड-वर्ल्ड धारणा, कुछ एन-एडिक प्रेडिकेट (गणितीय तर्क) के विस्तार के रूप में: सभी और केवल वे एन-टुपल्स जिनके मूल्य, संबंधित मुक्त के लिए प्रतिस्थापित विधेय में चर, उपज प्रस्ताव जो सही हैं, संबंध में दिखाई देते हैं।
संबंध स्कीमा शब्द उस शीर्षक के संदर्भ में परिभाषित बाधाओं के एक सेट के साथ जोड़े गए शीर्षक को संदर्भित करता है। इस प्रकार एक संबंध को एक संबंध स्कीमा की तात्कालिकता के रूप में देखा जा सकता है यदि इसमें उस स्कीमा का शीर्षक है और यह लागू बाधाओं को संतुष्ट करता है।
कभी-कभी नाम शामिल करने के लिए एक संबंध स्कीमा लिया जाता है।[5][6] एक संबंधपरक डेटाबेस परिभाषा (डेटाबेस स्कीमा, जिसे कभी-कभी एक संबंधपरक स्कीमा के रूप में संदर्भित किया जाता है) को इस प्रकार नामित संबंध स्कीमा के संग्रह के रूप में माना जा सकता है।[7][8] कार्यान्वयन में, प्रत्येक विशेषता का डोमेन प्रभावी रूप से एक डेटा प्रकार होता है[9] और एक नामित संबंध स्कीमा प्रभावी रूप से एक गनर (संक्षिप्त रूप में रिल्वर) है।
SQL में, संबंधपरक डेटाबेस के लिए एक डेटाबेस भाषा, संबंधों को तालिका (डेटाबेस) द्वारा दर्शाया जाता है, जहाँ तालिका की प्रत्येक पंक्ति एक एकल टपल का प्रतिनिधित्व करती है, और जहाँ प्रत्येक विशेषता के मान एक स्तंभ बनाते हैं।
उदाहरण
नीचे एक संबंध का एक उदाहरण दिया गया है जिसमें तीन नामित विशेषताएँ हैं: पूर्णांकों के डोमेन से 'आईडी', और स्ट्रिंग (कंप्यूटर विज्ञान) के डोमेन से 'नाम' और 'पता':
ID (Integer) | Name (String) | Address (String) |
---|---|---|
102 | Yonezawa Akinori | Naha, Okinawa |
202 | Nilay Patel | Sendai, Miyagi |
104 | Murata Makoto | Kumamoto, Kumamoto |
152 | Matsumoto Yukihiro | Okinawa, Okinawa |
मुक्त चरों को निरूपित करने के लिए विशेषता नामों का उपयोग करते हुए, इस संबंध के लिए एक विधेय हो सकता है, कर्मचारी संख्या आईडी को नाम के रूप में जाना जाता है और पता पर रहता है। संबंध की परीक्षा हमें बताती है कि केवल चार टुपल्स हैं जिनके लिए विधेय सत्य है। इसलिए, उदाहरण के लिए, कर्मचारी 102 को केवल इसी नाम से जाना जाता है, योनेज़ावा अकिनोरी, और नाहा, ओकिनावा के अलावा कहीं और नहीं रहता है। साथ ही, दिखाए गए चार कर्मचारियों के अलावा कोई अन्य कर्मचारी नहीं है, जिसका नाम और पता दोनों हो।
'बॉडी' की परिभाषा के तहत, किसी बॉडी के टुपल्स किसी विशेष क्रम में प्रकट नहीं होते हैं - कोई यह नहीं कह सकता 'मुराटा मकोतो' का टुपल 'मात्सुमोतो युकिहिरो' के टुपल से ऊपर है, न ही कोई कह सकता है 'योनेज़ावा का टपल' अकिनोरी' पहला टपल है। एक समान टिप्पणी SQL तालिका की पंक्तियों पर लागू होती है।
'शीर्षक' की परिभाषा के तहत, किसी तत्व के गुण किसी विशेष क्रम में प्रकट नहीं होते हैं, न ही, इसलिए टपल के तत्व करते हैं। इसी तरह की टिप्पणी यहां SQL पर लागू नहीं होती है, जो तालिका के कॉलम के लिए ऑर्डरिंग को परिभाषित करती है।
संबंध चर
वास्तविक दुनिया में परिवर्तनों के जवाब में डेटाबेस को अद्यतन करने के उद्देश्यों के लिए एक रिलेशनल डेटाबेस में रिलेवर | रिलेशन वेरिएबल्स (रिलेवर्स) नामित होते हैं। एकल रिल्वर के लिए एक अद्यतन उस चर को निर्दिष्ट संबंध के मुख्य भाग को टुपल्स के एक अलग सेट द्वारा प्रतिस्थापित करने का कारण बनता है। Relvars को दो वर्गों में वर्गीकृत किया गया है: आधार संबंध चर और व्युत्पन्न संबंध चर, बाद वाले को आभासी relvars के रूप में भी जाना जाता है लेकिन आमतौर पर अल्पावधि दृश्य द्वारा संदर्भित किया जाता है।
एक आधार संबंध चर एक संबंध चर है जो किसी अन्य संबंध चर से व्युत्पन्न नहीं होता है। SQL में बेस टेबल (डेटाबेस) शब्द लगभग बेस रिलेशन वेरिएबल के बराबर है।
एक दृश्य को संबंधपरक बीजगणित या संबंधपरक कलन के संचालकों का उपयोग करके एक व्यंजक द्वारा परिभाषित किया जा सकता है। ऐसी अभिव्यक्ति एक या एक से अधिक संबंधों पर चलती है और जब मूल्यांकन किया जाता है तो एक अन्य संबंध उत्पन्न होता है। परिणाम को कभी-कभी एक व्युत्पन्न संबंध के रूप में संदर्भित किया जाता है जब ऑपरेंड डेटाबेस चर के लिए असाइन किए गए संबंध होते हैं। एक ऐसे व्यंजक को एक नाम देकर एक दृश्य को परिभाषित किया जाता है, जैसे कि नाम को बाद में एक चर नाम के रूप में इस्तेमाल किया जा सकता है। (ध्यान दें कि तब व्यंजक में कम से कम एक आधार संबंध चर का उल्लेख होना चाहिए।)
डेटा परिभाषा भाषा (DDL) का उपयोग करके, यह आधार संबंध चर को परिभाषित करने में सक्षम है। एसक्यूएल में, CREATE TABLE
सिंटैक्स का उपयोग बेस टेबल को परिभाषित करने के लिए किया जाता है। निम्नलिखित एक उदाहरण है।
<वाक्यविन्यास लैंग = एसक्यूएल> लोगों की सूची बनाएं (
आईडी पूर्णांक, नाम चार (40), पता चार (200), प्राथमिक कुंजी (आईडी)
) </वाक्यविन्यास हाइलाइट>
डेटा डेफिनिशन लैंग्वेज (DDL) का उपयोग व्युत्पन्न संबंध चर को परिभाषित करने के लिए भी किया जाता है। एसक्यूएल में, CREATE VIEW
सिंटैक्स का उपयोग व्युत्पन्न संबंध चर को परिभाषित करने के लिए किया जाता है। निम्नलिखित एक उदाहरण है।
<वाक्यविन्यास लैंग = एसक्यूएल> देखें सूची_ऑफ_ओकिनावा_लोगों के रूप में देखें (
आईडी, नाम, पता चुनें लोगों की सूची से जहां पता '%, ओकिनावा' जैसा है
) </वाक्यविन्यास हाइलाइट>
यह भी
- रेल्वर | रेल्वर (संबंधपरक चर)
संदर्भ
- ↑ E. F. Codd (Oct 1972). "Further normalization of the database relational model". Data Base Systems. Courant Institute: Prentice-Hall. ISBN 013196741X.
R is a relation on these n domains if it is a set of elements of the form (d1, d2, ..., dn) where dj ∈ Dj for each j=1,2,...,n.
- ↑ C.J. Date (May 2005). Database in Depth. O'Reilly. p. 42. ISBN 0-596-10012-4.
... tuples have no left-to-right ordering to their attributes ...
- ↑ E.F. Codd (1990). The Relational Model for Database Management, Version 2. Addison-Wesley. p. 3. ISBN 0-201-14192-2.
One reason for abandoning positional concepts altogether in the relations of the relational model is that it is not at all unusual to find database relations, each of which has as many as 50, 100, or even 150 columns.
- ↑ Codd, Edgar F (June 1970). "A Relational Model of Data for Large Shared Data Banks" (PDF). Communications of the ACM. 13 (6): 377–87. doi:10.1145/362384.362685.
The term relation is used here in its accepted mathematical sense
- ↑ Jeffrey D. Ullman (1989). Principles of Database and Knowledge-Base Systems. Jeffrey Ullman. pp. 410–. Retrieved 28 November 2012.
- ↑ Dennis Elliott Shasha; Philippe Bonnet (2003). Database Tuning: Principles, Experiments, and Troubleshooting Techniques. Morgan Kaufmann. p. 124. ISBN 978-1-55860-753-8.
- ↑ Peter Rob; Carlos Coronel, Peter Rob (2009). Database Systems: Design, Implementation, and Management. Cengage Learning. pp. 190–. ISBN 978-1-4239-0201-0. Retrieved 28 November 2012.
- ↑ T. A. Halpin; Antony J. Morgan (2008). Information Modeling and Relational Databases. Morgan Kaufmann. pp. 772–. ISBN 978-0-12-373568-3. Retrieved 28 November 2012.
- ↑ Michael F. Worboys (1995). Gis: A Computing Perspective. Taylor & Francis. pp. 57–. ISBN 978-0-7484-0065-2. Retrieved 22 November 2012.
- Date, C. J. (2004). An Introduction to Database Systems (8 ed.). Addison–Wesley. ISBN 978-0-321-19784-9.