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