साहचर्य इकाई: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:


एक साहचर्य इकाई [[संबंधपरक मॉडल]] और इकाई-संबंध मॉडल|इकाई-संबंध सिद्धांत में प्रयुक्त शब्द है। संबंधपरक डेटाबेस को अनेक-से-अनेक (डेटा मॉडल)|अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. A base relation representing this kind of entity is called, informally, an '''associative table'''. [[Image:Associate_Entity.png|frame|एक साहचर्य इकाई ([[पीटर चेन]] नोटेशन का उपयोग करके)]]जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदरसमान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।
एक साहचर्य इकाई [[संबंधपरक मॉडल]] और इकाई-संबंध मॉडल|इकाई-संबंध सिद्धांत में प्रयुक्त शब्द है। संबंधपरक डेटाबेस को अनेक-से-अनेक (डेटा मॉडल)|अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है। [[Image:Associate_Entity.png|frame|एक साहचर्य इकाई ([[पीटर चेन]] अंकन का उपयोग करके)]]जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदरसमान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।


[[File:mapping_table_concept.png|right|मैपिंग टेबल की अवधारणा]]एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की [[प्राथमिक कुंजी]] (पीके) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई [[विदेशी कुंजी]] (एफके) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा टेबल तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का पीके सामान्यतः स्वयं एफके कॉलम से बना होता है।
[[File:mapping_table_concept.png|right|मैपिंग तालिका की अवधारणा]]एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की [[प्राथमिक कुंजी]] (पीके) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई [[विदेशी कुंजी]] (एफके) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का पीके सामान्यतः स्वयं एफके कॉलम से बना होता है।


साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें एसोसिएशन टेबल, ब्रिज टेबल, क्रॉस-रेफरेंस टेबल, क्रॉसवॉक, इंटरमीडियरी टेबल, इंटरसेक्शन टेबल, ज्वाइन टेबल, जंक्शन टेबल, लिंक टेबल, लिंकिंग टेबल, कई-से-कई रिज़ॉल्वर, मैप टेबल सम्मिलित हैं। , मैपिंग टेबल, पेयरिंग टेबल, पिवट टेबल (जैसा कि [[laravel]] में गलत विधि से उपयोग किया गया है - पिवट टेबल के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका, कई-से-कई रिज़ॉल्वर, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि [[laravel|लारवेल]] में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।


== साहचर्य तालिकाओं का उपयोग करना ==
== साहचर्य तालिकाओं का उपयोग करना ==
Line 10: Line 10:
एक साहचर्य तालिका के व्यावहारिक उपयोग का  उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।
एक साहचर्य तालिका के व्यावहारिक उपयोग का  उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।


<वाक्यविन्यास लैंग = एसक्यूएल>
 
तालिका उपयोगकर्ता बनाएं (
तालिका उपयोगकर्ता बनाएं (
     UserLogin varchar(50) प्राथमिक कुंजी,
     उपयोगकर्ता लॉगिन varchar(50) प्राथमिक कुंजी,
     UserPassword varchar(50) न्यूल नहीं,
     उपयोगकर्ता पासवर्ड varchar(50) न्यूल नहीं,
     उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है
     उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है
);
);


टेबल अनुमतियां बनाएं (
तालिका अनुमतियां बनाएं (
     PermissionKey varchar(50) प्राथमिक कुंजी,
     अनुमति कुंजी varchar(50) प्राथमिक कुंजी,
     PermissionDescription varchar(500) NOT NULL
     अनुमति विवरण varchar(500) अशक्त नहीं
);
);


- यह जंक्शन टेबल है।
- यह जंक्शन तालिका है।
 
तालिका बनाएं उपयोगकर्ता अनुमतियां (
तालिका बनाएं उपयोगकर्ता अनुमतियां (
     UserLogin varchar(50) संदर्भ उपयोगकर्ता (UserLogin),
     उपयोगकर्ता लॉगिन varchar(50) संदर्भ उपयोगकर्ता (उपयोगकर्ता लॉगिन),
     PermissionKey varchar(50) संदर्भ अनुमतियाँ (PermissionKey),
     अनुमति कुंजी varchar(50) संदर्भ अनुमतियाँ (अनुमति कुंजी),
     प्राथमिक कुंजी (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
     प्राथमिक कुंजी (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
);
);
</वाक्यविन्यास हाइलाइट>


[[File:Junction Table.svg|center|दर्शाए गए संबंधों के साथ वर्णित तालिका स्कीमा का एक दृश्य चित्रण]]
[[File:Junction Table.svg|center|दर्शाए गए संबंधों के साथ वर्णित तालिका स्कीमा का एक दृश्य चित्रण]]
{{-}}
{{-}}
जंक्शन तालिका पर  चयन (एसक्यूएल) -स्टेटमेंट में सामान्यतः जंक्शन तालिका के साथ मुख्य तालिका में सम्मिलित होना (एसक्यूएल) सम्मिलित होता है:
जंक्शन तालिका पर  चयन (एसक्यूएल) -स्टेटमेंट में सामान्यतः जंक्शन तालिका के साथ मुख्य तालिका में सम्मिलित होना (एसक्यूएल) सम्मिलित होता है:
<वाक्यविन्यास लैंग = एसक्यूएल>
 
चुनें * उपयोगकर्ताओं से
चुनें * उपयोगकर्ताओं से
(यूजरलॉगिन) का उपयोग करके उपयोगकर्ता अनुमतियों में सम्मिलित हों;
 
</वाक्यविन्यास हाइलाइट>
(उपयोगकर्तालॉगिन) का उपयोग करके उपयोगकर्ता अनुमतियों में सम्मिलित हों;


यह सभी उपयोगकर्ताओं और उनकी अनुमतियों की सूची लौटाएगा।
यह सभी उपयोगकर्ताओं और उनकी अनुमतियों की सूची लौटाएगा।
Line 42: Line 42:
जंक्शन तालिका में [[सम्मिलित करें (एसक्यूएल)]] में कई चरण सम्मिलित हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।
जंक्शन तालिका में [[सम्मिलित करें (एसक्यूएल)]] में कई चरण सम्मिलित हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।


<वाक्यविन्यास लैंग = एसक्यूएल>
-  नया उपयोगकर्ता बनाना
-  नया उपयोगकर्ता बनाना
उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम)
उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम)
मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');
मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');


-  नई अनुमति बनाना
-  नई अनुमति बनाना
अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण)
अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण)
VALUES ('TheKey', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');
 
मान ('कुंजी', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');


- अंत में, जंक्शन को अपडेट करना
- अंत में, जंक्शन को अपडेट करना
UserPermissions में डालें (UserLogin, PermissionKey)
 
उपयोगकर्ताअनुमति में डालें (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
 
मान ('कुछ उपयोगकर्ता', 'की');
मान ('कुछ उपयोगकर्ता', 'की');
</वाक्यविन्यास हाइलाइट>


विदेशी कुंजियों का उपयोग करते हुए, डेटाबेस स्वचालित रूप से UserPermissions तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा।
विदेशी कुंजियों का उपयोग करते हुए, डेटाबेस स्वचालित रूप से उपयोगकर्ता अनुमति तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा।


== यह भी देखें ==
== यह भी देखें ==

Revision as of 12:02, 22 February 2023

एक साहचर्य इकाई संबंधपरक मॉडल और इकाई-संबंध मॉडल|इकाई-संबंध सिद्धांत में प्रयुक्त शब्द है। संबंधपरक डेटाबेस को अनेक-से-अनेक (डेटा मॉडल)|अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है।

एक साहचर्य इकाई (पीटर चेन अंकन का उपयोग करके)

जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदरसमान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।

मैपिंग तालिका की अवधारणा

एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की प्राथमिक कुंजी (पीके) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई विदेशी कुंजी (एफके) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का पीके सामान्यतः स्वयं एफके कॉलम से बना होता है।

साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका, कई-से-कई रिज़ॉल्वर, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि लारवेल में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।

साहचर्य तालिकाओं का उपयोग करना

एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।


तालिका उपयोगकर्ता बनाएं (

   उपयोगकर्ता लॉगिन varchar(50) प्राथमिक कुंजी,
   उपयोगकर्ता पासवर्ड varchar(50) न्यूल नहीं,
   उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है

);

तालिका अनुमतियां बनाएं (

   अनुमति कुंजी varchar(50) प्राथमिक कुंजी,
   अनुमति विवरण varchar(500) अशक्त नहीं

);

- यह जंक्शन तालिका है।

तालिका बनाएं उपयोगकर्ता अनुमतियां (

   उपयोगकर्ता लॉगिन varchar(50) संदर्भ उपयोगकर्ता (उपयोगकर्ता लॉगिन),
   अनुमति कुंजी varchar(50) संदर्भ अनुमतियाँ (अनुमति कुंजी),
   प्राथमिक कुंजी (उपयोगकर्ता लॉगिन, अनुमति कुंजी)

);

दर्शाए गए संबंधों के साथ वर्णित तालिका स्कीमा का एक दृश्य चित्रण

जंक्शन तालिका पर चयन (एसक्यूएल) -स्टेटमेंट में सामान्यतः जंक्शन तालिका के साथ मुख्य तालिका में सम्मिलित होना (एसक्यूएल) सम्मिलित होता है:

चुनें * उपयोगकर्ताओं से

(उपयोगकर्तालॉगिन) का उपयोग करके उपयोगकर्ता अनुमतियों में सम्मिलित हों;

यह सभी उपयोगकर्ताओं और उनकी अनुमतियों की सूची लौटाएगा।

जंक्शन तालिका में सम्मिलित करें (एसक्यूएल) में कई चरण सम्मिलित हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।

- नया उपयोगकर्ता बनाना

उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम)

मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');

- नई अनुमति बनाना

अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण)

मान ('कुंजी', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');

- अंत में, जंक्शन को अपडेट करना

उपयोगकर्ताअनुमति में डालें (उपयोगकर्ता लॉगिन, अनुमति कुंजी)

मान ('कुछ उपयोगकर्ता', 'की');

विदेशी कुंजियों का उपयोग करते हुए, डेटाबेस स्वचालित रूप से उपयोगकर्ता अनुमति तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा।

यह भी देखें

संदर्भ

  • Hoffer, Jeffrey A.; Prescott, Mary B.; McFadden, Fred R. (2004). Modern Database Management (7th ed.). Prentice Hall. ISBN 978-0131453203.
  • Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. ACM. 13 (6): 377–387. doi:10.1145/362384.362685.