
تا حدود ده سال پیش، قبل از پیدایش 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 دسته ی اصلی تقسیم می شوند:
- کلید مقدار (Key/Value) : در این نوع از پایگاه داده اطلاعات در قالب جفتهای کلید-مقدار یا Key-Value ذخیره میشود. کلیدها نقش شناسه هر داده را بازی میکند. یعنی میتوان با استفاده از آنها مقادیر مختلف داده را ذخیره یا پیدا کرد. پایگاههای داده کلید-مقدار به دلیل ساده بودن در کارکرد،یکی از پرکاربردترین نوع پایگاههای داده NoSQL هستند. مهمترین پایگاه داده کلید-مقدار Redis است.
- ستونی (Wide-Column) : پایگاههای داده ستونی بسیار شبیه پایگاههای داده رابطه ای هستند. اما این فقط ظاهر این گونه پایگاههای داده است. در پایگاههای داده رابطه ای لازم است که تعداد و نوع ویژگیهای هر موجودیت و مقادیر داخل آن مشخص و ثابت باشد. این در حالی است که در پایگاههای داده ستونی، هر ستون در رکوردهای مختلف میتواند شامل داده هایی با ساختار و نوع متفاوت باشد. مهمترین پایگاه داده ستونی Apache Casandra است که ابتدا در فیسبوک ایجاد شد.
- سندگرا (Document-Oriented) : پایگاههای داده های سندگرا برای ذخیره سازی دادهها از اسناد JSON یا XML استفاده میکنند. پایگاههای داده سندگرا معمولا برای ذخیره سازی و استفاده از دادههای پراکنده و بی ساختار استفاده میشوند. مهمترین پایگاه های داده سندگرا Mongo DB و Couch Base هستند.
- گرافی (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 | رابطه ای |
2 دیدگاه. ارسال دیدگاه جدید
تشکر فراوان برای مطالب بسیار خوبتون
ممنون از اینکه این مطلب رو مطالعه کردید