- خانه
- نوشتارهای علمی
- معرفی ابزار مونگودیبی(MongoDB)
معرفی ابزار مونگودیبی(MongoDB)
مقدمه
با افزایش میزان دادهها در سراسر جهان، موجی از گرایشها به سوی پایگاههای داده غیررابطهای که اصطلاحا به آنها "NoSQL" میگویند بوجود آمده است. شرکتها و سازمانها به دنبال روشهای جدید برای مدیریت سیلی از دادهها و ابزارها و سیستمهای مدیریت پایگاه داده که جایگزین ومتمایز از سیستمهای پایگاه داده سنتی هستند. در اینجا میخواهیم یکی از این پایگاههای داده به نام مونگو دی بی((MongoDb را توصیف کنیم.
مونگو چیست؟
به عنوان یک تعریف، MongoDB یک پایگاهداده منبع باز است که از یک مدل داده سندگرا و یک زبان پرسوجو غیر ساختاریافته استفاده میکند. این پایگاهداده امروزه یکی از قویترین سیستمهای پایگاههای دادهای است. مونگو از این جهت به عنوان یک ابزار NoSQL محسوب میشود زیرا از ردیفها و ستونهای معمول در پایگاههای داده رابطهای استفاده نمیکند. معماری مونگو براساس مجموعهها و اسناد ساخته شده است. واحد پایه دادهها در این پایگاه داده شامل مجموعهای از جفتهای کلید و مقدار) Key-Value) میباشد. این معماری اجازه میدهد اسناد با ستونها و ساختارهای مختلف ساخته شوند. این پایگاهداده از نوعی فرمت ذخیرهسازی اسناد به نام BSON استفاده میکند که نوع باینری اسناد به سبک JSON هستند. مدل دادهای که مونگو دنبال میکند بسیار انعطافپذیر است و به شما اجازه میدهد دادههای چند متغیره را بدون نیاز چندانی به ایندکسسازی، دسترسی به دادهها و قوانین اعتبار سنجی ترکیب و ذخیره نمایید. برای ایجاد تغییرات پویا در سیستم در خیلی از مواقع نیازی به متوقف کردن کل سیستم نیست. بنابراین تمامی این گزینهها بدین معنی است که شما میتوانید دادههای خود را قدرتمندتر سازید تا اینکه بخواهید وقت خود را صرف آمادهسازی داده برای پایگاه داده کنید.
معماری پایگاه داده NoSQL مونگو
پایگاه داده(Database): در تعریفی ساده میتوان آن را به عنوان ظرف فیزیکی دادهها نامید. هر یک از پایگاههای داده دارای مجموعهای از فایلهای مختص به خود میباشند و چندین پایگاهداده میتوانند بر روی یک سرور مونگو وجود داشته باشند.
مجموعه (Collection): گروهی از اسناد پایگاهداده یک مجموعه نامیده میشوند. معادل مجموعه در پایگاههای رابطهای یک جدول است. کل یک مجموعه در یک پایگاهداده واحد وجود دارد. درون مجموعه، اسناد مختلف میتوانند فیلدهای متنوعی داشته باشند، اما اغلب اسناد درون یک مجموعه هدف مشابه داشته یا در خدمت یک هدف نهایی هستند.
سند(Document): مجموعهای از جفتهای کلید-مقدار را میتوان به عنوان یک سند در نظر گرفت.
وجه تمایز مونگو نسبت به پایگاههای داده رابطه ای
ما میتوانیم بطور مستقیم پایگاه داده غیر رابطه ای مونگو را با رابطه ای مقایسه کنیم و اصطلاحات متنوع را درهر دو سیستم معادلسازی کنیم: جدول در پایگاه رابطهای معادل مجموعه در مونگو است و به ترتیب ستون معادل فیلد، ردیف معادل سند و ترکیب دو یا چند جدول معادل اسناد تعبیه شده است . در جدول زیر معادلسازیها به نمایش در آمده است.
MongoDB |
RDBMS |
Document oriented and non-relational database |
Relational database |
Document based |
Row based |
Field based |
Column based |
Collection based and key value pair |
Table based |
Gives Javascript client for querying |
Doesn’t give Javascript for querying |
Relatively easy to setup |
Comparatively not that easy to setup |
It is unaffected by SQL injection |
It is quite vulnerable to SQL injection |
Ideal for hierarchical data storage |
Not good for hierarchical data storage |
Has dynamic schema |
Contains predefined schema |
100 times faster |
Through increasing RAM vertical scaling can happen |
It is horizontally scalable through sharding |
Through increasing RAM vertical scaling can happen |
چرا به تکنولوژی مونگو نیازمندیم؟
این تکنولوژی یکی از بزرگترین مشکلات سیستمهای پایگاه داده سنتی را برطرف کرد، یعنی مقیاسپذیری. با نیازهای روزافزون کسب و کارها، سیستمهای پایگاه داده نیز نیاز به ارتقا دارند. مونگو دارای مقیاسپذیری استثنایی است. این امر باعث میشود که جمعآوری اطلاعات ساده شده و یکپارچهسازی پیوسته و خودکار را فراهم میکند. همراه با این مزایا دلایل متعددی وجود دارد که ما به مونگو نیاز داریم:
- در حالی که برنامه در حال مقیاسپذیری میباشد نیازی نیست که سیستم خاموش باشد
- پردازش درون حافظهای
- جستجوی متن
- پردازش تصویر
- تکثیر دادهها
- پایگاه داده مونگو بسیار به صرفه است
علاوه بر این کسب و کارهای گوناگون هر روز بیشتر به این امر اعتقاد پیدا میکنند که این پایگاه داده بهتر میتواند نیازهای آنها را برطرف نماید. این موارد شامل:
- مونگو ترکیبی مطمئن از فناوری و داده را برای مزیت رقابتی فراهم میکند
- برای کاربرد در مواقع بحرانی بسیار مناسب است زیرا ریسک را تا حد زیادی کاهش میدهد
- ایجاد ارزش را سرعت بخشیده و هزینه مالکیت را کاهش میدهد
- این پایگاه داده کاربردهایی را ایجاد میکند که از طریق پایگاههای داده سنتی و رابطهای امکان پذیر نیست
دسته بندی
- معرفی ابزار 28
- مطالعه موردی 27
- کتاب بخوانیم 52
- معرفی کتاب 32
- مرور منابع علمی 36
- اینفوگرافیک 7
- تجربه داخلی 4
- مصاحبه 22
- معرفی کسب و کار داده محور 10
- معرفی سرویس 7