ADO.NET DataSet Constraints Object: Relational Databases में Data पर Integrity व Constraints को Enforce किया जाता है। ये वे Rules होते हैं, जो किसी Table के Column या Columns के समूह पर Apply किए जाते हैं। ये Rules, Associated Column में किसी Value को Insert या Update करने से पहले इस बात को Check करते हैं कि उन Columns पर Applied कोई भी Constraint Violate तो नहीं हो रहा है।
यानी किसी Column में Insert या Update होने वाले Data को हमेंशा उन Constraints को Satisfy करना जरूरी होता है, जिन्हें उस Column पर Apply किया गया है, जिस में Data को Insert किया जा रहा है। ADO.NET में ForeignKeyConstraint व UniqueConstraint नाम के दो Constraints होते हैं।
ADO.NET DataSet – ForeignKeyConstraint
इस Constraint का प्रयोग Referential Integrity को Enforce करने के लिए किया जाता है। इस Constraint का प्रयोग करते हुए हम Referential Integrity के साथ ही Cascade Behavior को भी Define कर सकते हैं, जिसके अन्तर्गत जब किसी Parent Table के किसी Column में Stored Value को Change या Delete किया जाता है, तो ForeignKeyConstraint इस बात को Define करता है कि इस Change या Deletion के Response में Child Tables किस प्रकार से React करेंगे।
उदाहरण के लिए यदि Parent Record को Delete किया जाता है, तो हम इस Constraint द्वारा इस बात को भी Specify कर सकते हैं कि उस Parent Record से Related सभी Child Records भी Delete हो जाऐं। या फिर हम ये Condition Set कर सकते हैं कि Delete होने वाले Parent Record से Related सभी Child Records NULL या किसी Default Value से Set हो जाऐं। इस प्रक्रिया को Cascading Action के नाम से जाना जाता है, क्योंकि ये एक ऐसा Action है, जो Parent Record पर Apply किया जाता है और Parent Record से Travel करता हुआ ये Action, Child Recodes को प्रभावित करता है।
Parent Records के आधार पर Child Records के लिए जिस Action को Perform करना होता है, उसे ForeignKeyConstraint.DeleteRule तथाध्या ForeignKeyConstraint.UpdateRule Property में Specify किया जाता है और इसे निम्नानुसार Specified चार System.Data.Rule Enumerators Values में से किसी एक को Specify किया जाता है:
Cascade Value
इस मान को Specify करने पर Parent Record के आधार पर सभी Child Records को Delete या Update किया जाता है। ये ForeignKeyConstraint का Default Action होता है। चूंकि हमेंशा ऐसा जरूरी नहीं होता कि Parent Record को Delete या Update करने के साथ ही सभी Child Records को भी Delete या Change किया जाए, इसलिए इस Cascade मान को Use करते समय हमेंशा Careful रहना चाहिए।
SetNull Value
इस मान को Specify करने पर सभी Child Records को DBNull Value से Set कर दिया जाता है।
SetDefault Value
इस मान को Specify करने पर सभी Related Child Records को उनके Column की DefautValue Property की Value से Set कर दिया जाता है।
None Value
इस मान को Specify करने पर Parent Record को Update या Delete करने पर भी Related Child Records में किसी प्रकार का कोई Action Perform नहीं होता।
ADO.NET DataSet – UniqueConstraint
ये Constraint जिस Column/Columns के साथ Use किया जाता है, उस Column/Columns में हमेंशा Unique मान ही Store हो सकता है। Primary Key Column के साथ ये Constraint Automatically Set हो जाता है। यदि किसी Column के साथ इस Constraint को Specify किया गया हो और हम उस Column में एक से ज्यादा Records में समान Value Insert करें, तो System.Data.ConstraintException Type का Exception Fire होता है, क्योंकि इस Constraint का प्रयोग जिस Column पर किया जाता है, उस Column में Unique Data ही Store हो सकता है।
हम एक से ज्यादा Columns पर UniqueConstraint को Set कर सकते हैं। इस स्थिति में यदि हम दो Columns पर इस Constraint को Use करते हैं, तो दोनों ही Columns में समान Value Repeated Form में नहीं हो सकते, अन्यथा Exception Trigger होता है।
ADO.NET DataSet – PrimaryKey Property
चूंकि DataSet व DataTable दोनों ही Objects को Relational Databases के Basic Concepts को Support करने के लिए Design किया गया है, इसलिए DataTable Object में हर Record (Row) को Uniquely Identify करने के लिए उसमें Primary Key Column Exist हो सकता है या होना चाहिए। DataTable में Primary Key को DataColumns के एक Array के रूप में Define किया जाता है, जो DataTable में हर DataRow Object के लिए एक Unique Identifier Provide करता है।
इसलिए Primary Key Create करने के लिए हमें DataTable Object की PrimaryKey Property को एक DataColumn Array Object Assign करना होता है। जब हम इस तरीके से Primary Key Define करते हैं, तब उस DataColumn Array पर Automatically UniqueConstraint Apply हो जाता है।
उदाहरण के लिए यदि हम हमारे पिछले Code Segment में Create किए गए DataTable के au_id Column को Primary Key Column के रूप में Define करना चाहें, तो हमें निम्नानुसार Code Statement लिखना होगा:
//Setup the au_id as Primary Key
tblAuthors.PrimaryKey = new DataColumn[] {tblAuthors.Columns[“au_id”]}
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook ADO.NET with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
ADO.NET with C# in Hindi | Page:501 | Format: PDF