डेटाबेस में जब हम कई SQL commands को एक साथ execute करते हैं, तो उस प्रक्रिया को Transaction (ट्रांजेक्शन) कहा जाता है।
Simple Language में: SQL Transaction कई database operations का ऐसा group होता है जो या तो पूरी तरह सफल होता है या पूरी तरह रद्द हो जाता है।
इसका मुख्य उद्देश्य data को सुरक्षित (Secure), सही (Valid), और consistent (एक जैसा) बनाए रखना है।
Transaction क्यों जरूरी है?
मान लीजिए किसी बैंक से पैसे काटे गए, और दूसरे अकाउंट में add नहीं हुए। यदि transaction न हो तो data गलत हो सकता है।
– Transaction ensures:
- डेटा आधा-अधूरा न बदले
- गलती होने पर परिवर्तनों को वापस कर दिया जाए
- users को correct और reliable data मिले
SQL Transaction की Properties (ACID Properties)
Transactions को reliable बनाने के लिए SQL में 4 मुख्य properties होती हैं जिन्हें ACID Properties कहा जाता है:
| Property | Meaning |
|---|---|
| A – Atomicity | Transaction या तो 100% पूरा होगा या बिल्कुल नहीं होगा (all or none) |
| C – Consistency | Transaction के बाद database हमेशा valid state में रहेगा |
| I – Isolation | एक transaction दूसरे transaction के data को affect नहीं करेगा |
| D – Durability | Commit होने के बाद data हमेशा के लिए सुरक्षित हो जाएगा |
1. Atomicity
Transaction बीच में fail होने पर किए गए सभी changes undo होकर database पहली स्थिति में लौट आता है।
2. Consistency
Data किसी भी स्थिति में गलत format या invalid नहीं होगा। Transaction हमेशा data को valid state में रखता है।
3. Isolation
एक समय में हजारों transactions हो सकते हैं, फिर भी वे एक-दूसरे को disturb नहीं करते।
4. Durability
एक बार data COMMIT हो जाए तो system failure/crash होने पर भी वह data सुरक्षित रहता है।
SQL में Transaction Control Commands
| Command | Use |
|---|---|
| BEGIN/START TRANSACTION | Transaction शुरू करने के लिए |
| COMMIT | Changes को permanent करने के लिए |
| ROLLBACK | Error होने पर सभी changes cancel करने के लिए |
| SAVEPOINT | Transaction में checkpoint बनाने के लिए |
| RELEASE SAVEPOINT | Savepoint हटाने के लिए |
Commands Syntax
BEGIN TRANSACTION;
-- your queries here
COMMIT;ROLLBACK;SQL Transaction Example (Bank Money Transfer)
मान लीजिए हम एक अकाउंट से पैसे काटकर दूसरे अकाउंट में जमा कर रहे हैं:
BEGIN TRANSACTION;
UPDATE accounts
SET balance = balance - 500
WHERE account_id = 101;
UPDATE accounts
SET balance = balance + 500
WHERE account_id = 202;
COMMIT;यदि transaction के बीच error आ जाए:
BEGIN TRANSACTION;
UPDATE accounts
SET balance = balance - 500
WHERE account_id = 101;
-- मान लो यहाँ error हो जाए
ROLLBACK;Result: किसी भी account में कोई बदलाब नहीं होगा। Transaction cancel हो जाएगा।
SAVEPOINT के साथ Transaction Example
BEGIN;
UPDATE accounts SET balance = balance - 200 WHERE account_id = 101;
SAVEPOINT step1;
UPDATE accounts SET balance = balance + 200 WHERE account_id = 202;
ROLLBACK TO step1; -- केवल दूसरे step को cancel करेगा
COMMIT; -- पहला step save रहेगाSQL Transactions के उपयोग
- Online banking system
- E-commerce payment
- Booking systems (Train/Flight movie ticket)
- Inventory update systems
इन्हें भी पढ़े –
- DBMS क्या है DBMS के प्रकार और कार्य की पूरी जानकारी | DBMS In Hindi
- डेटाबेस यूजर्स क्या है?
- डेटा इंडिपेंडेंस क्या है
- DBMS के लाभ
- Characteristics Of DBMS In Hindi
- डेटा मॉडल क्या है?
- डेटाबेस स्कीमा क्या है
- इंस्टैंस क्या है
- डेटाबेस इंटरफ़ेस क्या है
- डेटाबेस लैंग्वेज क्या है
- Classification of DBMS in Hindi
- Entity Set in DBMS
- DBMS Architecture in Hindi
- Types of Data Models in Hindi
- Attributes in DBMS in Hindi
- Entity Set in DBMS (Hindi)
- Entity Types in DBMS (Hindi)
- Types of Attributes in DBMS
- ER Model in DBMS (E-R मॉडल) क्या है?
- Entities के बीच संबंध
- Domain in DBMS
- Tuples in DBMS
- SQL में Joins क्या हैं?
- Primary Key in DBMS
- DBMS Keys in Hindi
- DBMS Data Integrity in Hindi
- Relational Algebra in DBMS
- Normalization in DBMS क्या है?
- BCNF (Boyce-Codd Normal Form) in DBMS
- Functional Dependency in DBMS
- Non-Loss Decomposition in DBMS
- SQL Data Types in Hindi
- Create Table in SQL in Hindi
- SQL DROP TABLE और ALTER TABLE in Hindi
- SQL Indexes in Hindi
- SDLC in Hindi
- DBLC in Hindi
- SQL Views in Hindi
- PL/SQL PROCEDURES in hindi
- Database Normalization in Hindi
- Domain Key Normal Form in Hindi
- SQL Objects in Hindi
- Aggregation, Generalization, Specialization and Association in Hindi
- Data Dictionary क्या है?
- डेटा वेयरहाउसिंग क्या है?
- डाटा माइनिंग क्या है?
- File Organization in Hindi DBMS
- Relational Model in Hindi – रिलेशनल मॉडल क्या है?
- RDBMS Applications in Hindi
- MySQL क्या है?
- Parallel Database in Hindi
- Database Costs and Risk Factors in Hindi
- डिस्ट्रिब्यूटेड डेटाबेस क्या होता है?
- Operational Data vs Decision Support Data in Hindi
- फाइल ओरिएंटेड सिस्टम के लाभ और हानियाँ
- DBMS में Mapping Constraints क्या होते हैं?
- DBMS vs File System in Hindi
- Validation Based Protocol in Hindi
- Multivalued Dependency in DBMS in Hindi & Join Dependency in Hindi
- Relationship Set in DBMS in Hindi
- PL/SQL Exception Handling in Hindi
- Data Types in MySQL in Hindi
- MySQL डेटाबेस क्या है?
- Create & Alter Table in MySQL in Hindi
- MySQL Function in Hindi
- Database Security in Hindi
- SQL क्या है?
- Relational Calculus in DBMS in Hindi
- Inference Rules in DBMS in Hindi
- Database Recovery in Hindi
- SQL Operators in Hindi
- SQL Functions क्या है?
निष्कर्ष (Conclusion)
SQL Transaction database को सुरक्षित रखने का सबसे प्रभावी तरीका है। यह data को हमेशा accurate, reliable और consistent बनाए रखता है। Transaction का उपयोग banking से लेकर online ordering तक हर जगह होता है, जहाँ data एक-से-अधिक जगह update होता है।