دیتابیس های خود را بشناسید (پارت دوم)

دیتابیس های خود را بشناسید (پارت دوم)

آنچه گذشت:

در قسمت قبل کلمات کلیدی در زمینه ی دیتابیس های رو با معانیشون یاد گرفتیم و دیدیم که دیتابیس ها چطوری شکل گرفتن و نسل قبلی دیتابیس ها چطور شروع و تموم شدن. همچنین انواع ارتباط بین المان های یک دیتابیس رو در تصاویر مختلف دیدیم.



دیتابیس های مدرن:

گفتیم که دیتابیس های سلسله مراتبی قادر به ایجاد مدل های many-many و many-one نبودند. نیاز به این نوع مدل ها باعث شد که در دهه ی 60 میلادی مدل جدیدی توسعه پیدا کند.


مدل شبکه ای:

چارلز باکمن در دهه ی 60 میلادی اولین سیستم DBMS شرکت Honeywell را با نام IDS توسعه داد. این مدل در سال 1971 به صورت عمومی و استاندارد شده در دسترس قرار گرفت. در این مدل که از مدل تئوریک دیگری با نام مدل شبکه عمومی الهام گرفته بود، ارتباط بین فایل ها به هر شکلی ممکن بود و یک سر این ارتباط مالک(owner) و سر دیگر این ارتباط عضو (member) نام داشت.

در این مدل 3 المان وجود داشت که نمایانگر دیتابیس و اجزای آن بود:

  • شماتیک شبکه
  • زیر-شماتیک ( که دسترسی های گروه های کاربری مختلف آنجا تعیین می شد)
  • زبان مدیریت داده


این مدل با اینکه مشکلات ارتباطی و محدودیت های گذشته را نداشت اما بسیار پیچیده بود و طراحی و نگهداری و توسعه ی آن بسیار سخت بود.



Relational Database

1970 تا امروز:(SQL)

از 1970 با توسعه ی مدل شبکه ای دیتابیس ها به سرعت شروع به تغییر و کامل شدن کردند و دیتابیس های ارتباطی(Relational) توسط E.F. Codd معرفی شدند. این دیتابیس ها دو ترمینولوژی اصلی داشتند: instance و schema

در این دیتابیس ها instance جدولی با ردیف ها و ستون ها بود و schema ساختارها (ارتباط ستون ها و بخش های مختلف جدول) را مشخص میکرد.

دیتابیس ها تا سال 1995 نیز تنها به صورت محلی مورد استفاده قرار میگرفتند و در این حین مدل های پیچیده ی دیگری مانند object-oriented model و object-relational model و ... معرفی شدند.

دیتابیس های ابری:

دیتابیس های ابری گام بعدی در پیشرفت دیتابیس ها بودند. در این دیتابیس ها ذخیره ی همه نوع داده(ساختار یافته و ساختار نیافته) امکان پذیر بود. این دیتابیس ها قابل دسترسی با استفاده از اینترنت بودند. این سرویس ها مدیریت شده بودند ( DBaaS ) و نیازی به نصب و پیکر بندی خاصی برای آنها وجود نداشت.

مزایای دیتابیس های ابری:

  • هزینه ی پایین: دیتابیس های SQL مختلفی وجود داشت که به صورت متن باز یا خصوصی در حال توسعه بودند و ارائه دهندگان DBaaS نیاز به سرمایه گذاری روی این تکنولوژی ها نداشتند؛ در نهایت این دیتابیس ها ارزان تر در دست توسعه دهندگان و دیگر شرکت ها قرار میگرفت.
  • اتوماسیون شده: بسیاری از فرآیندهای مهم مانند ریکاوری ، failover و auto-scaling به صورت خودکار توسط ارائه دهندگان انجام میشد.
  • دسترسی آسان: امکان دسترسی به دیتابیس ها در هر زمان و مکانی با دسترسی به اینترنت ممکن بود.

دیتابیس های NoSQL

دیتابیس های SQL بسیار کار توسعه دهندگان را ساده کرده بودند اما هنوز نیاز به پیاده سازی مدل های پیچیده تر وجود داشت. No در NoSQL به معنای "Not only" (نه فقط) است که به این معناست که این دیتابیس ها مدل های دیگر و غیر جدولی را نیز پشتیبانی میکنند.

این دیتابیس ها 3 دسته ی اصلی دارند:

1- دیتابیس های مبتنی بر داکیومنت مانند MongoDB, CouchDB, Cloudant

2- حافظه های کلمات کلیدی مانند Memcached, Redis, Coherence

3- جدولی مانند HBase, Big Table, Accumulo

مزایای NoSQL:

  • قابلیت توسعه پذیری: با رشد داده ها دیتابیس نیز رشد میکند تا داده ها را به بهترین شکل مدیریت کند.
  • قابلیت تقلید: در صورت بروز خطا تصاویر داده ها قابلیت برگشت به وضعیت پایدار قبلی خود را دارند.

معایب NoSQL

  • متن باز هستند: به زبان ساده تر هیچ استانداردی برای آنها وجود ندارد.
  • مدیریت آنها پیچیده تر از SQL دیتابیس هاست.
  • رابط کاربری کاربردی ندارند.
  • بکاپ گرفتن از آنها بسیار دشوار و پیچیده است.


در قسمت بعدی دیتابیس های مبتنی بر گراف معرفی می شوند و کاربردهای دیتابیس های SQL، NoSQL و Graph را با یکدیگر مقایسه می کنیم.