How to Make Relationship in Core Data: पिछले कई उदाहरणों में हमने विभिन्न प्रकार के Primary Key Identifiers को Use किया है। इन Keys के आधार पर ही Relational Database विभिन्न Entities के बीच की Relationships को Represent करता है। इस Concept को Clear करने के लिए निम्न तीन Tables को देखिए, जिनमें Data को Fill किया गया हैः
Items Table
ItemID | Title | DistID | Price |
2001 | C in Hindi | 200 | 200.0 |
2002 | C++ in Hindi | 200 | 225.0 |
2003 | Java in Hindi | 300 | 300.0 |
2004 | DBMS in Hindi | 400 | 150.0 |
Orders Table
OrderID | CustID | OrderDate |
600000 | 00001 | 12/02/2006 |
600001 | 01000 | 15/06/2007 |
600002 | 00100 | 20/12/2008 |
Orders Lines Table
OrderID | ItemID | Quantity | Shipped? |
600000 | 2001 | 1 | Y |
600000 | 2002 | 1 | Y |
600001 | 2002 | 2 | Y |
600002 | 2002 | 1 | N |
600002 | 2003 | 2 | N |
600002 | 2001 | 1 | N |
यहां Describe की गई सभी Tables “Music Store” Database के ER-Diagram के समान ही हैं। यहां:
- Orders Table (Orders Entity) के हर Unique Instance को OrderID नाम के एक Primary Key द्वारा Identify किया गया है, जो कि एक Meaningless Data है।
- Items Table (Items Entity) में हर Item को एक Unique Item Number द्वारा Identify किया जाता है, जिसे ItemID नाम दिया है और यहां भी ये एक Meaningless Data है।
- तीसरी Table Order Lines (Order Lines Entity) है, जो Music Store को ये बताता है कि कौनसा Item किस Order का हिस्सा है।
जैसाकि हमने Composite Entity के बारे में बताया, ये एक Composite Entity है और इस Table को एक Composite Primary Key की जरूरत होती है, क्योंकि Multiple Orders पर Multiple Items Appear हो सकते हैं।
इस Composite Primary Key का उन अन्य Primary Keys की तुलना में अधिक महत्व है, जिन्हें किसी Table के हर Instance या Row या Record को Uniquely Identify करने के लिए Define किया जाता है। इस Table में ये Composite Key हर Row को Uniquely Identify करने के साथ ही Order Lines, Orders व Items के बीच की Relationship को भी Represent करता है।
Order Lines Relation में ItemID Column उसी तरह का Primary Key है, जिस तरह का Item Table पर है। ये Primary Key दो Tables के बीच One To Many की Relationship को Represent करता है। इसी तरह से Orders व Order Lines के बीच भी एक One To Many की Relationship है, क्योंकि Order Lines Table का OrderID उसी तरह का Primary Key है, जिस तरह का Orders Table में है।
जब किसी Table में वैसा ही Primary Key होता है, जैसा किसी दूसरी Table में होता है, तो इस प्रकार के Key को Foreign Key कहा जाता है। किसी Relational Database में किसी Foreign Key का किसीPrimary Key के साथ Connect या Match होना, Relationship को Represent करता है।
किसी Relational Database में Columns या Keys की Matching के अलावा एसा कोई Structure नहीं होता है, जिससे Relationship को Represent किया जा सके। यानी किसी Relational Database में Columns या Keys की Matching से ही विभिन्न Entities के बीच की आपसी Relationship को Represent किया जाता है। किसी Relational Database में विभिन्न Tables के बीच की Relationship Logical स्तर पर ही होती है, इस प्रकार की Relationship का Physical स्तर पर कोई अस्तित्व नहीं होता है।
Foreign Keys किसी Composite Primary Key का हिस्सा हो सकते हैं या वे उनके Table के Primary Key का हिस्सा नहीं भी हो सकते हैं। यानी मानलो कि Music Store के Customers व Orders के बीच निम्न Relation हैः
Customers ( CustID, FName, LName, Telephone)
Orders ( OrderID, CustID, OrderDate)
इस Relationship में Orders Table में जो CustID Column है, वह Foreign Key है, जिसे Customer Table के Primary Key CustID से Match किया गया है। यहां Customers व Orders के बीच One To Many की Relationship Represent हो रही है। फिर भी Orders Table का CustID Column Orders Table के Primary Key का हिस्सा नहीं है, बल्कि ये एक Non-Key Attribute है, इसलिए ये एक Foreign Key है।
तकनीकी रूप से Foreign Keys में तब तक किसी मान को Store नहीं किया जा सकता है, जब तक कि वे किसी Composite Primary Key का हिस्सा नहीं होते हैं। इन्हें Null Assign किया जा सकता है। लेकिन हमारे Music Store Database में यदि हम CustID Foreign Key को Null Assign करते हैं, तो गम्भीर समस्याएं पैदा हो सकती हैं, क्योंकि यदि Orders Table में CustID Foreign Key को Null Assign किया जाता है, तो ये पता लगाने का कोई तरीका नहीं बचता है, कि उस Order को किस Customer ने Place किया है।
Primary Keys व Foreign Key की Matching के आधार पर ही एक Relational DBMS विभिन्न प्रकार की Relationships को Represent करता है। उदाहरण के लिए मानलो कि Music Store का कोई Employee ये जानना चाहता है कि Order Number #600000 पर किस Title का Order किया गया है। इस स्थिति में DBMS Line Items Table में सबसे पहले उन Rows को Identify करता है, जिनमें Order Number #600000 Stored है। फिर DBMS उन Identified Rows में से Item Numbers को Select करता है और उन्हें Items Table के Item Numbers से Match करता है। जिस Row में दोनोंItem Numbers Match होते हैं, DBMS उस Row से Associated Title को Retrieve कर लेता है। (How to Make Relationship in Core Data)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF