معرفی NoSQL

تا حدود ده سال پیش، قبل از پیدایش NoSQL ، همه ی پایگاه‌های داده از نوع SQL بودند؛ که یک پایگاه داده رابطه ای یا Relational است. پایگاه‌های داده رابطه ای ساده هستند و کار کردن با آن‌ها معمولا راحت است. اما این نوع از پایگاه‌های داده یک مشکل بزرگ دارند. این مشکل زمانی خود را نشان داد که غول‌های نرم افزاری دنیا مثل گوگل، آمازون و فیسبوک احتیاج به تحلیلِ داده‌های با حجم و تعداد بالا یا همان Big Data پیدا کردند.

پایگاه‌های داده رابطه ای به دلیل نوع ساختار خود، برای تحلیل داده‌های بزرگ غیر بهینه، ناکارآمد و همینطور کند بودند. البته در بعضی موارد هم استفاده از ساختار جدولی که در پایگاه‌های داده رابطه ای استفاده می‌شود تقریبا ناممکن بود. همینطور ذخیره سازی حجم زیادی از داده‌های بی ساختار (Non-structured Data) سرعت و کارایی این پایگاه‌های داده را به شدت کاهش می‌داد. تا اینکه پایگاه‌های داده NoSQL بوجود آمدند. در کل، هدف اصلی ایجاد پایگاه‌های داده NoSQL کار با داده‌های بی ساختار و حجیم است.

پایگاه‌های داده  های NoSQL که مخفف Not Only SQL یا Non-Relational SQL هستند برعکس نوع SQL از ساختارهای Schema غیر ثابت یا Dynamic Schema استفاده می‌کنند. این باعث می‌شود که برنامه نویسان احتیاجی به تشکیل ساختارهای سخت گیرانه مشخص ( مانند نوع موجودیت، نوع جدول، تعداد ستون، ارتباط با جداول دیگر و…) پیش از ایجاد پایگاه‌های داده را نداشته باشند. این پایگاه‌های داده می‌توانند انواع مختلفی داشته باشند و برعکس SQL برای ذخیره سازی داده‌ها از قالب های XML یا JSON استفاده می‌کنند.

انواع دیتابیس های NoSQL

پایگاه های داده NoSQL به 4 دسته ی اصلی تقسیم می شوند:

  1. کلید مقدار (Key/Value) : در این نوع از پایگاه داده اطلاعات در قالب جفت‌های کلید-مقدار یا Key-Value ذخیره می‌شود. کلیدها نقش شناسه هر داده را بازی می‌کند. یعنی می‌توان با استفاده از آن‌ها مقادیر مختلف داده را ذخیره یا پیدا کرد. پایگاه‌های داده کلید-مقدار به دلیل ساده بودن در کارکرد،یکی از پرکاربرد‌ترین نوع پایگاه‌های داده NoSQL هستند. مهمترین پایگاه داده کلید-مقدار Redis است.
  2. ستونی (Wide-Column) : پایگاه‌های داده ستونی بسیار شبیه پایگاه‌های داده رابطه ای هستند. اما این فقط ظاهر این گونه پایگاه‌های داده است. در پایگاه‌های داده رابطه ای لازم است که تعداد و نوع ویژگی‌های هر موجودیت و مقادیر داخل آن مشخص و ثابت باشد. این در حالی است که در پایگاه‌های داده ستونی، هر ستون در رکوردهای مختلف می‌تواند شامل داده هایی با ساختار و نوع متفاوت باشد. مهمترین پایگاه داده ستونی Apache Casandra است که ابتدا در فیسبوک ایجاد شد.
  3. سندگرا (Document-Oriented) : پایگاه‌های داده های سندگرا برای ذخیره سازی داده‌ها از اسناد JSON یا XML استفاده می‌کنند. پایگاه‌های داده سندگرا معمولا برای ذخیره سازی و استفاده از داده‌های پراکنده و بی ساختار استفاده می‌شوند. مهمترین پایگاه های داده سندگرا Mongo DB و Couch Base هستند.
  4. گرافی (Graph) : در این نوع از پایگاه‌های داده برای ذخیره سازی موجودیت‌ها و روابط بین آن‌ها از گراف ها استفاده می‌شود. پایگاه‌های داده گرافی برای مواردی مدل سازی به صورت گراف است و در آن‌ها به ایجاد ارتباط‌های متعدد بین جداول احتیاج است بسیار مناسب هستند. معروفترین پایگاه های داده گرافی، Neo4j، OrientDB هستند.

طبق تحقیقات سایت db-engines.com در بین تمام پایگاه های داده NoSQL، پایگاه داده Mongo DB از تمام آنها معروف تر است. معروف ترین و مورد استفاده ترین پایگاه های داده در جدول زیر نشان داده شده اند و پایگاه های داده NoSQL به رنگ سبز نشان داده شده اند.

رتبه نام پایگاه داده نوع پایگاه داده
1. Oracle رابطه ای
2. MySQL رابطه ای
3. Microsoft SQL Server رابطه ای
4. PostgreSQL رابطه ای
5. MongoDB غیر رابطه ای
6. IBM Db2 رابطه ای
7. Redis غیر رابطه ای
8. Elasticsearch موتور جستجو
9. SQLite رابطه ای
10. Microsoft Access رابطه ای
11. Cassandra غیر رابطه ای
12. MariaDB رابطه ای
13. Splunk موتور جستجو
14. Hive رابطه ای
15. Microsoft Azure SQL Database رابطه ای
16. Amazon DynamoDB غیر رابطه ای
17. Teradata رابطه ای
18. SAP HANA رابطه ای
19. Neo4j غیر رابطه ای
20. Solr موتور جستجو
21. SAP Adaptive Server رابطه ای
22. FileMaker رابطه ای
23. HBase غیر رابطه ای
24. Google BigQuery رابطه ای
25. Microsoft Azure Cosmos DB غیر رابطه ای
26. Couchbase غیر رابطه ای
27. Snowflake رابطه ای

نوشته شده توسط mrbitmap علیرضا علی رمضانی

مقالات مرتبط

جدیدترین مقالات

فهرست