در بخش اول به بررسی انواع پایگاه دادههای NoSQL پرداختیم. در این قسمت به بررسی ویژگیهای مشترک این نوع از پایگاه دادهها میپردازیم.
مزایای NoSQL
در مقایسه با پایگاه دادههای رابطهای، پایگاه دادههای NoSQL، مقیاس پذیرتر بوده و عملکرد بالاتری را فراهم میآورند. همچنین مدل داده آنها، موضوعات مختلفی را که توسط مدل رابطهای مغفول ماندهاند، مورد توجه قرار میدهد، مواردی از قبیل:
- حجم بزرگ دادههای ساختار یافته، نیمه ساختار یافته و بدون ساختار
- ورود کدهای متداول، درخواستهای پردازشی سریع
- برنامه نویسی شی گرا؛ که منعطف بوده و به راحتی قابل استفاده است
- معماری موثر و فرا مقیاس به جای معماری گران و غیر منعطف
ویژگیهای مهم پایگاه دادههای NoSQL
شِمای پویا
در پایگاه دادههای رابطهای، همواره پیش از اینکه بتوانید دادهای را اضافه نمایید، شِماها باید تعریف شده باشند. برای مثال؛ ممکن است در نظر داشته باشید اطلاعاتی از قبیل نام، شماره تلفن، استان، شهر و آدرس مشتریان خود را ذخیره نمایید. در یک پایگاه داده رابطهای باید از ابتدا بدانید چه دادههایی را می خواهید ذخیره کنید. این وضعیت تناسب بسیار ضعیفی با رویکرد توسعه چابک (Agile) دارد، چراکه هر بار که یک ویژگی جدید را کامل مینمایید، اغلب شِمای پایگاه داده نیاز به تغییر دارد. برای مثال؛ اگر تصمیم گرفتید که کمی دایره دادهها را توسعه دهید و علاوه بر نام و آدرس مشتریان، اطلاعات اضافی دیگری را نیز ذخیره کنید، نیازمند افزودن ستون به پایگاه داده و سپس مهاجرت کل پایگاه داده به یک شِمای جدید هستید.
اما در پایگاه دادههای NoSQL میتوان دادهها را به راحتی و بدون نیاز به شِمای از پیش تعریف شده، ذخیره کرد. در واقع این نوع از پایگاه دادهها، ایجاد تغییرات وسیع و در لحظه را بدون نگرانی از ایجاد اختلال در خدمت رسانی تسهیل می کنند؛ و این به این معنی توسعه سریعتر، یکپارچه سازی کد با اطمینان بیشتر و نیاز به صرف زمان راهبری کمتر پایگاه داده است.
توزیع خودکار دادهها
پایگاه دادههای رابطهای معمولا به صورت عمودی ساختاردهی میشوند؛ که در این صورت یک سِرور باید تمامی پایگاه داده را میزبانی کند تا از پایایی و تداوم دسترسی به دادهها، اطمینان حاصل شود. این امر موجب افزایش هزینهها، محدودیت مکان در مقیاسهای بالاتر و ایجاد نقاط شکست نسبتا کوچک برای زیرساخت پایگاه داده میشود. راه حل، ساختاردهی به صورت افقی است، یعنی افزودن سرور به جای تمرکز بر افزایش ظرفیت یک سرور یکتا.
به این ترتیب میتوان به جای استفاده از یک پایگاه داده، بخشهای مختلف داده را روی پایگاههای مختلف نگهداری کرد. به علاوه هنگام بازیابی اطلاعات نیز، اسناد مرتبط را که ممکن است بر روی پایگاه دادههای مختلف ذخیره شده باشند، در یک زمان فراخوانی کرد. پایگاه دادههای NoSQL به صورت خودکار میتوانند دادهها را میان چندین سرور توزیع و بازخوانی کنند.
تکرار
بیشتر پایگاه دادههای NoSQL از تکرار خودکار نیز پشتیبانی می کنند، به این معنی که قابلیت دسترسی بالا و نسخه پشتیبان در مواقع بروز اتفاق غیرمترقبه در دسترس قرار میگیرد.