Transaction এর ধারণা

Transactions এবং Data Consistency - টাইনিডিবি (TinyDB) - Database Tutorials

383

Transaction ডাটাবেস ব্যবস্থায় এক বা একাধিক অপারেশন যা একত্রে সম্পাদিত হয় এবং একক ইউনিট হিসেবে বিবেচিত হয়। অর্থাৎ, একটি ট্রানজ্যাকশনটি সফলভাবে সম্পন্ন হলে পুরো প্রক্রিয়াটি কমপ্লিট হিসেবে গণ্য হয়, এবং যদি কোনো কারণে ট্রানজ্যাকশনটি ব্যর্থ হয়, তবে পুরো প্রক্রিয়া বাতিল (rollback) হয়ে যায়। ট্রানজ্যাকশন ব্যবহার করে ডাটাবেসের সমন্বিত ও নির্ভরযোগ্য অপারেশন নিশ্চিত করা হয়।


ACID বৈশিষ্ট্য

Transaction এর মূল বৈশিষ্ট্যগুলো ACID নামক একটি পদ্ধতিতে সাজানো হয়:

  1. Atomicity (অ্যাটমিকিটি):
    • এটি নিশ্চিত করে যে ট্রানজ্যাকশনের সকল অপারেশন একত্রে সম্পন্ন হবে। যদি একটি অপারেশন ব্যর্থ হয়, তবে পূর্বে সম্পন্ন সব অপারেশন বাতিল হয়ে যাবে।
    • উদাহরণ: একটি ব্যাংক ট্রানজ্যাকশনে একাউন্ট থেকে টাকা তোলা ও অন্য একাউন্টে জমা দেওয়া, যদি কোনো কারণে একটি অপারেশন ব্যর্থ হয়, তাহলে অন্যটি বাতিল হবে।
  2. Consistency (সংগতি):
    • ট্রানজ্যাকশন শেষ হওয়ার পর ডাটাবেস সর্বদা একটি বৈধ অবস্থায় থাকবে। অর্থাৎ, ট্রানজ্যাকশনের ফলে ডাটাবেসের কোনো নিয়ম বা বিধি লঙ্ঘিত হবে না।
    • উদাহরণ: ব্যাংক একাউন্টে টাকা জমা দেওয়ার পরে মোট টাকা সেই একাউন্টে সঠিকভাবে আপডেট হবে।
  3. Isolation (স্বতন্ত্রতা):
    • একাধিক ট্রানজ্যাকশন যখন একে অপরকে প্রভাবিত না করে সমান্তরালভাবে চলতে থাকে, তখন সেগুলোর মধ্যে কোনো ধরনের হস্তক্ষেপ বা সংঘর্ষ হওয়া উচিত নয়।
    • উদাহরণ: দুটি পৃথক ব্যবহারকারী যদি একে অপরের একাউন্টে টাকা ট্রান্সফার করতে থাকে, তাদের মধ্যে কোনো বিরোধ বা দ্বন্দ্বের সৃষ্টি হবে না।
  4. Durability (টেকসইতা):
    • একবার একটি ট্রানজ্যাকশন সম্পন্ন হলে, তার ফলাফল স্থায়ী হয় এবং কোনো কারণে সিস্টেম ক্র্যাশ হলেও তা প্রভাবিত হবে না।
    • উদাহরণ: ব্যাংক একাউন্টে জমা দেওয়া টাকা সিস্টেম পুনরুদ্ধারের পরেও অক্ষত থাকবে।

Transaction এর প্রক্রিয়া

  1. Begin Transaction (ট্রানজ্যাকশন শুরু):
    • একটি ট্রানজ্যাকশন শুরু করা হয়। এর মাধ্যমে সমস্ত ডেটাবেস অপারেশন একত্রে একটি ইউনিটে পরিণত হয়।
  2. Perform Operations (অপারেশন সম্পাদন):
    • ডেটা ইনসার্ট, আপডেট, ডিলিট ইত্যাদি অপারেশন সম্পাদিত হয়। এই সমস্ত অপারেশন একত্রে ট্রানজ্যাকশনের অংশ হিসেবে বিবেচিত হয়।
  3. Commit (কমিট):
    • যদি সব অপারেশন সঠিকভাবে সম্পন্ন হয়, তবে Commit করা হয়, যার ফলে সমস্ত পরিবর্তন ডাটাবেসে স্থায়ীভাবে সংরক্ষিত হয়।
  4. Rollback (রোলব্যাক):
    • যদি কোনো কারণে একটি অপারেশন ব্যর্থ হয় বা পুরো ট্রানজ্যাকশনটি বাতিল করতে হয়, তবে Rollback করা হয়, যার ফলে পূর্ববর্তী সব অপারেশন বাতিল হয়ে যায় এবং ডাটাবেস পূর্ববর্তী অবস্থায় ফিরে আসে।

Transaction এর সুবিধা

  • ডেটা সুরক্ষা: ট্রানজ্যাকশন ব্যবস্থাপনা ডেটা নিরাপত্তা নিশ্চিত করে। একাধিক অপারেশন একত্রে কাজ করে, তাই কোনো অপারেশন ব্যর্থ হলে সিস্টেম সহজেই আগের অবস্থায় ফিরে যেতে পারে।
  • ডেটার সঠিকতা: ACID গুণাবলীর মাধ্যমে ডেটার সঠিকতা ও নির্ভরযোগ্যতা বজায় থাকে।
  • প্যারালাল অপারেশন: একাধিক ব্যবহারকারী একসাথে ট্রানজ্যাকশন সম্পাদন করতে পারে, এবং তাদের মধ্যে কোনো সংঘর্ষ সৃষ্টি হয় না।
  • ব্যাকআপ ও পুনরুদ্ধার: ট্রানজ্যাকশনের মাধ্যমে ডেটা সহজে ব্যাকআপ ও পুনরুদ্ধার করা যায়, কারণ যে পরিবর্তনগুলি Commit হয়েছে তা স্থায়ী এবং Rollback হওয়া পরিবর্তনগুলি বাতিল করা হয়।

উদাহরণ

ধরা যাক, একটি ব্যাংক অ্যাপ্লিকেশনে একটি ব্যবহারকারী টাকা ট্রান্সফার করছে। এই প্রক্রিয়াটি দুটি অপারেশন থেকে গঠিত: একাউন্ট থেকে টাকা বের করা এবং অন্য একাউন্টে টাকা জমা দেওয়া।

BEGIN TRANSACTION;

-- টাকা একটি একাউন্ট থেকে কমানো
UPDATE accounts SET balance = balance - 500 WHERE account_id = 1;

-- টাকা অন্য একাউন্টে জমা দেওয়া
UPDATE accounts SET balance = balance + 500 WHERE account_id = 2;

COMMIT;

যদি কোনো কারণে একটি অপারেশন ব্যর্থ হয়, যেমন ব্যালেন্স কমানো হলেও দ্বিতীয় একাউন্টে টাকা জমা না হয়, তাহলে Rollback করতে হবে:

ROLLBACK;

এই ক্ষেত্রে, সমস্ত অপারেশন বাতিল হয়ে যাবে এবং ডাটাবেস আগের অবস্থায় ফিরে আসবে।


সারাংশ

Transaction হল ডাটাবেস ব্যবস্থায় এক বা একাধিক অপারেশনের একটি সমন্বিত ইউনিট, যা ACID গুণাবলীর অধীনে কাজ করে। এটি ডেটার নির্ভরযোগ্যতা, সঠিকতা এবং নিরাপত্তা নিশ্চিত করে এবং যখন একাধিক অপারেশন একত্রে সম্পাদিত হয়, তখন যদি কোনো একটি অপারেশন ব্যর্থ হয়, পুরো প্রক্রিয়া রোলব্যাক হয়।

Content added By
Promotion

Are you sure to start over?

Loading...