دیتابیس MongoDB یک پایگاه داده قوی , منعطف و مقیاس پذیر است. این پایگاه داده توانایی out scale کردن و خیلی از ویژگی های پایگاه داده های رابطه ای مثل ایندکس گذاری و دامنه ی پرس و جوها و ذخیره سازی را دارا می باشد. پایگاه داده MongoDBبسیاری از این ویژگی ها مثل built-in بودن پشتیبانی کردن از MapReduce-style aggregation و MapReduce-style aggregation را دارا می باشد .
MongoDB در سال 2007 توسط شرکت 10gen شروع به توسعه شد و در مارس 2010 اولین نسخه آن منتشر شد. این پایگاه داده در واقع به جای ذخیره داده جدول همانند پایگاه های داده ای رابطه ای یا کلاسیک، داده ها را با ساختار JSON و بدون اسکیمای خاصی (Schema) ذخیره میکند. این پایگاه داده در حال حاضر توسط شرکت هایی همچون MTV Networks, Craigslist, Foursquare, UIDAI Aadhaar در حال استفاده است. این پایگاه داده در حال حاضر برای سیستم عامل های ویندوز، مکینتاش، لینوکس و سولاریس توسعه داده شده است.
MongoDB یک مدل داده ای Developer پسند و دارای پیکربندی administrator پسند است و همچنین دارای API های زبان های عمومی بوسیله ی Driver ها و shell پایگاه داده است . در حقیقت mongoDB تلاش می کند که راه شما را به سوی برنامه نویسی بدون نگرانی از مشکل ذخیره داده ها تغییر بدهد.
یژگی های اصلی پایگاه داده مانگو دی بی:
- MongoDB می تواند براساس فیلد، محدوده کوئری و رشته منظم (regular expression) چستجو کند.
- هر فیلدی از MongoDB توانایی شاخص شدن را دارد و میتوان برای یک فیلد بیش از یک شاخص تعریف کرد.
- MongoDB از replication ها و یا انعکاس داده ای اصلی و فرعی (master-slave replication) پشتیبانی میکند. گره اصلی میتواند عملیات خواندن و نوشتن را انجام دهد و گره فرعی کپی ای از اطلاعات گره اصلی را دارد که میتواند از آنها برای خواندن و یا پشتیبان گیری استفاده کند و همچنین گره فرعی این توانایی را دارد که گره اصلی خود را در مواقع در دسترس نبودن انتخاب و تغییر دهد.
- داده های MongoDB می تواند به صورت افقی در دسته هایی به نام Shard ذخیره شود.
- MongoDB می تواند به عنوان سیستم ذخیره سازی فایل نیز به کار رود. با استفاده از ویژگی GridFS فایل های حجیم و باینری می تواند در ماشین های مختلف ذخیره و فراخوانی شود.
- با استفاده از الگوریتم MapReduce پردازش دسته ای داده و تجمعی را انجام داد. از این ویژگی برای برآورده کردن ویژگی GROUP BY در SQL استفاده میشود که شرکت گوگل از آن برای دسته بندی کردن کوئری های خود در موتور جستجوگرش استفاده میکند.
- و …
ایده پایه در طراحی mongoDB جایگزین کردن مفهوم row با یک مدل انعطاف پذیر تر به نام Document است ، سند گرایی امکان ایجاد سندهای داخلی و آرایه ها را به کاربر می دهد و همچنین scheme-less یا همان بدون شما بودن پایگاه داده را نیز دارا می باشد.
Easy scaling :
با توجه به سرعت رشد حجم داده ها و پیشروی در این تکنولوژی و حجم اطلاعاتی که در پایگاه داده نیاز به ذخیره سازی دارند برای اداره کردن این اطلاعات زیاد مدیریت جامعی احساس می شود.
چگونه پایگاه داده خود را مقیاس پذیر کنیم؟
برای مقیاس پذیر کردن پایگاه داده به دو گزینه می رسیم :
1 -scalling up (بزرگ کردن ماشین ها)
2- scalling out ( پارتیشن بندی کردن در بین چندین ماشین)
از آنجایی که ایجاد ماشین بزرگ مقرون به صرفه نیست همچنین نیاز به فضای بزرگتری دارد scalling outکردن توسعه پذیرتر واقتصادی تر است که برای اضافه کردن و بالا بردن کارایی می توان یک سرور مناسب خریداری کرد وبه مجموعه خود اضافه کرد(بعدها در این کتاب به این مجموعه کلاستر نیز گفته می شود.)
mongoDB بر پایه scalling out بودن طراحی شده است ، سندگرا بودن مدل داده ها این اجازه را می دهد که داده ها به طور جداگانه در روی چندین سرور پخش شوند که داده ها و لود کردن یک گروه را به تعادل می رساند . توزیع مجدد دسته ها اتوماتیک است که این امکان را می دهد که برنامه نویسان بدون نگرانی از ذخیره داده ها روی برنامه نویسی تمرکز کنند و برای افزایش ظرفیت داده ها تنها نیاز به تهیه یک سرور داشته باشند و به آسانی مشکل اینکه چگونه داده ها را ذخیره کنیم حل می شود.
برای شروع کار با MongoDB می بایست بسته فشرده شده مناسب برای معماری و نوع سیستم عامل خود از این آدرس دریافت و استخراج کنید.
عملگرهای محاسباتی جاوا اسکریپت
چگونه جاوا اسکریپت را داخل صفحات HTML قرار دهیم