MongoDB چیست؟ معرفی،اپلیکیشن ها، مزایا و مثال

MongoDB چیست؟ معرفی،اپلیکیشن ها، مزایا و مثال

مقدمه ، مرور کلی و تاریخچه

MongoDB یک پایگاه داده قدرتمند مبتنی بر NoSQL ، بسیار مقیاس پذیر ، رایگان و Open source است MongoDB .در ابتدا تقریباً 9 سال پیش در یازدهم فوریه 2009 منتشر شد و از آن زمان به بعد به جایگاه پایگاه داده پیشرو NoSQL رسیده است. شرکت MongoDB Inc. (نیویورک ، ایالات متحده) توسعه MongoDB را حفظ و مدیریت می کند. آنها همچنین نسخه تجاری MongoDB را ارائه می دهند که شامل پشتیبانی نیز می شود. کد MongoDB در Github موجود است.

با گذشت سالها ، MongoDB به انتخاب محبوب یک پایگاه داده بسیار مقیاس پذیر تبدیل شده است و در حال حاضر به عنوان پایگاه داده backend سازمانهای شناخته شده مانند IBM ، توییتر ، Zendesk ، Forbes ، Facebook ، Google و بسیاری شرکت های دیگر مورد استفاده قرار می گیرد MongoDB. همچنین توجه جامعه open source را به خود جلب کرده است و بسیاری از توسعه دهندگان روی پروژه های متنوعی بر اساس MongoDB کار می کنند.

برنامه های کاربردی MongoDB

MongoDB به عنوان پایگاه داده اصلی اطلاعات در برنامه های مختلف وب به طور گسترده استفاده می شود. MEAN stack ،یکی از محبوب ترین پشته های توسعه وب ، از MongoDB بعنوان پایگاه داده استفاده می کند(MEAN مخفف MongoDB ، ExpressJS ، AngularJS و NodeJS است).

چه موقع و چگونه می توان از MongoDB استفاده کرد؟

MongoDB یک پایگاه داده مبتنی بر مستندات است و این بدان معنی است که اطلاعات را در مقایسه با جداول ساختاری مانند MySQL یا PostgreSQL در یک قالب غیر ساختاری ذخیره می کند. این در واقع بدان معنی است که داده های ذخیره شده در MongoDB  شِمای کمتری دارند. بنابراین ، MongoDB یک سرویس ذخیره سازی سریع و مقیاس پذیر داده را فراهم می کند که آن را به یک انتخاب محبوب در کاربردهای مهم تبدیل می کند. علاوه بر این ، این واقعیت که MongoDB در C ++ نوشته شده است ، باعث می شود که این سرعت در مقایسه با بسیاری از پایگاه های داده دیگر سریعتر شود.

MongoDB نباید در برنامه هایی که نیاز به Join جدول دارند ، زیرا MongoDB از join پشتیانی نمی کند این به این واقعیت مربوط می شود که داده های ذخیره شده در MongoDB ساختاری نیستند و بنابراین ، انجام join یک فرایند بسیار وقت گیر است که ممکن است منجر به عملکرد کند شود.

بگذارید مثال ساده ای از مدل دانشجو را در نظر بگیریم که در آن دانشجو می تواند دوره های مختلف دانشگاهی را بگیرد. در اینجا مثال ساده از Mongo DB برمبنای مدل دانشجو داریم:

}

id: STUDENT_IDname: STUDENT_NAME_

,  data_of_birth: STUDENT_DATE_OF_BIRTH

]:courses

    }

    ,  code: COURSE_CODE

     , instructor: COURSE_INSTRUCTOR

  ,  {

    }

     , code: COURSE_CODE

   ,   instructor: COURSE_INSTRUCTOR

  {

 [

{

مزایای استفاده از MongoDB

همانطور که در مثال بالا مشاهده می شود که به جای اینکه دانشجویان و دوره ها را در جداول جداگانه مانند SQL نگهداری کنیم ، در MongoDB هر دو را در یک سند واحد ذخیره می کنیم. این روند فرآیند بازیابی اطلاعات را سرعت می بخشد. اکثر برنامه های بزرگ مانند فیس بوک نیاز به این افزایش در عملکرد دارند به این دلیل که میلیاردها کاربر از برنامه استفاده می کنند و بنابراین ، حتی افزایش جزئی عملکرد ممکن است در کل تأثیر بزرگی را ایجاد کند. این یکی از مهمترین مزایای استفاده از MongoDB است.

مزایای دیگر این موارد عبارتند از:

خوشه بندی: MongoDB اجازه می دهد تا داده ها از طریق گره ها در یک خوشه دردسترس باشند تا اطمینان حاصل شود که هیچ گلوگاهی در سرور پایگاه داده وجود ندارد.

پشتیبانی از شاخص های ثانویه :MongoDB نه تنها امکان یک شاخص اصلی بلکه یک شاخص ثانویه را در بسیاری از برنامه ها فراهم مهم می کند.

MongoDB :Caching داده زیادی را کش می کند تا امکان بازیابی سریعتر نتایج کوئری ها فراهم شود.

مجموعه ای از ویژگی های عالی: ویژگی های مختلفی در MongoDB وجود دارد (کوئری های Ad-hoc ، ایندکس سازی ، Replication ، توازن بار ، ذخیره سازی فایل ، Aggregation ، اجرای JavaScript در سمت سرور و غیره) که آن را به یک بانک اطلاعاتی بسیار کاربر پسند تبدیل می کند.

چه موقع از MongoDB استفاده نکنید؟

MongoDB یک پایگاه داده NoSQL است و در نتیجه ، سازگار با ACID نیست (اتمیک بودن ، سازگاری ، ایزوله بودن ، دوام). در نتیجه ، در برنامه های کاربردی که انطباق با ACID (به عنوان مثال برنامه هایی که نیاز به تراکنش های سطح پایگاه داده دارند) لازم است ، MongoDB قابل استفاده نیست. به عنوان مثال ، هنگام طراحی یک سیستم اصلی بانکداری برای یک بانک از MongoDB استفاده نکند.

علاوه بر این ، بر خلاف بسیاری از پایگاه های داده ، MongoDB  نیاز به store procedure ها را ندارد.

عملکرد MongoDB

عملکرد دقیق دیتابیس به عوامل زیادی متفاوت است. برای مثال:

مورد استفاده: برخی از برنامه ها نیاز به داده های ساختاریافته دارند. در چنین شرایطی بهتر است از پایگاه داده های مبتنی بر SQL استفاده کنید و در برنامه ها ، استفاده از داده های ساختار یافته غیرممکن است در چنین شرایطی استفاده از MongoDB بهترین انتخاب است.

ذخیره سازی: به طور طبیعی ، عملکرد (خواندن و نوشتن در هر ثانیه) به مکانیسم ذخیره سازی بستگی دارد. به عنوان مثال ، SSD ها مطمئناً سریعتر از هارد دیسک های معمولی هستند و بنابراین ، عملکرد با SSD ها بهتر است.

RAM: عملکرد دیتابیس تا حد زیادی به حافظه پنهان بستگی دارد و میزان اطلاعاتی که می تواند در آن ذخیره شود بستگی به رم موجود در اختیار بانک اطلاعاتی دارد.

خوشه بندی: MongoDB می تواند مورد استفاده قرار گیرد تا بتواند به راحتی یک خوشه پایگاه داده را با دسترسی و کارایی بالا تنظیم کند. این به طور کلی در بانکهای اطلاعاتی مبتنی بر SQL دشوار است.

MongoDB عملکرد فوق العاده ای را در برنامه هایی که نیاز به عدم وجود داده های ساختار یافته دارند ارائه می دهد. به عنوان مثال ، برنامه های مختلف MapReduce ، سیستم های Big-Data ، برنامه های شبکه های اجتماعی ، اخبار انجمن و غیره ، در چنین مواردی ، ساخت داده ها در جداول دشوار است. حتی اگر ساختار داده ها در جداول نیز امکان پذیر باشد ، همیشه مطلوب نیست زیرا در کوئری هایی که به join پایگاه داده نیاز دارند ، عملکرد به شدت افت خواهد کرد.

چگونه استفاده از MongoDB را یاد بگیریم؟

بهترین راه برای یادگیری MongoDB ایجاد یک برنامه وب است که از MongoDB به عنوان پایگاه داده backend استفاده کنید. بانکهای اطلاعاتی معمولاً با یک برنامه وب همراه هستند (به جای اینکه بطور مستقل مورد استفاده قرار گیرند) و به همین دلیل به شما توصیه می شود ایده های ساده و کاربردی وب زیر را امتحان کنید:

یک سایت شبکه اجتماعی که در آن کاربران می توانند پست هایی را به اشتراک بگذارند و درباره پست های یکدیگر نظر دهند.

تالار گفتمان مبتنی بر پرسش و پاسخ که از چندین موضوع پشتیبانی می کند.

می توانید از هر فریم ورک برنامه نویسی وب مورد نظر خود استفاده کنید. برخی از موارد توصیه شده عبارتند از:

Django: Django یک چارچوب برنامه وب مبتنی بر پایتون است و می تواند به صورت یکپارچه با MongoDB به عنوان پایگاه داده backend استفاده شود.

NodeJS: Node یک فریم ورک وب مبتنی بر JavaScript است و به همراه MongoDB در پشته MEAN کاربرد گسترده ای دارد.

خلاصه

به طور خلاصه ، MongoDB یک پایگاه داده سریع و قابل اعتماد است که یکی از پایگاه های داده پیشنهادی در طراحی برنامه های وب مقیاس پذیر است که به ذخیره سازی داده های بدون ساختار نیاز دارد. اگر در حال طراحی یک برنامه کاربردی هستید که به در دسترس بودن بالا ، خوشه‌بندی ، عملکرد سریع نیاز دارید ، باید استفاده از MongoDB را به عنوان پایگاه داده backend برنامه خود در نظر بگیرید.

نظر شما

0 نظر

نظری ثبت نشده است