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