ویژگی ACID و BASE در پایگاه داده چیست؟

ویژگی ACID چیست؟ چهار ویژگی اصلی در پایگاه داده که کمک میکند دستورات تراکنش به طور کامل، جامع و بدون تاثیر مخرب بر روی تراکنش ها دیگر و انجام و حفظ شود.

تراکنش یک مجموعه ای از عملیات مانند SELECT، UPDATE و… است که به صورت واحد دیده می شود. تراکنش ها در یک پایگاه داده بایستی از خاصیتی به اسم ACID پشتیبانی کنند. اگر تراکنشی در پایگاه از ویژگی ACID پشتیبانی کند، منجر به دقت و جامعیت در پایگاه داده می شود. ACID مخفف سه کلمه Atomicity، Consistency، Isolation و Durability می باشد که به شرح تک تک این خاصیت های میپردازیم.

Atomicity  (یکپارچگی):  این خاصیت به « همه یا هیچ» موسوم می باشد . منظور این است که تمام دستورالعمل های یک تراکنش باید اجرا شود و یا هیچ کدام از آنها

Consistency  (همخوانی): این خاصیت به این منظور است که هر تراکنش باید تمام قوانین جامعیت بانک اطلاعات را رعایت کند. بخشی از خاصیت همخوانی قابل کنترل نیست و باید فرض شود. تراکنش ممکن است دو نوع پایان داشته باشد: پایان ناموفق که آنرا “برگشت” (Rollback) می نامند، پایان موفق که آنرا “انجام” (Commit) می نامند.

Isolation ( انزوا):  بر طبق این خاصیت اثر تراکنش های همروند روی یکدیگر چنان می باشد که گویا هر کدام در انزوا انجام می شود. در بانک اطلاعات تراکنش های همروند وجود دارند ولی همروندی آنها کنترل می شود تا اثر مخرب روی هم نداشته باشند.

Durability (پایایی):  براساس این خاصیت تراکنش هایی که به مرحله انجام (Commit) برسند اثرشان ماندنی است و هرگز به طور تصادفی از بین نمی رود.

ACID
ویژگی ACID

در مورد کاربرد ویژگی ACID و درک اهمیت آن در پرداز ش تراکنشها به شرح مثالی می پردازیم. به عنوان مثالی آشکار  می توان به نقل و انتقال وجوه بین حسابهای بانکی بوسیله سیستم برخط بانکی اشاره کرد. برداشت 500 دلار از یک حساب و انتقال آن به حساب دیگر شامل مراحل چک کردن حساب برای وجود مبلغ مورد درخواست , کم کردن 500 دلار از حساب منبع و بالانس کردن آن ,و اضافه کردن مبغ 500 دلار به حساب مقصد می باشد.

مرحله اول (چک کردن میزان موجودی حساب اول) عمل فقط خواندنی (Read-only) است ,اما باقی مراحل شامل تغییر داده های وابسته به هر حساب می باشد. موفقیت هرکدام ار دو عمل آخر بدون انجام عمل دیگر غیر قابل قبول می باشد. بنابراین هر دو تغییر باید در قالب یک تراکنش انجام شود به طوری که تنها نتیجه قابل قبول انجام هر دو تغییر می باشد و هر حالت دیگری به عنوان اشتباه تلقی می شود.   

اگر یکی از تغییرات با موفقیت انجام شود و دیگری به طور کامل انجام نشود , تغییر ی که به صورت موفقیت آمیز اعمال شده باید از بین رفته  و به حالت اول بازگردد.

عملیات فقط خواندنی  (Read-Only) نیز به عنوان بخشی از تراکنش در نظر گرفته می شود . این عمل در زمان دسترسی همزمان دو نفر برای انجام پردازش بر روی حسابهای بانکی ضروری می باشد. قرار دادن عملیا ت فقط خواندن (Read-only ) درون تراکنش این اطمینان را بوجود می آورد که پردازش یک تراکنش دیگر داده ها را در حالتی متناقض قرار نمی دهد. این ویژگی از ایزوله کردن تاثیرات یک تراکنش نسبت به دیگر تراکنشها بوجود می آید. (این عمل بوسیله  قفل گذاری انجام می شود.)

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

آیا همه پایگاه های داده خصوصیت ACID را دارند؟

سوالی که مطرح می شود این است که کدام پایگاه داده های موجود از ویژگی ACID پشتیبانی میکنند. یعنی کدام پایگاه داده های امروزی تراکنش هایشان، خاصیت ACID دارند؟ پایگاه داده های SQL SERVER، MYSql، Oracle و این دست از پایگاه داده ها، تماماً ACID را پشتیبانی می کنند.

در واقع خاصیت ACID این امکان را می دهد که پایگاه داده ها، به صورت جامع با حفظ سازگاری(مثال بانک)، به صورت مطمئن اجرا شوند. معمولا این پایگاه داده ها، خرابی های موجود در سیستم را ترمیم می کنند و یا هنگامی که چندین کاربر به صورت همزمان قصد تغییر در یک رکورد خاص را داشته باشند، این پایگاه داده ها(که از ACID پشتیبانی میکنند) به صورت ۱۰۰٪ تضمین انجام عملیات درست را می دهند.

خصوصیت BASE در برابر ACID در پایگاه داده های NOSQL

البته در بسیاری از مسائل دنیای واقعی، پایگاه داده هایی با خاصیت ACID نیاز نمی باشد. زیرا پیاده سازی ACID باعث هزینه ی بالای پردازش و به تبع آن، کاهش سرعت در برخی از عملیات پایگاه داده ها می شود. برای همین، بسیاری از پایگاه داده هایی مانند No-SQLها، به طور کامل، ACID را پشتیبانی نمی کنند. این کار به سرعت بالای این دسته از پایگاه داده ها، کمک شایانی میکند و پیچیدگی پیاده سازی را کاهش می دهد. در اصل پایگاه داده های غیر رابطه ای خصوصیتی به نام BASE را دارا هستند که همه خاصیت های ACID را ندارد ولی در عوض قابلیت توزیع شدگی و تحمل سربار زیاد را ارائه می دهند.

  • Basic Availability (پایداری بنیادی)
  • Soft-state (وضعیت غیر پایدار در داده ها و عدم اجبار در سازگاری هنگام عملیات نوشتن)
  • Eventual consistency (در نهایت سازگار)

 

ویژگی ACID و CAP و BASE
ویژگی ACID و CAP و BASE

به جز قضیه ACID ویژگی های دیگری در انتخاب پایگاه داده اهمیت دارد که مهم ترین آن ها عبارتند از: تئوری CAP ، قانون ۳V و مدل ساختار داده  در پایگاه داده های غیر رابطه ای. (برای مطالعه بیشتر بر روی آنها کلیک کنید)

 

برای دیدن فلیم های سینماییِ مهیج و جذاب”در حوزه فناوری اطلاعات، اوسینت و هوش مصنوعی“، بر روی اینجا کلیک کنید.

آدرس کانال تلگرام سایت بیگ دیتا:

t.me/bigdata_channel

آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel

جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.

جهت ثبت نام در دوره های آموزشی بر روی اینجا کلیک کنید.

بازدیدها: 12250

همچنین ببینید

,Partition tolerance,Consistency, Availability

قضیه CAP (ویژگیهایConsistency,Partition tolerance,Availability)

قضیه CAP : عبارت CAP ترکیب سرنام مفاهیم زیر است: سازگاری (Consistency): در هنگام توزیع …

خواندن و نوشتن در کاساندرا

سازگاری خواندن و نوشتن داده در سرور های کاساندرا Consistency

کاساندرا از یک تعادل بین سازگاری و در دسترس بودن از طریق سطوح سازگاری ایجاد …

یک دیدگاه

  1. با سلام و احترام
    ممنون از اطلاعات خوبی که نشر می کنید؛ در مقاله:
    https://bigdata-ir.com/acid-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F/

    تصویر نهایی اشتباه می باشد و RDBMS ها؛ AC هستند نه CP
    همان طور که خودتان در مقاله:
    http://bigdata-ir.com/%d9%82%d8%b6%db%8c%d9%87-cap-%d9%88%db%8c%da%98%da%af%db%8c%d9%87%d8%a7%db%8cconsistencypartition-toleranceavailability/

    اشاره فرموده اید.

    با تشکر

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