কম্পিউটার

ডেটাবেসের ধারাবাহিকতা ব্যাখ্যা করা হয়েছে

ডাটাবেস ধারাবাহিকতা কি?

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

উদাহরণ স্বরূপ, ধরা যাক আপনি ন্যাশনাল ট্রাফিক সেফটি ইনস্টিটিউটের (NTSI) জন্য কাজ করেন। আপনাকে নতুন ক্যালিফোর্নিয়ার ড্রাইভারের লাইসেন্সের একটি ডাটাবেস তৈরি করার দায়িত্ব দেওয়া হয়েছে। ক্যালিফোর্নিয়ার জনসংখ্যা বিগত দশ বছরে বিস্ফোরিত হয়েছে, যা সকল প্রথমবারের চালকের লাইসেন্সধারীদের জন্য একটি নতুন বর্ণমালা এবং সংখ্যাসূচক বিন্যাসের প্রয়োজন তৈরি করেছে। আপনার দল নির্ধারণ করেছে যে আপনার ডাটাবেসে ক্যালিফোর্নিয়ার ড্রাইভারের লাইসেন্সের জন্য নতুন সেট মান নিম্নরূপ:1 আলফা + 7 সংখ্যাসূচক। প্রতিটি একক এন্ট্রি এখন এই নিয়ম অনুসরণ করা আবশ্যক. "C08846024" লেখা একটি এন্ট্রি - একটি ত্রুটি সহ ফিরে আসবে৷ কেন? কারণ সন্নিবেশিত মানটি ছিল 1 আলফা + 8 সংখ্যাসূচক, যা মূলত, অসংলগ্ন ডেটার একটি রূপ। .

সামঞ্জস্যতা আরও বোঝায় যে একটি টেবিলের যেকোন একটি নির্দিষ্ট বস্তুতে যেকোন ডেটা পরিবর্তন হলে সেই বস্তুটি উপস্থিত থাকা অন্য সমস্ত টেবিলে পরিবর্তন করতে হবে। ড্রাইভিং লাইসেন্সের উদাহরণটি চালু রেখে, নতুন ড্রাইভারের বাড়ির ঠিকানা পরিবর্তন হলে, সেই আপডেটটি অবশ্যই সমস্ত টেবিল জুড়ে উপস্থাপন করতে হবে যেখানে আগের ঠিকানাটি বিদ্যমান ছিল। যদি একটি টেবিলের পুরানো ঠিকানা থাকে এবং অন্য সকলের নতুন ঠিকানা থাকে, তাহলে সেটি হবে ডেটা অসামঞ্জস্যের একটি প্রধান উদাহরণ .


দ্রষ্টব্য :ডেটাবেসের ধারাবাহিকতা নিশ্চিত করে না যে কোনো প্রদত্ত লেনদেনে প্রবর্তিত ডেটা সঠিক। এটি শুধুমাত্র গ্যারান্টি দেয় যে সিস্টেমের মধ্যে লেখা এবং পঠিত ডেটা ডেটাবেসের মধ্যে প্রবেশের জন্য যোগ্য ডেটার সমস্ত পূর্বশর্ত পূরণ করে। এটিকে আরও সহজ করে বলতে, উপরের উদাহরণটি দেওয়া হল, আপনি খুব ভালভাবে একটি ডেটা লেনদেন লিখতে পারেন যা 1 আলফা + 7 সংখ্যার নিয়ম পূরণ করে, তবে এটি গ্যারান্টি দেয় না যে ডেটাটি প্রকৃত ড্রাইভারের লাইসেন্সের সাথে মিলে যায়। ডেটাবেস সামঞ্জস্যতা ডেটার প্রতিনিধিত্ব করে না, শুধুমাত্র তার বিন্যাস।

ডাটাবেসের ধারাবাহিকতা কেন গুরুত্বপূর্ণ?

সামঞ্জস্যপূর্ণ ডেটা এটি একটি ডাটাবেসকে একটি ভাল তেলযুক্ত মেশিনের মতো কাজ করে রাখে। প্রতিষ্ঠিত নিয়ম/মান যা অসামঞ্জস্যপূর্ণ ডেটা রাখে প্রাথমিক ডাটাবেসের বাইরে এবং প্রতিলিপিগুলি এর কাজগুলিকে মসৃণ রাখে:

  • নির্ভুলতা
  • ডাটাবেসের স্থান বৃদ্ধি
  • দ্রুত এবং আরও দক্ষ ডেটা পুনরুদ্ধার

ডাটাবেসের সামঞ্জস্যতা সমস্ত তথ্যকে নিয়ন্ত্রন করে। তাই নতুন ডেটা গ্রহণ করার সময় যদিও ডাটাবেস পরিবর্তিত হয়, তবে এটি কমপক্ষে ধারাবাহিকভাবে এবং শুরুতে প্রতিষ্ঠিত বৈধকরণ নিয়ম অনুসারে পরিবর্তিত হয়। আজকের বিশ্বে, অনুভূত এর উপর ভিত্তি করে বিশ্বজুড়ে প্রতিদিন বিলিয়ন-ডলারের সিদ্ধান্ত নেওয়া হয় একটি ডাটাবেসের ধারাবাহিকতা। যখন রিয়েল-টাইম তথ্য আধুনিক দিনের ডিজিটাল ব্যবসার জন্য নতুন স্থিতাবস্থায় পরিণত হয়, তখন এটি অত্যন্ত গুরুত্বপূর্ণ যে ডেটাসেটগুলিকে ভুল তথ্য থেকে পরিষ্কার রাখার জন্য বৈধকরণের নিয়মগুলি স্থাপন করা হয়, কারণ এটি লেটেন্সিও বাড়ায়, রিয়েল-টাইম অভিজ্ঞতাগুলিকে এতটা বাস্তব নয়- সব পরে সময়.

ডাটাবেসের ধারাবাহিকতার উদাহরণ

বাস্তব বিশ্বের একটি ডাটাবেস ধারাবাহিকতা অপারেশন উদাহরণ কি কি? আমরা ইতিমধ্যে উপরে আমাদের NTSI দৃশ্যকল্পের সাথে একটি উদাহরণ অন্বেষণ করেছি। চলুন ব্যাঙ্কিং জগতে পিভট করা যাক।

বলুন আপনি এক অ্যাকাউন্ট থেকে অন্য অ্যাকাউন্টে তহবিল স্থানান্তর করছেন। আপনি এইমাত্র একটি অ্যাকাউন্টে $1200 স্থানান্তর করেছেন যার ইতিমধ্যে $300 আছে। আপনি রিফ্রেশ করুন, ইতিবাচক আপনি একটি $1500 ব্যালেন্স পাবেন। তবুও, এই সাম্প্রতিক অপারেশনটি আপনার ব্যালেন্সে প্রতিফলিত হয় না। আসলে, আপনার নতুন ব্যালেন্স এখন $0 পড়ে। এই প্রযুক্তিগত সামান্য হল দুর্বল সামঞ্জস্যের একটি প্রধান উদাহরণ এবং সম্ভবত একটি ব্যাঙ্ক প্রতিনিধির সাথে সমস্যা সমাধানে সময় ব্যয় করবে। এই জাতীয় সমস্যাগুলি একটি ব্র্যান্ডের খ্যাতি নষ্ট করতে পারে এবং উল্লেখযোগ্য পরিমাণ অর্থ ব্যয় করতে পারে। ডেভেলপার এবং ভোক্তাদের জন্য একইভাবে ডেটাবেস সিস্টেমে দৃঢ় সামঞ্জস্য আরও বেশি করে অ-আলোচনাযোগ্য হয়ে উঠছে।

শক্তিশালী ধারাবাহিকতা বনাম দুর্বল ধারাবাহিকতা

দৃঢ় ধারাবাহিকতা এর মানে হল যে একটি প্রাথমিক, প্রতিলিপি এবং এর সমস্ত সংশ্লিষ্ট নোডের সমস্ত ডেটা বৈধকরণের নিয়মগুলির সাথে মানানসই এবং যেকোন সময়ে একই। শক্তিশালী ডাটাবেস সামঞ্জস্যের সাথে, ক্লায়েন্ট কোন ডেটা অ্যাক্সেস করছে তা বিবেচ্য নয় - তারা সর্বদা সাম্প্রতিক আপডেট হওয়া ডেটা দেখতে পাবে যা ডাটাবেসের জন্য প্রতিষ্ঠিত নিয়মগুলি অনুসরণ করে।

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

সংগতি মাত্রা

সংগতি মাত্রা পূর্বশর্ত মানগুলির আরেকটি সেট যা বৈধ লেনদেন হিসাবে স্বীকৃত হওয়ার আগে কতগুলি প্রতিলিপি বা নোডকে নতুন অনুমতিযোগ্য ডেটার সাথে প্রতিক্রিয়া জানাতে হবে। এই অপারেশন প্রতি লেনদেনের ভিত্তিতে পরিবর্তন করা যেতে পারে। সুতরাং, উদাহরণস্বরূপ, একজন প্রোগ্রামার নির্দেশ দিতে পারে যে শুধুমাত্র দুটি নোডকে নতুন ইনপুট ডেটা পড়তে হবে আগে এটি ডেটা সামঞ্জস্যতা স্বীকার করে। একবার এটি সেই ব্যারোমিটার অতিক্রম করলে, এটিকে সামঞ্জস্যপূর্ণ ডেটা হিসাবে বিবেচনা করা হবে তারপরে।

বিচ্ছিন্নতার মাত্রা

বিচ্ছিন্নতা স্তরগুলি একটি ডাটাবেসের ACID (Atomicity, Consistency, Isolation, Durability) বৈশিষ্ট্যের অংশ। ACID হল SQL ডাটাবেসের সাথে ডাটাবেসের সামঞ্জস্যের একটি মৌলিক ধারণা এবং ডাটাবেসের ধারাবাহিকতা অপ্টিমাইজ করার জন্য নির্দিষ্ট ডাটাবেস অনুসরণ করে। বিচ্ছিন্নতা এটি ACID-এর বৈশিষ্ট্যগুলির মধ্যে একটি, এবং এটি একটি নির্দিষ্ট ডেটাবেস নেটওয়ার্কের সমস্ত তথ্য থেকে দূরে কিছু ডেটার টুকরোগুলিকে বিভক্ত করে, এটিকে অন্যান্য ব্যবহারকারীর লেনদেনের দ্বারা পরিবর্তন করা থেকে দূরে রাখে। সমসাময়িক লেনদেনে উত্পাদিত অসংগত ডেটার পড়া এবং লেখা কমানোর জন্য বিচ্ছিন্নতা ব্যবহার করা হয়।

চার ধরনের বিচ্ছিন্নতা স্তর রয়েছে:

  • আনকমিটেড পড়ুন :সর্বনিম্ন স্তর. যদি পূর্ববর্তী লেনদেন সেই সারিতে একটি অনিয়মিত আপডেট প্রদান করে তবে সারি আপডেটগুলি বন্ধ করে৷
  • পড়ুন প্রতিশ্রুতিবদ্ধ :এটি "নোংরা পড়ার" অনুমতি দেয় না। এটি কোনো পঠন বা লেখাকে ব্লক করে যদি কোনো লেনদেন ইতিমধ্যেই আপডেট করা হয়েছে, কিন্তু এখনও প্রতিশ্রুতিবদ্ধ হয়েছে।
  • পুনরাবৃত্তিযোগ্য পঠন :এই স্তরটি পঠিত ডেটার সারিকে অ্যাক্সেস এবং সম্ভাব্য আপডেট করা থেকে বিরত রাখে৷
  • ক্রমিকযোগ্য :সর্বোচ্চ বিচ্ছিন্নতা স্তর, সিরিয়ালাইজেবল সাধারণত ডেটার একটি নির্দিষ্ট সারির পরিবর্তে একটি সম্পূর্ণ টেবিল লক করে।

ডাটাবেসের ধারাবাহিকতা FAQs

ডেটা সামঞ্জস্যপূর্ণ হলে এর অর্থ কী?

ডেটা সামঞ্জস্যপূর্ণ হয় যদি এটি একই সময়ে সমস্ত সংশ্লিষ্ট নোডে একই রকম দেখায়, ব্যবহারকারী নির্বিশেষে এবং তারা যেখানেই ডেটা অ্যাক্সেস করছে, ভৌগলিকভাবে।

ডেটা সামঞ্জস্য কি ডাটাবেসের সামঞ্জস্যের মতো একই জিনিস?

না। ডাটাবেসের সামঞ্জস্যতার জন্য একটি নেটওয়ার্কে প্রবেশ করা ডেটার জন্য বৈধকরণের নিয়ম প্রয়োজন যাতে এটি টেবিলের অন্যান্য সমস্ত ডেটার সাথে সামঞ্জস্যপূর্ণ, সূত্র-ভিত্তিক হয়।

ডেটা সামঞ্জস্য হল এমন একটি প্রক্রিয়া যার মাধ্যমে ডেটা যতটা সম্ভব সমানভাবে নেটওয়ার্ক জুড়ে এবং সেই ডেটা ব্যবহার করে অসংখ্য অ্যাপ্লিকেশনের মধ্যে রাখা হয়।

পরিশেষে ধারাবাহিকতা কি?

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

একটি রিলেশনাল ডাটাবেসের একটি একক টেবিল থাকে?

একটি রিলেশনাল ডাটাবেসের সমস্ত ডেটা টেবিলে সংরক্ষণ করা হয়, যা সারি এবং কলাম নিয়ে গঠিত। ডেটা পয়েন্টগুলি এই সারি এবং কলামগুলিতে সংগঠিত হয়। সারি, যাকে প্রায়শই "রেকর্ড" হিসাবে উল্লেখ করা হয় সাধারণত ডেটার বিভাগগুলিকে উপস্থাপন করে, যখন কলাম বা "ক্ষেত্রগুলি" "উদাহরণ" এর জন্য স্ট্যান্ড-ইন করে। একটি ডাটাবেসের মধ্যে একটি টেবিল পাওয়া যায় এবং এটির বিষয়-ভিত্তিক ডিজাইনের সাথে আপনার ডেটা অপ্রয়োজনীয় হওয়া থেকে রক্ষা করতে সহায়তা করে।

একটি রিলেশনাল ডাটাবেস একটি সংগ্রহ নিয়ে গঠিত?

টেবিল

কিভাবে ACID মডেল BASE মডেলের সাথে তুলনা করে?

ACID এবং BASE (মূলত উপলব্ধ, সফ্ট স্টেট, ঘটনাক্রমে সামঞ্জস্যপূর্ণ) মডেলগুলির মধ্যে প্রধান পার্থক্য হল যে যখন ACID ডাটাবেসের সামঞ্জস্যকে অপ্টিমাইজ করার জন্য কাজ করে, তখন BASE উচ্চ প্রাপ্যতাকে শক্তিশালী করে। ACID লেনদেনগুলিকে সামঞ্জস্যপূর্ণ রাখে, তাই আপনি যদি একটি BASE মডেলের সাথে যান, নিশ্চিত করুন যে ধারাবাহিকতা একটি শীর্ষ অগ্রাধিকার থাকে এবং পুঙ্খানুপুঙ্খভাবে সম্বোধন করা হয়৷

Redis ডাটাবেস কি সামঞ্জস্যপূর্ণ?

যখন রেডিস একটি ক্যাশে হিসাবে ব্যবহার করা হয়, তখন প্রশ্নে ধারাবাহিকতা রেডিস ইনস্ট্যান্স (প্রাথমিক/প্রতিলিপি) এবং একটি প্রাথমিক ডাটাবেস হিসাবে রেডিস ক্যাশে এবং রেডিসের মধ্যে হতে পারে। এই উদাহরণে, যদি এই দুটির মধ্যে ডেটা মেলে না তবে ডেটা অসামঞ্জস্যপূর্ণ হতে পারে। আমাদের ব্লগ, ক্যাশে সামঞ্জস্য বজায় রাখার তিনটি উপায়, এই সমস্যাটি কীভাবে সমাধান করা যায় তা সম্বোধন করে।

ওপেন সোর্স রেডিসের জন্য, দুর্বল সামঞ্জস্য রয়েছে, কিন্তু রেডিস এন্টারপ্রাইজের অ্যাক্টিভ-অ্যাকটিভ জিও-ডিস্ট্রিবিউশন শক্তিশালী চূড়ান্ত ধারাবাহিকতা প্রদান করে।

এন্টারপ্রাইজ অ্যাপ্লিকেশনের জন্য ক্লাউড ক্যাশিং কৌশলগুলিতে আগ্রহী? Lee Atchison-এর Caching at Scale with Redis পড়তে নিচে ক্লিক করুন .


  1. কেন্দ্রীভূত ডাটাবেস ম্যানেজমেন্ট সিস্টেম

  2. স্কিমলেস ডাটাবেস:সুবিধা এবং অসুবিধা

  3. ক্যাশে সামঞ্জস্য বজায় রাখার তিনটি উপায়

  4. কাউচবেসের ভূমিকা- এনগেজমেন্ট ডাটাবেস