साहचर्य इकाई: Difference between revisions
No edit summary |
No edit summary |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
साहचर्य इकाई एक शब्द है जिसका उपयोग संबंधपरक और इकाई-संबंध सिद्धांत में किया जाता है। संबंधपरक डेटाबेस को अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है। [[Image:Associate_Entity.png|frame|एक साहचर्य इकाई ([[पीटर चेन]] अंकन का उपयोग करके)]]जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदर समान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं। | |||
[[File:mapping_table_concept.png|right|मैपिंग तालिका की अवधारणा]]एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की [[प्राथमिक कुंजी]] (PK) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई [[विदेशी कुंजी]] (FK) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का PK सामान्यतः स्वयं FK स्तंभ से बना होता है। | |||
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका,अनेक-से-अनेक समाधानकर्ता, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि [[laravel|लारवेल]] में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका। | |||
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें | |||
== साहचर्य तालिकाओं का उपयोग करना == | == साहचर्य तालिकाओं का उपयोग करना == | ||
एक साहचर्य तालिका के व्यावहारिक उपयोग का | एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं। | ||
< | <syntaxhighlight> | ||
CREATE TABLE Users ( | |||
UserLogin varchar(50) | UserLogin varchar(50) PRIMARY KEY, | ||
UserPassword varchar(50) | UserPassword varchar(50) NOT NULL, | ||
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 varchar(50) REFERENCES Users (UserLogin), | ||
PermissionKey varchar(50) | 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 (' | VALUES ('SomeUser', 'TheKey'); | ||
</syntaxhighlight> | |||
फॉरेन कीय का उपयोग करते हुए, डेटाबेस स्वचालित रूप से उपयोगकर्ता अनुमति तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा। | |||
== यह भी देखें == | == यह भी देखें == | ||
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: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.