মূল কনটেন্টে যান
অনুশীলন (২৩)
Database Management SystemsTransactions & Concurrency

SQL ট্রানজ্যাকশন ও কনকারেন্সি কন্ট্রোল (SQL Transactions & Concurrency Control)

পড়তে প্রায় ১২ মিনিটসংস্করণ ৪সর্বশেষ আপডেট: ২৪ অক্টোবর, ২০২৬২৩টি অনুশীলন প্রশ্ন

সংক্ষেপে মনে রাখুন

দ্রুত রিভিশনের জন্য মূল কথা

মূল কথা
  • ACID বৈশিষ্ট্য (Atomicity, Consistency, Isolation, Durability) ব্যাখ্যা করতে পারবে।
  • লকিং প্রোটোকল (ব্লকিং, ডেডলক) ও আইসোলেশন লেভেল (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) পার্থক্য চিহ্নিত করবে।
  • SQL‑এ `BEGIN TRANSACTION`, `COMMIT`, `ROLLBACK` ব্যবহার করে ট্রানজ্যাকশন পরিচালনা করতে পারবে।
সূত্র ও নিয়ম
A (Atomicity): All-or-nothing (Undo Log / Rollback). C (Consistency): Preserves database invariants (Integrity constraints). I (Isolation): Intermediate states hidden from concurrent transactions (2PL / Locking / MVCC). D (Durability): Committed updates persist across crashes (Redo Log / WAL).

ডাটাবেস ট্রানজ্যাকশনের নির্ভরযোগ্যতার ৪ স্তম্ভ (ACID): - Atomicity (পরমাণুতা): ট্রানজ্যাকশনের সব অপারেশন সফল হ…

যেখানে ভুল হয়

পরীক্ষায় আসে "Transaction Crash Recovery-তে Atomicity রক্ষা করতে কোন উপাদানটি ব্যবহৃত হয়?" উত্তর হবে Undo Log। আর Durability রক্ষা করতে ব্যবহৃত হয় Redo Log। অনেকেই এই দুটির কাজ উল্টে ফেলে।

মূল ধারণা (Core Concepts)

  • Transaction: একাধিক SQL স্টেটমেন্টের যৌক্তিক একক, যা সম্পূর্ণভাবে সফল বা সম্পূর্ণভাবে ব্যর্থ হয়।
  • ACID:
  • Atomicity – সব স্টেটমেন্ট একসাথে কমিট হয় বা একটিও না।
  • Consistency – ডেটা বৈধ অবস্থা বজায় রাখে।
  • Isolation – সমান্তরাল ট্রানজ্যাকশন একে অপরকে প্রভাবিত করে না।
  • Durability – কমিটের পর ডেটা স্থায়ীভাবে সংরক্ষিত হয়।
  • Isolation Levels (SQL‑92):
  • READ UNCOMMITTED (ডার্টি রিড), READ COMMITTED (নন‑রিপিটেবল রিড), REPEATABLE READ (ফ্যান্টম রিড), SERIALIZABLE (সর্বোচ্চ নিরাপত্তা)।

বিস্তারিত বিশ্লেষণ ও ফর্মুলা (Analysis, code trace, or comparison table)

Isolation LevelPhenomena PreventedTypical Lock Type
READ UNCOMMITTEDNone (allows dirty reads)No shared locks
READ COMMITTEDDirty readsShared lock released after read
REPEATABLE READDirty & non‑repeatable readsShared locks held till commit
SERIALIZABLEAll three (dirty, non‑repeatable, phantom)Range locks (key‑range)

SQL Syntax Example:

sql
BEGIN TRANSACTION;
UPDATE Account SET Balance = Balance - 5000 WHERE AccNo = 'A001';
UPDATE Account SET Balance = Balance + 5000 WHERE AccNo = 'A002';
IF @@ERROR <> 0
    ROLLBACK TRANSACTION;
ELSE
    COMMIT TRANSACTION;

> ⚡ ৫-সেকেন্ড শর্টকাট (Exam Shortcut): > Isolation = DNRP – Dirty, Non‑repeatable, Repeatable, Phantom; উচ্চতর লেভেল বেশি অক্ষততা, কম পারফরম্যান্স।

> ⚠️ পরীক্ষার ফাঁদ (Common Exam Trap): > “SERIALIZABLE লেভেলে সব ডেডলক ঘটবে না।” – বাস্তবে SERIALIZABLE সর্বোচ্চ লকিং ব্যবহার করে, ডেডলক সম্ভাবনা বাড়ে; সঠিক উত্তর হল “ডেডলক ঘটতে পারে, তাই ডেডলক ডিটেকশন/রিজল্যুশন দরকার।”

পূর্ববর্তী পরীক্ষার প্রশ্ন ও সমাধান (Previous Exam Application)

প্রশ্ন: একটি ব্যাংক অ্যাপ্লিকেশনে READ COMMITTED আইসোলেশন ব্যবহার করা হয়েছে। ট্রানজ্যাকশন T1 SELECT Balance FROM Account WHERE AccNo='A001' চালায়, তারপর T2 একই রেকর্ড আপডেট করে কমিট করে। T1 আবার একই SELECT চালালে কী ফলাফল হবে? সমাধান: READ COMMITTED‑এ T1 প্রথম রিডের পরে শেয়ার লক রিলিজ হয়, তাই T2 আপডেট করতে পারে। T1 দ্বিতীয় রিডে আপডেটেড ব্যালেন্স দেখবে → non‑repeatable read ঘটেছে।



পরের ধাপ

এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন

পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে