برنامه نویسان در توسعه وب و اپلیکیشن از پایگاه دادههای مختلفی استفاده میکنند. پایگاه دادههای مبتنی بر SQL و یا NoSQL طبق نیازمندیهای سیستم و اولویت برنامه نویسان کاربردهای مختلفی دارند. در این مطلب به توضیح پایگاه دادهها و انواع آنها میپردازیم. سپس یاد میگیریم که پایگاه داده mongo db چیست و چه کاربردهایی دارد.
پایگاه داده چیست؟
قبل از اینکه بدانیم mongo db چیست بهتر است با مفهوم پایگاه داده و انواع آن آشنا شویم. پایگاه داده به ذخیره و دسته بندی اطلاعات گفته میشود به نحوی که دسترسی، مدیریت و به روزرسانی این اطلاعات راحت باشد. تصور کنید که دفتر تلفن را بر اساس نام، شماره و سایر اطلاعات افراد پر کرده اید. این دفترچه تلفن یک پایگاه داده محسوب میشود که شامل اطلاعات وارد شده است و شما در زمان نیاز، میتوانید بر اساس نامها و یا شمارهها از آن استفاده کنید.
در سیستمهای نرم افزاری حجم بالای اطلاعات نیاز به نگهداری و مرتب سازی دارد تا در صورت لزوم، با پردازش سریع و از راههای مختلف بتوان به آنها دسترسی پیدا کرد. یک پایگاه داده دارای جدول هایی (Table) است که اطلاعات را در سطر و ستونهای خود و منطبق با استانداردهای تعریف شده جای میدهد. ساختار نگهداری از داده ها، در دیتابیسها متفاوت است.
انواع پایگاه داده ها
در گذشته پایگاه دادهها به شکل سلسله مراتبی و یا شبکه ای وجود داشتند. اما امروزه پایگاه دادههای رابطه ای (Relational)،SQL و NoSQL بیشتر مورد استفاده قرار میگیرند. شیوه دسترسی به اطلاعات موجود در این پایگاه دادهها بر اساس نوع آنها متفاوت است. در ادامه به معرفی پایگاه داده های NoSQL می پردازیم و با یکی از مهمترین انواع آن آشنا میشویم.
پایگاه داده NoSQL چیست؟
NoSQL که مخفف عبارت Not Only SQL DataBase است، انواعی از پایگاه دادهها هستند که در سطحی وسیعتر از پایگاه دادههای SQL کار میکنند و با مدلهای مختلف دادهها مانند کلید – مقدار (Key-Value)، دادههای گرافی، مبتنی بر مستند و غیره سر و کار دارند. این پایگاه دادهها با مجموعههای عظیمی از دادههای توزیع شده کار میکنند و جایگزینی برای دیتابیسهای رابطه ای هستند که داده را در جدول ذخیره میکردند.
mongo db چیست؟
مونگو دیبی (Mongo DB) یکی از معروفترین پایگاه دادههای No SQL است که ساختار منعطفی دارد و بیشتر در پروژه هایی با حجم بالای داده استفاده میشود. این پایگاه داده پلتفرمی متن باز و رایگان است و با مدل دادههای مستند گرا (Document – Oriented) کار میکند و در ویندوز، مکینتاش و لینوکس قابل استفاده است. مقادیر داده ای ذخیره شده در مونگو دیبی، با دو کلید اولیه (Primary Key) و ثانویه (Secondary Key) مورد استفاده قرار میگیرند.
mongo db شامل مجموعه ای از مقادیر است. این مقادیر به صورت سندهایی (Document) هستند که با اندازههای مختلف، انواع مختلفی از دادهها را در خود جای داده اند. این مسئله باعث شده که مونگو دیبی بتواند داده هایی با ساختار پیچیده مانند دادههای سلسله مراتبی و یا آرایه ای را در خود ذخیره کند.
ویژگیهای mongo db چیست؟
- مونگو دیبی به علت مستند گرا بودن مدل ذخیره دادهها در مقایسه با دیتابیسهای رابطه ای بسیار منعطفتر و مقیاس پذیرتر است و بسیاری از نیازمندیهای کسب و کارها را برطرف میکند.
- این پایگاه داده برای تقسیم دادهها و مدیریت بهتر سیستم از شاردینگ (Sharding) استفاده میکند. شاردینگ به معنی تکه تکه کردن است و در لود بالای شبکه انجام میشود. به گونه ای که دیتابیس به چند زیربخش تقسیم میشود تا روند پاسخ دهی به درخواست هایی که از سمت سرور میآید، راحتتر شود.
- دادهها با دو کلید اولیه و ثانویه قابل دسترسی هستند و هر فیلدی قابلیت کلید شدن را دارد. این امر زمان دسترسی و پردازش داده را بسیار سریع میکند.
- همانند سازی (Replication ) یکی دیگر از خصوصیات مهم مونگو دیبی است. در این تکنیک از یک داده به عنوان داده اصلی کپی هایی تهیه شده و بخشهای دیگری از سیستم پایگاه داده ذخیره میشود. در صورت از بین رفتن و یا مخدوش شدن این داده، دادههای کپی شده به عنوان داده اصلی و جایگزین مورد استفاده قرار میگیرند.
روش کار mongo db چیست؟
در دیتابیسهای رابطه ای دادهها به شکل رکورد (Record) نگهداری میشوند اما در مونگو دیبی، ساختار نگهداری دادهها به شکل سند است. هر سند از نوع Binary JSON یا BSON است و دارای فیلدهای کلید و مقدار میباشد.
برای اجرا کردن کدهایی که در mongo db نوشته شده است باید از طریق Mongo Shell اقدام کرد. مونگو شل رابط تعاملی دیتابیس و برنامه نویس محسوب میشود و به آنها اجازه ارسال کوئری (Query) و به روزرسانی دادهها را میدهد.
مزایا و معایب استفاده از mongo db چیست؟
دیتابیسهای رابطه ای دارای اسکیما (Schema) هستند. یعنی ساختار خاصی برای داده هادر نظر گرفته و مدلهای محدودی را ذخیره میکنند. اما مونگو دیبی و به طور کلی دیتابیسهای NoSQL در برابر پذیرش داده هایی با توع مختلف بسیار منعطف هستند و این مزیت مهمی برای برنامه نویسان محسوب میشود. مقیاس پذیری این پایگاه داده باعث استفاده از آن در پروژه هایی میشود که با کلان دادهها (Big Data) سروکار دارند.
علاوه بر مزایای گفته شده مشکلاتی نیز در مونگو دیبی وجود دارد که ممکن است دردسرساز شود. این دیتابیس در استفاده از کلید خارجی (Foreign Key) برای دادهها ضعف دارد و ممکن است پایداری دادهها و یکپارچگی سیستم را به هم بریزد. همچنین در خوشه بندی دادههای موجود در این پایگاه داده، تنها میتوان یک گره (Node) را به عنوان گره اصلی (Master) انتخاب کرد که اگر از بین برود، ممکن است مرتب سازی زیرگرههای آن از بین برود. این مشکل در پایگاه داده کاساندرا (Cassandra) برطرف شده است.
جمع بندی
معمولا mongo db در سطوح بالاتر توسعه نرم افزار و برنامه نویسی استفاده میشود. این پایگاه داده بسیار قدرتمند است و ساختار ذخیره داده آن، باعث تمایز آن از سایر پایگاه دادهها شده است. همچنین کوئریهای ساده ای دارد و کار با آن، برای کسانی که تجربه حرفه ای در انجام پروژههای مختلف برنامه نویسی دارند کار چندان سختی نیست.