پایگاه داده های رابطه ای با قابلیت اطمینان و سازگاری در هسته خود طراحی شده اند. مهندسانی که آنها را توسعه دادند بر روی یک مدل معاملاتی تمرکز کردند که تضمین می کند چهار اصل مدل ACID همیشه حفظ می شوند. با این حال، ظهور یک مدل پایگاه داده بدون ساختار جدید، ACID را روی سر خود قرار داده است. مدل پایگاه داده NoSQL از مدل رابطه ای بسیار ساختاریافته به نفع رویکرد ذخیره کلید/مقدار انعطاف پذیر اجتناب می کند. این رویکرد بدون ساختار به داده ها به جایگزینی برای مدل ACID نیاز دارد: مدل BASE.
اصول اساسی مدل ACID
چهار اصل اساسی برای مدل ACID وجود دارد:
- اتمی تراکنش ها تضمین می کند که هر تراکنش پایگاه داده یک واحد واحد است که از رویکرد "همه یا هیچ" برای اجرا استفاده می کند. اگر هر عبارتی در تراکنش ناموفق باشد، کل تراکنش برگردانده میشود.
- پایگاههای اطلاعاتی رابطهای همچنین هماهنگی هر تراکنش را با قوانین تجاری پایگاه داده تضمین میکند. اگر هر یک از عناصر یک تراکنش اتمی ثبات پایگاه داده را مختل کند، کل تراکنش با شکست مواجه می شود.
- موتور پایگاه داده Isolation را بین چندین تراکنش که در یک زمان یا نزدیک به آن انجام می شود، اعمال می کند. هر تراکنش یا قبل یا بعد از هر تراکنش دیگری اتفاق میافتد، و نمای پایگاه دادهای که یک تراکنش در ابتدای آن میبیند، فقط توسط خود تراکنش قبل از انجام آن تغییر میکند. هیچ تراکنشی نباید محصول میانی تراکنش دیگری را ببیند.
- اصل نهایی ACID، دوام، تضمین می کند که هنگامی که یک تراکنش به پایگاه داده متعهد شد، از طریق استفاده از پشتیبان گیری و گزارش تراکنش ها برای همیشه حفظ می شود. در صورت خرابی، ممکن است از این مکانیسمها برای بازیابی تراکنشهای متعهد استفاده شود.
اصول اصلی BASE
از سوی دیگر، پایگاههای اطلاعاتی NoSQL، موقعیتهایی را در بر میگیرند که مدل ACID بیش از حد است یا در واقع مانع عملکرد پایگاه داده میشود. در عوض، NoSQL متکی بر یک مدل نرمتر است که به طور مناسب به عنوان مدل BASE شناخته می شود. این مدل انعطافپذیری ارائه شده توسط NoSQL و رویکردهای مشابه برای مدیریت و مدیریت دادههای بدون ساختار را در بر میگیرد. BASE از سه اصل تشکیل شده است:
- در دسترس بودن پایه رویکرد پایگاه داده NoSQL بر در دسترس بودن داده ها حتی در صورت وجود خرابی های متعدد تمرکز دارد. این امر با استفاده از یک رویکرد بسیار توزیع شده برای مدیریت پایگاه داده به دست می آید. پایگاه داده های NoSQL به جای حفظ یک ذخیره بزرگ داده و تمرکز بر تحمل خطا در آن ذخیره، داده ها را در بسیاری از سیستم های ذخیره سازی با درجه بالایی از تکرار پخش می کنند. در صورت نامحتملی که خرابی دسترسی به بخشی از داده ها را مختل کند، این امر لزوماً منجر به قطع کامل پایگاه داده نمی شود.
- حالت نرم. پایگاه های داده BASE تقریباً به طور کامل الزامات سازگاری مدل ACID را کنار می گذارند. یکی از مفاهیم اساسی BASE این است که سازگاری داده ها مشکل توسعه دهنده است و نباید توسط پایگاه داده مدیریت شود.
- Eventual Consistency تنها شرطی که پایگاه های داده NoSQL در رابطه با سازگاری دارند این است که در مقطعی در آینده، داده ها به یک حالت ثابت همگرا شوند. با این حال، هیچ تضمینی درباره زمان وقوع این اتفاق وجود ندارد. این یک انحراف کامل از الزامات سازگاری فوری ACID است که انجام تراکنش را تا زمانی که تراکنش قبلی کامل نشده و پایگاه داده به حالت ثابت همگرا نشده باشد، منع میکند.
در BASE، در دسترس بودن اولیه ممکن است به این معنی باشد که شما حتی منابع داده را کنترل نمی کنید. به عنوان مثال، می توانید برای بخشی از تلاش خود به مجموعه داده های عمومی پیوند دهید.
موارد استفاده نسبی
مدل BASE برای هر موقعیتی مناسب نیست، اما مطمئناً یک جایگزین انعطافپذیر برای مدل ACID برای پایگاههای دادهای است که نیازی به پیروی دقیق از یک مدل رابطهای ندارند.
موارد استفاده بهینه برای پایگاه های داده با استفاده از ACID به داده های بسیار ساختار یافته با ورودی ها و خروجی های قابل پیش بینی بستگی دارد. بنابراین، پایگاههای اطلاعاتی منابع انسانی، پایگاههای اطلاعاتی خردهفروشی و سوابق پزشکی الکترونیکی از بررسی سازگاری داخلی قوی که ACID ارائه میدهد بهره میبرند.
با این حال، راه حل های BASE برای موضوعات فازی مانند تجزیه و تحلیل احساسات بهتر هستند. به عنوان مثال، یک پروژه با ساختار BASE می تواند فید توییتر را به دنبال کلماتی که بر اساس یک هشتگ خاص دلالت بر احساسات دارند اسکن کند. فید توییتر به خوبی ساختاریافته یا به صورت محلی نمونه سازی نشده است، اما جریان داده اطلاعاتی را ارائه می دهد که در پرس و جوها برنامه ریزی شده است، حتی اگر دامنه و ماهیت آن داده ها کاملاً محدود نباشد.