تا چند سال پیش، تقریبا تمام توسعه دهندگان تنها مدلی که برای طراحی پایگاه داده خود در اختیار داشتند، مدل سنتی جدول بود که میراث حکمرانی چندین و چند ساله مدل پایگاه داده رابطهای بوده است. هماکنون نیز بسیاری میپندارند همچنان تنها مدل قابل استفاده برای پیادهسازی پایگاه داده، همین مدل رابطهای است. اما دنیا دیگر تغییر کرده و براساس چالشهای موجود بر سر راه مدل سنتی، مدلهای جدیدی معرفی شدهاند که در بسیاری از زمینهها و در مواجهه با بسیاری از چالشها، شایستگیهای بسیاری دارند. برهمین اساس در دهه اخیر مدلی تحت عنوان NoSQL با هدف رفع محدودیتهای مدل رابطهای از جمله مقیاسپذیری، چندساختاری دادهها و توزیعشدگی گسترش یافته است.
NoSQL که خلاصه شده عبارت Not only sql است، شامل گستره بزرگی از پایگاههای داده مختلف بوده که برای پاسخگویی به نیازها و مشکلات موجود در ساخت اپلیکیشنهای مدرن گسترش یافتهاند. به عبارت دیگر میتوان گفت دلیل اصلی گسترش بانکهای اطلاعاتی NoSQL، پاسخگویی به نیازهایی است که مدل رابطهای در برآورده کردن آنها ناتوان بوده است. به عنوان مثال میتوان ادعا کرد که مدل رابطهای در اکثر موارد در مدیریت دادههای حجیم (Big data) به مشکل برخورده و کارایی لازم را ندارد اما NoSQL را میتوان بهترین مدل برای کار با این نوع از دادهها دانست. تفاوت اصلی NoSQL با پایگاه دادههای رابطهای را میتوان در روش مدل کردن دادهها دانست که به روشهایی غیر از روش روابط بین جداول صورت میگیرد.
انواع پایگاه دادههای NoSQL
از منظر روش مدل کردن دادهها، NoSQL را به چهار دسته کلی تقسیم بندی میکنند که به بررسی اجمالی هریک می پردازیم:
سند محور (Document-oriented): در پایگاههای داده سند محور، واحد اصلی ذخیره و کار با دادهها سندها هستند که از انعطاف پذیری بالایی برخوردار هستند. در این مدل، هرسند یک شناسه منحصربفرد داشته که آن را از سایر اسناد جدا میکند. CouchDB و MongoDB از جمله پایگاه دادههای معروف سند محور هستند.
کلید-مقدار (Key-Value store): این نوع سادهترین گونه از پایگاه داده NoSQL بوده به طوری که هر آیتم داخل پایگاه داده، توسط یک خصیصه (Attribute) به همراه مقدار (Value) آن خصیصه ذخیره میشود. پایگاه داده Riak در این دستهبندی قرار میگیرد.
گراف محور (Graph-oriented): یکی از چهار گروه اصلی بانکهای اطلاعاتی NoSQL، بانکهای اطلاعاتی مبتنی بر گراف هستند. ساختاری که اطلاعات در آن به صورت گره و یال ذخیره میشوند. معمولا مثالی که برای کاربردهای این نوع از پایگاه اطلاعاتی بیان میشود شبکههای اجتماعی مانند فیس بوک و توئیتر است که در آن هر فرد یک گره در نظر گرفته میشود و رابطه دوستی بین افراد، یالهای این گراف را تشکیل میدهند. معروفترین پایگاه داده گراف محور Neo4j است.
ستون محور (Column-oriented): این نوع برای اجرای پرس و جو در مجموعه دادههای بزرگ بهینه سازی شده و به جای ردیفها، ستونهای داده را در کنار یکدیگر نگهداری می کنند. از مهمترین پایگاه دادههای ستون محور میتوان به Cassandra اشاره کرد.