پایگاه داده MongoDB چیست و چه مزایا و معایبی دارد؟
در چند سال اخير دیتابیسهای NoSQL بين استارتاپها و برنامهنویسان طرفداران بسيار زیادی پيدا کردند و یکی از معروفترین آنها پايگاه داده MongoDB بود. منگوديبي يک پايگاه داده NoSQL است که برخلاف دیتابیسهایی مثل SQL Server و MySQL از ساختار رابطه اي پیروی نمیکند. يعني در ديتابيس منگوديبی مفاهيم جدول، ستون و رديف وجود نداشته و در عوض ساختار پايگاه داده Document Base است، به این شکل که دادهها در پایگاه داده mongodb به صورت داکيومنتهايي با ساختاري شبيه به json ذخيره مي شوند.
اینم بخونید بد نیست: NPM چیست و چه ارتباطی با Node.js دارد؟
دیتابیس MongoDB چیست؟
مستنداتی که در MongoDB به کار میرود، برخلاف جداول پايگاه داده رابطهاي، Schema ثابتي ندارند. پايگاهداده منگوديبی کاملا open source بوده و با استفاده از زبان های برنامه نویسی سی پلاس پلاس، جاوا اسکریپت، پایتون و GO نوشته شده است. بيشتر زبانهای برنامه نويسی پرطرفدار و معروف مثل جاوا و C# يا Python، PHP و غیره کتابخانهای براي دسترسی به دیتابیس مونگودیبی دارند. پایگاه داده mongodb از سرعت بسیار بالایی برخوردار است و در تمام سیستم عاملهای رایج دنیا مثل ویندوز ( از ویندوز ویستا تا 10 ) لینوکس، مکاواس، سولاریس و FreeBSD اجرا میشود.
يکي از دلايل بالا بودن سرعت پایگاه داده MongoDB اين است که برخلاف ديتابيسهاي رابطه اي، منگوديبي نيازي به ذخيره اطلاعات ساختار داکيومنتها به صورت مجزا ندارد و تمام اين اطلاعات را ميتوان از خود داکيومنت استخراج کرد.
در حال حاضر مونگودیبی یکی از پرطرفدارترین پایگاه دادههای دنیا است. عملیات نگاشت بین اشیا (Objects) در زبانهای برنامه نویسی شیگرا در دیتابیس MongoDB بسیار آسان میباشد. مونگودیبی با داشتن قابلیتهایی مثل Indexing، Load Balansing، اجرای کدهای جاوا اسکریپت توسط سرور و پشتیبانی از پایگاهدادههای بسیار حجیم گزینه ایدهآلی برای پیادهسازی پروژههای مختلف توسط برنامه نویسان است.
پایگاه داده mongodb چه مزایا و معایبی دارد؟
مشاهده مزایا و معایب هر سرویسی میتواند ذهن شما را برای انتخاب یا انتخاب نکردن یک سرویس شفاف کند. در ادامه لیستی از نکات مثبت و منفی دیتابیس مونگودیبی را مشاهده میکنید:
نقاط قوت:
- رایگان بوده و برای استفاده نیازی به پرداخت هزینه ندارد
- بازدهی (Performance) بسیار بالایی دارد
- بسیار منعطف است
- بسیار پویا بوده و مقیاسپذیری بالایی دارد
- مبتنی بر داکیومنت است
- توزیع شده یا Distributed است
- به آسانی با Hadoop در کلاندادهها ادغام میشود
- پشتیبانی جغرافیایی بالایی دارد
- تقریبا به اندازه زبان SQL قدرتمند است
نقاط ضعف:
- اندازه دادهها در مونگودیبی معمولا بیشتر از سایر دیتابیسها است
- در Query زدن انعطافپذیری کمتری دارد (مثلا از JOIN پشتیبانی نمیکند)
- transactionها در این پایگاه داده پیچیده است
پایگاه داده مونگودیبی برای چه کارهایی مناسب است؟
اگر تصمیم گرفتید این دیتابیس را امتحان کنید، بهتر است قبل از شروع کار فهرست زیر را مطالعه کنید. در این لیست برخی از کارهایی که با مونگودیبی بهتر اجرا میشوند را مشاهده میکنید:
- ساخت فروشگاههای اینترنتی
- ساخت وبلاگ و سیستمهای مبتنی بر محتوا
- ساخت سرویسهای آمارگیر لحظهای مثل گوگل آنالیتیکس
- ساخت سرویسهای مبتنی بر موقعیت جغرافیایی
- ساخت شبکههای اجتماعی در پلتفرمهای وب و موبایل
- و غیره
کدام شرکتها و برندهای مطرح از پایگاه داده mongodb استفاده میکنند؟
شرکتهای زیادی برای پیادهسازی سرویسهای خود سراغ مونگودیبی رفتهاند. در ادامه تعدادی از معروفترین آنها را مشاهده میکنید:
- Craigslist: کمتر کسی در ایران پیدا میشود که دیوار را نشناسد، Craigslist یک سرویس نیازمندی شبیه به دیوار اما در مقیاسی بسیار بزرگتر است
- اوبر: همان اسنپ خودمان است، یا بهتر بگویم اسنپ همان Uber است. یک سرویس تاکسی آنلاین بسیار بزرگ
- SourceForge: یک مخزن کد شبیه به گیتهاب است که اجازه میدهد برنامه نویسان کدهای خود را آنجا به اشتراک بگذراند
- نیویورک تایمز: یکی از بزرگترین و معروفترین روزنامههای آمریکایی است
- گاردین: یکی از بزرگترین و تاثیرگذارترین روزنامههای انگلیسی است
ختم کلام
MongoDB یک پایگاه داده ساده، شی گرا، مقیاسپذیر و NoSQL است در این دیتابیس اشیا داده در دایکومنتهای جداگانه ذخیره شده و در آخر تشکیل یک مجموعه (collection) میدهند. دقیقا نقطه مقابل پایگاهدادههای رابطهای که از سطر و ستون برای ذخیرهسازی دادهها استفاده میکنند. مونگودیبی از اسناد BSON (شبیه به JSON) استفاده کرده و نصب و اجرا آن بسیار آسان میباشد. اگر با این دیتابیس کار کردهاید خوشحال میشوم تجربیات خود را با ما و کاربران سایت اون با مَن هم به اشتراک بگذارید.