سرفصل های مقاله
MongoDB یک دیتابیس NoSQL است که جهت ذخیره سازی داده با حجم بالا استفاده می شود. MongoDB یک دیتابیس است که در اواسط دهه ۲۰۰۰ میلادی منتشر شد. این دیتابیس زیر مجموعه ی دیتابیس NoSQL قرار می گیرد.
در ادامه با ما در شتابان هاست همراه باشید تا با ویژگی های MongoDB آشنا شویم.
ویژگی های MongoDB:
- هر بانک اطلاعاتی شامل مجموعه هایی است که به نوبه خود شامل اسناد است. هر سند با تعداد فیلدهای مختلف می تواند متفاوت باشد. اندازه و محتوای هر سند می تواند متفاوت از یکدیگر باشد.
- ساختار سند با نحوه ساختن کلاس ها و اشیاء خود به زبان های برنامه نویسی مربوطه مطابقت دارد. توسعه دهندگان اغلب می گویند که کلاس های آنها ردیف و ستونی نیستند اما دارای یک ساختار واضح با جفت های ارزش کلیدی هستند.
- همانطور که در مقدمه داده های NoSQL مشاهده می شود ، ردیف ها (یا اسنادی که در MongoDB نامیده می شوند) نیازی به داشتن یک طرحواره از پیش تعریف شده ندارند. در عوض ، فیلدها را می توان در fly ایجاد کرد.
- مدل داده موجود در MongoDB به شما امکان می دهد روابط سلسله مراتبی را نشان دهید ، آرایه ها و سایر ساختارهای پیچیده تر را راحت تر ذخیره کنید.
- مقیاس پذیری – محیط های MongoDB بسیار مقیاس پذیر هستند. شرکت ها در سرتاسر جهان کلاسترهایی را تعریف کرده اند که برخی از آنها ۱۰۰+ گره یا نود را با حدود میلیون ها اسناد در دیتابیس دارند.
چرا از MongoDB استفاده کنیم؟
در زیر چند دلیل از اینکه چرا باید از MongoDB استفاده کنید ، ذکر شده است:
- گرا به اسناد – از آنجا که MongoDB یک دیتابیس از نوع NoSQL است ، به جای داشتن داده در یک قالب از نوع رابطه ای ، داده ها را در اسناد ذخیره می کند. این امر باعث می شود MongoDB بسیار انعطاف پذیر و سازگار با شرایط واقعی دنیای تجارت باشد.
- نمایه سازی – برای بهبود عملکرد جستجوها در MongoDB می توان شاخص هایی ایجاد کرد. هر زمینه در یک سند MongoDB می تواند ایندکس شود.
- Replication – MongoDB می تواند در دسترس باشد با مجموعه های ماکت. مجموعه ماکت از دو یا چند نمونه DB mongo تشکیل شده است. هر عضو تنظیم کننده ماکت ممکن است در هر زمان در نقش ماکت اولیه یا ثانویه عمل کند. ماکت اصلی سرور اصلی است که با مشتری تعامل دارد و کلیه عملیات خواندن و نوشتن را انجام می دهد. ماکت های ثانویه یک نسخه از داده های اولیه را با استفاده از همانند داخلی ساخته می کنند. هنگامی که یک ماکت اصلی از کار می افتد ، مجموعه ماکت به طور خودکار به ثانویه تغییر می یابد و سپس به سرور اصلی تبدیل می شود.
- تعادل بار – MongoDB با تقسیم داده ها در چندین نمونه MongoDB از مفهوم خرد کردن برای مقیاس افقی استفاده می کند. MongoDB می تواند بر روی چندین سرور اجرا شود ، تعادل بار و / یا داده های کپی را برای تعادل و نگه داشتن سیستم در صورت خرابی سخت افزار اجرا کند.
مدل سازی داده ها در MongoDB:
همانطور که از بخش مقدمه دیدیم ، داده ها در MongoDB دارای یک طرحواره انعطاف پذیر است. برخلاف پایگاه داده های SQL ، جایی که شما باید قبل از وارد کردن داده ها ، یک جدول اعلام کرده باشید ، مجموعه های MongoDB ساختار اسناد را اجرا نمی کند. این نوع انعطاف پذیری همان چیزی است که MongoDB را بسیار قدرتمند می کند.
هنگام مدل سازی داده ها در Mongo ، موارد زیر را در خاطر داشته باشید:
- نیازهای برنامه چیست؟ – به نیازهای تجاری برنامه نگاه کنید و ببینید چه داده و نوع داده های مورد نیاز برنامه کاربردی است. براین اساس ، اطمینان حاصل کنید که ساختار سند مطابق تصمیم گیری می شود.
- الگوهای بازیابی داده ها چیست – اگر استفاده از کوئری سنگین را پیش بینی می کنید ، برای بهبود کارایی کوئری ها ، استفاده از ایندکس ها را در مدل داده خود در نظر بگیرید.
- آیا مکرراً درج ها ، به روزرسانی ها و حذف ها در دیتابیس اتفاق می افتند – در استفاده از ایندکس ها دوباره تجدید نظر کنید یا در صورت لزوم در طراحی مدل سازی داده های خود از اصلاح سایه بان استفاده کنید تا کارایی محیط کلی MongoDB خود را بهبود ببخشید.
تفاوت بین MongoDB و RDBMS:
دو تا تفتوت اصلی MongoDB و RDBMS:
- بانکهای اطلاعاتی رابطه ای برای اجرای یکپارچگی داده ها شناخته شده اند. این یک الزام صریح در MongoDB نیست.
- RDBMS نیاز دارد که ابتدا داده ها عادی شود تا بتواند از سوابق جلوگیری کند و از نسخه های تکثیر استفاده کند. عادی سازی داده ها به جدول بیشتری نیاز دارد ، که در نتیجه منجر به پیوستن جدول بیشتر می شود ، بنابراین به کلیدها و ایندکس های بیشتری احتیاج دارید.
با شروع رشد بانکهای اطلاعاتی ، عملکرد می تواند به مسئله تبدیل شود. باز هم این یک الزام صریح در MongoDB نیست. MongoDB انعطاف پذیر است و نیازی به داده ها نیست که ابتدا نرمال شوند.
امیدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید. 🙂