عناوین
اصطلاح NoSQL نامی عمومی است که به مجموعهای از پایگاههای داده اطلاق میشود که از زبان پرسوجوی ساختیافته SQL (سرنام Structured Query Language) یا مدل داده رابطهای استفاده نمیکنند. گاهی این اصطلاح را مخفف Not Only SQL میدانند تا تأکید کنند که طرفداران انواع پایگاههای داده غیررابطهای معتقدند که پایگاههای داده رابطهای سنتی تنها راه موجود برای ذخیرهسازی داده نیستند، اما این به آن معنا نیست که به خودی خود انتخاب نادرستی باشند.
این اصطلاح نخستینبار توسط اریک اوانس از Rackspace به کار رفت. او که یکی از توسعهدهندگان کاساندرا است، پس از آن از به کار بردن این اصطلاح خودداری میکند و به جای آن مایل است اصطلاح BigData یا دادههای عظیم را به کار ببرد تا این گروه از پایگاههای داده را نه براساس چیزی که نیستند (سازگار با SQL) بلکه براساس کاری که میکنند (مدیریت مقادیر عظیم داده) تعریف کند.
دوره استفاده از این اصطلاح کموبیش به پایان رسیده است چرا که بسیار گیجکننده است و به نظر میرسد باعث میشود راجع به مجموعهای از پایگاههای داده بحث کنیم که در عمل میزان شباهت میان اهداف، ایدههای طراحی و قابلیتهای آنها بسیار اندک است. بهتر است بگذاریم کاساندرا همان کاساندرا، CouchDB همان CouchDB و Riak همان Riak بماند.
اهمیت و کاربرد
عبارت NoSQL یک مفهوم برای مشخصسازی یک موج خلاقانه است که در دنیای پایگاههای دادهای در حال وقوع است. با مطرح شدن این مفهوم، طوفانی از تبادل نظر، هیجان و بحث و گفتوگو در محافل فنی به راه افتاد که به یقین تا مدتها باقی خواهد ماند. اما چرا NoSQL این همه سروصدا به پا کرده است؟ این مفهوم برای یک توسعهدهنده برنامههای کاربردی چه معنایی دارد؟
همانطور که قبلاً نیز ذکرشد، زبان SQL و پیادهسازیهای مختلف SQL RDBMS (Relational Database Management Systems) مانند MySQL، PostgreSQL، Oracle و… دهههای متمادی برای تمام نیازهای ذخیرهسازی و بازیابی داده کاربران و توسعهدهندگان یک راه حل اساسی بودهاند.
بیشتر بخوانید : مزایای SQL Server 2019
اما در سال ۲۰۱۰، نیازمندیهاییمطرح شده و مورد توجه قرارگرفتند که با استفاده از مدل رابطهای سنتی قابل دستیابی نبودند.
مسائل جدید
از آنجا که مسائل جدید به ابزارهای جدید نیازدارند، مجموعهای بزرگ از ابزارها پا به عرصه وجود گذاشته و موردتوجه بسیاری قرارگرفتند. دسترسپذیری بالا، مقیاسپذیریافقی، قابلیت تکثیر (Replication)، طراحی بدون Schema و قابلیت Map Reduce از جمله زمینههایی هستند که توسط مجموعهای جدید از پایگاههای داده و تحت عنوان کلی NoSQL در حال توسعه و آزمایش هستند.
درک بیشتر
برای درک بیشتر اهمیت NoSQL باید به چالشهای موجود امروزی بر سر راه پایگاههای داده بیشتر توجه کرد. هماکنون با توسعه فناوریهای مختلف و قابلیت نمونهبرداری و تولید حجم عظیمی از دادهها، امکان ذخیرهسازی و تحلیل آنها چالشی بزرگ به شمار میآید.
دادههایی مانند دادههای هواشناسی، فعالیتهای آنلاین کاربران یا تحلیلهای اقتصادی در قالب پایگاههای دادهای سنتی کارایی چندانی نخواهند داشت و در ذخیرهسازیهای بدون قالب و توزیع شدهای مانند هادوپ به بهترین روش کار خواهندکرد.
همچنین، امروزه سرویسدهندگان بسیاری به ذخیرهسازی و ارائه محتوای عظیم باینری به کاربران خود در شبکه نیاز دارند که در نوع خود، چالشی بسیار بزرگ به شمار میآید. کارایی بسیار بالا در ذخیرهسازی و ارائه دادههای باینری مانند اسناد PDF و فایلهای MP3، در مقیاس وسیع، یکی از بهترین کاربردهایی است که پایگاههای دادهای NoSQL شایستگی خود را در فراهمکردن آن به اثبات رساندهاند. یک نمونه مناسب در این زمینه، خدمات Amazon S3 است.
چالش ها
با این اوصاف، موارد ذکر شده تنها چالش پیش روی توسعهدهندگان و سرویسدهندگان نیست. ذخیرهسازی، مدیریت و بازیابی دادههای گذرا که در بعضی موارد در مقیاس بالایی در برنامههای کاربردی امروزی تولید میشوند نیز یکی دیگر از چالشهای امروزی است که راه حل مدیریت مناسب آنها را پایگاههای دادهای NoSQL ارائهکردهاند.
این پایگاههای داده، در مدیریت دادههایی نظیر متغیرهای یک Session در وب، قفلهای دادهای و آمار کوتاه مدت، جایگاه بسیارخوبی کسب کردهاند. نمونه مناسبی برای این کاربرد، پایگاه دادهای Memcached است.
اما نکتهای که باید در این میان به آن توجه کرد آن است که یک توسعهدهنده، باید برای کاری که میخواهد انجام دهد، ابزار مناسب را انتخابکند.
به این معنا که برای بسیاری از کاربردهای معمولی، هنوز پایگاههای دادهای سنتی بهترین راه حل هستند و نباید آنها را تمام شده تصور کرد. همانطور که قبلاً نیز گفته شد، پایگاههای دادهای NoSQL برای مواردی خاصمناسب هستند که در بالا به آنها اشاره شد و موجب افزایش کاراییکل مجموعه نرمافزاری میشوند.
جمع بندی
در بسیاری از موارد، انتخاب یک پایگاه داده NoSQL برای کاربردی خاص موجب افت شدید عملکرد و عدم پایداری مجموعه و قابلیت اطمینان بسیار پایین میشود. به همین دلیل و به علت تعدد ابزارهای توسعهداده شده در این زمینه، گاهی اوقات تشخیص محدودیتها و مصالحههایی که باید در استفاده از یک ابزار درنظر گرفت، بسیار مشکل شده و انتخاب راه حل مناسب در محیطهای رابطهای یا غیر رابطهای یک یا چند سروری، سردرگم کننده خواهد بود.
منبع : ماهنامه شبکه