رهام رفیعی تهرانی
رهام رفیعی تهرانی
خواندن ۲ دقیقه·۳ سال پیش

آشنایی با مُدل های سیستم مدیریت دیتابیس NoSQL

این مقاله رو با هدف آشنایی مختصر و مفید با NoSQL ها می نویسم. برای مدیریت داده های پیچیده امروز، راه حل های متنوعی هست که بهتره با اونها آشنا باشیم.

کلمه DBMS مخفف Database Management System هست. DBMS هایی که از نوع NoSQL هستند صرفا یک ویژگی مشابه دارند. مثل DBMS های قدیمی تر Relational نیستند. تعداد مُدل های NoSQL DBMS زیاد است، اما چهار مُدل آن از بقیه مشهورترند:

  1. مدل key-value stores
  2. مدل wide-column stores
  3. مدل Document Databases
  4. مدل Graph Databases


مدل key-value stores یا همان value stores

این مُدل ها معمولا هر value را در یک key یکتا (unique) نگه میدارند و بسیار ساده هستند. اگر به صورت Persistent استفاده نشوند، داده ها داخل RAM ذخیره شده ذخیره و بازیافت سریعی دارند. من همیشه از این مُدل برای داده هایی استفاده میکنم که موقت هستند و زنده بودن آنها به زنده بودن سیستم بستگی دارد. از بین رفتن آنها هم مشکلی برای سیستم ایجاد نمیکند.

نمونه ابزارهای موجود: Redis / Riak / Voldemort


مدل wide-column stores یا همان extensible record stores یا column oriented

این مدل داده ها را به صورت رکوردهایی مجزا در جدول نگه میدارند. فیلدهای هر رکورد مجزا از رکوردهای دیگر است. در واقع این مُدل، بهترین روش برای ذخیره داده های عظیمی است که به صورت دو بعدی نگهداری میشوند.

نمونه ابزارهای موجود: Cassandra / SAP HANA / HBase


مدل Document Databases

این مدل هر کلید رو با یک ساختار داده پیچیده (Document) مرتبط میکنه. داکیومنت ها میتوانند value ها، آرایه ها و حتی داکیومنت هایی زیرمجموعه خود (subdocuments) نگهداری کنند.

نمونه ابزارهای موجود: MongoDB / CouchDB / CosmosDB / DynamoDB


مدل Graph Databases

این مدل برای نگهداری ارتباطات شبکه ای مانند کانکشن های اجتماعی استفاده میشه.

نمونه ابزارهای موجود: Neo4J / Polyglot / HyperGraphDB / Dgraph


موضوعی که در آخر میخوام بهش اشاره کنم، اینه که این ها مُدل ها هستند. ابزارها ممکنه بیش از یک مُدل رو پشتیبانی کنند. مثلا MongoDB ابزارهایی رو به زیرمجموعه فیچرهاش اضافه کرده که از مُدل Graph Databases هم پشتیبانی میکنه. به تفاوت بین مُدل و ابزار دقت کنیم.

:)


nosqldbmsgraph databasedocument databasedatabase
برنامه نویسی یک شغل نیست، یک هنره.
شاید از این پست‌ها خوشتان بیاید