تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

    MongoDB چیست؟


    ۲۷ تیر ۱۳۹۹
    mongodb چیست؟

    MongoDB معروف‌ترین دیتابیس NoSQL است که متن‌باز و براساس داکیومنت‌ (document-oriented) است. NoSQL به این معنا است که این دیتابیس، از نوع دیتابیس‌های غیر رابطه‌ای (non-relational) است. به عبارتی ساختار MongoDB همانند دیتابیس‌هایی که ساختارشان براساس جداول رابطه‌ای است، ایجاد نشده است، اما روش‌های کاملا متفاوتی برای ذخیره‌سازی و بازیابی دیتا فراهم می‌کند. این فرمت ذخیره‌سازی، BSON نام دارد (همانند فرمت JSON).

    در زیر مثالی از ساختار یک داکیومنت ذخیره‌شده در MongoDB را مشاهده می‌کنید:

    {
      title: 'Geeksforgeeks',
      by: 'Harshit Gupta',
      url: 'https://www.geeksforgeeks.org',
      type: 'NoSQL'
    } 

    دیتابیس‌های براساس SQL، داده‌ها را در قالب جداول ذخیره می‌کند. این داده‌ها را در مدل‌های از پیش تعریف شده ذخیره می‌کند که برای برنامه‌های در حال رشد امروزی، مناسب نیستند. برنامه‌های مدرن و امروزی، بیش از هر زمانی شبکه‌ای و تعاملی هستند. این برنامه‌ها روز به روز دیتا‌های بیشتری را ذخیره می‌کنند، در عین حال نیاز دارند تا به دیتاهای بیشتری دسترسی پیدا کنند.

    سیستم مدیریت دیتابیس‌های رابطه (Relational Database Management System و یا RDBMS) گزینه مناسبی برای کار با big data، با توجه به طراحی آن‌ها و عدم مقیاس‌پذیری از نظر افقی (افزودن سرور‌های بیشتر)، نیست. اگر دیتابیس بر روی یک سرور اجرا شود، به محدودیت در افزایش مقیاس برخورد خواهد کرد. دیتابیس‌های NoSQL مقیاس‌پذیرتر هستند و کارایی و عملکرد بهتری را فراهم می‌کنند. MongoDB از دیتابیس‌های NoSQL است که می‌توان با افزودن سرور‌های بیشتر، آن را گسترش داد، همچنین کارآمدی و بهره‌وری، با توجه به ساختار براساس داکیومنت، افزایش می‌یابد.

    تفاوت MongoDB و RDBMS

    • RDBMS یک اسکیما (schema) یا طرح پایه معمولی دارد که تعداد جداول و رابطه میان آن‌ها را نمایش می‌دهد، درحالی که MongoDB براساس داکیومنت است. در واقع در آن هیچ مفهومی تحت عنوان طرح پایه و یا رابطه وجود ندارد.
    • تراکنش‌های پیچیده در MongoDB پشتیبانی نمی‌شود، زیرا عملیات join پیچیده دردسترس نیستند.
    • MongoDB اجازه ایجاد ساختار‌های پیچیده و مقیاس‌پذیر براساس داکیومنت را می‌دهد. برای مثال، یک داکیومنت در یک کالکشن (collection) می‌تواند ۲ فیلد داده داشته باشد، درحالی که داکیومنت دیگر در همان کالکشن می‌تواند ۴ فیلد داده داشته باشد.
    • MongoDB به دلیل تکنیک‌های موجود در ذخیره‌سازی و ایندکس‌کردن موثر، در مقابل RDBMS سریع‌تر است.
    • یک سری مباحث وجود دارد که در هر دو دیتابیس مطرح است. چیزی که در RDBMS جدول نام دارد، در MongoDB تحت عنوان Collection شناخته می‌شود. به طور مشابه، یک tuple یک داکیومنت و ستون برابر فیلد است. MongoDB فیلد _id (اگر جداگانه تعریف نشده باشد) را به صورت پیشفرض، برای داکیومنت‌ها ایجاد می‌کند، این فیلد ۱۲ بایت هگزادسیمال است که یکتا‌بودن یک داکیومنت را تضمین می‌کند. این فیلد همانند کلید اصلی در RDBMS است.

    قابلیت‌های MongoDB

    • Document Oriented: در MongoDB داده اصلی و کلی را در کمترین تعداد داکیومنت ذخیره می‌کند، نه مثل RDBMS که آن را به چندین ساختار رابطه‌ای تبدیل می‌کند. برای مثال، تمامی اطلاعات در رابطه با یک کامپیوتر را در یک داکیومنت، در کالکشنی با نام Computer ذخیره می‌کند و برای هر بخش به طور جداگانه، یعنی CPU، RAM، HARD DISK و … ساختار رابطه‌ای ایجاد نمی‌کند.
    • Indexing: بدون این قابلیت، دیتابیس برای اجرای هر کوئری مجبور است که هر داکیومنت در کالکشن را اسکن کند تا داکیومنت هماهنگ با کوئری را پیدا کند، که این شیوه خیلی کند است. بنابراین برای یک جست‌وجوی موثر و کارآمد، این ویژگی بهترین قابلیت است و MongoDB از آن برای پردازش حجم زیادی از دیتا در کمترین زمان استفاده می‌کند.
    • Scalability: می‌توان MongoDB را به صورت افقی (افزودن سرور‌های بیشتر)، توسط sharding (پارتیشن‌بندی و تقسیم دیتا میان چندین سرور) گسترش داد. یک داده بسیار بزرگ به بخش‌های کوچک‌تر، توسط shard key، تقسیم می‌شود، حتی این بخش‌های کوچک داده نیز میان سرور‌های مختلف پخش می‌شوند. در ضمن می‌توان به یک دیتابیسی که در حال استفاده است، سرورهای بیشتری اضاف کرد.
    • Replication and High Availability: دسترسی‌پذیری داده‌ها در MongoDB با ایجاد چندین کپی در سرورهای مختلف تضمین می‌شود. با ایجاد افزونگی داده‌ها، MongoDB از دیتابیس در مقابل خرابی سخت‌افزاری، محافظت می‌کند. اگر یک سرور دچار مشکل شود، داده‌ها را می‌توان از سرور‌های فعال، که کپی‌ای از داده در آن‌ها وجود دارد، به دست آورد و یا به عبارتی داده‌های از دست رفته را بازگردانی کرد.
    • Aggregation: عملیا‌های تجمیع و یا تراکم داده‌ها، رکورد‌های داده‌ها را پردازش می‌کنند و نتایج محاسبه شده‌ای را ارائه می‌کنند. همانند عبارت GROUPBY در SQL. برخی دیگر از اینگونه عبارت‌ها: sum، avg، min، max و …

    چه زمانی از MongoDB استفاده کنیم؟

    استفاده از MongoDB در موارد زیر، نسبت به RDBMS بهتر و مناسب‌تر است:

    • Big Data: اگر حجم زیادی از داده‌هایی را در اختیار دارید که می‌خواهید آن‌ها را در جداول ذخیره کنید، قبل از دیتابیس‌های RDBMS به MongoDB فکر کنید. MongoDB قابلیت‌ها و راه‌حل‌هایی برای پارتیشن‌بندی یا تقسیم داده‌ها و shardکردن دیتابیس‌تان ارائه می‌کند.
    • Unstable Schema: اضافه‌کردن یک ستون جدید در دیتابیس‌های RDBMS، بسیار سخت است و نیاز است تا اسکیما دیتابیس را تغییر دهید، درحالی که MongoDB به اسکیما وابسته نیست. اضافه‌کردن فیلد جدید، بر داکیومنت‌های قدیمی اثری نمی‌گذارد و در عین حال بسیار آسان است.
    • Distributed data: از آنجایی که چندین کپی از داده‌ها در سرور‌های مختلف ذخیره شده است، به هنگام خرابی سخت‌افزاری، بازگردانی و ریکاوری داده‌ها بسیار سریع و امن خواهد بود.

    پشتیبانی MongoDB از زبان‌های مختلف

    در حال حاضر MongoDB با ارائه درایور رسمی برای زبان‌های زیر، از آن‌ها پشتیبانی می‌کند:

    نصب MongoDB

    تنها نیاز دارید که به صفحه دانلود MongoDB مراجعه کنید و سیستم‌عامل‌تان را از میان ویندوز، لینوکس، Mac OS X و یا Solaris انتخاب کنید. اطلاعات بیشتر به همراه جزئیات نصب، در وبسایت MongoDB ارائه شده است.

    برای ویندوز‌های 64 بیتی، گزینه‌های کم‌تری وجود دارد. اگز از ویندوز 7 یا 8 و نسخه‌های جدیدتر استفاده می‌کنید، Windows 64-bit 2008 R2+ را انتخاب کنید. اگر از ویندوز XP و یا ویستا استفاده می‌کنید، پس Windows 64-bit 2008 R2+ legacy را انتخاب کنید.

    چه کسانی از MongoDB استفاده می‌کنند؟

    MongoDB توسط وبسایت‌ها و سرویس‌دهنده‌هایی نظیر EA، Cisco، Shutterfly، Adobe، Ericsson، Ericsson، eBay و Foursquare استفاده شده است.

    منبع: https://www.geeksforgeeks.org/mongodb-an-introduction

    برچسب‌ها:

    ســــــــــــــــــــــال‌هاست که هستیم

    ۶ سال در کنار شما تجربه جمع کردیم. تازه در ابتدای مسیر هستیم، مسیر ساخت آینده.

    جمع‌مـــــــــــان، جمع است

    بیش از ۴۰ هزار توسعه‌دهنده و صاحبان کسب و کار در جمع ما هستند. جای شما خالی‌ست...

    خدمات رایگان لیارا

    ۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

    ۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

    هاست رایگان برای دیتابیس‌

    دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

    سرویس DNS رایگان

    به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

    ۱۰۰ هزار تومان اعتبار اولیه

    بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

    ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

    در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید. (به‌همراه دسترسی SMTP)

    هاست رایگان برای انواع وبسایت

    تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

    همراه شما هستیم

    در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
    تلفن واحد فروش:
    ۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
    تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)