Database Tutorials Transactions পরিচালনা করা (commit(), rollback()) গাইড ও নোট

298

ট্রানজেকশন (Transaction) হল একটি ডেটাবেসের কার্যক্রম যা এক বা একাধিক ডেটাবেস অপারেশনকে একটি একক ইউনিট হিসেবে পরিচালনা করে। একটি ট্রানজেকশনের লক্ষ্য হল ডেটাবেসের অবস্থাকে নির্ভরযোগ্য এবং সঠিকভাবে আপডেট করা।

commit() এবং rollback() হল দুটি গুরুত্বপূর্ণ পদ্ধতি, যা ট্রানজেকশনের কাজ শেষ করতে বা পূর্বাবস্থায় ফিরিয়ে আনতে ব্যবহৃত হয়।

commit() - ট্যাক্সপেকশন সম্পন্ন করা

commit() পদ্ধতি ব্যবহৃত হয় যখন আপনি আপনার সমস্ত ট্রানজেকশন অপারেশন সফলভাবে সম্পন্ন করেছেন এবং আপনি ডেটাবেসে করা পরিবর্তনগুলি স্থায়ী করতে চান।

যখন একটি ট্রানজেকশন সফলভাবে শেষ হয়, তখন commit() ডাকা হয় এবং সমস্ত পরিবর্তন সেভ হয়ে যায়। এর মাধ্যমে, আপনি ডেটাবেসে যা যা পরিবর্তন করেছেন তা চূড়ান্ত হয়ে যায়।

উদাহরণ:

BEGIN TRANSACTION;

-- ডেটাবেসে কিছু পরিবর্তন করা
INSERT INTO customers (name, age) VALUES ('Ali', 30);
UPDATE products SET price = 150 WHERE product_id = 1001;

COMMIT;  -- সমস্ত পরিবর্তন সেভ হয়ে যাবে

এখানে, BEGIN TRANSACTION দিয়ে ট্রানজেকশন শুরু করা হয়েছে, এরপর কিছু পরিবর্তন (যেমন, ডেটা ইনসার্ট ও আপডেট) করা হয়েছে, এবং শেষে COMMIT দিয়ে সেগুলো স্থায়ী করা হয়েছে।

rollback() - ট্রানজেকশন পূর্বাবস্থায় ফিরিয়ে নেওয়া

rollback() পদ্ধতি ব্যবহার করা হয় যখন আপনি ট্রানজেকশনের মধ্যবর্তী পর্যায়ে কোনো সমস্যা বা ত্রুটি (error) দেখতে পান এবং আপনি সমস্ত পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনতে চান।

এটি ট্রানজেকশনটি শুরু হওয়া অবস্থায় ফিরিয়ে নিয়ে আসে এবং কোনো পরিবর্তন ডেটাবেসে সেভ হয় না।

উদাহরণ:

BEGIN TRANSACTION;

-- ডেটাবেসে কিছু পরিবর্তন করা
INSERT INTO customers (name, age) VALUES ('Ali', 30);
UPDATE products SET price = 150 WHERE product_id = 1001;

-- যদি কোনো ত্রুটি ঘটে
ROLLBACK;  -- সমস্ত পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনবে

এখানে, যদি কোনও ত্রুটি ঘটে, ROLLBACK পদ্ধতি ব্যবহার করে সমস্ত পরিবর্তন পূর্বাবস্থায় ফিরিয়ে নেওয়া হবে এবং ডেটাবেসে কোনো পরিবর্তন হবে না।

transaction isolation levels

ট্রানজেকশন পরিচালনার সময় সাধারণত isolation levels ব্যবহার করা হয়, যা ট্রানজেকশনের মধ্যে ডেটা অ্যাক্সেস এবং পর্যবেক্ষণের কিভাবে হতে হবে তা নির্ধারণ করে। এর মাধ্যমে ডেটাবেসের বিভিন্ন অ্যাক্সেস স্তর নির্ধারণ করা হয়, যেমন:

  1. Read Uncommitted: এক ট্রানজেকশন অপর ট্রানজেকশন থেকে অপরিবর্তিত ডেটা পড়তে পারে।
  2. Read Committed: ট্রানজেকশন শুধুমাত্র কমিট হওয়া ডেটাই পড়তে পারে।
  3. Repeatable Read: এক ট্রানজেকশন অন্যটির দ্বারা পরিবর্তিত ডেটা দেখতে পাবে না।
  4. Serializable: সর্বোচ্চ isolation level যেখানে ট্রানজেকশনগুলোর মধ্যে সম্পূর্ণ এক্সক্লুসিভ অর্ডার থাকে।

Best Practices for Transactions

  1. Atomicity: একটি ট্রানজেকশন সফল হলে সমস্ত কাজ হবে, এবং যদি কোনো অংশে ত্রুটি ঘটে, তাহলে সমস্ত পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আসবে।
  2. Consistency: একটি ট্রানজেকশন ডেটাবেসের সমস্ত নিয়ম এবং কনস্ট্রেইন্ট মেনে চলবে।
  3. Isolation: প্রতিটি ট্রানজেকশন একে অপর থেকে আলাদা কাজ করবে।
  4. Durability: একবার একটি ট্রানজেকশন কমিট হয়ে গেলে, তার পরিবর্তন সেভ হয়ে যাবে, এবং সিস্টেম বন্ধ হলেও তা ফিরে আসবে।

সারাংশ

ট্রানজেকশন ব্যবস্থাপনা সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ। commit() এবং rollback() পদ্ধতিগুলি ডেটাবেসে প্রক্রিয়াগুলিকে সফলভাবে অথবা নিরাপদে বাতিল করতে সহায়তা করে। এর মাধ্যমে ডেটাবেসের অভ্যন্তরে সম্পন্ন করা অপারেশনগুলো নির্ভরযোগ্য এবং সঠিক থাকে, যেমন:

  • commit() সমস্ত পরিবর্তন স্থায়ী করে,
  • rollback() কোনো ত্রুটি ঘটলে পরিবর্তনগুলি ফিরিয়ে নিয়ে আসে।

এটি নিশ্চিত করে যে ডেটাবেসের কোনো অংশ ক্ষতিগ্রস্ত বা অসম্পূর্ণ অবস্থায় থাকবে না।

Content added By
Promotion

Are you sure to start over?

Loading...