MongoDB কি এবং আপনি কেন এটা ব্যবহার করবেন? 😊 …
=======================================
খুব সহজ উত্তরে, MongoDB হল Document Oriented Database … অন্যদিকে জনপ্রিয় MySQL হল RDBMS বা Relational Database Management System … এছাড়া MongoDB কে বলা হয় Non-Relational / NoSQL DB 😊 …
.
MySQL এ ড্যাটা সাজানো থাকে টেবিলের মাঝে কিছু রো আর কলামের মধ্যে … আর অপর দিকে MongoDB তে ড্যাটা থাকে JSON-like documents এ …
.
.
যেমনঃ MySQL এ একটি কাল্পনিক টেবিল হতে পারে এমন …
First_Name ——– Last_Name ——– Salary
Bill ——————– Gates ————— 200
Larry —————– Page —————- 350
Amir —————— Khan ————— 150
.
অন্যদিকে MongoDB তে ড্যাটা গুলো অনেকটা নিচের মত JSON-like ফরম্যাটে স্টোর করা থাকে … যাকে বলা হয় Collections … আর এক এক জোড়া Curly braces{} এর ভেতরে যা থাকে তা হল এক একটি document … উপরের MySQL টেবিলটি MongoDB তে অনেকটা এভাবে স্টোর করা থাকে …
.
.
.
{
‘_id’ : Objectid(‘2ilo13d2525’),
‘First_Name’ : ‘Bill’,
‘Last_Name’ : ‘Gates’,
‘Salary’ : ‘200’
},
{
‘_id’ : Objectid(‘2imo13d2501’),
‘First_Name’ : ‘Larry’,
‘Last_Name’ : ‘Page’,
‘Salary’ : ‘350’
},
{
‘_id’ : Objectid(‘2iKo13d2585’),
‘First_Name’ : ‘Amir’,
‘Last_Name’ : ‘Khan’,
‘Salary’ : ‘150’
}
.
এখন কথা হল … MongoDB এর সুবিধা কি কি বা MySQL ছেড়ে আমি কেন এটা ব্যবহার করব ? 😊 …
==============================================================
>> এর পারফরম্যান্স যে কোন RDBMS যেমনঃ MySQL থেকে অনেক অনেক বেশি ফাস্ট 😃 …
>> এর আরেকটি বৈশিষ্ট্য হল, Horizontal Scalability … যা MySQL এ অনুপস্থিত …
.
>> MySQL এর মত RDBMS গুলো Large Scale Data নিয়ে কাজ করতে মোটেই সক্ষম নয় … অন্যদিকে NoSQL Databases যেমনঃ MongoDB কে ডিজাইনই করা হয়েছে Large Scale Data নিয়ে কাজ করার জন্য …
.
.
.
>> যদি আপনার ডেভেলপ করা Modern Application এর জন্য অনেক Big Data স্টোর করার প্রয়োজন হয় … সেক্ষেত্রে MySQL এর মত RDBMS মোটেই কার্যকর নয় … তখন MongoDB খুব ভালো একটি চয়েজ হতে পারে …
.
.
.
>> MySQL এর মত RDBMS গুলো সিঙ্গেল সার্ভারে কাজ করে … এখন যদি এমন হয় আপনার application প্রতি মিনিটে মিলিয়ন মিলিয়ন ড্যাটা সার্ভারে স্টোর করে … যার জন্য আবার বিলিয়ন বিলিয়ন এক্সেস রিকোয়েস্ট আসে …
সেক্ষেত্রে এত বিশাল ড্যাটা একটি সিঙ্গেল সার্ভারে স্কেল করা প্রায় অসম্ভব … RDBMS গুলোর architectই এমন যে, একে মাল্টিপল সার্ভারে ডিস্ট্রিবিউট করা সম্ভব নয় unsure emoticon …
.
.
অপর দিকে MongoDB মাল্টিপল সার্ভারে কাজ করতে পারে … যখন তখন ইচ্ছেমত সার্ভার ও সার্ভার স্পেস এড করা সম্ভব … ফলে মিলিয়ন মিলিয়ন ড্যাটার জন্য বিলিয়ন বিলিয়ন এক্সেস রিকোয়েস্ট আসলেও MongoDB তা খুব সহজে হ্যান্ডেল করতে পারে …
এক কথায় MongoDB Massive Data নিয়ে কাজ করতে পারে … MongoDB এর এই বিল্টইন ফিচার একে করেছে অনন্য …
.
.
.
এরকম একটি Web Application এর চমৎকার উদাহরণ হতে পারে, Google Map … কখনও চিন্তা করে দেখেছেন কি যে Google Map এর DB তে কি পরিমাণ ড্যাটা স্টোর করা আছে আর প্রতি মিনিটে কি পরিমান রিকোয়েস্ট আসে তাদের সার্ভারে ? …
.
>> Cloud Ready ফিচার MongoDB এর অপর একটি উল্লেখ যোগ্য ফিচার … MongoDB কে এমন ভাবে ডিজাইন করে হয়েছে যেন এটা সহজেই Clustered or Cloud Environment এ কাজ করতে পারে … যা আমি ইতিমধ্যে উপরে একবার বলেছি …
.
.
>> MongoDB তে field, range queries ও REGEX সার্চ সুবিধা বিদ্যমান …
>> MongoDB তে master-slave replication ফিচার আছে …
.
>> যেহেতু MongoDB একসাথে একাধিক সার্ভারে কাজ করতে পারে …সেহেতু Data Duplication সুবিধার মাধ্যমে Hardware Failure এড়িয়ে application কে সবসময় up and running রাখা যায় … যা MySQL/RDBMS এ সম্ভব নয় …
.
.
.
>> Automatic Load Balancing হল MongoDB এর অপর একটি উল্লেখ যোগ্য ফিচার … যে কারণে মিলিয়ন মিলিয়ন ডাটা রিকোয়েস্ট খুব ভালোভাবে হ্যান্ডেল করা সম্ভব …
.
>> MongoDB এর নিজস্ব query language দিয়ে ড্যাটা এক্সেস কালে দরকার হলে JavaScript ফাংশন ব্যবহার করা যায় … এটা MongoDB এর খুব শক্তিশালী একটি ফিচার …
>> MongoDB তে Longitude and Latitude সাপোর্ট বিদ্যমান … It is a special support for Geospatial Indexes and Queries 😃 …
.
.
>> MongoDB is Schema-less … In MySQL there is really isn’t much flexibility in how you structure your data if you follow normalization standards … ড্যাটা স্ট্র্যাকচারের দিক দিয়ে MongoDB অনেক বেশি ফ্লেক্সিবেল …
.
>> MongoDB প্রচলিত প্রায় সকল OS সাপোর্ট করে … যেমনঃ Windows, Linux, Mac OSX, Sun Solaris ইত্যাদি …
.
>> MongoDB তে PHP, Java, JavaScript, Python, Ruby, C# সহ আধুনিক সকল প্রোগ্রামিং ল্যাঙ্গুয়েজ সাপোর্ট আছে smile emoticon …
.
.
.
তাহলে কি MySQL বাদ দিয়ে সব জায়গায় MongoDB ব্যবহার করব? 😊 …
===============================================
উত্তর হল না … কেন না তা বুঝাতে MongoDB এর কিছু Drawbacks জানা দরকার …
.
>> RDBMS/MySQL এর একটি বড় সড় ফিচার হল JOIN operation … এই JOIN operation থাকার ফলে একসাথে মাল্টিপল টেবিলে Query করা সম্ভব … MongoDB তে যা অনুপস্থিত … তবে এতে রয়েছে … array এর মত multi-dimensional data types বা এক ডকুমেন্টের মাঝে ভিন্ন একটি ডকুমেন্ট প্লেসিং যাকে embedding ফিচার বলে …
.
.
.
>> RDBMS/MySQL এর একটি অনন্য ফিচার হল … এটি Complex Transaction সাপোর্ট করে … MongoDB তে Complex Transaction সাপোর্ট নেই …
যেমনঃ কোন ট্রাভেল এন্ড ট্যুরিজম সাইটের জন্য বুকিং এপ্লিকেশন ডেভেলপের ক্ষেত্রে Complex Transaction প্লাস JOIN সাপোর্ট খুব দরকার … এই ধরণের কেসের ক্ষেত্রে MongoDB এর চেয়ে MySQL বেশি হ্যান্ডি …
.
.
.
এখানে আসলে উইনার কে? MongoDB নাকি MySQL ? … উত্তর কেউ না … আসলে MongoDB এর সাথে MySQL তুলনা করা আর একটা আমের সাথে কমলা তুলনা করা একই কথা 😄 …
আপনার এপ্লিকেশন এর নিডসের উপর ডিপেন্ড করে আপনি নির্ধারণ করবেন আপনার কোন DB দরকার …
Complex Transaction প্লাস JOIN সাপোর্ট যদি আপনার এপ্লিকেশনের জন্য বাধ্যতামূলক হয় তাহলে MySQL is the best choice …
.
.
আর আপনার আপনার এপ্লিকেশনের চাহিদা যদি হয় Flexible Data Structure, High Performance, Big Data Support … তাহলে MongoDB is the best choice …
.
বিশেষ করে যদি এমন হয় আপনার এপ্লিকেশন প্রতি মিনিটে প্রচুর ড্যাটা রিকোয়েস্ট করে আর সেই সাথে থাকে অনেক লার্জ ড্যাটা স্ট্যাক তবে সেক্ষেত্রে MySQL ফুলি ইউজলেস … MongoDB rocks here …
.
দা আর ছুড়ি দু’ টা জিনিসই কাটাকাটির জন্য ব্যবহার করা হয় … এখন যদি আপনি “ডাব” কাটতে ছুড়ি আর “মাখন” কাটতে রাম দা নিয়ে আসেন তাহলে কেমন হবে? … ঠিক তেমনই … Use the right tool in the right place …
.
.
.
MongoDB এর কিছু অসাধারণ টিউটোরিয়াল 😊 …
================================
https://goo.gl/8bcuu4
http://goo.gl/5EtIzw
http://goo.gl/DqRp9G
http://goo.gl/AVzo9a
http://goo.gl/0t6qO7
http://goo.gl/46RDqT
http://goo.gl/7jG7p5
http://goo.gl/7jG7p5
.
.
.
MongoDB এর উপর edX এর একটি ফ্রি শর্ট কোর্স 😊 …
===================================
Introduction to MongoDB using the MEAN Stack – > https://goo.gl/nyTUAD
পুরো কোর্সে আপনি শিখবেন MongoDB, ExpressJS, AngularJS, and Node.js দিয়ে কিভাবে ওয়েব এপ্লিকেশন ডেভেলপ করবেন …
.
.
Some good books on MongoDB 😊 …
============================
1) MEAN Web Development by Amos Q. Haviv
2) Web Development with MongoDB and NodeJS by Mithun Satheesh
3) MongoDB: The Definitive Guide by Kristina Chodorow
4) MongoDB Data Modeling by Wilson da Rocha Franca
.
.
5) MongoDB BasicsNov by David Hows and Peter
5) MongoDB for Java Developers by Francesco Marchioni
Node.js, MongoDB, and AngularJS Web Development by Brad Dayley
6) MongoDB CookbookNov by Amol Nayak
.
.
MongoDB ব্যবহার করছে এমন কিছু কোম্পানি 😊 …
==================================
Facebook → Facebook adapted the storage engine API, extending MongoDB into new workloads and new capabilities 😃 …
.
The New York Times → পৃথিবীর অন্যতম বিখ্যাত পত্রিকা …
.
EA → বিখ্যাত গেম নির্মাতা প্রতিষ্ঠান …
.
CISCO → Networking এ ওয়ার্ল্ড লিডার …
eBAY → বিখ্যাত ই-কমার্স সাইট …
.
.
এছাড়াও, MTV Networks, Adobe, Craiglist, Forbes, The Washington Post, Stripe, Hudl, Metlife ইত্যাদির মত বিখ্যাত প্রতিষ্ঠান …
.
.
Last of all MongoDB is Scalable, Agile and Cloud Ready … It is awesome … If you want to be ready for the future then learn MongoDB 😊

Written by : Din Muhammad Sumon

Leave a comment

I’m Jewel

Welcome to my personal blog. My full name is mazaharul huq and jewel is my nickname.

Let’s connect