Transaction Management (ट्रांजैक्शन मैनेजमेंट)
- Siddharth Sharma
- Feb 20
- 3 min read
Updated: Feb 21
1. Introduction to Transaction
Transaction का अर्थ है कार्यों का एक समूह (A set of logical operations) जिसे एक सिंगल यूनिट (Single Unit) के रूप में निष्पादित (Execute) किया जाता है।
उदाहरण के लिए, मान लीजिए आप अपने बैंक खाते (Account A) से अपने दोस्त के खाते (Account B) में ₹1000 ट्रांसफर कर रहे हैं। इस पूरी प्रक्रिया में डेटाबेस स्तर पर कई ऑपरेशन्स होते हैं:
Account A का बैलेंस चेक करना (Read)
Account A से ₹1000 काटना (Deduct/Update)
Account B का बैलेंस चेक करना (Read)
Account B में ₹1000 जोड़ना (Add/Update)
इन सभी ऑपरेशन्स के समूह को एक Transaction कहा जाता है। Transaction Management का मुख्य काम यह सुनिश्चित करना है कि या तो ये सभी ऑपरेशन्स सफलतापूर्वक पूरे हों, या फिर कोई भी न हो। यदि बीच में लाइट चली जाए (System Crash) या कोई एरर आ जाए, तो डेटाबेस कभी भी गलत या आधी-अधूरी स्थिति (Inconsistent state) में नहीं रहना चाहिए।
2. ACID Properties (एसिड प्रॉपर्टीज)
किसी भी Transaction को सुरक्षित और विश्वसनीय (Reliable) बनाने के लिए उसे चार मुख्य नियमों का पालन करना होता है, जिन्हें ACID Properties कहा जाता है। यह DBMS का सबसे महत्वपूर्ण प्रश्न है:
Atomicity (एटॉमिकिटी): इसे "All or Nothing" (सब कुछ या कुछ नहीं) का नियम कहा जाता है। इसका अर्थ है कि एक Transaction के सभी ऑपरेशन्स पूरी तरह से Execute होने चाहिए, या फिर एक भी ऑपरेशन Execute नहीं होना चाहिए। यदि बैंक ट्रांसफर के दौरान Account A से पैसे कट गए लेकिन Account B में नहीं पहुंचे, तो Transaction Manager पूरे प्रोसेस को वापस (Rollback) कर देगा और Account A के पैसे वापस कर देगा।
Consistency (कंसिस्टेंसी): यह सुनिश्चित करता है कि Transaction शुरू होने से पहले और खत्म होने के बाद डेटाबेस एक स्थिर (Consistent) स्थिति में रहे। उदाहरण के लिए, ट्रांसफर से पहले Account A और B का कुल बैलेंस (Total Sum) जितना था, ट्रांसफर के बाद भी कुल बैलेंस उतना ही होना चाहिए।
Isolation (आइसोलेशन): एक बड़े डेटाबेस में एक ही समय पर (Concurrently) हजारों Transactions चल रहे होते हैं। Isolation यह सुनिश्चित करता है कि एक Transaction का असर दूसरे पर तब तक न पड़े जब तक वह पूरी तरह से खत्म (Commit) न हो जाए। हर Transaction को ऐसा लगना चाहिए कि पूरे सिस्टम में सिर्फ वही अकेला चल रहा है।
Durability (ड्यूरेबिलिटी): एक बार जब कोई Transaction सफलतापूर्वक पूरा हो जाता है और डेटाबेस में सेव (Commit) हो जाता है, तो उसके द्वारा किए गए बदलाव स्थायी (Permanent) हो जाते हैं। यदि इसके तुरंत बाद सिस्टम क्रैश (System Crash) या पावर कट हो जाए, तो भी डेटा नष्ट (Loss) नहीं होना चाहिए।
3. States of a Transaction (ट्रांजैक्शन की अवस्थाएं)
जब कोई Transaction रन होता है, तो वह कई अलग-अलग States (अवस्थाओं) से गुजरता है:
Active State: जब Transaction शुरू होता है और उसके ऑपरेशन्स (Read/Write) चल रहे होते हैं, तब वह Active State में होता है।
Partially Committed State: जब Transaction अपना आखिरी ऑपरेशन पूरा कर लेता है, लेकिन डेटा अभी केवल Main Memory (RAM) में सेव होता है, Hard Disk पर नहीं।
Committed State: जब सभी बदलाव सफलतापूर्वक फिजिकल डिस्क (Physical Disk) पर स्थायी रूप से सेव हो जाते हैं। यहाँ से बदलावों को वापस (Undo) नहीं किया जा सकता।
Failed State: यदि Active या Partially Committed State के दौरान कोई हार्डवेयर फेल्योर (Hardware Failure) या लॉजिकल एरर (Logical Error) आ जाए, तो Transaction फेल हो जाता है।
Aborted State: Failed State के बाद, Transaction Manager द्वारा किए गए सभी आधे-अधूरे बदलावों को मिटा दिया जाता है (Rollback), और सिस्टम को उसकी पुरानी स्थिति में वापस ला दिया जाता है। इस अवस्था को Aborted State कहते हैं।
4. Concurrency Control and Recovery (कंकरेंसी कंट्रोल और रिकवरी)
Transaction Management के अंदर दो मुख्य सब-सिस्टम (Sub-systems) काम करते हैं:
Concurrency Control Manager: जब कई यूजर्स एक साथ एक ही डेटा को एक्सेस या अपडेट करने की कोशिश करते हैं, तो डेटा गलत हो सकता है (जैसे Dirty Read Problem या Lost Update Problem)। इसे रोकने के लिए यह मैनेजर Locking Protocols (जैसे Shared Lock, Exclusive Lock) और Timestamp Ordering का उपयोग करता है।
Recovery Manager: यह सुनिश्चित करता है कि सिस्टम क्रैश होने पर Atomicity और Durability बनी रहे। इसके लिए यह Log Files (जिसमें हर बदलाव का रिकॉर्ड होता है) और Checkpoints का उपयोग करता है। यदि सिस्टम क्रैश होता है, तो रिस्टार्ट होने पर Recovery Manager लॉग फाइल को पढ़कर अधूरे Transactions को Rollback करता है और पूरे हो चुके Transactions को Redo करता है।




Comments