MongoDB এর সংক্ষিপ্ত বিবরণ
নয়ন চন্দ্র দত্ত
MongoDB একটি ক্রস প্ল্যাটফর্ম এবং ডকুমেন্ট ভিত্তিক ডেটাবেস যা উচ্চ কার্যকারিতা, উচ্চ প্রাপ্যতা এবং সহজ কর্মপরিধি বৃদ্ধির উদ্দেশ্য উপলব্ধি করায়। MongoDB সংগ্রহ এবং ডকুমেন্টবিষয়ক ধারণায় কাজ করে।
ডেটাবেস
ডেটাবেস কালেকশনের জন্য একটি শারীরিক ধারক। ফাইল সিস্টেমে প্রতিটি ডেটাবেস ফাইলের নিজস্ব সেট পায়। একটি একক MongoDB সার্ভারের সাধারণত একাধিক ডেটাবেস থাকে।
কালেকশন
কালেকশন হচ্ছে MongoDB ডকুমেন্টের একটি গ্রুপ। এটি একটি RDBMS টেবিলের সমতুল্য। একটা কালেকশন একটি একক ডেটাবেসের মধ্যে বিদ্যমান থাকে। কালেকশন কখনও কোন স্কিমা বা পরিকল্পনা জোরদার করে না।
একটি কালেকশনের মধ্যে ডকুমে্সন্টের বিভিন্ন ক্ষেত্র থাকতে পারে। সাধারণত, একটি কালেকশনের সব ডকুমেন্ট অনুরূপ বা সংশ্লিষ্ট উদ্দেশ্যবিশিষ্ট হয়ে থাকে।
ডকুমেন্ট
ডকুমেন্ট হচ্ছে কী-মান জোড়ার একটি সেট। ডকুমেন্টের গতিশীল স্কিমা আছে। গতিশীল স্কিমা বলতে একই কালেকশনের মধ্যের সব ডকুমেন্টের একই ক্ষেত্র বা কাঠামো জোড়ার প্রয়োজন নেই।
কালেকশন ডকুমেন্টের মধ্যে একটি সাধারণ ক্ষেত্র বিভিন্ন ধরনের তথ্য জমা রাখতে পারে।
নিচে MongoDB এর সাথে RDBMS টেকনোলজির সম্পর্ক দেখানো হলঃ
RDBMS: ডেটাবেস
RDBMS: ডেটাবেস
RDBMS: টেবিল
RDBMS: কালেকশন
RDBMS: Tuple / সারি
RDBMS: ডকুমেন্ট
RDBMS: কলাম
RDBMS: ক্ষেত্র
RDBMS: টেবিল জয়েন
RDBMS: এমবেডেড ডকুমেন্টস
RDBMS: প্রাথমিক কী
RDBMS: প্রাথমিক কী ( ডিফল্ট কি _id যা MongoDB দ্বারা যোগান হয় )
ডাটাবেস সার্ভার ও ক্লায়েন্ট
RDBMS: Mysqld / ওরাকল
RDBMS: mongod
RDBMS: মাইএসকিউএল / sqlplus
RDBMS: mongo
নমুনা ডকুমেন্ট
উল্লিখিত নীচের উদাহরণে একটি ব্লগ সাইটের ডকুমেন্টের গঠন দেখানো হয়েছে যেখানে কেবলমাত্র একটি কমা দিয়ে কী-মান জোড়াকে পৃথক করা হয়েছেঃ
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_id একটি 12 বাইটের হেক্সাডেসিমেল সংখ্যা যা প্রতিটি ডকুমেন্টের স্বতন্ত্রতা বজায় রাখে। ডকুমেন্ট ডুকানোর সময় _id দিতে পারেন। যদি আপনি দিতে না চান তবে MongoDB প্রতিটি ডকুমেন্টের জন্য একটি ইউনিক আইডি প্রদান করবে।
এই 12 বাইট প্রথম 4 বাইট বর্তমান টাইমস্ট্যাম্প এর জন্য, পরবর্তী 3 বাইট মেশিন আইডির জন্য, পরবর্তী 2 বাইট MongoDB সার্ভারের প্রক্রিয়াকরণ ID এর জন্য এবং বাকী ৩ বাইট হচ্ছে সহজ ক্রমবর্ধমান মান।