ACID Properties

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) H2 এর ট্রানজাকশন ম্যানেজমেন্ট |
246
246

ACID হলো একটি সেট যা Atomicity, Consistency, Isolation, এবং Durability এই চারটি বৈশিষ্ট্য নিয়ে গঠিত। এই গুণাবলীর মাধ্যমে ডেটাবেজ সিস্টেমের ট্রানজেকশনগুলি নিরাপদ, নির্ভরযোগ্য এবং কার্যকরী হয়। ডেটাবেজে যেকোনো রিড/রাইট অপারেশন বা ট্রানজেকশন সম্পাদন করার সময় ACID বৈশিষ্ট্যগুলো নিশ্চিত করা প্রয়োজন।


1. Atomicity (পারমাণবিকতা)

Atomicity এর মানে হলো একটি ট্রানজেকশন সম্পূর্ণভাবে সফল বা সম্পূর্ণভাবে ব্যর্থ হতে হবে, এর মাঝে কোনো অসম্পূর্ণ অবস্থার অস্তিত্ব থাকতে পারে না। এটি একটি "অথবা সবকিছু, অথবা কিছুই না" শর্ত। যদি ট্রানজেকশনটির মধ্যে কোনো ধাপ ব্যর্থ হয়, তাহলে সিস্টেমে কোনো পরিবর্তন করা হবে না এবং ডেটাবেজ আগের অবস্থায় ফিরে যাবে।

উদাহরণ:

ধরা যাক, আপনি একটি ব্যাংক অ্যাকাউন্টে টাকা ট্রান্সফার করছেন:

  • অ্যাকাউন্ট A থেকে টাকা কমানোর অপারেশন
  • অ্যাকাউন্ট B-তে টাকা যোগ করার অপারেশন

যদি কোনো কারণে অ্যাকাউন্ট B তে টাকা যোগ করার অপারেশন ব্যর্থ হয়, তবে অ্যাকাউন্ট A থেকে টাকা কমানোর অপারেশনও বাতিল হয়ে যাবে, এবং ট্রানজেকশনটি শুরু হওয়ার আগের অবস্থায় ফিরে যাবে।


2. Consistency (সামঞ্জস্য)

Consistency নিশ্চিত করে যে, ট্রানজেকশন সফলভাবে সম্পন্ন হলে ডেটাবেজ তার পূর্বের নির্ধারিত অবস্থার মধ্যে থাকবে। অর্থাৎ, ট্রানজেকশন শুরু হওয়ার আগে এবং পরে ডেটাবেজের অখণ্ডতা রক্ষা করা হয়। কোনো ট্রানজেকশন ডেটাবেজের অখণ্ডতাকে ক্ষতিগ্রস্ত করতে পারবে না।

উদাহরণ:

ধরা যাক, একটি অ্যাকাউন্টে মাত্র ১০০০ টাকা থাকতে পারে (ম্যাক্সিমাম ব্যালেন্স)। যদি কেউ ১৫০০ টাকা ট্রান্সফার করার চেষ্টা করে, তাহলে Consistency বিধান অনুসারে, ট্রানজেকশনটি ব্যর্থ হবে এবং অ্যাকাউন্টে ১৫০০ টাকা না যোগ হয়ে ১০০০ টাকাই থাকবে।


3. Isolation (অগ্নিবিয়োজন)

Isolation নিশ্চিত করে যে, একাধিক ট্রানজেকশন একে অপরের থেকে বিচ্ছিন্নভাবে কাজ করে, অর্থাৎ এক ট্রানজেকশন অন্য ট্রানজেকশনগুলোর সাথে একে অপরকে প্রভাবিত করতে পারে না। একে অপরের কাজের মধ্যবর্তী কোনো পরিবর্তন দেখা যাবে না যতক্ষণ না একটি ট্রানজেকশন সম্পন্ন হয়।

Isolation এর বিভিন্ন স্তর (Isolation Levels):

  • Read Uncommitted: এক ট্রানজেকশন অন্য ট্রানজেকশন দ্বারা পরিবর্তিত ডেটা পড়তে পারে, যার ফলে 'dirty reads' হতে পারে।
  • Read Committed: শুধুমাত্র শেষ হওয়া, কমিট করা ডেটা পড়া যাবে।
  • Repeatable Read: একই ট্রানজেকশন বারবার একে অপরকে একই ডেটা পড়বে।
  • Serializable: একে অপরের মধ্যে কোনো প্যারালাল অ্যাক্সেস সম্ভব নয়, ফলে একে একে ট্রানজেকশনগুলো সম্পন্ন হবে।

উদাহরণ:

ধরা যাক, একটি ট্রানজেকশন অ্যাকাউন্ট A থেকে টাকা সরাচ্ছে, এবং অন্য একটি ট্রানজেকশন অ্যাকাউন্ট B তে টাকা যোগ করছে। Isolation নিশ্চিত করবে যে, দুটি ট্রানজেকশন একই সময়ে একে অপরের মধ্যে কোনরকম অসঙ্গতি সৃষ্টি করতে পারবে না।


4. Durability (স্থায়ীত্ব)

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

উদাহরণ:

যদি একটি ব্যাংক ট্রানজেকশন সম্পন্ন হওয়ার পর পাওয়া অর্থ অ্যাকাউন্টে জমা হয়ে যায় এবং এর পর সিস্টেমে বিদ্যুৎ বিপর্যয় ঘটে, তবে Durability গুণাবলী নিশ্চিত করবে যে, সেই টাকা হারিয়ে যাবে না এবং পরবর্তী সময়ে তা অ্যাকাউন্টে উপলব্ধ থাকবে।


ACID Properties এর গুরুত্ব

  • ডেটার নিরাপত্তা: ACID প্রপার্টিগুলি ডেটার নিরাপত্তা নিশ্চিত করে, যাতে কোনো ডেটা ক্ষতিগ্রস্ত বা হারানো না হয়।
  • বিশ্বস্ততা: এটি ডেটাবেজ সিস্টেমের বিশ্বস্ততা ও নির্ভরযোগ্যতা বজায় রাখে, যাতে ব্যবহারকারীরা তাদের তথ্যের উপর ভরসা করতে পারে।
  • মাল্টিপল ইউজার ট্রানজেকশন: ACID ট্রানজেকশনগুলো মাল্টিপল ইউজারের ক্ষেত্রে কোন সমস্যা সৃষ্টি না করে একসাথে কার্যকরী হতে সাহায্য করে।

এটি ছিল ACID Properties এর বিস্তারিত আলোচনা, যা ডেটাবেজ সিস্টেমের মৌলিক গুণাবলী এবং ট্রানজেকশন ম্যানেজমেন্টের গুরুত্বপূর্ণ অংশ। ACID এর মাধ্যমে নিশ্চিত করা হয় যে, ডেটাবেজ সিস্টেমের ট্রানজেকশনগুলো সঠিক, নির্ভরযোগ্য এবং নিরাপদ।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion