Mongodb چیست؟ معرفی، معماری، ویژگیها و مثال

Mongodb چیست؟ معرفی، معماری، ویژگیها و مثال

Mongodb  چیست؟ معرفی، معماری، ویژگیها و مثالWhat is MongoDB? Introduction, Architecture, Features Example

Mongodb چیست؟ معرفی، معماری، ویژگیها و مثال

توسط : admin
Mongodb یک پایگاه داده غیررابطه ای است که جهت ذخیره سازی داده¬هایی با حجم بالا استفاده می-شود. Mongodb یک پایگاه داده است که در اواسط سال 2009 ظهور کرد. این پایگاه داده در گروه پایگاه داده غیررابطه ای قرار دارد.

سلام به همه دوستان .

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

 

ویژگی­های Mongodb

 

  1. هر پایگاه داده شامل مجموعه ای است که به نوبه خود شامل اسناد می­باشد. هر سند می­تواند به همراه تعداد فیلدهای مختلف متفاوت باشد. اندازه و محتوای هر سند می­تواند متفاوت از یکدیگر باشد. 

     
  2. ساختار این سند بیشتر با نحوه ساخت کلاس­ها و اشیاء توسط توسعه دهندگان در زبان­های برنامه نویسی مربوط به خودشان همخوانی دارد.  اغلب توسعه دهندگان خواهند گفت که کلاس­های آنها ردیف­ها و ستون­ها نیستند، اما دارای ساختار واضحی به همراه جفت­های کلید مقدار هستند.

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

 

مقیاس پذیری یا Scalability 

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

 

مثال Mongodb

مثال زیر نشان می­دهد که چگونه یک سند می­تواند در Mongodb مدل سازی شود.

  1. فیلد _id توسط Mongodb اضافه می­شود تا سند را بطور مشخص در مجموعه شناسایی کند. 
     
  2. آنچه که شما می­توانید به آن توجه داشته باشید این است که Order Data (شناسه سفارش، محصول و کمیت) که در RDBMS معمولاً در یک جدول جداگانه ذخیره خواهد شد، در Mongodb در واقع به عنوان یک سند تعبیه شده در خود مجموعه ذخیره می­شود. این یکی از تفاوت­های کلیدی در نحوه مدل سازی داده­ ها در Mongodb است.

 

نمونه یک سند در مونگو دی بی


 

مولفه­ های کلیدی معماری مانگو دی بی 

 id_ :  

این فیلدی است که در هر سند Mongodb مورد نیاز است. فیلد id_ یک مقدار منحصر بفرد را در سند Mongodb نشان می­دهد. فیلد id_  همانند کلید اولیه ­ی سند است. اگر شما یک سند جدید را بدون فیلد id_ ایجاد کنید، Mongodb بطور خودکار این فیلد را خواهد ساخت. بنابراین بعنوان مثال، اگر به مثال جدول مشتری بالا نگاه کنیم، Mongodb یک شناسه خاص 24 رقمی را به هر سند در مجموعه اضافه خواهد کرد. 

 

نمونه یک جدول یا سند در مونگو دی بی


 

مجموعه یا Collection  :

مجموعه یک گروه بندی از اسناد Mongodb است. یک مجموعه معادل یک جدول است که در هر پایگاه داده رابطه ای دیگر مانند Oracle  و  MSSQL ایجاد می­شود. یک مجموعه درون یک پایگاه داده موجود است. همانطور که از مقدمه دریافت میشود مجموعه­ها هیچ گونه ساختاری را اعمال نمی­کنند.

 

اشاره گر یا Cursor  :

این یک نشانگر برای مجموعه نتایج یک پرس و جو است. مشتریان می­توانند از طریق اشاره گر بازیابی داده­ ها را انجام دهند.

 

پایگاه داده یا Database :

این یک محفظه برای مجموعه­ ها است مانند RDBMS که در آن یک محفظه برای جداول وجود دارد. هر پایگاه داده مجموعه فایل­های خود را بر روی سیستم فایل ارائه می­دهد. یک سرور مانگو دی دی می­تواند چندین پایگاه داده را ذخیره کند. 

 

سند یا Document  :

یک رکورد در یک مجموعه Mongodb اساساً یک سند نامیده می­شود. سند، به ترتیب، شامل فیلد نام و مقادیر خواهد بود. 

 

فیلد یا Field  :

یک جفت نام مقدار در یک سند. یک سند دارای صفر یا تعدادی فیلد است. فیلدها نظیر ستون­ها در پایگاه­های داده رابطه­ای هستند. 

 

نمودار زیر نمونه ای از فیلدها با جفت­های کلید مقدار را نشان می­دهد. بنابراین در مثال زیر CustomerID و 11 یکی از جفت­های کلید مقدار تعریف شده در سند است. 

نمونه کلید مقدار در مونگو دی بی
مثالی از جفت­های کلید مقدار

 

JSON :

این اصطلاح بعنوان JavaScript Object Notation شناخته می­شود. این یک قالب متنی ساده و خوانا برای انسان جهت انتقال داده­های ساختاریافته است. JSON درحال حاضر در بسیاری از زبان­های برنامه نویسی پشتیبانی می­شود.

تنها یک نکته حساس درمورد تفاوت بین فیلد _id و یک فیلد معمول مجموعه. فیلد _id برای شناسایی منحصر بفرد اسناد در یک مجموعه استفاده و بطور خودکار توسط Mongodb در زمانی که مجموعه ساخته می­شود افزوده می­شود.

 

چرا از Mongodb استفاده می­کنیم؟

معلومه چونکه بیکاریم ؟! شوخی کردم با هم دلایلش رو بررسی میکنیم .

  1. سند گرا :  از آنجایی که Mongodb یک نوع پایگاه داده غیررابطه ای است، بجای داشتن داده­ها در قالب رابطه ­ای، آن­ها را در اسناد ذخیره می­کند. این امر باعث می­شود که Mongodb بسیار انعطاف پذیر و سازگار با شرایط و الزامات کسب و کار دنیای واقعی باشد. 
     
  2. پرس و جوهایAd hoc – Mongodb : از جست و جو براساس فیلد، جست و جوهای محدوده، و جست و جوی منظم عبارت پشتیبانی می­کند. پرس و جوها می­توانند برای بازگرداندن فیلدهای خاص درون اسناد ایجاد شوند.
     
  3. شاخص گذاری : شاخص­ها می­توانند برای بهبود عملکرد جست و جوها در Mongodb ایجاد شوند. هر فیلد در یک سند Mongodb می­تواند شاخص گذاری شود. 
     
  4. همانند سازی : Mongodb می­تواند قابلیت دسترسی بالا را با replicasets فراهم کند. یک replica set متشکل از دو یا چند نمونه Mongodb است. هر عضو replica set ممکن است در هر زمان در نقش یک replica اولیه یا ثانویه عمل کند. replica اولیه سرور اصلی است که با مشتری در تعامل است و تمامی عملیات خواندن/نوشتن را انجام می­دهد. Replica­های ثانویه یک نسخه از داده­ های replica اولیه را با استفاده از همانند سازی درونی نگهداری می­کنند. هنگامی که یک replica اولیه از کار می افتد، replicaset بطور خودکار با replica ثانویه جا به جا و سپس تبدیل به سرور اصلی می­شود.
     
  5. تعادل بارگزاری : Mongodb از مفهوم خرد کردن به اجزاء کوچکتر برای اندازه گیری افقی با جداسازی داده­ ها در چندین نمونه از Mongodb استفاده می­کند. Mongodb می تواند برروی چندین سرور اجرا شود، بارگذاری را متعادل سازی کند و یا از داده ­ها برای بالا نگه داشتن سیستم و اجرا در صورت مشکل در نرم افزار نسخه برداری کند


 

مدل سازی داده­ ها در Mongodb

مگه مونگو دی بی مدل سازی هم داره ؟ ! قطعا داره حالا چون غیر رابطه ای شد که دلیل نمیشه مدل سازی نداشته باشه.

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

در زمان مدل سازی داده در مانگو دی بی ، موارد زیر را به خاطر داشته باشید :

  1. نیازهای برنامه کدامند؟ :  به نیازهای تجاری برنامه نگاهی بیاندازید و ببینید چه داده­ ها و چه نوع داده­ هایی برای برنامه مورد نیاز هستند. بر طبق این موضوع، اطمینان حاصل کنید که ساختار  این سند بر همین اساس تنظیم شده‌است . 
     
  2. الگوهای بازیابی داده چه هستند: اگر استفاده از یک پرس و جوی مهم را پیش بینی می­کنید، پس استفاده از شاخص­ها را در مدل داده­ای خود برای بهبود کارآیی پرس و جوها در نظر بگیرید.
     
  3. آیا درج­، به روزرسانی­ و حذف­ های مکرر در پایگاه داده رخ می­دهند؟  : استفاده از شاخص­ها یا کوچک کردن کالکشن ها به مجموعه های کوچکتر را در صورت نیاز در طراحی مدل سازی داده برای بهبود کارآیی محیط کلی Mongodb خود مجدداْ در نظر بگیرید.

 

تفاوت بین MongoDB و RDBMS

RDBMS

MongoDB

تفاوت

جدول

مجموعه

در RDBMS، جدول حاوی سطرها و ستون­هایی است که برای ذخیره داده استفاده می­شوند، در حالی که در Mongodb این ساختار بعنوان یک مجموعه شناخته می­شود. مجموعه شامل اسنادی است که به نوبه خود دربرگیرنده ­ی فیلدها است، که به ترتیب جفت­های کلید مقدار هستند.

سطر

سند

در RDBMS، سطر یک مورد داده واحد و بطور ضمنی ساختار یافته را نشان می­دهد. در Mongodb داده در اسناد ذخیره می­شود.

ستون

فیلد

در RDBMS، ستون مجموعه ای از مقادیر داده را مشخص می­کند. این ستون­ها در Mongodb بعنوان فیلد شناخته می­شوند

اتصالات

اسناد تعبیه شده

در RDBMS، داده­ها گاهی اوقات در جداول مختلف پخش می­شوند و به منظور نشان دادن یک نمای کامل از تمامی داده­ها، گاهی اوقات یک اتصال در سراسر جداول شکل می­گیرد. در Mongodb، داده معمولاً در یک مجموعه واحد ذخیره می­شود، اما با استفاده از اسناد تعبیه شده جدا می­شود. بنابراین مفهوم اتصالات در Mongodb وجود ندارد.

 

جدا از تفاوت­های اصطلاحی، تعدادی تفاوت دیگر وجود دارد که در زیر به آنها اشاره میشود .

  1. پایگاه­های داده ارتباطی به جهت اعمال یکپارچگی داده شناخته شده هستند. این  امر در Mongodb الزامی نیست . 
     
  2. RDBMS نیازمند این است که داده­ها ابتدا نرمال سازی شوند، بنابراین این امر می­تواند از رکوردهای جدا افتاده پیشگیری و از نرمال سازی داده نسخه برداری کند از این رو نیاز به جداول بیشتری دارد که منجر به اتصالات جدول بیشتر خواهد شد، و در نتیجه نیاز به کلیدها و شاخص­های بیشتر دارد.

 

برخی شرکتها که از مونگو دی بی استفاده میکنند :

 

نام شرکتسایتکشوردرآمد به دلارنفرات شرکت
Dovetail Recruitment Ltddovetailrecruitment.co.ukUnited Kingdom1M-10M1-10
TORI Global Ltd.toriglobal.comUnited Kingdom10M-50M50-200
FASHION NOVAfashionnova.comUnited States100M-200M500-1000
FreshRealm, LLCfreshrealm.coUnited States10M-50M200-500
Golingolin.comUnited States200M-1000M1000-5000

 


 


 

 


 

نظرات :

در عرض چند دقیقه برای ایجاد حساب

کاربری خود اقدام کنید


اکنون حساب کاربری خود را ایجاد کنید!


ایجاد حساب کاربری

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