Main Objects of ADO.NET Connected Architecture

ADO.NET Connected Architecture: ADO.NET का Connected Part ऐसे Object को Represent करता है, जो Data Source से Interact करते समय Data SourceFrontend के बीच Connection Open रखता है। यानी Data Source से Data को Access व Manipulate करने के लिए ये जरूरी होता है कि Frontend के लिए Data Source पर Connection तब तक Open रहे,  जब तक कि Frontend Client व Backend Data Source के बीच Data लेन-देन के लिए Perform होने वाला Communication समाप्त नहीं हो जाता। ADO.NET के Connected Part के अन्तर्गत मुख्‍यत:  निम्न मुख्‍य Objects होते हैं:

Connection Object

ये वह Object होता है, जो Frontend का Backend Data Source के साथ Connection Establish करता है। इस बात पर निर्भर करते हुए कि किस प्रकार के Data Source से Data को Store/Retrieve करने के लिए कौनसा .NET Data Provider Involved है, वह Specific .NET Data Provider हमारी किसी Specified SQL Query के आधार पर Physical Database Connection से Actual Data Retrieve करता है। OleDbConnection, SqlConnection, OracleConnection आदि Connection Type Object के उदाहरण हैं, जो कि एक Connected Object होता है।

जब Frontend किसी Underlying Backend Database से Connect होता है, तो दोनों के बीच ये Connection Establish होना काफी Time Consuming Task होता है। क्योंकि दोनों के बीच Connection Establish करने के लिए Socket या Named PIPE के रूप में एक Physical Channel Establish होता है और Client व Server के बीच एक Handshake Initialize होने के लिए Connection String Information Parse होता है, जिसका Server द्वारा Authentication किया जाता है।

प्रायोगिक रूप से ज्यादातर Applications Connection Establish करने के लिए एक या दो Unique Configurations को Use करते हैं। इसका मतलब ये हुआ कि Application के Execution के दौरान कई Identical Connections बार-बार जल्दी-जल्दी Open व Close होते हैं। इस बार-बार Identical Connections के Open व Close होने की प्रक्रिया को कम करने के लिए ही ADO.NET एक Optimization तकनीक Use करता है, जिसे Connection Pooling के नाम से जाना जाता है।

Connection Pooling एक ऐसी प्रक्रिया है, जिसमें Identical Connections को केवल एक ही बार Open किया जाता है और Physical Connection को हर Identical Connection के लिए Open रखते हुए Reuse कर लिया जाता है।

परिणामस्वरूप जब भी कभी Connection को Open करने का Request मिलता है, Application सबसे पहले उस Request को Pool में Existence के लिए Check करता है। यानी यदि Open होने वाले Connection के Identical Connection को यदि पहले Open किया जा चुका हो, तो Connection Pool में वह Connection पहले से Exist होता है। इस स्थिति में नया Connection Open नहीं किया जाता, बल्कि Pool में उस पहले से Exist Connection को Reuse कर लिया जाता है।

इस प्रकार से हर Unique Connection String Configuration के लिए ADO.NET एक Pool (Stored Connection) Create करता है और हर Identical Connection String Configuration के लिए उस Pool में Stored Connection को ही Reuse करता है।

Transaction Object

कई बार ऐसी स्थिति होती है, जब हमें बहुत सारे SQL Statements के पूरे एक Group को Data Source पर एक साथ एक Atomic Operation की तरह Execute करना होता है। जहां या तो उस Statement Group के सभी Statements का एक साथ Execution होना जरूरी होता है अथवा जरूरी होता है कि एक भी Statement का Execution नहीं हो। इस प्रक्रिया को सामान्‍यत:  “All or Nothing” Operation कहा जाता है।

उदाहरण के लिए जब हम Net Banking के माध्‍यम से किसी एक Bank A/c से किसी दूसरे Bank A/c में Payment Transfer करते हैं,  तो एक Bank A/c का Balance कम होता है और दूसरे का बढ जाता है। यानी यदि होते हैं तो दोनों ही काम होते हैं अन्‍यथा कोई भी काम नहीं होता। इस प्रक्रिया को DBMS की भाषा में सामान्‍यत:  Transaction के नाम से जाना जाता है।

OleDbTransaction, SqlTransaction, OracleTransaction आदि Transaction Objects के Example हैं। जबकि ADO.NET 2.0 हमें Distributed Transactions Perform करने की सुविधा भी Provide करता है। साथ ही हम System.Transaction Namespace के Types का प्रयोग करके Non-Database Transactions भी Perform कर सकते हैं।

DataAdapter Object

ये Object ADO.NET के Disconnected व Connected Parts के बीच Gateway की तरह काम करता है। ये हमारे लिए Backend Data Source के साथ Connection Establish करता है अथवा इसे कोई Established Connection Provide करने पर ये उस Specified Connection के बारे में विभिन्न प्रकार की जानकारियां Provide करता है, जिनका प्रयोग Disconnected Object के Data को Identify करने व उस पर किसी Specific Manner में Act करने की सुविधा Provide करता है। SqlDataAdapter, OracleDataAdapter, OleDbDataAdapter आदि इस प्रकार के Objects के उदाहरण हैं।

Command Object

ये Object Underlying Data Source पर Execute किए जाने वाले Command (SQL Statement or Transaction) को Represent करता है। ये Command Object कोई Result Return कर भी सकता है और नहीं भी। Command Objects का प्रयोग Underlying Data Source के Data को Access, Manipulate, Query, Update, Delete आदि करने के लिए किया जाता है। साथ ही ये Commands, Underlying Database के Table Structure को Manipulate करने के लिए भी उपयोग में लिए जा सकते हैं। SqlCommand, OracleCommand, OleDbCommand आदि इस प्रकार के Objects के उदाहरण हैं।

Parameter Object

Command में ये क्षमता होनी चाहि, कि वह Parameters Accept कर सके। ताकि Command के SQL Statement या Stored Procedure को Dynamically Modify करते हुए अलग-अलग तरह के Result Generate किए जा सकें। ये Parameters Input अथवा Output किसी भी प्रकार के हो सकते हैं।

साथ ही ये Parameters किसी Stored Procedure से Return होने वाले मान को Represent कर सकते हैं अथवा किसी SQL Query में Pass किए गए “?” Arguments हो सकते हैं या फिर किसी Dynamic Query के Named Parameters हो सकते हैं। OleDbParameter, SqlParameter, OracleParameter आदि इस प्रकार के Objects के उदाहरण हैं।

DataReader Object

ये Object Read-Only या Forward-Only Cursor के समान है, जो हमें Database के Data को Readonly व Forward Only Mode में बहुत ही Fast Speed से Fetch करने की सुविधा Provide करता है। (ADO.NET Connected Architecture)

ADO.NET with C# in Hindi - BccFalna.com: TechTalks in Hindi ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook ADO.NET with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

ADO.NET with C# in Hindi | Page:501 | Format: PDF

BUY NOW GET DEMO REVIEWS