ডাটাবেস ডিজাইনের ACID মডেল ডেটাবেস তত্ত্বের প্রাচীনতম এবং সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলির মধ্যে একটি। এটি চারটি লক্ষ্য নির্ধারণ করে যে প্রতিটি ডাটাবেস পরিচালন ব্যবস্থা অর্জন করতে সংগ্রাম করতে হবে: পরমাণু, সামঞ্জস্য, বিচ্ছিন্নতা, এবং স্থায়িত্ব। এই চারটি লক্ষ্য পূরণ করতে ব্যর্থ হয় এমন একটি সম্পর্কীয় ডাটাবেস নির্ভরযোগ্য বিবেচিত হতে পারে না। এই বৈশিষ্ট্যগুলির অধিকারী একটি ডাটাবেস ACID-compliant বলে বিবেচিত হয়।
ACID সংজ্ঞায়িত
এর প্রতিটি বৈশিষ্ট্য বিস্তারিতভাবে পরীক্ষা করার জন্য একটু সময় দিন।
- পারমাণবিক পরিমাণ ডাটাবেস পরিবর্তন একটি "সব বা কিছুই" নিয়ম অনুসরণ করা আবশ্যক। প্রতিটি লেনদেনকে "পারমাণবিক" বলা হয়। যদি লেনদেনের একটি অংশ ব্যর্থ হয় তবে সমগ্র লেনদেনটি ব্যর্থ হয়। কোনও DBMS, অপারেটিং সিস্টেম বা হার্ডওয়্যার ব্যর্থতার সত্ত্বেও ডাটাবেস পরিচালন ব্যবস্থা লেনদেনের পরমাণু প্রকৃতির বজায় রাখে।
- দৃঢ়তা শুধুমাত্র বৈধ তথ্য ডাটাবেসের মধ্যে লেখা হবে বলে। কিছু কারণে, কোনও লেনদেন কার্যকর করা হয় যা ডাটাবেসের সামঞ্জস্য নিয়ম লঙ্ঘন করে, সম্পূর্ণ লেনদেনটি আবার চালু করা হবে এবং ডাটাবেসগুলিকে সেই নিয়মগুলির সাথে সামঞ্জস্যপূর্ণ অবস্থায় পুনরুদ্ধার করা হবে। অন্যদিকে, যদি কোনও লেনদেন সফলভাবে কার্যকর হয় তবে এটি এমন একটি রাষ্ট্র থেকে ডেটাবেস গ্রহণ করবে যা বিধিগুলির সাথে সামঞ্জস্যপূর্ণ অন্য কোনও রাজ্যের সাথে সামঞ্জস্যপূর্ণ।
- বিচ্ছিন্নতা একযোগে ঘটছে একাধিক লেনদেনের একে অপরের execution প্রভাবিত না প্রয়োজন। উদাহরণস্বরূপ, জো যদি ডেটাবেজের বিরুদ্ধে একটি লেনদেনের বিষয়ে একই সময়ে লেনদেন করে থাকেন তবে মেরি একটি ভিন্ন লেনদেনের বিষয় বলে, উভয় লেনদেনগুলি বিচ্ছিন্নভাবে ডাটাবেসে পরিচালনা করতে হবে। মেরি এর কার্য সম্পাদন করার আগে ডাটাবেসটি জো এর সম্পূর্ণ লেনদেন সম্পাদন করতে হবে। এটি জো এর লেনদেনকে মেরি এর লেনদেনের একটি পার্শ্ব প্রতিক্রিয়া হিসাবে উত্পাদিত অন্তর্বর্তী তথ্য পড়তে বাধা দেয় যা অবশেষে ডেটাবেসে প্রতিশ্রুতিবদ্ধ হবে না। উল্লেখ্য যে বিচ্ছিন্ন সম্পত্তিটি কোন লেনদেনটি কার্যকর করবে তা নিশ্চিত করে না - কেবলমাত্র সেই লেনদেনগুলি একে অপরের সাথে হস্তক্ষেপ করবে না
- স্থায়িত্ব ডাটাবেসের জন্য যেকোনো লেনদেন হারিয়ে যাবে না তা নিশ্চিত করে। ডেটাবেসটি ডেটাবেস ব্যাকআপ এবং লেনদেনের লোগোগুলির মাধ্যমে নিশ্চিত করে যা পরবর্তী কোনও সফ্টওয়্যার বা হার্ডওয়্যার ব্যর্থতার সত্ত্বেও প্রতিশ্রুতিবদ্ধ লেনদেনের পুনরুদ্ধারের সুবিধা দেয়।
অভ্যাস অনুশীলন কিভাবে কাজ করে
ডাটাবেস প্রশাসক ACID প্রয়োগ করার জন্য বিভিন্ন কৌশল ব্যবহার করে।
একটি পরমাণু এবং স্থায়িত্ব প্রয়োগ করতে ব্যবহৃত হয় লিখুন-এগিয়ে লগিং (ওয়াল), কোনও লেনদেনের বিশদটি প্রথমে একটি লগে লিখিত থাকে যার মধ্যে উভয়টি পুনরায় এবং পূর্বাবস্থায় ফিরিয়ে আনা তথ্য অন্তর্ভুক্ত করে। এটি নিশ্চিত করে যে, কোনও ধরণের ডাটাবেস ব্যর্থতার কারণে ডাটাবেস লগ পরীক্ষা করে এবং তার সামগ্রীর সাথে ডাটাবেসের অবস্থা তুলনা করতে পারে।
পরমাণু এবং স্থায়িত্ব মোকাবেলা ব্যবহৃত অন্য পদ্ধতি ছায়া-পেজিং, তথ্য পরিবর্তন করা হয় যখন একটি ছায়া পাতা তৈরি করা হয়। কোয়েরির আপডেট ডেটাবেসের আসল তথ্যগুলির পরিবর্তে ছায়া পৃষ্ঠাতে লেখা হয়। সম্পাদনা সম্পূর্ণ হলে শুধুমাত্র ডাটাবেস সংশোধন করা হয়।
আরেকটি কৌশল বলা হয় দুই ফেজ কমিটি প্রোটোকল, বিশেষভাবে বিতরণ ডাটাবেস সিস্টেমের মধ্যে দরকারী। এই প্রোটোকলটি দুটি পর্যায়গুলিতে ডেটা সংশোধন করার জন্য একটি অনুরোধ পৃথক করে: একটি কমিট-অনুরোধ ফেজ এবং একটি কমিট ফেজ। অনুরোধ পর্যায়ে, লেনদেনের দ্বারা প্রভাবিত নেটওয়ার্কগুলিতে সমস্ত DBMS অবশ্যই নিশ্চিত করে যে তারা এটি পেয়েছে এবং লেনদেন সম্পাদন করার ক্ষমতা আছে। একবার সমস্ত প্রাসঙ্গিক DBMS থেকে নিশ্চিতকরণ গৃহীত হয়, কমিটিটি আসলে সম্পূর্ণরূপে সংশোধন করা হয়।




