NoSQL چیست؟ – معرفی، توضیح کاربردها و مقایسه با SQL
- یاد میگیرید تفاوت پایگاههای SQL و NoSQL را تحلیل کنید.
- میآموزید چه سناریوهایی به مدلهای NoSQL نیاز دارند.
- نقاط قوت و چالشهای عملی NoSQL را خواهید شناخت.
- خواهید آموخت انواع مدلهای داده NoSQL چگونه کار میکنند.
- میتوانید بهترین پایگاه داده را بر اساس پروژه انتخاب کنید.
- با ابزارهای محبوب NoSQL و حوزه کاربردشان آشنا میشوید.

NoSQL چیست؟
پایگاههای داده NoSQL که با نام «Not only SQL» نیز شناخته میشوند، دادهها را با روشی متفاوت از جدولهای رابطهای نگهداری میکنند. پایگاههای داده NoSQL بر اساس نوع دادههای آنها دارای تنوع بسیار زیادی هستند. نوع اصلی این پایگاههای داده شامل «مستند» (Document)، «کلید، مقدار» (Key-Value)، «ستون گسترده» (Wide-Column) و گراف میشود. این پایگاههای داده، الگوهای ذخیرهسازی انعطافپذیری را فراهم کردهاند. همچنین به سادگی با مقیاسهای بزرگ داده و تعداد کاربران زیادتری سازگار میشوند.
پایگاه داده NoSQL چیست؟
پایگاههای داده NoSQL، دادهها را در شکلی متفاوت از پایگاههای داده رابطهای یا RDBMS-ها ذخیره میکنند. با اینکه این پایگاههای داده نیز میتوانند دادههای مشابهی را ذخیره کنند. بنابراین انتخاب بین پایگاههای داده رابطهای و غیررابطهای بسته به احتیاجات خاص پروژه انجام میگیرد.

آموزش انواع پایگاه داده با فرادرس
همینطور که دیدیم، دو دسته پایگاه داده کلی وجود دارند. پایگاههای داده SQL-محور و پایگاههای داده NoSQL. در این مطلب بررسی میکنیم که پایگاه داده NoSQL چیست و چه کاربردهایی دارد. سپس با مزایا و معایب آن آشنا میشویم. از طرف دیگر SQL به نسبت برای برنامهنویسان آشناتر است. زیرا در آموزشگاهها، مدارس و دانشگاه اولین پایگاه دادهای است که دانشجویان با آن آشنا میشوند. هر کدام از این گرایشهای مختص ذخیره داده، دارای نرمافزارها و سیستمهای مختلفی هستند. فرادرس تلاش کرده که برای انواع نرمافزارهای مرتبط با هر دو دسته کلی، فیلمهای آموزشی با کیفیت تولید کند.

زبان کوئری نویسی SQL مورد استفاده پایگاههای داده متنوعی است. در همه این پایگاههای داده اکثر توابع SQL با سینتکس شبیه هم استفاده میشوند. اما هر کدام از پایگاههای داده NoSQL، زبان کوئرینویسی مختص به خود را دارند. هر کدام از این پایگاههای داده، بسته به هدفی که از تولیدشان وجود دارد، برای کار در سناریوهای و با سختافزارهای متنوعی طراحی شدهاند. در پایین این بخش، فیلمهای آموزشی مربوط به چند مورد از این پایگاههای داده را معرفی کردهایم. با کلیک بر روی تصویر بالا به صفحه اصلی این مجموعه داده هدایت شده و از فیلمهای بیشتری نیز دیدن کنید.
- فیلم آموزش پایگاه داده MySQL در فرادرس
- فیلم آموزش رایگان پایگاه داده کلیک هاوس ClickHouse دوره مبانی و مقدمات با فرادرس
- فیلم آموزش مقدماتی «آپاچی کاساندرا» Apache Cassandra در فرادرس
- فیلم آموزش پایگاه داده مونگو دی بی MongoDB برای تحلیل، مدل سازی و پردازش داده ها با فرادرس
- فیلم آموزش پایگاه داده پیشرفته دوره جامع و کاربردی در فرادرس
مقایسه پایگاه داده NoSQL در مقابل SQL
«زبان کوئرینویسی ساختاریافته» (Structured Query Language | SQL) بیشتر از NoSQL به کار برده میشود. برای اینکه ببینیم تفاوت بین پایگاههای داده SQL با NoSQL چیست، بهتر است که در ابتدا با SQL به عنوان زبان برنامه نویسی آشنا شویم. این زبان کوئرینویسی برای فراخوانی اطلاعات خاصی از درون پایگاه داده جدولبندی شده به کار برده میشود.

NoSQL به جای SQL
در حالی که NoSQL به عنوان جایگزین SQL عرضه شده بود اما هیچ وقت جایگزین پایگاههای داده SQL محور نشد. برای مثال فرض کنیم که در حال مدیریت سفارشات خُردهفروشی شرکتی هستیم. در مدلهای رابطهای، جدولهای مجزایی برای مدیریت دادههای مشتریان، دادههای سفارشات و دادههای مربوط به محصولات به صورت جداگانه وجود دارند. این جدولها با استفاده از کلید عمومی و منحصر بهفردی مانند «شماره شناسایی مشتری» یا «شماره شناسایی سفارش» به یکدیگر متصل میشوند.
با اینکه این روش برای ذخیرهسازی و فراخوانی سریع دادهها روش بسیار خوبی است، اما به میزان چشمگیری از حافظه نیز استفاده میکند. در زمان نیاز به افزودن حافظه بیشتر، پایگاههای داده SQL را فقط میتوان به صورت عمودی گسترش داد، نه افقی. به این معنا که توانایی مدیران پایگاه داده فقط محدود به افزودن فضای حافظه بیشتر به سختافزار در دسترس است. در نتیجه، مقایسپذیری عمودی، میزان داده قابل ذخیره و بازیابی توسط شرکت را محدود میکند.
مقیاس پذیری افقی NoSQL
در مقابل با SQL، پایگاههای داده NoSQL غیر رابطهای هستند. یعنی اینکه این پایگاههای داده نیازی به برقرار کردن ارتباط بین جدولها ندارند. این نوع پایگاههای داده با استفاده از پارتیشنبندی درونی و مدیریت کوئریها به شکل بسیار کارآمدتر و با دسترسپذیری بیشتر، برای مقیاسپذیری افقی طراحی شدهاند. اگر سرور پایگاه دادهای به تنهایی برای نگهداری همه دادههای برنامه یا مدیریت کوئریها کافی نباشد، محیط کاری را میتوان بر روی دو یا چند سرور مختلف تقسیم کرد. در نتیجه شرکتها میتوانند دادههای خود را به شکل افقی گسترش دهند. به روش افزایش حجم پایگاه داده با استفاده از سرورهای موازی یکدیگر، مقیاسپذیری افقی گفته میشود.
از آنجا که هر نوع پایگاه دادهای دارای مزایای منحصربهفرد است، شرکتهای نرمافزاری به شکل رایجی از هر دو نوع پایگاههای داده NoSQL و رابطهای در اپلکیشنهای خود به صورت همزمان استفاده میکنند. امروز فراهم کنندگان فضای ابری برای ذخیره دادهها از هر دو نوع پایگاه داده SQL و NoSQL در کنار هم استفاده میکنند. در نتیجه هر کسی با توجه به هدفی که از طراحی برنامههای خود دارد، نوع خاصی از پایگاه داده را انتخاب میکند.
انواع پایگاه داده NoSQL چیست؟
پایگاههای داده NoSQL، اطلاعات را فقط با استفاده یکی از ۵ مدل اصلی ذخیرهسازی دادهها به روش زیر، مدیریت میکنند.
- «کلید-مقدار» (Key-Value)
- «مستندسازی» (Document)
- «ستون گسترده» (Wide-Column)
- «گراف» (Graph)
- «داخل حافظه» (In-Memory)
در ادامه این بخش از مطلب، تمام مدلهای بالا را به ترتیب بررسی کرده و توضیح دادهایم.

ذخیره سازی داده ها به روش Key-value
این روش، به طور معمول به عنوان سادهترین روش ذخیرهسازی اطلاعات در پایگاههای داده NoSQL شناخته میشود. این مدل از دادههای بدون شکل، طوری طراحی شده که اطلاعات را با ساختار جفتهای کلید-مقدار در دیکشنری، ذخیره کند. یعنی هر عنصری در این مدل، دارای کلید و مقدار است.
- کلید: کلیدها میتوانند مانند چیزهایی باشند که در پایگاههای داده SQL پیدا میشود. برای مثال میتوان به شماره شناسایی سبد خرید مشتریها اشاره کرد.
- مقدار: در حالی که مقدار، آرایهای از دادههاست. مانند هر چیز مجزایی که در آن سبد خرید کاربر وجود دارد.
ذخیره سازی داده ها به روش Document
کاربردهای بسیار رایج ذخیرهسازی دادهها به روش Document شامل سامانههای مدیریت محتوا و پروفایلهای کاربری میشوند. به عنوان مثالی از پایگاههای داده «مبتنی بر سند» (Document-Oriented) میتوان به MongoDB اشاره کرد.
ذخیره سازی داده ها به روش Wide-Column
- Apache HBase: این پایگاه داده بر اساس «سامانه فایلهای توزیعشده هادوپ» (Hadoop Distributed Files System | HDFS) ساخته شده که روشی را برای ذخیرهسازی مجموعه دادههای کمتراکم یا اسپارس فراهم کرده است. این روش، کاربرد بسیار گستردهای در اپلکیشنهای مربوط به «کلان دادهها» (Big Data) دارد.
- Apache Cassandra: از طرف دیگر، پایگاه داده Apache Cassandra برای مدیریت مقدارهای بزرگ از دادههایی طراحی شده است که بر روی چندین سرور مختلف پراکندهاند. همچنین از خوشهبندیهایی پشتیبانی میکند که چندین دیتاسنتر بزرگ را دربرمیگیرند. این پایگاه داده برای استفاده در طیف گستردهای از کاربردهای متنوع، مانند وبسایتهای مربوط به شبکههای اجتماعی و عملیات تحلیل داده بیدرنگ به کار برده میشود.

ذخیره سازی داده ها به روش Graph
ذخیره سازی داده ها به روش In-memory
این نوع پایگاه داده NoSQL، مانند نرم افزار solidDB از شرکت IBM، دادهها را بهجای نگهداری در دیسک، درون حافظه اصلی کامپیوتر ذخیره میکند. این پایگاه داده دسترسی بسیار سریعتری به دادهها نسبت به پایگاههای داده سنتی و دیسکمحور ایجاد میکنند.
مثال هایی از پایگاه های داده NoSQL
شرکتهای زیادی وارد حوزه طراحی و تولید پایگاههای داده NoSQL شدهاند. علاوه بر نرمافزارها و شرکتهایی که در بالا مورد اشاره قرار گرفتند، چند مورد از پایگاههای داده مشهور NoSQL را در فهرست زیر معرفی کردهایم.
- Apache CouchDB: پایگاه داده متن بازی که بر اساس ساختار مبتنی بر سند به شکل JSON کار کرده و از زبان جاوا اسکریپت به عنوان زبان کوئرینویسی خود استفاده میکند.
- Elasticsearch: پایگاه داده مبتنی بر سندی که شامل موتور جستوجوی Full-Text است.
- Couchbase: روش کار این پایگاه داده بر اساس مدلهای کلید-مقدار و به شکل مبتنی بر سند است. در نتیجه به توسعهدهندگان برای ساخت اپلیکیشنهای پاسخگو و انعطافپذیر کمک میکند. این اپلکیشنها برای انواع «رایانش مرزی» (Edge Computing) و Cloud به کار برده میشوند.
- MongoDB: نرمآفزار MongoDB سیستم پایگاه داده متنبازی است که از مدل داده و زبان پرسوجوی «غیرساختاری» (Non-Structured) استفاده میکند. در حال حاضر، MongoDB یکی از قویترین بانکهای اطلاعاتی و سیستمهای NoSQL به حساب میآید. برای آشنایی و کسب آموزشهای اولیه کار با این پایگاه داده میتوانید مطلب MongoDB چیست؟ راهنمای شروع با دیتابیس مانگو دی بی را از مجله فرادرس مطالعه کنید.
مزایا و معایب استفاده از NoSQL چیست؟
این نوع از پایگاه داده که از جدول برای نگهداری اطلاعات استفاده نمیکند، دارای مزایایی است که باعث شده در اپلیکیشنهای بسیار خاصی جایگزین استفاده از پایگاههای داده SQL محور شود. اما از طرفی معایبی هم دارد که اجازه نداده بتوانند همه جا خود را تثبیت کرده و استفاده از پایگاههای داده سنتی را منسوخ کند.
در این بخش از مطلب ابتدا میبینیم که مهمترین مزایا و معایب استفاده از NoSQL چیست. در بخش بعد هم به بررسی معایب این نوع از پایگاه داده پرداختهایم.
مزایای استفاده از NoSQL چیست؟
کارکردن با پایگاههای داده NoSQL مانند MongoDB و Cassandra دارای مزایای زیادی است. اصلیترین این مزایا مقیاسپذیری و دسترسیپذیری بالای دادهها است.

در فهرست زیر مهمترین مزایای استفاده از NoSQL را معرفی کرده و برای هر کدام توضیح کاملی را نوشتهایم.
- «مقیاسپذیری بالا» (High scalability): پایگاههای داده NoSQL برای مقیاسپذیری افقی از شاردینگ و پارتیشنبندی اختصاصی خود استفاده میکنند. به پارتیشنبندی دادهها و قراردادن تکههای مختلف داده در چندین ماشین یا سرور مختلف به روشی که نظم و ترتیب دادهها حفظ شود، شاردینگ گفته میشود. مقیاسپذیری عمودی به معنای آن است که برای ذخیرهسازی بیشتر دادهها به کامپیوتر موجود، منابع سختافزاری بیشتری اضافه کنیم. در حالی که مقیاسپذیری افقی به معنای اضافه کردن کامپیوترها یا سرورهای بیشتر برای مدیریت دادهها است. پیادهسازی مقیاسپذیری عمودی چندان ساده نیست اما پیادهسازی مقیاسپذیری افقی به شکل سادهتری انجام میشود. به عنوان مثالهایی از پایگاههای داده با توانایی مقیاسپذیری افقی میتوان به MongoDB و Cassandra اشاره کرد. پایگاه داده NoSQL میتوانند حجم انبوهی از دادهها را مدیریت کنند. این توانایی بخاطر مقیاسپذیری بالای این نوع از پایگاههای داده است. یعنی با بیشتر شدن دادهها پایگاه داده NoSQL هم به منظور مدیریت هرچه کار آمدتر به صورت خودکار، مقیاس خود را گسترش میدهد.
- «انعطافپذیری» (Flexibility): پایگاههای داده NoSQL برای مدیریت دادههای غیرساختاریافته و نیمهساختاریافته طراحی شدهاند. به این معنا که این پایگاههای داده میتوانند تغییرات را به صورت خودکار بر روی مدل داده اعمال کنند. در نتیجه پایگاههای داده NoSQL گزینه مناسبی برای اپلیکیشنهایی شدهاند که احتیاج به مدیریت نیازمندیهای متغیر دادهها در طول زمان دارند.
- «دسترسیپذیری بالا» (High availability): ویژگی «تکثیر خودکار» (Auto Replication) پایگاههای داده NoSQL باعث دسترسیپذیری بالای آنها میشود. زیرا هر وقت که اشکالی در کار باشد، دادهها به صورت خودکار خود را در حالت ثابتی کپی میکنند. این کار به دسترسی ثابت و بدون امکان بروز خطا به دادهها کمک میکند.
- «مقیاسپذیری» (Scalability): پایگاههای داده NoSQL به میزان زیادی مقیاسپذیر هستند. به این معنا که آنها میتوانند حجم انبوهی از دادهها و ترافیک را بهسادگی مدیریت کنند. این ویژگی باعث شده که NoSQL به گزینه مناسبی برای استفاده در اپلیکیشنهایی تبدیل شود که با حجم انبوهی از دادهها در ترافیک بالا سروکار دارند.
- «کارآمدی» (Performance): همینطور که اشاره شد، پایگاههای داده NoSQL برای مدیریت حجم بسیار زیاد داده و ترافیک شلوغ، طراحی شدهاند. به این معنا که آنها در مقایسه با پایگاههای داده سنتی و رابطهای میتوانند کارایی بسیار بیشتری را ارائه دهند.
- «مقرونبهصرفه بودن» (Cost-effectiveness): پایگاههای داده NoSQL، اغلب اوقات نسبت به پایگاههای داده سنتی رابطهای مقرونبهصرفهتر هستند. زیرا این نوع از پایگاههای داده به طور معمول پیچیدگی کمتری داشته و احتیاج زیادی به سختافزار و نرمافزارهای گرانبها ندارند.
- «چابکی» (Agility): این پایگاههای داده برای استفاده در فرایند توسعه چابک نرمافزار، گزینه بسیار مناسبی هستند.

معایب استفاده از NoSQL چیست؟
بعد از شمردن مزایای این پایگاه داده لازم است که ببینیم معایب استفاده از پایگاه داده NoSQL چیست. دانستن معایب تکنولوژیها همیشه به انتخاب بهتر در زمان فرایند توسعه نرمافزار یا اجرای پروژهها کمک بسیار زیادی میکند.
- کمبود استانداردسازی: انواع مختلفی از پایگاههای داده NoSQL وجود دارند، که هر کدام نقاط قوت و ضعف منحصر به خود را دارد. این کمبود استانداردسازی میتواند فرایند انتخاب پایگاهداده مناسب را برای اپلیکیشنهای مشخص، مشکل کند.
- عدم پیروی کامل از قواعد ACID: پایگاههای داده NoSQL به شکل کامل از قواعد ACID پیروی نمیکنند. به این معنا که این پایگاههای داده ثبات، یکپارچگی و ماندگاری دادهها را تضمین نمیکنند. این مسئله میتواند برای بعضی از اپلیکیشنها که به تضمین محکمی درباره ثبات دادهها نیاز دارند، به مشکل تبدیل شود . برای مثال میتوان به اپلیکیشنهای بانکداری اشاره کرد.
- تمرکز در حوزه محدود: از آنجا که پایگاههای داده NoSQL با هدف اصلی ذخیرهسازی داده طراحی شدهاند، اما کارآمدی محدودی را ارائه میدهند. در نتیجه میتوان گفت که این پایگاههای داده بیشتر بر روی حوزههای محدودی تمرکز کردهاند. بنابراین در بخشهای مربوط به مدیریت انتقال دادهها پایگاههای داده رابطهای نسبت به NoSQL-ها گزینه بهتری هستند.
- اوپن سورس: NoSQL-ها پایگاههای داده اوپن سورس هستند. بنابراین هنوز استاندارد قابل اتکایی برای پایگاههای داده NoSQL به وجود نیامده است. به عبارت دیگر دو سامانه پایگاه دادهای NoSQL به احتمال زیاد با یکدیگر مساوی نیستند.
- عدم پشتیبانی از کوئریهای پیچیده: پایگاههای داده NoSQL با هدف مدیریت کوئریهای پیچیده طراحی نشدهاند. به این معنا که استفاده از این پایگاههای داده برای اپلیکیشنهای نیازمند به گزارشگیریهای پیچیده یا تحلیل پیچیده دادهها گزینه مناسبی نیست.
- نابالغ بودن: پایگاههای داده NoSQL، نسبتا جدید هستند و هنوز به بلوغ پایگاههای داده سنتی رابطهای نرسیدهاند. در نتیجه استفاده از این پایگاههای داده منجر به امنیت کمتر و قابلیت اتکاپذیری کمتر برنامه نسبت به پایگاههای داده سنتی میشود.
- چالشهای مدیریتی: هدف اصلی از استفاده ابزارهای مربوط به کلاندادهها، مدیریت تا حد ممکن سادهتر حجم انبوهی از دادهها است. اما این کار خیلی هم ساده نیست. مدیریت دادهها در NoSQL نسبت به پایگاههای داده رابطهای بسیار پیچیدهتر است. به طور خاص، پایگاههای داده NoSQL به دلیل فرایند سخت نصب در سیستم، مشهور هستند. در ضمن استفاده روزانه از این پایگاههای داده سردرگم کنندهتر نیز هست.
- رابط کاربری گرافیکی وجود ندارد: ابزارهای مربوط به رابط کاربری گرافیکی «GUI» به صورت رایج در بازار وجود ندارند.
- پشتیبانگیری: پشتیبانگیری یکی از بزرگترین نقاط ضعف بعضی از پایگاههای داده NoSQL مانند MongoDB است. پایگاه داده MongoDB هیچ رویکردی برای پشتیبانگیری از دادهها به شیوه منسجم ندارد.
- اندازه بزرگ مستندات: بعضی از سامانههای پایگاه دادهای مانند MongoDB و CouchDB دادهها را به شکل JSON ذخیره میکنند. یعنی اینکه سندهای ساخته شده اندازه بسیار بزرگی دارند. این مسئله میتواند باعث بروز مشکلاتی در کار با «کلاندادهها» (Big Data)، پهنای باند شبکه و سرعت سیستم شود. همینطور استفاده از نامهای توصیفی و طولانی برای کلیدها نیز میتواند اندازه سندها را بزرگتر نیز بکند. در نتیجه روند کلی کار کندتر نیز خواهد شد.
آموزش پایگاه داده SQL Server
اگر بخواهیم بدانیم که خواستگاه NoSQL چیست، به طور خلاصه باید گفت که برای برطرف کردن کاستیهای SQL به وجود آمده است. در این مطلب درباره NoSQL صحبت کردهایم و چند مورد از پایگاههای دادهای پیرو این رویکرد را معرفی کردیم. اما در کنار آن لازم است که درباره SQL هم اطلاعات کافی داشته باشیم. SQL یا «زبان پرس و جوی ساختاریافته» (Structured Query Language)، زبانی است که برای مدیریت اطلاعات در پایگاههای داده رابطهای استفاده میشود. یکی از مشهورترین پایگاههای داده رابطهای که از SQL برای مدیریت اطلاعات استفاده میکنند، نرمافزار SQL Server است. در پایین چند مورد از فیلمهای آموزش SQL Server در فرادرس را معرفی کردهایم.
- فیلم آموزش کار با پایگاه داده اس کیو ال سرور SQL Server در فرادرس
- فیلم آموزش پروژه محور SQL Server درباره ساخت دیتابیس فروشگاه از صفر تا صد با فرادرس
- فیلم آموزش کوئری نویسی پیشرفته در SQL Server با فرادرس
- فیلم آموزش پروژه محور، ایجاد ویو سفارش فروشگاهی با SQL Server در فرادرس
- فیلم آموزش داکر با پایتون Python و SQL Server همراه با حل مثال های عملی فرادرس
در صورت تمایل با کلیک بر روی تصویر زیر، به صفحه اصلی این مجموعه آموزشی هدایت شده و از سایر فیلمهای آموزشی نیز دیدن کنید.

کاربردهای NoSQL چیست؟
ساختار و نوع پایگاه داده NoSQL که انتخاب میکنیم بسته به روش استفادهای دارد که سازمان برای اجرای پروژه برگزیده است. در این بخش از مطلب، چند مورد از کاربردهای خاص انواع گوناگون پایگاه داده NoSQL را فهرست کردهایم.
- مدیریت ارتباطات بین دادهها: مدیریت انبوه دادهها و ارتباطات بین آنها به طور معمول با استفاده از پایگاههای داده NoSQL گرافمحور انجام میشود. از این جمله میتوان به «موتورهای توصیهگر» (Recommendation Engines)، «گرافهای دانش» (Knowledge Graphs)، اپلیکیشنهای کشف تقلب و شبکههای اجتماعی اشاره کرد. در چنین سیستمهایی ارتباطات زیادی با استفاده از انواع مختلف دادهها بین مردم شکل میگیرد.
- «عملکرد با تاخیر کم» (Low-latency performance): بازیهای ویدئویی، اپلیکیشنهای ورزش خانگی و تکنولوژیهای تبلیغاتی، به دلیل خروجی بسیار بالا، نیاز به مدیریت دادهها با سرعت بسیار زیادی دارند. چنین زیرساختهایی باعث ارتقا تجربه کاربری مصرفکنندگان سیستم میشود. این سیستمها در سامانههایی برای بهروزرسانی سریع مناقصههای بازار یا انتخاب و نمایش سریع مرتبطترین تبلیغات بازرگانی به کار برده میشوند. اپلکیشنهای تحت وب، نیاز به پایگاههای NoSQL با رویکرد In-Memory دارند. به این طریق سرعت پاسخگویی آنها نسبت به حافظههای دیسکمحور، به میزان چشمگیری افزایش پیدا کرده و افزایشهای ناگهانی مراجعان به آنها بدون تاخیر و به بهترین شکل ممکن مدیریت میشود.
- مقیاسپذیری در حجم زیاد دادهها: سامانههای تجارت الکترونیک به توانایی مدیریت افزایش ناگهانی کاربری نیاز دارند. شاید برای فروش یکروزه یا فروش در فصلهای تعطیلات میزان مراجعان به طرز ناگهانی افزایش پیدا کند. برای چنین سیستمهایی اغلب اوقات از پایگاههای داده کلید-مقدار استفاده میشود. زیرا ساختار سادهای که این نوع از پایگاههای داده دارند به سادگی و در طول مدت ترافیکهای سنگین وبسایت، قابلیت مقیاسپذیری زیادی دارد. این چابکی نرمافزار برای مواردی مانند استفاده در بازیهای کامپیوتری، تکنولوژیهای تبلیغاتی و اپلیکیشنهای مربوط به «اینترنت اشیا» (Internet of Things | IoT) بسیار ارزشمند است.
میکروسرویس ها و پایگاه های داده NoSQL

الگوی استفاده از چندین پایگاه داده مختلف در یک اپلیکیشن را به نام «Polyglot Persistence» نیز میشناسند. وجود این ویژگی به باز شدن فضای رشد و تقاضا در بازار برای عرضه پایگاههای داده NoSQL کمک کرد. در حال حاضر، توسعهدهندگان میتوانند از پایگاههای داده درست برای هر میکروسرویس استفاده کنند، بدون اینکه نیاز داشته باشند همه سرویسها را در فضای کاری «پایگاه داده رابطهای» جداگانهای راهاندازی کنند.
جمعبندی
برای جمع بندی باید بگوییم که پایگاه داده NoSQL چندین مزیت مختلف نسبت به پایگاههای داده سنتی رابطهای ارائه داده است. به عنوان مثال میتوان به مقیاسپذیری بیشتر، انعطافپذیری و مقرونبهصرفه بودن اشاره کرد. هرچند که این نوع از پایگاههای داده دارای نقاط ضعف مختص به خود نیز هستند. به عنوان مثال میتوانیم به عدم استانداردسازی، پیروی نکردن از قواعد ACID و عدم پشتیبانی از کوئریهای پیچیده اشاره کنیم. در زمان انتخاب پایگاه داده برای انجام پروژه خاص، بسیار مهم است که مزیتها و نقاط ضعف پایگاههای مورد نظر را با دقت بسنجیم.
در این مطلب از مجله فرادرس با پایگاههای داده NoSQL آشنا شدیم. در ابتدا به درک تفاوت SQL و NoSQL پرداختیم و سپس دیدیم که در مسئله ذخیرهسازی دادهها انواع رویکردهای NoSQL چیست. با مزایا و معایب این نوع از پایگاههای داده آشنا شدیم. در نهایت هم دیدیم که مهمترین دلایل استفاده از NoSQL چیست و چرا در بعضی از اپلیکیشنها به صورت همزمان از چندین پایگاه داده مختلف استفاده میشود.
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید













