|10. Transactions & Best Practices
Chapter 10SQL Tutorial~1 min read

Transactions & Best Practices

Transactions — All or Nothing

Transaction म्हणजे एक logical unit of work — सगळ्या steps successful व्हायला हव्यात नाहीतर सगळे rollback होते. Bank transfer सारखे — debit आणि credit दोन्ही होणे mandatory.

Marathi Analogy

Transaction म्हणजे UPI payment सारखे — तुमच्या account मधून पैसे गेले पण recipient ला मिळाले नाहीत असे होणार नाही. दोन्ही एकत्र होतात किंवा दोन्ही cancel होतात.

COMMIT आणि ROLLBACK

Transaction example

sql
-- Transaction सुरू
START TRANSACTION;

-- Bank transfer — दोन्ही operations एकत्र हव्यात
UPDATE accounts SET balance = balance - 1000 WHERE id = 1;  -- Sender
UPDATE accounts SET balance = balance + 1000 WHERE id = 2;  -- Receiver

-- दोन्ही successful असतील तर save करा
COMMIT;

-- -----

-- Error आला तर सगळे undo करा
START TRANSACTION;

UPDATE accounts SET balance = balance - 5000 WHERE id = 1;

-- Check करा — balance negative तर rollback
SELECT balance FROM accounts WHERE id = 1;
-- balance = -2000 (चुकीचे!) — undo करा

ROLLBACK;  -- Transaction start आधीची state return

SAVEPOINT

SAVEPOINT — partial rollback

sql
START TRANSACTION;

INSERT INTO students (name, city, marks) VALUES ('User1', 'Pune', 80);
SAVEPOINT after_first;  -- checkpoint save

INSERT INTO students (name, city, marks) VALUES ('User2', 'Mumbai', 75);
SAVEPOINT after_second;

INSERT INTO students (name, city, marks) VALUES ('User3', 'Nagpur', 60);
-- User3 चुकीचा आहे असे वाटले

ROLLBACK TO after_second;  -- User3 undo, User1 आणि User2 ठेव

COMMIT;  -- User1 आणि User2 save

SQL Best Practices

  • SELECT * टाळा production मध्ये — फक्त हवे ते columns लिहा
  • UPDATE/DELETE आधी नेहमी SELECT करून verify करा
  • Indexes बनवा frequently searched/joined columns वर
  • FOREIGN KEYs वापरा — data inconsistency टाळण्यासाठी
  • Sensitive data (passwords) plain text मध्ये store नका
  • Regular backups घ्या — DROP/TRUNCATE आधी especially
  • SQL injection टाळण्यासाठी Prepared Statements वापरा

Key Points — लक्षात ठेवा

  • Transaction = all-or-nothing operations
  • START TRANSACTION → operations → COMMIT / ROLLBACK
  • SAVEPOINT — partial rollback साठी checkpoint
  • ACID — Atomicity, Consistency, Isolation, Durability
  • Production मध्ये SELECT * टाळा, indexes वापरा
0/10 chapters पूर्ण