نواسکیوال( NoSQL ) چیست؟
حجم اطلاعات ذخیره شده روی سیستمهای کامپیوتری روز به روز در حال بیشتر شدن است. به علاوه نیاز به نگهداری انواع جدیدی از اطلاعات مانند اطلاعات چندرسانهای و اطلاعات پیچیده نسبت به گذشته افزایش چشمگیری یافته است.
سیستمهای پایگاه دادهی قدیمی یا بانکهای اطلاعاتی رابطهای( Relational ) در گذشتههای دور برای پاسخ به نیازهای قدیم طراحی و پیادهسازی شدهاند. این سیستمها اطلاعات را در قالب جدولهایی دوبعدی که با یکدیگر ارتباطهایی برقرار میکنند، تعریف میکنند.
طراحی جداول به صورت بهینه و کارآمد در سیستمهای اطلاعاتی رابطهای کاری پیچیده و دشوار است و موانعی مانند نرمالسازی و افزونگی اطلاعات همیشه پیش روی طراحان پایگاه داده و برنامهنویسان بودهاند.
با توجه به نیازهای جدید و عدم پاسخگویی مناسب سیستمهای رابطهای مانند SQL Server، MySQL، Oracle، SQLite و سایر بانکهای اطلاعاتی، مفهوم جدیدی به نام NoSQL یا Non SQL طراحی شد.
تفاوت سیستمهای NoSQL با سیستمهای Relational یا رابطهای
در سیستمهای رابطهای اطلاعات به صورت جدولی و دو بعدی ذخیره و بازیابی میشوند. همچنین زبان پرسوجوی SQL که متناسب با این ساختار ایجاد شده است، توسط برنامهنویسان به کار گرفته میشود تا عملیات لازم روی پایگاه داده به انجام برسد.
در سیستمهای NoSQL اطلاعات ساختار جدولی و دوبعدی از پیشتعریف شده را ندارند. برنامهنویس بسته به نیاز اطلاعاتی با ساختارهای مختلف و از جمله چند بعدی را به پایگاه دادهی NoSQL ارسال میکند. خواندن و نوشتن اطلاعات در این سیستمها به صورت اختصاصی با فرمول ثابت SQL نخواهد بود.
نمونههایی ساده از سیستم ذخیرهسازی اطلاعات NoSQL در گذشته نیز استفاده میشده است. شناختهشده ترین این سیستمها XML و JSON هستند.
آیا NoSQL جایگزین SQL است ؟
ممکن است این پرسش پیش بیاید که آیا NoSQL جایگزین SQL است و آیا لازم است SQL را یاد بگیریم ؟
NoSQL در بسیاری از موارد میتواند جایگزینی برای SQL یا پایگاه دادههای رابطهای باشد ولی همیشه بهترین راه حل برای جایگزینی این سیستمها نیست. به نظر نمیرسد حداقل تا سالهای طولانی NoSQL بتواند سیستمهای رابطهای را از بین ببرد. البته بخشی از سهم بازار با توجه به نیازهای دنیای جدید از این سیستم جدید استفاده میکنند.
یادگیری SQL هم هنوز در بسیاری از موارد ضروری است. بسیاری از نرمافزارهای توسعه یافته در گذشته و حال حاضر از پایگاه دادههای SQL استفاده میکنند و برای فعالیت در شاخهی برنامهنویسی، داشتن مهارت SQL هنوز دارای اهمیت زیادی است.
انواع پایگاه داده NoSQL
هنگامی که نخواهیم برای اطلاعات ساختار جدولی داشته باشیم، ساختار جایگزین میتواند از تنوع برخوردار باشد. برخی از انواع مدلهای طراحی شده که در هر مدل، چندین نرمافزار مختلف وجود دارند را در ادامه مشاهده میکنید:
- ستونی: Accumulo، Cassandra، Druid، HBase، Vertica
- سندی: Apache CouchDB، Clusterpoint، Couchbase، Cosmos DB، HyperDex، MarkLogic، MongoDB، OrientDB، RethinkDB
- کلید و مقدار: Aerospike، Couchbase، Dynamo، FairCom c-treeACE، FoundationDB، HyperDex، MemcacheDB، MUMPS، Oracle NoSQL، OrientDB، Redis، Riak، Berkeley DB
- گراف: AllegroGraph، MarkLogic، NeoJ، OrientDB، Virtuoso، Stardog
- چند مدلی: Alchemy Database، ArangoDB، CortexDB، FoundationDB، MarkLogic، OrientDB
سرویسهای میزبانی آنلاین( Hosted )
با توجه به عدم فراگیری سیستمهای ذخیره اطلاعات NoSQL ممکن است نصب و استفاده از این ابزارها در هنگام طراحی سایت و سرویسهای تحت وب به آسانی امکانپذیر نباشد. برای پاسخگویی به این نیاز، خدمات آنلاین( Hosted ) برای ذخیره و بازیابی اطلاعات NoSQL نیز توسط برخی شرکتها ارائه میشوند. تعدادی از ارائه دهندگان سرویسهای NoSQL ابری یا Hosted را در ادامه مشاهده میکنید:
ممنون از مطالبتون