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