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

From Vigyanwiki
No edit summary
No edit summary
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
साहचर्य इकाई एक शब्द है जिसका उपयोग संबंधपरक और इकाई-संबंध सिद्धांत में किया जाता है। संबंधपरक डेटाबेस को अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है।  [[Image:Associate_Entity.png|frame|एक साहचर्य इकाई ([[पीटर चेन]] अंकन का उपयोग करके)]]जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदर समान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।


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


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


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


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


<वाक्यविन्यास लैंग = एसक्यूएल>
<syntaxhighlight>
तालिका उपयोगकर्ता बनाएं (
CREATE TABLE Users (
     UserLogin varchar(50) प्राथमिक कुंजी,
     UserLogin varchar(50) PRIMARY KEY,
     UserPassword varchar(50) न्यूल नहीं,
     UserPassword varchar(50) NOT NULL,
     उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है
     UserName varchar(50) NOT NULL
);
);


टेबल अनुमतियां बनाएं (
CREATE TABLE Permissions (
     PermissionKey varchar(50) प्राथमिक कुंजी,
     PermissionKey varchar(50) PRIMARY KEY,
     PermissionDescription varchar(500) NOT NULL
     PermissionDescription varchar(500) NOT NULL
);
);


- यह जंक्शन टेबल है।
-- This is the junction table.
तालिका बनाएं उपयोगकर्ता अनुमतियां (
CREATE TABLE UserPermissions (
     UserLogin varchar(50) संदर्भ उपयोगकर्ता (UserLogin),
     UserLogin varchar(50) REFERENCES Users (UserLogin),
     PermissionKey varchar(50) संदर्भ अनुमतियाँ (PermissionKey),
     PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),
     प्राथमिक कुंजी (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
     PRIMARY KEY (UserLogin, PermissionKey)
);
);
</वाक्यविन्यास हाइलाइट>
 
</syntaxhighlight>
 


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


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


जंक्शन तालिका में [[सम्मिलित करें (एसक्यूएल)]] में कई चरण शामिल हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।
जंक्शन तालिका में [[सम्मिलित करें (एसक्यूएल)]] में कई चरण सम्मिलित हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।<syntaxhighlight>
-- Creating a new User
INSERT INTO Users (UserLogin, UserPassword, UserName)
VALUES ('SomeUser', 'SecretPassword', 'UserName');


<वाक्यविन्यास लैंग = एसक्यूएल>
-- Creating a new Permission
- नया उपयोगकर्ता बनाना
INSERT INTO Permissions (PermissionKey, PermissionDescription)
उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम)
VALUES ('TheKey', 'A key used for several permissions');
मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');


- नई अनुमति बनाना
-- Finally, updating the junction
अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण)
INSERT INTO UserPermissions (UserLogin, PermissionKey)
VALUES ('TheKey', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');
VALUES ('SomeUser', 'TheKey');
</syntaxhighlight>


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


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


== यह भी देखें ==
== यह भी देखें ==
Line 67: Line 65:
*{{cite book |last1=Hoffer |first1=Jeffrey A. |last2=Prescott |first2=Mary B. |last3=McFadden |first3=Fred R. |year=2004 |title=Modern Database Management |edition=7th |publisher=Prentice Hall |isbn=978-0131453203}}
*{{cite book |last1=Hoffer |first1=Jeffrey A. |last2=Prescott |first2=Mary B. |last3=McFadden |first3=Fred R. |year=2004 |title=Modern Database Management |edition=7th |publisher=Prentice Hall |isbn=978-0131453203}}
*{{cite journal |last=Codd |first=E. F. |authorlink=Edgar F. Codd |year=1970 |title=A Relational Model of Data for Large Shared Data Banks |journal=Communications of the ACM |publisher=ACM |doi=10.1145/362384.362685 |volume=13 |issue=6 |pages=377–387|doi-access=free }}
*{{cite journal |last=Codd |first=E. F. |authorlink=Edgar F. Codd |year=1970 |title=A Relational Model of Data for Large Shared Data Banks |journal=Communications of the ACM |publisher=ACM |doi=10.1145/362384.362685 |volume=13 |issue=6 |pages=377–387|doi-access=free }}
[[Category: इकाई-संबंध मॉडल]] [[Category: चित्र]]


[[Category: Machine Translated Page]]
[[Category:Created On 16/02/2023]]
[[Category:Created On 16/02/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Pages with syntax highlighting errors]]
[[Category:Templates Vigyan Ready]]
[[Category:इकाई-संबंध मॉडल]]
[[Category:चित्र]]

Latest revision as of 10:58, 7 March 2023

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

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

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

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

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

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

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

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

CREATE TABLE Users (
    UserLogin varchar(50) PRIMARY KEY,
    UserPassword varchar(50) NOT NULL,
    UserName varchar(50) NOT NULL
);

CREATE TABLE Permissions (
    PermissionKey varchar(50) PRIMARY KEY,
    PermissionDescription varchar(500) NOT NULL
);

-- This is the junction table.
CREATE TABLE UserPermissions (
    UserLogin varchar(50) REFERENCES Users (UserLogin),
    PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),
    PRIMARY KEY (UserLogin, PermissionKey)
);


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

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

SELECT * FROM Users
JOIN UserPermissions USING (UserLogin);

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

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

-- Creating a new User
INSERT INTO Users (UserLogin, UserPassword, UserName)
VALUES ('SomeUser', 'SecretPassword', 'UserName');

-- Creating a new Permission
INSERT INTO Permissions (PermissionKey, PermissionDescription)
VALUES ('TheKey', 'A key used for several permissions');

-- Finally, updating the junction
INSERT INTO UserPermissions (UserLogin, PermissionKey)
VALUES ('SomeUser', 'TheKey');


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

यह भी देखें

संदर्भ

  • 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.