Transaction (ট্রানজ্যাকশন) হল একটি ডেটাবেস অপারেশন বা একাধিক অপারেশন একসাথে সম্পাদন করার একটি ইউনিট যা একটিই কার্যক্রম হিসেবে গন্য হয়। এক বা একাধিক SQL স্টেটমেন্টের একটি গ্রুপকে Transaction বলা হয়, যা সঠিকভাবে সম্পন্ন হলে ডেটাবেসে পরিবর্তন আনে এবং যদি কোন কারণে ত্রুটি ঘটে, তবে সমস্ত পরিবর্তন রোলব্যাক (rollback) করে পূর্বের অবস্থায় ফিরে যায়। এটি ডেটাবেসে ইনটিগ্রিটি এবং নিরাপত্তা নিশ্চিত করার জন্য ব্যবহৃত হয়।
Transaction এর মূল বৈশিষ্ট্য:
- Atomicity (অ্যাটমিকিটি):
- এটমিকিটি নিশ্চিত করে যে একটি ট্রানজ্যাকশনের সমস্ত অপারেশন একসাথে সম্পন্ন হবে বা কোনো একটিও সম্পন্ন হবে না। অর্থাৎ, যদি একটি অপারেশন ব্যর্থ হয়, তবে সমস্ত পরিবর্তন রোলব্যাক হয়ে যাবে এবং ডেটাবেস আগের অবস্থায় ফিরে যাবে।
- উদাহরণ: একটি ব্যাংক ট্রানজ্যাকশন, যেখানে আপনি এক অ্যাকাউন্ট থেকে অন্য অ্যাকাউন্টে টাকা স্থানান্তর করছেন। যদি এক অ্যাকাউন্ট থেকে টাকা কাটার পর অন্য অ্যাকাউন্টে জমা না হয়, তবে পুরো অপারেশন বাতিল হয়ে যাবে।
- Consistency (সঙ্গতি):
- ট্রানজ্যাকশন ডেটাবেসকে একটিই সঙ্গতিপূর্ণ অবস্থায় রেখে যায়, এমনকি যদি কোনো ত্রুটি ঘটে।
- উদাহরণ: ডেটাবেসের যে কোন আপডেট করার সময়, ডেটা অবশ্যই নির্দিষ্ট নিয়ম এবং মান বজায় রেখে পরিবর্তিত হবে।
- Isolation (আইসোলেশন):
- একাধিক ট্রানজ্যাকশন একযোগভাবে চলতে থাকলে, তাদের মধ্যে কোনো পারস্পরিক প্রভাব পড়বে না। প্রতিটি ট্রানজ্যাকশন অন্য ট্রানজ্যাকশন থেকে আলাদা এবং নিরপেক্ষভাবে সম্পন্ন হবে।
- উদাহরণ: একসাথে দুটি ট্রানজ্যাকশন চলাকালীন একটি ট্রানজ্যাকশন কোনো রেকর্ড পরিবর্তন করলে অন্য ট্রানজ্যাকশন তার মধ্যে কোনো পরিবর্তন দেখতে পাবে না যতক্ষণ না প্রথমটি সম্পন্ন হয়।
- Durability (টেকসইতা):
- একবার একটি ট্রানজ্যাকশন সফলভাবে সম্পন্ন হলে, তার ফলাফল স্থায়ীভাবে ডেটাবেসে সংরক্ষিত হবে, এমনকি সিস্টেম ক্র্যাশ হলেও।
- উদাহরণ: একটি ব্যাংক অ্যাকাউন্টে টাকা জমা হলে, এটি ডেটাবেসে স্থায়ীভাবে সংরক্ষিত থাকবে যতক্ষণ না তা ফেরত নেয়া হয়।
Transaction এর প্রয়োজন কেন?
- ডেটাবেসের একযোগভাবে কার্যকরী পরিবর্তন নিশ্চিত করা:
- যখন একাধিক SQL স্টেটমেন্ট একসাথে সম্পাদন করা হয় (যেমন একসাথে একাধিক টেবিলের ডেটা আপডেট করা), তখন ট্রানজ্যাকশন নিশ্চিত করে যে, এই অপারেশনগুলোর সবগুলো একযোগভাবে সফল হবে বা একটিও সফল হবে না।
- ডেটাবেসের ইনটিগ্রিটি বজায় রাখা:
- ট্রানজ্যাকশন ডেটাবেসের স্বাভাবিকতা বজায় রাখতে সহায়তা করে। এটি ডেটাবেসে ভুল বা অসম্পূর্ণ ডেটা প্রবেশের ঝুঁকি কমায়।
- উদাহরণস্বরূপ, একটি ব্যাংক ট্রানজ্যাকশনে যদি কোনো কারণে এক অ্যাকাউন্ট থেকে টাকা কাটা হয় কিন্তু অন্য অ্যাকাউন্টে জমা না হয়, তবে পুরো ট্রানজ্যাকশন রোলব্যাক হয়ে যাবে এবং ডেটাবেস সঠিক অবস্থায় ফিরে যাবে।
- ডেটার নিরাপত্তা এবং নির্ভরযোগ্যতা:
- ট্রানজ্যাকশন সিস্টেম ব্যবহারের মাধ্যমে, একাধিক ডেটাবেস অপারেশন একত্রে চলাকালীন সমস্ত পরিবর্তন সঠিকভাবে এবং নিরাপদে সম্পন্ন হয়। এটি নিশ্চিত করে যে ডেটাবেসে কোনো ভুল বা অসম্পূর্ণ ডেটা প্রবাহিত হবে না।
- ব্যবহারকারীর ভুল এড়ানো:
- যখন কোনও অপারেশন সঠিকভাবে সম্পন্ন না হয়, তখন ট্রানজ্যাকশন রোলব্যাক করা হয়, যাতে ডেটাবেসের মধ্যে কোনো ভুল বা অপ্রত্যাশিত পরিবর্তন না ঘটে।
- সিস্টেম ক্র্যাশ বা পাওয়ার লস থেকে পুনরুদ্ধার:
- যদি কোনো কারণে সিস্টেম ক্র্যাশ হয়ে যায়, ট্রানজ্যাকশন নিশ্চিত করে যে অর্ধেক সম্পন্ন হওয়া অপারেশন রোলব্যাক হবে এবং সিস্টেম পুনরুদ্ধারের পর পূর্বের অবস্থায় ফিরে যাবে।
Transaction এর উদাহরণ
ধরা যাক, একটি ব্যাঙ্ক অ্যাকাউন্টে টাকা স্থানান্তর করতে চান:
- Debit Account (Sender Account): প্রথমে পাঠক অ্যাকাউন্ট থেকে কিছু টাকা কাটা হবে।
- Credit Account (Receiver Account): তারপর প্রাপক অ্যাকাউন্টে ঐ পরিমাণ টাকা জমা হবে।
BEGIN TRANSACTION; -- ট্রানজ্যাকশন শুরু
-- Debit Sender Account
UPDATE Accounts
SET Balance = Balance - 500
WHERE AccountID = 1;
-- Credit Receiver Account
UPDATE Accounts
SET Balance = Balance + 500
WHERE AccountID = 2;
-- যদি কোনো ভুল না হয়, ট্রানজ্যাকশন সম্পন্ন হবে
COMMIT; -- ট্রানজ্যাকশন সম্পন্ন
এখানে যদি কোনো কারণে এক অ্যাকাউন্ট থেকে টাকা কাটার পর অন্য অ্যাকাউন্টে জমা না হয় (যেমন কোনো সার্ভার ত্রুটি বা হার্ডওয়্যার সমস্যা), তাহলে এই পরিবর্তনগুলি রোলব্যাক হবে।
ROLLBACK; -- ত্রুটি হলে ট্রানজ্যাকশন রোলব্যাক
এইভাবে, Transaction ডেটাবেসে একাধিক অপারেশন পরিচালনার সময় একক অ্যাকশন হিসেবে কাজ করে এবং ডেটার স্বচ্ছতা, নির্ভরযোগ্যতা, এবং নিরাপত্তা নিশ্চিত করে।
সারাংশ
- Transaction হল এক বা একাধিক SQL অপারেশনকে একটি ইউনিট হিসেবে পরিচালনা করা, যা নিশ্চিত করে যে সব অপারেশন সফলভাবে সম্পন্ন হবে বা একটিও সম্পন্ন হবে না।
- Atomicity, Consistency, Isolation, এবং Durability (ACID) বৈশিষ্ট্যগুলির মাধ্যমে ডেটাবেসে ডেটা নিরাপদ এবং সঠিকভাবে পরিচালিত হয়।
- ট্রানজ্যাকশন ডেটাবেসের ইনটিগ্রিটি, নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করতে অপরিহার্য।
Read more