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

بررسی پایگاه داده MongoDB:
MongoDB نوعی پایگاه داده است. اما پایگاه داده چیست؟ پایگاه داده مکانی برای دسته بندی و ذخیره اطلاعات است. این ذخیره سازی به گونهای است که مدیریت و دسترسی و همینطور به روز رسانی اطلاعات ذخیره شده به راحتی انجام میشود. ساده ترین مثالی که برای درک مفهوم پایگاه داده میتوانید در نظر بگیرید، دفترچه تلفن است. در این دفترچه، شماره افراد به همراه نامشان ذخیره شده است و هر زمانی که بخواهید میتوانید به آنها دسترسی داشته باشید یا آنها را ویرایش کنید. زمانی که حجم اطلاعات بالا میرود (به طور مثال در سیستم ها و نرم افزارها)، لازم است تا تمامی اطلاعات در مکانی ضبط و نگهداری شوند و در صورت لزوم، قابل دسترسی باشند. هر پایگاه داده، اطلاعات را در قابل سطرها و ستونهای یک جدول نگهداری میکند. البته شیوه این طبقه بندی در پایگاه دادههای مختلف با یکدیگر متفاوت است. به طور مثال شیوه ذخیره سازی SQL و MongoDB با هم متفاوت است.
انواع پایگاه داده
پایگاه دادههای قدیمی و جدید با یکدیگر، تفاوتهای اساسی دارند. پایگاه دادههای قدیمی معمولا به صورت شبکهای یا سلسله مراتبی بودند در صورتی که پایگاهای جدید بیشتر در قالب SQL و NoSQL و پایگاه دادههای رابطه ای هستند که در زیر پایگاه داده NoSQL که تقریبا میتوان گفت مهمترین پایگاه داده در بین پایگاه دادههای جدید است را به شما معرفی خواهیم کرد.
پایگاه داده NoSQL
عبارت NoSQL مخف Not Only SQL DataBase یکی از انواع پایگاه دادههای پرکاربرد است. این پایگاه داده، با دادههای مختلفی مانند Key-Value، داده های مبتنی بر مستند و دادههای گرافی و از این قبیل کار میکند. در واقع حجم عظیمی از دادهها در این پایگاه داده قابل ذخیره سازی هستند و می توان از آن به عنوان جایگزین مناسبی برای پایگاههای داده رابطهای استفاده کرد.

MongoDB چیست؟
MongoDB یا مونگو دیبی، یکی از پایگاه دادههای NoSQL یا می توان گفت یکی از معروف ترین آنهاست. ساختار MongoDB انعطاف پذیر است و به همین دلیل در پروژههایی که حجم بالایی از دادهها در آنها جریان دارد، از MongoDB استفاده میشود. MongoDB رایگان و اوپن سورس است. نوع دادههایی که این دیتابیس با آنها کار میکند، دادههای Document – Oriented یا مستند گرا است. MongoDB در سیستم عاملهای لینوکس، مک و ویندوز قابلیت دسترسی دارد. مقادیری که در MongoDB ذخیره میشوند، توسط دو کلید اولیه یا Primary Key و کلید ثانویه و یا Secondary Key مورد استفاده قرار میگیرند.
در MongoDB مجموعهای از مقادیر قرار دارند که صورت سند یا Document ذخیره شدهاند و اندازههای متفاوتی دارند. MongoDB میتواند دادههایی که پیچیده هستند مانند دادههای سلسله مراتبی یا دادههای آرایه ای را در خود ذخیره کند.
ویژگیهای MongoDB
اگر بخواهیم ویژگیهای MongoDB را بگوییم میتوانیم به موارد زیر اشاره کنیم.
- شیوه ذخیره دادهها در MongoDB به علت مستندگرا بودن این دیتابیس، در مقایسه با سایر دیتابیسها، انعطاف پذیر تر است.
- در این دیتابیس، از شاردینگ یا Sharding برای مدیریت دادهها و تقسیم بندی آنها استفاده میشود. شاردینگ دادهها را تکه تکه میکند. این کار در لود بالای شبکه صوت میگیرد و دیتابیس به چند بخش تقسیم میشود. این کار به راحت تر شدن روند پاسخگویی به درخواستهای سمت سرور، موثر است.
- به دلیل اینکه در این دیتابیس، دادهها توسط دو کلید اولیه و کلید ثانویه در دسترس هستند، زمان پردازش داده و دسترسی به آنها سرعت بالاتری دارد.
- MongoDB خصوصیت دیگر نیز دارد که با نام همانند سازی شناخته میشود. در این خصوصیت، دادهای به عنوان داده اصلی انتخاب می شود و از آن پند کپی تهیه میشود و در بخشهای دیگری از دیتابیس ذخیره میشود. این کار در صورتی که این داده اصلی خراب شود و یا از بین برود بسیار کارآمد خواهد بود.
MongoDB چگونه کار می کند؟
دادهها در دیتابیسهای رابطهای به صورت رکورد (Record) ذخیره میشود اما در MongoDB، داده ها به صورت سند نگهداری میشود. این سندها از نوع BSON یا Binary JSON و دارای فیلدهای مقدار و کلید است. کدهای نوشته شده در MongoDB برای اجرا شدن نیازمند رابطی به نام Mongo Shell است. این رابط، پل ارتباطی میان برنامه نویسان و دیتابیس است و توسط آن قادر به آپدیت کردن دادهها و ارسال Query هستند.

MongoDB چه معایب و مزایایی دارد؟
در دیتابیسهای رابطهای، مفهومی به نام Schema یا اسکیما وجود دارد. این مفهوم به این معنا است که ساختارهای خاصی برای دادهها تعریف شده است و در نتیجه مدلهای قابل ذخیره، محدود هستند. در MongoDB و سایر پایگاه دادههای NoSQL، ساختار خاصی تعریف نشده است و محدودیتی برای ذخیره دادهها وجود ندارد. از دیگر مزیتهای MongoDB مقیاس پذیری آن است به صورتی که آن را برای استفاده در پروژههایی با داده های بزرگ، مناسب میکند. در مقابل این مزایا، معایبی نیز در MongoDB وجود دارد. یکی از این معایب، ضعف این دیتابیس در استفاده از Foreign Key است. این ضعف باعث میشود که دادهها پایداری کافی را نداشته باشند و باعث از بین رفتن یکپارچگی سیستم شود. یکی دیگر از معایب دیگر این دیتابیس، تعریف کردن یک گره تحت عنوان گره اصلی در خوشه بندی دادههایی است که در دیتابیس موجود هستند. در صورتی که به هر دلیل این گره از بین برود، نظم زیرگرههای این گره نیز از بین خواهد رفت. البته این مشکل در دیتابیس کاساندرا (Cassandra) وجود ندارد.

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