پایگاه داده MongoDB و ویژگی های آن
MongoDB (مانگودیبی) یک پایگاه دادههای سندگرای متنباز، کارا، مقیاسپذیر، بدون نیاز به طرحبندی اولیه و نوشته شده به زبان برنامهنویسی ++C است.
هدف MongoDB پرکردن فاصله ی ذخیرهبندیهای کلید/مقداری—که سریع و مقیاس پذیر هستند— و سامانههای سنتی مدیریت پایگاه داده رابطهای—که درخواستهای غنی و عملکرد عمیقی دارند— بودهاست. MongoDB برای رفع مشکلاتی طراحی شده که با پایگاه دادههای رابطهای به سادگی رفع نمیشوند؛ برای مثال اگر پایگاه داده کارسازهای زیادی را دربرگیرد.
MongoDB به جای این که همانند پایگاه های دادههای رابطهای کلاسیک دادهها را در جداول ذخیره کند، دادههای ساختاریافته را در اسنادی با قالبی شبیه به JSON (مانگودیبی این قالب را بیسون(BSON) مینامد) ذخیرهسازی می کند، و بدین ترتیب یکپارچهسازی دادهها را در برخی اقسام برنامههای کاربردی آسانتر و سریعتر می کند.
توسعه مانگودیبی در ۱۰gen در سال ٢٠٠٧، هنگامی که شرکت در حال ایجاد یک بستر به عنوان سرویس مشابه با ویندوز Azure یا گوگل اپ انجین بود، آغاز شد. در سال ٢٠٠٩ مانگودیبی عنوان یک محصول مستقل و متن باز با مجوز آجیپیال ارائه شد.
در ماه مارس ٢٠١٠، با شروع از نسخه ١.۴، مانگودیبی قابل استفاده در خط تولید شناخته شد.
ویژگی های پایگاه داده MongoDB
در زیر خلاصه ای از برخی از ویژگی های اصلی آمده است:
- پرس و جوهای تک کاره: مانگودیبی از جستجو بر اساس فیلد، پرس و جوهای بازهای، و جستجوهای با عبارت منظم پشتیبانی می کند.
- فهرست بندی: هر فیلدی در مانگودیبی قابل فهرست بندی است. فهرست های ثانویه نیز موجود هستند.
- انعکاس: مانگودیبی از انعکاس تابع-متبوع (master-slave) پشتیبانی می کند. هر متبوعی قادر به انجام نوشتن ها و خواندن ها است. یک تابع داده ها را از متبوع رونوشت می کند و تنها برای خواندن ها و یا پشتیبانی به کار می رود. تابع ها توانایی انتخاب متبوع جدید در صورت از کار افتادن متوبع فعلی را دارند.
- توازن بار: مانگودیبی با استفاده از بخش بندی (sharding) قابل مقیاس پذیری به صورت افقی است. شخص توسعه دهنده کلید بخش بندی را انتخاب می کند که مشخص می کند داده در یک مجموعه چگونه توزیع خواهد شد. داده بر مبنای کلید بخش بندی به بازه های مختلف تکه تکه می شود و در بخش های مختلف توزیع می شود. (هر بخش یک متبوع با یک یا چند تابع است).
- ذخیرهسازی فایل: از مانگودیبی می توان به عنوان یک سیستم فایل استفاده کرد و از مزایای توازن بار و انعکاس داده در چندین ماشین برای ذخیره فایل های استفاده کرد.
- تجمیع: برای پردازش دسته ای داده های و عملیات تجمیع می توان از نگاشتکاهش استفاده کرد.
- اجرای جاواسکریپت سمت سرور
- مجموعههای دربسته
موارد استفاده و استقرار MongoDB
با توجه به مقاله «موارد استفاده» در وب سایت مانگودیبی، مانگودیبی برای موارد زیر مناسب است:
- بایگانی و ثبت رخداد ها
- سامانه های مدیریت محتوا و سندها
- تجارت الکترونیکی
- بازی سازی
- مساله های حجم بالا
- موبایل
- نگهداری داده در یک وب سایت
- پروژه های که از روش های توسعه چابک استفاده می کنند
- آمار و تحلیل های بلادرنگ