ACID गुण और विसंगतियाँ
परमाण्विकता, संगति, पृथक्करण, स्थायित्व और चार शास्त्रीय विसंगतियों की पुनरावृत्ति करें: गंदा पठन, गैर-दोहराने योग्य पठन, फैंटम और खोया अपडेट
ACID गुण और विसंगतियाँ, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
ACID
कोई लेन-देन तब विश्वसनीय होता है, जब वह:
- परमाण्विक — या तो पूरा हो या बिल्कुल न हो
- सुसंगत — डेटाबेस को एक मान्य स्थिति से दूसरी मान्य स्थिति में ले जाए
- पृथक — समवर्ती लेन-देन एक-दूसरे के काम में बाधा न डालें
- टिकाऊ — एक बार COMMIT हो जाने पर डेटा क्रैश के बाद भी सुरक्षित रहे
SQL में एक लेन-देन
क्रियाओं को BEGIN ... COMMIT के बीच रखें:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
-- If anything fails, ROLLBACK leaves both rows unchanged.परमाण्विकता का प्रयोग
यदि दूसरा UPDATE विफल हो जाता है, तो पहला भी वापस कर दिया जाता है — धनराशि बीच में नष्ट नहीं होती:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Crash here, or ROLLBACK: account 1 is unchanged.सुसंगतता
बाधाओं (NOT NULL, CHECK, FK) की जाँच प्रतिबद्धता के समय की जाती है। डेटाबेस को अमान्य स्थिति में छोड़ने वाला लेन-देन विफल हो जाता है:
BEGIN;
INSERT INTO orders (user_id, total) VALUES (999, 100); -- FK fails on commit if user 999 doesn't exist.
COMMIT;
-- ERROR: insert or update violates foreign key constraint
-- ROLLBACK happens automatically.पृथक्करण: यह क्यों महत्वपूर्ण है
पृथक्करण के बिना, दो समवर्ती लेन-देन एक-दूसरे के डेटा-दृश्य को बिगाड़ सकते हैं। सामान्य विसंगतियाँ:
- अप्रतिबद्ध पठन — अप्रतिबद्ध डेटा पढ़ना
- गैर-दोहराने योग्य पठन — एक ही query से अलग-अलग पंक्तियाँ मिलना
- प्रेत पठन — लेन-देन के बीच में नई पंक्तियाँ दिखाई देना
- खोया हुआ अद्यतन — दो अद्यतन एक-दूसरे को मिटा देना
अप्रतिबद्ध पठन
ऐसी पंक्ति को पढ़ना जिसे किसी दूसरे लेन-देन ने बदल दिया है, लेकिन अभी COMMIT नहीं किया है। PostgreSQL सभी पृथक्करण स्तरों पर इसे रोकता है।
गैर-दोहराने योग्य पठन
आप पंक्ति 1 पढ़ते हैं, कोई दूसरा लेन-देन पंक्ति 1 का अद्यतन COMMIT करता है, और आप उसे फिर पढ़ते हैं — मान अलग होता है।
प्रेत पठन
आप एक ही लेन-देन में SELECT COUNT(*) दो बार चलाते हैं। दोनों कॉल के बीच कोई दूसरा लेन-देन INSERT को COMMIT करता है — आपकी दूसरी गिनती अधिक होती है।
खोया हुआ अद्यतन
दोनों लेन-देन balance=100 पढ़ते हैं, दोनों balance=balance-50 लिखते हैं, और दोनों COMMIT करते हैं — -50 में से एक अद्यतन खो जाता है।
टिकाऊपन
COMMIT के लौटने के बाद, परिवर्तन डिस्क पर लिखा जा चुका होता है (या सेटिंग के अनुसार उसकी प्रतिकृति बन चुकी होती है)। उसके एक मिलीसेकंड बाद होने वाला क्रैश भी उसे नष्ट नहीं करता। PostgreSQL WAL (अग्रिम-लेखन लॉगिंग) के माध्यम से टिकाऊपन सुनिश्चित करता है।
स्वचालित प्रतिबद्धता
डिफ़ॉल्ट रूप से, प्रत्येक कथन अपना अलग लेन-देन होता है:
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Implicitly: BEGIN; statement; COMMIT;SAVEPOINT
किसी लेन-देन के भीतर आंशिक रूप से वापस लौटना:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
SAVEPOINT before_step2;
UPDATE accounts SET balance = balance + 100 WHERE id = 999;
-- ERROR — but we can recover:
ROLLBACK TO SAVEPOINT before_step2;
-- continue
COMMIT;पुनरावलोकन
लेन-देन संबंधपरक डेटाबेस की सुरक्षा-जाल होते हैं।
- ACID: परमाण्विक, सुसंगत, पृथक, टिकाऊ
- चार सामान्य विसंगतियाँ
- BEGIN ... COMMIT या ROLLBACK
- आंशिक रूप से वापस लौटने के लिए SAVEPOINT
त्वरित जाँच
जब दो लेन-देन एक ही मान पढ़कर उसे बदलते हैं और दोनों COMMIT करते हैं, तो कौन-सी विसंगति होती है?
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 46
- पाठ
- 183
अक्सर पूछे जाने वाले प्रश्न
क्या “ACID गुण और विसंगतियाँ” पाठ निःशुल्क है?
हाँ—“ACID गुण और विसंगतियाँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ACID गुण और विसंगतियाँ” में मैं क्या सीखूँगा?
परमाण्विकता, संगति, पृथक्करण, स्थायित्व और चार शास्त्रीय विसंगतियों की पुनरावृत्ति करें: गंदा पठन, गैर-दोहराने योग्य पठन, फैंटम और खोया अपडेट आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“ACID गुण और विसंगतियाँ” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ACID गुण और विसंगतियाँ
- पृथक्करण स्तर: READ COMMITTED, REPEATABLE READ, SERIALIZABLE
- डेडलॉक: पहचान और बचाव
- आशावादी बनाम निराशावादी लॉकिंग