ACID হলো একটি সেট যা Atomicity, Consistency, Isolation, এবং Durability এই চারটি বৈশিষ্ট্য নিয়ে গঠিত। এই গুণাবলীর মাধ্যমে ডেটাবেজ সিস্টেমের ট্রানজেকশনগুলি নিরাপদ, নির্ভরযোগ্য এবং কার্যকরী হয়। ডেটাবেজে যেকোনো রিড/রাইট অপারেশন বা ট্রানজেকশন সম্পাদন করার সময় ACID বৈশিষ্ট্যগুলো নিশ্চিত করা প্রয়োজন।
Atomicity এর মানে হলো একটি ট্রানজেকশন সম্পূর্ণভাবে সফল বা সম্পূর্ণভাবে ব্যর্থ হতে হবে, এর মাঝে কোনো অসম্পূর্ণ অবস্থার অস্তিত্ব থাকতে পারে না। এটি একটি "অথবা সবকিছু, অথবা কিছুই না" শর্ত। যদি ট্রানজেকশনটির মধ্যে কোনো ধাপ ব্যর্থ হয়, তাহলে সিস্টেমে কোনো পরিবর্তন করা হবে না এবং ডেটাবেজ আগের অবস্থায় ফিরে যাবে।
ধরা যাক, আপনি একটি ব্যাংক অ্যাকাউন্টে টাকা ট্রান্সফার করছেন:
যদি কোনো কারণে অ্যাকাউন্ট B তে টাকা যোগ করার অপারেশন ব্যর্থ হয়, তবে অ্যাকাউন্ট A থেকে টাকা কমানোর অপারেশনও বাতিল হয়ে যাবে, এবং ট্রানজেকশনটি শুরু হওয়ার আগের অবস্থায় ফিরে যাবে।
Consistency নিশ্চিত করে যে, ট্রানজেকশন সফলভাবে সম্পন্ন হলে ডেটাবেজ তার পূর্বের নির্ধারিত অবস্থার মধ্যে থাকবে। অর্থাৎ, ট্রানজেকশন শুরু হওয়ার আগে এবং পরে ডেটাবেজের অখণ্ডতা রক্ষা করা হয়। কোনো ট্রানজেকশন ডেটাবেজের অখণ্ডতাকে ক্ষতিগ্রস্ত করতে পারবে না।
ধরা যাক, একটি অ্যাকাউন্টে মাত্র ১০০০ টাকা থাকতে পারে (ম্যাক্সিমাম ব্যালেন্স)। যদি কেউ ১৫০০ টাকা ট্রান্সফার করার চেষ্টা করে, তাহলে Consistency বিধান অনুসারে, ট্রানজেকশনটি ব্যর্থ হবে এবং অ্যাকাউন্টে ১৫০০ টাকা না যোগ হয়ে ১০০০ টাকাই থাকবে।
Isolation নিশ্চিত করে যে, একাধিক ট্রানজেকশন একে অপরের থেকে বিচ্ছিন্নভাবে কাজ করে, অর্থাৎ এক ট্রানজেকশন অন্য ট্রানজেকশনগুলোর সাথে একে অপরকে প্রভাবিত করতে পারে না। একে অপরের কাজের মধ্যবর্তী কোনো পরিবর্তন দেখা যাবে না যতক্ষণ না একটি ট্রানজেকশন সম্পন্ন হয়।
ধরা যাক, একটি ট্রানজেকশন অ্যাকাউন্ট A থেকে টাকা সরাচ্ছে, এবং অন্য একটি ট্রানজেকশন অ্যাকাউন্ট B তে টাকা যোগ করছে। Isolation নিশ্চিত করবে যে, দুটি ট্রানজেকশন একই সময়ে একে অপরের মধ্যে কোনরকম অসঙ্গতি সৃষ্টি করতে পারবে না।
Durability নিশ্চিত করে যে, একটি ট্রানজেকশন সফলভাবে সম্পন্ন হওয়ার পর, তার সমস্ত পরিবর্তন স্থায়ী হবে এবং কোনো কারণে সিস্টেম বন্ধ হয়ে গেলেও সেই পরিবর্তনগুলি হারানো যাবে না। অর্থাৎ, ট্রানজেকশন সম্পন্ন হলে তার পরিবর্তন ডেটাবেজে স্থায়ীভাবে সংরক্ষিত থাকবে।
যদি একটি ব্যাংক ট্রানজেকশন সম্পন্ন হওয়ার পর পাওয়া অর্থ অ্যাকাউন্টে জমা হয়ে যায় এবং এর পর সিস্টেমে বিদ্যুৎ বিপর্যয় ঘটে, তবে Durability গুণাবলী নিশ্চিত করবে যে, সেই টাকা হারিয়ে যাবে না এবং পরবর্তী সময়ে তা অ্যাকাউন্টে উপলব্ধ থাকবে।
এটি ছিল ACID Properties এর বিস্তারিত আলোচনা, যা ডেটাবেজ সিস্টেমের মৌলিক গুণাবলী এবং ট্রানজেকশন ম্যানেজমেন্টের গুরুত্বপূর্ণ অংশ। ACID এর মাধ্যমে নিশ্চিত করা হয় যে, ডেটাবেজ সিস্টেমের ট্রানজেকশনগুলো সঠিক, নির্ভরযোগ্য এবং নিরাপদ।
common.read_more