1.1 কিভাবে একটি NoSQL ডাটাবেস কাজ করে

NoSQL ডেটাবেসগুলি ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করার জন্য বিভিন্ন ডেটা মডেল ব্যবহার করে। এই ধরনের ডাটাবেসগুলি ডেটা-নিবিড় অ্যাপ্লিকেশনগুলির জন্য অপ্টিমাইজ করা হয়েছে যেগুলির জন্য কম বিলম্বিতা এবং নমনীয় ডেটা মডেলগুলির প্রয়োজন৷ এই সমস্ত কঠোর ডেটা সামঞ্জস্যের প্রয়োজনীয়তাগুলিকে নরম করে অর্জন করা হয় যা অন্যান্য ধরণের ডেটাবেসের জন্য সাধারণ।

বইয়ের একটি সাধারণ ডাটাবেসের জন্য স্কিমা মডেলিংয়ের একটি উদাহরণ বিবেচনা করুন।

  • একটি রিলেশনাল ডাটাবেসে, একটি বইয়ের এন্ট্রি প্রায়ই একাধিক অংশে বিভক্ত করা হয় (বা "স্বাভাবিক") এবং পৃথক টেবিলে সংরক্ষণ করা হয় যার সম্পর্ক প্রাথমিক এবং বিদেশী কী সীমাবদ্ধতা দ্বারা সংজ্ঞায়িত করা হয়। এই উদাহরণে, বইয়ের টেবিলে ISBN , বইয়ের শিরোনাম এবং সংস্করণ সংখ্যা কলাম রয়েছে , "ISBN"এবং"লেখক"লেখক-ISBNএবংকলামলেখকের নামএবংআইডিলেখকটেবিলেলেখকের. রিলেশনাল মডেলটি একটি ডাটাবেসের টেবিলের মধ্যে রেফারেন্সিয়াল অখণ্ডতা বজায় রাখার জন্য ডিজাইন করা হয়েছে। রিডানডেন্সি কমাতে ডেটা স্বাভাবিক করা হয় এবং সাধারণত স্টোরেজের জন্য অপ্টিমাইজ করা হয়।

  • একটি NoSQL ডাটাবেসে, একটি বই রেকর্ড সাধারণত একটি JSON নথি হিসাবে সংরক্ষণ করা হয়। প্রতিটি বই বা উপাদানের জন্য, ISBN , বইয়ের শিরোনাম , সংস্করণ নম্বর , লেখকের নাম , এবং লেখক আইডি মানগুলি একটি একক নথিতে বৈশিষ্ট্য হিসাবে সংরক্ষণ করা হয়৷ এই মডেলে, ডেটা স্বজ্ঞাত বিকাশ এবং অনুভূমিক মাপযোগ্যতার জন্য অপ্টিমাইজ করা হয়েছে।

1.2 NoSQL ডাটাবেস কিসের জন্য ব্যবহার করা যেতে পারে?

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

  • নমনীয়তা _ সাধারণত, NoSQL ডাটাবেসগুলি নমনীয় স্কিমা অফার করে, যা দ্রুত বিকাশের অনুমতি দেয় এবং ক্রমবর্ধমান বাস্তবায়ন সক্ষম করে। নমনীয় ডেটা মডেলগুলির ব্যবহারের কারণে, NoSQL ডেটাবেসগুলি আধা-গঠিত এবং অসংগঠিত ডেটার জন্য উপযুক্ত।

  • পরিমাপযোগ্যতা _ NoSQL ডাটাবেসগুলি ব্যয়বহুল, নির্ভরযোগ্য সার্ভার যোগ করে নয়, বিতরণ করা হার্ডওয়্যার ক্লাস্টার ব্যবহার করে স্কেল করার জন্য ডিজাইন করা হয়েছে। কিছু ক্লাউড পরিষেবা প্রদানকারী সম্পূর্ণরূপে পরিচালিত পরিষেবা প্রদান করে পটভূমিতে এই অপারেশনগুলি চালায়।

  • উচ্চ কর্মক্ষমতা . NoSQL ডাটাবেসগুলি রিলেশনাল ডাটাবেসের তুলনায় উচ্চতর কর্মক্ষমতা অর্জনের জন্য নির্দিষ্ট ডেটা মডেল এবং অ্যাক্সেস প্যাটার্নগুলির জন্য অপ্টিমাইজ করা হয়।

  • ব্যাপক কার্যকারিতা । NoSQL ডাটাবেসগুলি সমৃদ্ধ API এবং ডেটা প্রকারগুলি প্রদান করে যা বিশেষভাবে তাদের নিজ নিজ ডেটা মডেলের জন্য ডিজাইন করা হয়েছে।

1.3 NoSQL ডাটাবেসের ধরন

NoSQL ডাটাবেস ব্যবহার করা হয় যেখানে টেবিলের আকারে ডেটা সংরক্ষণ করা খুব সুবিধাজনক নয়। অতএব, তারা খুব ভিন্ন বিন্যাসে সংরক্ষণ করা হয়. সাধারণত, NoSQL ডাটাবেসের 6 টি প্রধান ডেটা টাইপ থাকে।

কী-মান জোড়ার উপর ভিত্তি করে ডিবি

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

উদাহরণস্বরূপ, Amazon DynamoDB কোনো স্কেলে কয়েক মিলিসেকেন্ডের বেশি বিলম্ব না করে স্থিতিশীল ডাটাবেস অপারেশন নিশ্চিত করে। এই শক্তিশালী কর্মক্ষমতা ছিল Snapchat স্টোরিজ DynamoDB-তে স্থানান্তরিত করার প্রধান কারণ, কারণ এই Snapchat বৈশিষ্ট্যটি সবচেয়ে বড় স্টোরেজ লেখার লোডের সাথে যুক্ত।

দলিল

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

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

গ্রাফ ডাটাবেস

গ্রাফ ডেটাবেসগুলি জটিল ডেটার সেটগুলির সাথে কাজ করে এমন অ্যাপ্লিকেশনগুলিকে বিকাশ এবং চালানো সহজ করে তোলে। গ্রাফ ডাটাবেস ব্যবহারের সাধারণ উদাহরণ হল সামাজিক নেটওয়ার্ক, সুপারিশ পরিষেবা, জালিয়াতি সনাক্তকরণ সিস্টেম এবং জ্ঞান গ্রাফ। আমাজন নেপচুন একটি সম্পূর্ণরূপে পরিচালিত গ্রাফ ডাটাবেস পরিষেবা। নেপচুন প্রপার্টি গ্রাফ এবং রিসোর্স বর্ণনা ফ্রেমওয়ার্ক (RDF) সমর্থন করে, যা থেকে বেছে নেওয়ার জন্য দুটি গ্রাফ API প্রদান করে: TinkerPop এবং RDF/SPARQL। সাধারণ গ্রাফ ডেটাবেসগুলির মধ্যে রয়েছে Neo4j এবং Giraph।

স্মৃতিতে ডিবি

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

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

Amazon ElastiCache হল একটি সম্পূর্ণরূপে পরিচালিত Redis এবং Memcached সামঞ্জস্যপূর্ণ ইন-মেমরি ক্যাশিং পরিষেবা যা কম লেটেন্সি, উচ্চ থ্রুপুট ওয়ার্কলোড পরিবেশন করে৷ টিন্ডারের মতো ক্লায়েন্ট যাদের রিয়েল টাইমে সাড়া দেওয়ার জন্য তাদের অ্যাপের প্রয়োজন তারা ডিস্ক স্টোরেজ সিস্টেমের পরিবর্তে ইন-মেমরি ব্যবহার করছে। উদ্দেশ্য-নির্মিত ডেটা গুদামের আরেকটি উদাহরণ হল Amazon DynamoDB Accelerator (DAX)। DAX DynamoDB কে কয়েকগুণ দ্রুত ডেটা পড়ার অনুমতি দেয়।

ডেটাবেস অনুসন্ধান করুন

অনেক অ্যাপ্লিকেশন লগ তৈরি করে যাতে ডেভেলপারদের সমস্যা সমাধান এবং সমাধান করা সহজ হয়। Amazon OpenSearch হল একটি উদ্দেশ্য-নির্মিত পরিষেবা যা আধা-কাঠামোগত লগ এবং মেট্রিক্সগুলিকে সূচীকরণ, একত্রিত এবং অনুসন্ধানের মাধ্যমে স্বয়ংক্রিয়ভাবে উৎপন্ন ডেটা স্ট্রিমগুলির কাছাকাছি রিয়েল-টাইম ভিজ্যুয়ালাইজেশন এবং বিশ্লেষণের জন্য।

উপরন্তু, Amazon OpenSearch একটি শক্তিশালী, উচ্চ-কর্মক্ষমতা সম্পন্ন পূর্ণ-টেক্সট অনুসন্ধান পরিষেবা। এক্সপিডিয়া 150 টিরও বেশি Amazon OpenSearch পরিষেবা ডোমেন, 30 TB ডেটা, এবং 30 বিলিয়ন নথিগুলি বিভিন্ন ধরণের মিশন-সমালোচনামূলক ব্যবহারের ক্ষেত্রে, অপারেশনাল মনিটরিং এবং সমস্যা সমাধান থেকে শুরু করে বিতরণ করা অ্যাপ্লিকেশন স্ট্যাক ট্র্যাকিং এবং খরচ অপ্টিমাইজেশানের জন্য।

1.4 এসকিউএল (রিলেশনাল) এবং নোএসকিউএল (নন রিলেশনাল) ডাটাবেসের তুলনা

NoSQL এর অনেক সুবিধা রয়েছে, তাই আপনার অন্তত তাত্ত্বিকভাবে জানা উচিত যে আপনার প্রয়োজনীয় টুলটি নিজে লেখার আগে থেকেই আছে। নীচে আমি NoSQL এবং SQL ডাটাবেসের একটি তুলনা দেব:

উপযুক্ত কাজের চাপ

রিলেশনাল ডাটাবেসগুলি লেনদেনমূলক এবং অত্যন্ত সামঞ্জস্যপূর্ণ রিয়েল-টাইম লেনদেন প্রক্রিয়াকরণ (OLTP) অ্যাপ্লিকেশনের জন্য ডিজাইন করা হয়েছে এবং রিয়েল-টাইম বিশ্লেষণাত্মক প্রক্রিয়াকরণের (OLAP) জন্য উপযুক্ত।

NoSQL ডাটাবেসগুলি কম লেটেন্সি অ্যাপ্লিকেশন সহ ডেটা অ্যাক্সেস প্যাটার্নগুলির একটি পরিসরের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। NoSQL অনুসন্ধান ডেটাবেসগুলি আধা-কাঠামোগত ডেটা বিশ্লেষণের জন্য ডিজাইন করা হয়েছে।

তথ্য মডেল

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

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

ACID বৈশিষ্ট্য

রিলেশনাল ডাটাবেসগুলি ACID বৈশিষ্ট্যগুলির একটি সেট প্রদান করে: পারমাণবিকতা, ধারাবাহিকতা, বিচ্ছিন্নতা, নির্ভরযোগ্যতা।

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

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

কর্মক্ষমতা

কর্মক্ষমতা প্রধানত ডিস্ক সাবসিস্টেমের উপর নির্ভর করে। ক্যোয়ারী, সূচী, এবং টেবিল গঠন অপ্টিমাইজেশান প্রায়ই সর্বাধিক কর্মক্ষমতা জন্য প্রয়োজন হয়.

কার্যক্ষমতা সাধারণত অন্তর্নিহিত হার্ডওয়্যার ক্লাস্টার, নেটওয়ার্ক লেটেন্সি এবং কলিং অ্যাপ্লিকেশনের আকারের উপর নির্ভর করে।

স্কেলিং

রিলেশনাল ডাটাবেসগুলি সাধারণত হার্ডওয়্যারের কম্পিউটিং শক্তি বাড়িয়ে বা পড়ার কাজের বোঝার জন্য আলাদা কপি যোগ করে স্কেল করে।

NoSQL ডাটাবেসগুলি সাধারণত একটি বিতরণ করা আর্কিটেকচারের উপর ভিত্তি করে মাপযোগ্য অ্যাক্সেস প্যাটার্নের মাধ্যমে উচ্চ বিভাজনযোগ্যতা সমর্থন করে। এটি থ্রুপুট উন্নত করে এবং প্রায় সীমাহীন স্কেলে ধারাবাহিক কর্মক্ষমতা প্রদান করে।

API

লেখা এবং ডেটা পুনরুদ্ধারের জন্য অনুরোধগুলি SQL এ লেখা হয়। এই প্রশ্নগুলি পার্স করা হয় এবং একটি রিলেশনাল ডাটাবেস দ্বারা কার্যকর করা হয়।

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