صفحه نخست --> پایگاه داده غیر رابطه ای (NOSQL) --> انواع پایگاه داده های غیر رابطه ای یا NOSQL

انواع پایگاه داده های غیر رابطه ای یا NOSQL

انواع پایگاه داده های NOSQL: پایگاه داده های غیر رابطه ای براساسِ روشی که داده­  ها را ذخیره می­کنند، دسته ­بندی می­شوند. هر چند امروزه بعضی از پایگاه داده های غیر رابطه ای پا را از دسته بندی مطرح شده در این مبحث فراتر گذاشته و به صورت چند منظوره عمل میکنند. البته قبل از ارائه دسته بندی در این پست، سیر زمانی بوجود آمدن پایگاه دادهای NoSQL را در دوشکل زیر بررسی میکنم. هر چند که از سال ۲۰۰۳ فعالیت هایی در حوزه تولید ابزار های کلان داده مثل هدوپ صورت گرفته است ولی عملا از سال ۲۰۱۳ پایگاه داده های غیر رابطه ای معروف ارائه شده اند. (پیشنهاد میشود برای دیدن سایر ابزار های در حوزه کلان داده و گراف کاوی به این مبحث مراجعه کنید)

خط زمانی پایگاه داده های غیر رابطه ای
time line of sql
سیر زمان کلان داده
bigdata time line

دسته­ های اصلی که در مقالات بیان می­شود، شامل موارد ذیل است:

  • مخازن کلید-مقدار (Key-value stores)
  •  مخازن سندگرا (Document-oriented stores)
  •  مخازن ستون­گرا یا ستونی گسترده (Wide column stores-Column family stores-Extensible Record stores)
  •  پایگاه ­های داده مبتنی بر گراف (Graph oriented,Graph base)
انواع پایگاه داده غیر رابطه ای
انواع پایگاه داده های NOSQL

نمونه هایی از انواع پایگاه داده های NOSQL:

  • مخازن کلید-مقدار (key value)مانند: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB
  • مخازن سندگرا مانند: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, Lotus Notes, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
  • مخازن ستون­گرا مانند: , Accumulo , Cassandra , Druid , HBase Vertica
  • پایگاه­های داده مبتنی بر گراف: AllegroGraph, InfiniteGraph, Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog
  • چند مدلی مانند: Alchemy Database, ArangoDB, CortexDB, FoundationDB, MarkLogic, OrientDB

انواع پایگاه داده های NOSQL

مخازن کلید-مقدار

بانک‌های key value اطلاعاتی شامل جداولی از اطلاعات هستند. هر جدول نیز شامل تعدادی ردیف است؛ چیزی همانند بانک‌های اطلاعاتی رابطه‌ای. اما در هر ردیف، یک Dictionary یا آرایه‌ای از اطلاعات key-value  شکل را شاهد خواهید بود. در اینجا ساختار و شمای ردیف‌ها می‌توانند نسبت به یکدیگر کاملاً متفاوت باشند. دراین‌بین، تنها تضمین خواهد شد که هر ردیف، Id منحصربه‌فردی دارد. از این نوع بانک‌های اطلاعاتی، در سکوهای کاری ابری زیاد استفاده می‌شود.

ساده ­ترین نوع از DBMSهای NoSQL، شامل مجموعه­ای از جفت­های کلید-مقدار است. همان­طور که از نام آن مشخص است، مخزن کلید-مقدار، سیستمی است که به منظور بازیابی، مقادیر را بدون شِما (schema-less) و براساس کلید، اندیس­گذاری و ذخیره می­کند. یک کلید بطور یکتا، مقداری را که می­تواند دارای ساختار یا کاملا بدون ساختار باشد، مشخص می­کند. در واقع، جستجو معمولا تنها بر اساس کلید صورت می­گیرد.

سادگی مخازن کلید-مقدار، آن­ها را برای بازیابی بسیار سریع مقادیر در کاربردهایی نظیر مدیریت نمایه­های کاربر، مدیریت وضعیت (برای مثال، ثبت وضعیت سبد خرید کاربر) و جلسه و همچنین بازیابی نام­ محصولات، مناسب می­سازد. Amazon، از مخزن کلید-مقدار Dynamo برای مدیریت سبد خرید کاربران استفاده می­کند.

مخازن سند­گرا

در مخازن سند­گرا می­توان داده­ های پیچیده­ تری را نسبت به مخازن کلید-مقدار، ذخیره کرد. این نوع از DBMSهای NoSQL از اندیس­های ثانویه، از انواع اسناد یا اشیاء در هر پایگاه­داده، و اسناد تودرتو یا لیست­ها، پشتیبانی می­کنند. به هر عضو از داده ­ها در این نوع از مخازن، سند، و به گروهی از اسناد، مجموعه می­گویند. می­توان مجموعه­ها را معادل جداول در پایگاه­های داده رابطه­ای و سند را نیز، رکورد فرض کرد. اما تفاوت بسیار مهم در این دو مدل این است که هر رکورد در هر جدول، دارای تعداد مشابهی از فیلدها(یا ستون­ها) است، در حالی­که اسناد در یک مجموعه ممکن است دارای فیلد­های مختلفی باشند. در این نوع از DBMSها، اسناد را علاوه بر کلید، می­توان براساس محتوا­ نیز جستجو کرد .

مخازن سندگرا، برای مدیریت و ذخیره­سازی داده­های عظیم پراکنده که نیاز به استفاده از مقادیر null در DBMSهای رابطه­ای دارند(نیمه ساخت­یافته)، مناسب هستند.

در مخازن سند­گرا بجای جداول، دارای بانک‌های اطلاعاتی مختلفی هستند و در اینجا بجای ردیف‌ها، سند یا   document دارند. ساختار سندها نیز عموماً بر مبنای اشیاء JSON تعریف می‌گردد. بنابراین هر سند دارای تعدادی خاصیت است (چون اشیاء JSON به این نحو تعریف می‌گردند) که دارای مقدار هستند. در نگاه اول، شاید این نوع اسناد، بسیار شبیه به key-value stores به نظر برسند. اما در حین تعریف اشیاء JSON، یک مقدار می‌تواند خود یک شیء کامل دیگر باشد و نه صرفاً یک مقدار ساده. به همین جهت عده‌ای به این نوع بانک‌های اطلاعاتی، بانک‌های اطلاعاتی Key-value store سفارشی و خاص نیز می‌گویند.

مخازن ستونی گسترده

پایگاه‌های داده ستونی با توسعه کلید-مقدارها بوجود آمده‌اند. این سیستم‌ها درواقع بجای یک جفت کلید-مقدار، می‌توانند برای هر رکورد چندین جفت کلید-مقدار داشته باشند. در این نوع نیازی به ساختار نداریم و هر رکورد می‌تواند چندین ستون با تعداد صفات متفاوت داشته باشند. از مزایای این دسته می‌تواند ذخیره سازی میزان وسیع و متفاوتی از رکوردها با مقادیر بسیار باشد.

مخازن ستونی گسترده یا ستون­گرا، از محصول موفق BigTable شرکت گوگل تاثیر پذیرفته­اند. سطرها و ستون­ها، مدل داده­ای اصلی آن­ها را تشکیل می­دهند. در این نوع از DBMSها، مقیاس­پذیری با تقسیم سطرها و ستون­ها در میان چندین گره، فراهم می­شود  (توزیع داده­ها بصورت افقی و عمودی):

  • سطرها توسط sharding و براساس کلید اصلی، شکسته و در میان گره­ها تقسیم می­شود.
  • ستون­های جدول، بر اساس فامیلی ستون­، در میان گره­ها توزیع می­شود.

پایگاه ­های داده مبتنی بر گراف

پایگاه ­های داده گرافی، جداول رابطه­ای را با گراف­های رابطه­ای ساخت­ یافته­ ی جفت­های کلید-مقدار متصل، جایگزین می­کند. در واقع، این DBMSها، برای رابطه(پیمایش) بهینه ­سازی شده است (برای مثال، دوستِ دوستِ دوستِ … تمام کاربران). زمانی­که روابط بین داده­ها، از خود داده­ها، مهم­تر باشد، از DBMSهای گرافی استفاده می­شود؛ برای مثال نمایش و پیمایش شبکه­ های اجتماعی، تولید لیست پیشنهاد در فروشگاه ­های برخط و غیره. برای مدل کردن این گراف­ها در پایگاه داده رابطه­ای، تعداد بسیار زیادی رابطه چند به چند ایجاد خواهد شد. بنابراین، برای اجرای پرس­و­جوهایی که تمرکز آن­ها بر روی روابط بین داده­ها است، عملیات الحاق (join) پیچیده­ای لازم خواهد بود.

Graph databases نوع خاصی از بانک‌های اطلاعاتی NoSQL هستند که جهت ردیابی ارتباطات بین اطلاعات طراحی شده‌اند و برای برنامه‌های شبکه‌های اجتماعی بسیار مفید هستند. در اینجا نودها می‌توانند دارای خاصیت‌ها و مقادیر متناظر با آن‌ها باشند.

در نهایت برای درک  میزان حجم قابل پشتیبانی و پیچیدگی داده، نمودار زیر را بررسی کنید.

مقایسه پایگاه داده های غیر رابطه ای
مقایسه انواع پایگاه داده های NOSQL از لحاظ پشتیبانی از حجم و پیچیدگی داده

کانال تلگرام ما:

http://t.me/bigdata_channel

نظر(دیدگاه)

  1. خیلی خوب و کامل بود

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *