آیا تمام پایگاه داده ها از خاصیت ACID پیروی میکنند
برای درک بهتر مساله به تعریف خاصیت ACID میپردازیم سپس بررسی میکنیم که آیا تمام تراکنش ها در پایگاه داده های رابطه ای (Relational) و غیر رابطه ای (Non-Relational) یا همان NoSql ها از این خاصیت پیروی میکنند یا خیر.
خوب میپردازیم به تعریف خاصیت ACID در یک پایگاه داده که شامل چهار ویژگی میباشد که پایگاه داده ها گارانتی میکنند که تراکنش های آن از این چهار خاصیت پیروی میکنند.
این چهار خاصیت به شرح زیر میباشند :
Atomicity: این خاصیت که به خاصیت همه یا هیچ معروف است، می گوید که یک تراکنش یا باید به طور کامل اجرا شود یا خیر. برای مثال اگر در یک تراکنش (Transaction) شما سه عملیات مختلف انجام می دهید، یا هر سه از این عملیات باید تا پایان تراکنش انجام شوند یا هیچ کدام انجام نمی شوند.
Consistency: یک سیستم حسابداری بانک را در نظر بگیرید وقتی مبلغی از شخصی کسر میگردد و برای شخص دیگر واریز میگردد همواره میبایست جمع کل مبلغ یکسان باشد . یعنی همواره جمع مبلغ در بانک باید ثابت باشد . این مفهوم سازگاری میباشد.
Isolation: فرض کنید در یک پایگاه داده، چندین تراکنش با یکدیگر در حال اجرا هستند. این تراکنش ها نباید از اجرای یک دیگر مطلع شوند. یعنی این تراکنش ها باید طوری اجرا شوند که انگار، فقط همین تراکنش در حال اجرا در کل پایگاه داده است.
Durability: یا پایداری، به این معناست که یک تراکنش بعد از اتمام، باید در حافظه باقی بماند. یعنی اگر یک تراکنش با موفقیت به اتمام رسید، نتایج کار، با قطع برق یا اتفاق های دیگر از بین نرود.
حال این سوال مطرح است که آیا پایگاه داده های غیر رابطه ای نیز در تراکنش های خود از این خاصیت پیروی میکنند یا خیر :
با توجه به توضیحاتی که در اینجا آمده است