شما برای مطالعه این مقاله فقط 7 دقیقه وقت نیاز دارید

mongodb

پایگاه داده MongoDB چیست؟ آشنایی با ویژگی ها و عملکرد آن

3.5/5 - (2 امتیاز)

حجم داده ها روز به روز در حال افزایش است و به همین دلیل کسب و کارها روش های جدیدی برای مدیریت این حجم داده ها پیدا می کنند و به همین دلیل مدیریت داده ها، مدام درحال پیشرفت و آپدیت است. برای مثال در گذشته از روش سلسله مراتبی و شبکه ای برای مدیریت داده ها استفاده می شد. اما روشی که امروزه مورد استفاده قرار می گیرد، پایگاه رابطه ای یا SQL و پایگاه داده های غیررابطه ای یا NoSQL است.یکی از پایگاه داده های غیر رابطه ای NoSQL، سیستم MongoDB است که در این جا می خواهیم به صورت کامل در پایگاه داده MongoDB صحبت کنیم و با ویژگی ها و نحوه عملکرد آن آشنا شویم. پس اگر شما هم خرید سرور مجازی (Buy VPS) را انجام داده اید و اکنون به دنبال مدیریت داده هایتان هستید، در این مقاله همراه ما باشید.

MongoDB یکی از ابزارهای مدیریت داده است که به هیچ زبان برنامه نویسی خاصی محدود نیست.

بیایید کمی در مورد پایگاه داده SQL صحبت کنیم

اگر بخواهیم یک زبان محبوب و پرکاربردی برای پایگاه داده معرفی کنیم که به زبان برنامه نویسی خاصی هم محدود نمی شود، تنها گزینه روی میز، SQL خواهد بود. برای آن که بهتر SQL را درک کنید، باید بگوییم که مخفف عبارت Structured Query Language است و معنای آن پرسجوی ساختار یافته است. کاری که SQL انجام می دهد، این است که به داده ها در یک ساختار نظام مند، شکل می دهد تا ارتباط دقیق تر و بهتری با دیگر داده ها فراهم شود.

پایگاه داده NoSQL چیست؟

اگر کمی از SQL فراتر برویم، با NoSQL مواجه خواهیم شد که قادر حجم عظیمی از داده های توزیع شده را مدیریت کند. این عبارت، مخفف Not Only SQL است و می توان آن را نوعی دیتابیس در نظر گرفت که به صورت غیررابطه عمل می کند.

MongoDB چیست؟

مطالبی که بالاتر بیان کردیم، حاشیه نبود، بلکه برای درک بهتر MongoDB لازم بود. MongoDB یک سیستم مدیریت پایگاه داده است که رایگان و اپن سورس است و از یک ساختار سندگرا بهره می برد. جالب است بدانید که MongoDB تنها یکی از انواع بی شمار تکنولوژی پایگاه داده غیررابطه ای است و به عنوان یکی از برنامه های پایگاه داده NoSQL دسته بندی می شد.

هدفی که MongoDB در پی آن بود، این بود که در برنامه هایی که به صورت مستقیم با داده ها و دیگر کارهای پردازشی سروکار داشتند و مدل رابطه ای برایشان مناسب نبود، استفاده شود.

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

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

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

MongoDB از کجا آمده است و به کجا می رود؟

اگر بخواهیم به این سوال که MongoDB از کجا آمده است و آمدنش بهر چه بود پاسخ دهیم، باید نگاهی به تاریخچه آن بیاندازیم. در سال 2007 میلادی که می شود سال 1385 خودمان، سه نفر دوست که نام های آنان دوایت مری مان، الیوت هورویتز و کوین رایان بود؛ پایگاه داده MongoDB را ایجاد کردند. اما این سه دوست از سر بیکاری و تفننی چنین کاری نکردند، بلکه با هدف ارائه راهکاری که مشکلات مقیاس پذیری و انعطاف پذیری DoubleClick را حل کنند، دست به خلق یک پایگاه داده زدند و MongoDB متولد شد. در مسیر رشد MongoDB موارد مهمی وجود داشته است که در زیر این موارد را برایتان آورده ایم:

  • در سال 1385 به عنوان بخشی از راهکارهای پلتفرم، توسط 10gen Software توسعه یافت.
  • در سال 1387، 10gen Software سیاست ها و خط مشی خودش را به رویکرد اپن سورس بودن، به همراه پشتیبانی تجاری و دیگر خدمات قابل ارائه، تغییر داد.
  • در سال 1391 این شرکت نام MongoDB Inc.‎ را برای خودش انتخاب کرد.
  • در سال 1395 بود که شرکت MongoDB تبدیل به یک کسب و کار سهامی عام شد.
  • در سال 1398 هم MongoDB با شرکت Alibaba Cloud اعلام شراکت کرد.

با ویژگی های MongoDB آشنا شوید

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

در MongoDB از روش Sharding برای مدیریت کردن داده ها و تقسیم بندی کردنشان استفاده می شود. اما روش Sharding چیست؟ Sharding داده ها را تکه تکه می کند و این کار در لود بالای شبکه انجام می شود و سبب می شود که دیتابیس به چندین بخش تقسیم شود. این کار به شما کمک می کند تا روند پاسخ دهی به درخواست های سمت سرور راحت تر شود.

در MongoDB زمان پردازش داده ها و همینطور سرعت دسترسی، بالا است و دلیل این موضوع نیز این است که داده ها به وسیله دو کلید اولیه و ثانویه در دسترس قرار می گیرند.

ویژگی جالب دیگری که MongoDB دارد، همانند سازی است. داشتن این ویژگی سبب می شود که پس از شناسایی یک داده به عنوان داده اصلی، از آن کپی تهیه شود و در قسمت های دیگر دیتابیس هم ذخیره شود. مزیتی که این ویژگی دارد، این است که در صورت خرابی داده اصلی، شما یک نسخه پشتیبان دارید.

کلیک کنید  نصب پایتون در سرور مجازی

نحوه عملکرد MongoDB

شاید برای شما هم جالب باشد که بدانید MongoDB چگونه کار می کند. ساختار داده هایی که رکوردهای MongoDB از آن استفاده می کند از field  و  valueتشکیل یافته است. جالب است بدانید اسنادی که MongoDB از آن استفاده می کند، ساختاری مشابه با JSON در جاوا اسکریپت دارد؛ البته با یک تفاوت: اسناد MongoDB از متتغیری استفاده می کند که Binary JSON نام دارد (البته BSON صداش می کنند) و این موضوع سبب می شود که MongoDB با داده های بیشتری منطبق شود.

فیلدهایی که در اسناد وجود دارند، به صورت کامل به ستون هایی که در پایگاه داده رابطه ای وجود دارند، وابسته هستند. به صورت ساده تر هر اندازه که داده وجود دارد، مقادیری که در این اسناد وجود دارد هم می تواند متفاوت باشد.

MongoDB بر اساس یک مدل کلاینت-سرور ساختار یافته است که در آن یک سرور سرور اتصالات مشتریان را می پذیرد و اقدامات پایگاه داده را از آنها پردازش می کند. سرور باید برای اتصال و تعامل کلاینت ها با پایگاه های داده اجرا شود.

ذخیره سازی داده تحت MongoDB با پایگاه داده های سنتی متفاوت است. رکورد در MongoDB یک سند است (ساختار داده ای متشکل از جفت های فیلد و مقدار، شبیه به اشیاء JSON) و اسناد در مجموعه ها ذخیره می شوند (مشابه جداول در RDBMS).

مزایا و معایب MongoDB چیست؟

هرچند گفتیم که MongoDB محبوب و پرکاربرد است، اما این به این معنا نیست که عاری از هر عیبی است. برای آن که شما را به صورت کامل با این سیستم مدیریت پایگاه داده آشنا کنیم، در این بخش می خواهیم تمام مزایا و معایب آن را بیان کنیم.

اولین مزیتی که از MongoDB می خواهیم بیان کنیم، این است که این سیستم مدیریت پایگاه داده برخلاف سایر پایگاه های داده NoSQL به هیچ طرح و مدل از پیش تعیین شده ای نیاز ندارد و قادر است هر نوع داده ای را ذخیره کند. این موضوع به کاربران این انعطاف پذیری را می دهد تا بتوانند هر اندازه فیلد که می خواهند در یک سند، ایجاد کنند و این موضوع این امکان را می دهد تا پایگاه داده MongoDB ارتباطی آسان تر داشته باشد.

مزیت دیگری که استفاده از این اسناد دارد، این است که از چندین زبان برنامه نویسی استفاده می کند و انواع داده های اصلی را شکل می دهد. در نظر داشته باشید که وجود اسناد جاسازی شده درون دیتابیس، سبب می شود که اتصال به DataBase کمتر نیاز شود و این موضوع هزینه ها را کاهش می دهد.

MongoDB توانایی سرامد دیگری که دارد، مقیاس پذیری افقی است که سبب می شود MongoDB یک پایگاه کاربردی و مفید برای شرکت هایی باشد که از بیگ دیتا استفاده می کنند.

(احتمالا برایتان سوال ایجاد شده است که مقیاس پذیری افقی چیست؟ به گروهی از سرورها، یک کلاستر گفته می شود. یک سرور، توزیع بار کاری را میان سرورهایی که در بین کلاسترهایی که وجود دارد، توزیع می کند. هربار یک وب سرور تازه به یک کلاستر اضافه می شود تا بتواند مدیریت درخواست های بیشتری که از سمت کاربران می آید را به خوبی انجام دهد. به این کار مقیاس پذیری افقی گفته می شود).

MongoDB می تواند داده ها را در بین یک مجموعه بزرگ از سیستم ها توزیع کند و این به دلیل ویژگی اشتراک گذاری است.

MongoDB پشتیبانی از چندین موتور ذخیره سازی را انجام می دهد. این کار را با ارائه API های موتورهای ذخیره سازی که قابلیت اتصال دارند انجام می دهد و به کاربران این امکان را می دهد تا بتوانند موتورهای ذخیره سازی خودشان را برای MongoDB توسعه دهند.

توسعه دهندگان می توانند با روش های بصری با داده ها کار کنند و با میزان انعطاف پذیری بالا و سازگاری و ایجاد تغییرات سریع، از انواع داده ها و روابط حمایت کند و مورد استفاده قرار گیرد.

MongoDB دارای یک معماری فوق العاده سیستم های هوشمند توزیع شده است که توسعه دهنده ها می توانند اطلاعاتی که برنامه ها و کاربر ها به آن نیاز دارند را در اختیار آن ها قرار دهد.

MongoDB سطوح بالای در دسترس بودن، انسداد کار و مقیاس پذیری را فراهم می کند.

شما می توانید MongoDB را چه در Mainframe و چه در فضای ابری عمومی اجرا کنید. به صورت ساده تر اگر بخواهیم بگوییم، MongoDB در هر نقطه می تواند اجرا شود.

MongoDB چه معایبی دارد؟

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

MongoDB یک استراتژی به نام FailOver دارد. کاربران اقدام به نصب تنها یک گره اصلی در خوشه MongoDB می کنند. در این میان اگر گره اصلی به خوبی کار نکند، گره فرعی به صورت اتوماتیک جایگزین سازی می شود.

البته این جایگزینی و تغییر وضعیت سبب می شود که برنامه پایداری بیشتری داشته باشد، اما آن قدر سریع نیست و تقریبا 60 ثانیه زمان نیاز است تا این اتفاق رخ دهد. حالا این وضعیت را با پایگاه داده Cassandra NoSQL مقایسه کنید. Cassandra NoSQL از چندین گره اصلی پشتیبانی می کند تا اگر یکی از آنها با مشکل مواجه شد، گره دیگر وارد عمل شود و یک زیرساختی که قابلیت دسترسی بالایی دارد، تامین کند.

MongoDB گره اصلی دارد که این گره اصلی سبب می شود سرعت نوشته شدن داده ها روی پایگاه داده، محدود شود.

عیب دیگری که می توانیم به MongoDB بگیریم، این است که فرایند احراز هویت کاربران به صورت پیش فرض در پایگاه داده فعال نیست. البته این موضوع شمشیر دولبه است؛ چرا که هم می تواند محبوب کاربران باشد و هم اینکه هکرها سیستم های غیرایمن MongoDB را به وسیله حملات باج گیرانه مورد هدف قرار می دهند.

سخن آخر

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

سوالات متداول:

MongoDB به زبان برنامه نویسی خاصی محدود نمی شود.

مطالب مشابهی که شاید علاقمند باشید

32 تا حرف داریم ولی باهاش می تونیم حرف بزنیم، ارتباط برقرار کنیم، آثار هنری خلق کنیم، آموزش بدیم، محبت کنیم، نفرت بورزیم و... برای همین دنیای کلمات، برای من جذاب ترین دنیاست. منم تصمیم گرفتم نویسنده بشم تا با 32 تا حرف فارسی، کلی مقاله آموزشی بنویسم و هم معلم باشم و هم نویسنده. سعی می کنم ساده و روان بنویسم تا هیچوقت از یاد گرفتن خسته نشید و لذت ببرید.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید