معرفی دوره آموزشی: پایگاه داده مونگو بعنوان یکی از محبوب ترین پایگاه های داده و معماری توزیعی و زبان شبه JASON محیطی جذاب با کارایی و سرعت پردازش بسیار بالا ایجاد کرده است.با توجه به افزایش روز افزون حجم و نرخ تولید داده ها و ساختارمند نبودن بسیاری از این داده ها نیاز به پایگاه های داده ای مانند مونگو بیش از پیش احساس می شود.هدف از برگزاری این دوره آشنایی کاربران با معماری، نصب و پیکر بندی و مباحث مدیریت پایگاه داده MongoDB می باشد تا بتوان در محیط های نیازمند جوابگویی سریع به درخواستها و پردازش آنها مورد استفاده قرار گیرد پس از پایان دوره قادر خواهید بود تا بخوبی مدل ها و طرح های پایگاه داده مونگو را برنامه ریزی کرده و در کسب و کار خود بکار گیرید
محتوای آموزشی: آموزش کاربردی MongoDB Administration
مخاطبین دوره MongoDB: اگر شما برنامه نویس، مدیر پروژه و توسعه دهنده نرم افزار، مدیر پایگاه داده، مدیر سیستم و یا فارغ التحصیل علاقه مند به یادگیری محبوب ترین پایگاه داده NoSQL هستید این دوره برای شما کاملا مناسب است.
سطح دوره آموزشی: مقدماتی تا پیشرفته - برای آگاهی از سطح دوره و جایگاه آن در مسیر آموزشی به لینک "نقشه راه" مراجعه کنید.
مدت زمان آموزش: ۳۶ ساعت
نحوه برگزاری: آنلاین / حضوری
پیش نیاز آموزش: دوره LPIC-1 پیشنهاد می گردد.
Introduction to NoSQL
Architecture
CRUD Operations
Schema Design and Data modeling
Indexes
Database Administration
Backup and Security
Replication
Scalability
MongoDB
کلمه "پایگاه داده" بلافاصله تصویری از یک جدول با سطر و ستون در ذهن شما ایجاد میکند. بطور معمول، هر معمار سیستمی دارای یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) برای ذخیره دادهها میباشد. دادهها در RDBMS در جداولی حاوی سطرها و ستون ها ذخیره میشوند و جداول از طریق مدل های رابطهای به یکدیگر متصل میشوند. برای مثال میتوانیم به مواردی چون Oracle ،MySQL ،Microsoft SQL Server ، DB2 و غیره اشاره کنیم. این پایگاههای داده برای مدت زمان قابل توجهی در بازار حضور داشتهاند زیرا بسیار کارآمد هستند و عملکرد بسیار خوبی را ارائه دادند.
MongoDB یک پایگاه داده متن باز مبتنی بر NoSQL است که توسط 10gen (اکنون MongoDB ، Inc.) با استفاده از زبان ++ C نوشته شده است. NoSQL روند جدیدی در توسعه پایگاه داده ارائه داده است و بطور کلی به پایگاههای دادهای که شمای (schema) ثابتی ندارند، اشاره دارد. چنین پایگاههای اطلاعاتی معمولاً امنیت تراکنش کمتری دارند ولی در دستیابی به دادهها بسیار سریع و بسیار مقیاس پذیرتر از پایگاه داده های رابطهای میباشند. MongoDB یکی از پایگاههای داده جدید مبتنی بر NoSQL است که در سال 2009 توسعه داده شد. ریشه نام "Mongo" چندان روشن نیست: برخی تصور میکنند که این واژه از کلمه انگلیسی "humongous" (غول پیکر) ناشی شده باشد، برخی دیگر فرض میکنند که نام آن بر اساس شخصیت "Mongo" از فیلم Blazzing Saddles است.
MongoDB یک سیستم مدیریت پایگاه داده توزیع شده، مدرن، همه منظوره و مبتنی بر سند است که توسط MongoDB Inc توسعه، توزیع و پشتیبانی میشود. MongoDB یک پایگاه اسناد قدرتمند و انعطاف پذیر، چابک NoSQL (غیر رابطه ای) است. MongoDB، محبوب ترین پایگاه داده NoSQL، یک پایگاه داده اسناد محور متن باز است. اصطلاح "NoSQL" به معنای "غیر رابطهای" است و بدان معناست که MongoDB براساس ساختار پایگاه داده رابطهای جدول مانند نیست بلکه مکانیزم کاملاً متفاوتی را برای ذخیره و بازیابی داده ها فراهم میکند. به این قالب ذخیره سازی BSON گفته میشود (مشابه قالب JSON).
پایگاه داده MongoDB از مجموعهای از پایگاه های داده تشکیل شده است که هر پایگاه داده شامل چندین مجموعه ( Collection ) است. از آنجا که MongoDB با شِما های پویا کار میکند، هر مجموعه میتواند شامل انواع مختلفی از اشیا باشد. هر شی - که سند ( Document ) نیز نامیده میشود - به عنوان یک ساختار JSON نشان داده میشود: لیستی از جفت های مقدار-کلید. این مقدار میتواند سه نوع داشته باشد: یک مقدار ابتدایی، یک آرایه از اسناد یا یک لیست دیگر از جفت های کلید-مقدار (سند).
MongoDB همراه با مجموعهای گسترده از ابزارها برای مدیریت آسان دادهها و برای توسعه برنامههای مدرن و برای زیر ساخت های ابری ساخته شده است و برای استفاده توسط توسعهدهندگان، تحلیلگران داده و دانشمندان داده در نظر گرفته شده است.
MongoDB همچنین ویژگی Auto-Scaling را فراهم میکند. از آنجا که MongoDB یک پایگاه داده کراس-پلتفرم است، میتواند بر روی سیستم عامل های مختلف مانند ویندوز، لینوکس و غیره نصب شود.
MongoDB در دو نسخه مختلف ارائه میشود: MongoDB Community Server که نسخه متن باز و رایگان برای استفاده از MongoDB است و نسخه MongoDB Enterprise Server که بخشی از اشتراک MongoDB Enterprise Advanced است.
به زبان ساده، هنگام توسعه برنامه های نرم افزاری که باید داده هایی با ساختار های مختلف را به روشی مقیاس پذیر اداره کنند، بیشتر و سریعتر پیش بروید. در این صورت شما به MongoDB مطمئنا نیاز خواهید داشت.
این فناوری بر یکی از بزرگترین مشکلات سیستم های پایگاه داده سنتی یعنی مقیاس پذیری غلبه کرده است. با نیازهای روزافزون مشاغل، سیستم های پایگاه داده آنها نیز باید بروز شوند. MongoDB مقیاس پذیری استثنایی را ارائه داده است. واکشی داده ها را آسان میکند و ادغام مداوم و خودکار را فراهم میکند. همراه با این مزایا، دلایل مختلفی وجود دارد که شما به MongoDB نیاز دارید.
MongoDB برای افرادی ساخته شده است که در حال ساخت برنامه های کاربردی اینترنتی و تجاری هستند که نیاز به پیشرفت سریع و مقیاس ظریف دارند. اگر این کار را میکنید، باید MongoDB را در نظر بگیرید. گزارش شده است كه شركتهایی از جملهGoogle ،Facebook ،EA Sports ،Adobe ،Uber ،Cisco ، Verizon و بسیاری دیگر از MongoDB در بخشهای مختلف خود استفاده میكنند.
MongoDB برای موارد زیر بسیار توصیه میشود:
MongoDB یک اکوسیستم پلتفرم بزرگ و بالغ ایجاد کرده است، که بدین معنی است:
MongoDB چگونه کار میکند؟
MongoDB بر روی یک مدل کلاینت-سرور ساخته شده است که در آن یک سرویس دهنده اتصالات مشتری ها را میپذیرد و اقدامات پایگاه داده را برای آنها پردازش میکند. سرور باید در حال اجرا باشد تا مشتریان بتوانند با پایگاه داده ارتباط برقرار کنند.
ذخیره اطلاعات در MongoDB با پایگاه های داده سنتی متفاوت است. یک رکورد در MongoDB یک سند است (یک ساختار داده متشکل از جفت فیلد و مقدار، مشابه اشیا JSON) و اسناد در مجموعه ها ذخیره میشوند (مشابه جداول در RDBMS).
MongoDB در سناریوهای زیر بر RDBMS ترجیح داده میشود:
ویژگی های اصلی MongoDB
در زیر ویژگی های اصلی MongoDB آورده شده است:
MongoDB موضوع اصلی را در حداقل تعداد اسناد ذخیره میکند و نه با تجزیه آن در چندین ساختار رابطهای مانند RDBMS. به عنوان مثال، تمام اطلاعات رایانه را در یک سند به نام Computer و نه در ساختارهای رابطی متمایز مانندCPU ، RAM، Disk و غیره ذخیره میکند.
بدون Indexing، یک پایگاه داده باید هر سندی از یک مجموعه را اسکن کند تا متناسب با کوئری گزینه مورد نظر را انتخاب کند که بدین شکل ناکارآمد است. بنابراین، برای جستجوی کارآمد، indexing امری ضروری است و MongoDB از آن برای پردازش حجم عظیمی از داده ها در زمان بسیار کم استفاده میکند.
MongoDB به صورت افقی با استفاده از Sharding (پارتیشن بندی داده ها روی سرورهای مختلف) مقیاس بندی میشود. داده ها با استفاده از کلید Shard به تکه های داده تقسیم میشوند و این تکه های داده به طور مساوی در Shard هایی که در بسیاری از سرورهای فیزیکی قرار دارند توزیع میشوند. همچنین، ماشین های جدید میتوانند به راحتی به یک پایگاه داده در حال اجرا اضافه شوند.
MongoDB با چندین نسخه از داده ها در سرورهای مختلف، در دسترس بودن داده ها را افزایش میدهد. با ارائه افزونگی، از پایگاه داده در برابر خرابی های سخت افزاری محافظت میکند. اگر یک سرور خراب شود، داده ها میتوانند به راحتی از سایر سرورهای فعال که داده های ذخیره شده نیز دارند، بازیابی شوند.
عملیات تجمیع پروندهها را پردازش میکند و نتایج محاسبه شده را بر میگرداند. این مشابه بند GROUPBY در SQL است. چند عبارت تجمع عبارتند از جمع، میانگین، مینیمم، حداکثر و غیره.
از مزایای دیگر این فناوری می توان به موارد زیر اشاره کرد:
نتیجه گیری
برای پاسخ به سوال اصلی: "چه زمانی باید از MongoDB به جای MySQL استفاده کرد؟" شما باید نیازهای پروژه و اهداف بعدی خود را در نظر بگیرید. MySQL بخاطر عملکرد بالا، انعطاف پذیری، محافظت از داده های قابل اعتماد، در دسترس بودن بالا و سهولت مدیریت بسیار شناخته شده است. نمایه سازی مناسب داده ها میتواند با عملکردی بالا همراه باشد، تعامل را تسهیل کند و از استحکام اطمینان حاصل کند. اما اگر "داده های شما بدون ساختار و پیچیده است، یا اگر نمیتوانید طرح خود را از قبل تعریف کنید، بهتر است MongoDB را انتخاب کنید." علاوه بر این، اگر شما نیاز به کنترل حجم زیادی از داده ها و ذخیره آنها به عنوان اسناد دارید MongoDB به شما کمک میکند تا با این چالش ها روبرو شوید.