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

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


एक साहचर्य इकाई [[संबंधपरक मॉडल]] और इकाई-संबंध मॉडल|इकाई-संबंध सिद्धांत में प्रयुक्त शब्द है। संबंधपरक डेटाबेस को अनेक-से-अनेक (डेटा मॉडल)|अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है।  [[Image:Associate_Entity.png|frame|एक साहचर्य इकाई ([[पीटर चेन]] अंकन का उपयोग करके)]]जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदरसमान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।
[[File:mapping_table_concept.png|right|मैपिंग तालिका की अवधारणा]]एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की [[प्राथमिक कुंजी]] (PK) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई [[विदेशी कुंजी]] (FK) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का PK सामान्यतः स्वयं FK स्तंभ से बना होता है।
 
[[File:mapping_table_concept.png|right|मैपिंग तालिका की अवधारणा]]एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की [[प्राथमिक कुंजी]] (पीके) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई [[विदेशी कुंजी]] (एफके) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का पीके सामान्यतः स्वयं एफ के स्तंभ से बना होता है।


साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका,अनेक-से-अनेक समाधानकर्ता, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि [[laravel|लारवेल]] में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका,अनेक-से-अनेक समाधानकर्ता, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि [[laravel|लारवेल]] में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।
Line 10: Line 9:
एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।
एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।


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


तालिका उपयोगकर्ता बनाएं (
CREATE TABLE Permissions (
  उपयोगकर्ता लॉगिन वैरकैर(50) प्राथमिक कुंजी,
    PermissionKey varchar(50) PRIMARY KEY,
  उपयोगकर्ता पासवर्ड वैरकैर(50) न्यूल नहीं,
    PermissionDescription varchar(500) NOT NULL
  उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है
);
);


तालिका अनुमतियां बनाएं (
-- This is the junction table.
  अनुमति कुंजी वैरकैर(50) प्राथमिक कुंजी,
CREATE TABLE UserPermissions (
  अनुमति विवरण वैरकैर(500) अशक्त नहीं
    UserLogin varchar(50) REFERENCES Users (UserLogin),
    PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),
    PRIMARY KEY (UserLogin, PermissionKey)
);
);


- यह जंक्शन तालिका है।
</syntaxhighlight>


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


[[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 ('SomeUser', 'TheKey');
</syntaxhighlight>


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


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


== यह भी देखें ==
== यह भी देखें ==
Line 70: 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.