تراکنشهای ACID
تراکنشهای ACID تضمین میکنند که گروهی از عملیات پایگاه داده به عنوان یک واحد منفرد و قابل اعتماد عمل میکنند که اتمی، حفظکننده سازگاری، ایزوله از سایر تراکنشها و پایدار پس از تعهد است.
Definition
تراکنش واحد کاری است که شامل یک یا چند عملیات پایگاه داده است که سیستم با تضمینهای ACID اجرا میکند: اتمی بودن، سازگاری، ایزوله بودن و پایداری؛ این تراکنش یا با تعهد (دائمی کردن اثرات آن) یا با لغو (خنثی کردن تمام اثرات آن) خاتمه مییابد.
Scope
این موضوع انتزاع تراکنش و چهار ویژگی ACID را به تفصیل پوشش میدهد: اتمی بودن (تعهد یا لغو همه یا هیچ)، سازگاری (هر تراکنش پایگاه داده را از یک حالت معتبر به حالت معتبر دیگر منتقل میکند)، ایزوله بودن (تراکنشهای همزمان به طور قابل مشاهدهای تداخل نمیکنند) و پایداری (اثرات تعهد شده در برابر خرابیها باقی میمانند). این موضوع به معناشناسی تعهد و لغو و چگونگی ارتباط ویژگیها با کنترل همزمانی و بازیابی میپردازد. پروتکلهای خاصی که ایزوله بودن و پایداری را پیادهسازی میکنند، که موضوعات مجاور هستند، از این بحث مستثنی هستند.
Core questions
- هر یک از ویژگیهای ACID چه چیزی را تضمین میکند؟
- چگونه تعهد و لغو رفتار همه یا هیچ یک تراکنش را تعریف میکنند؟
- ایزوله بودن چگونه با سریالیسازی و کنترل همزمانی مرتبط است؟
- پایداری چگونه با وجود خرابیهای سیستم حاصل میشود؟
- محدودیتهای مدل تراکنش برای کارهای طولانیمدت یا توزیعشده چیست؟
Key concepts
- واحد کار تراکنش
- اتمی بودن
- سازگاری
- ایزوله بودن
- پایداری
- تعهد و لغو
- بازگشت به عقب
- مدل حالت تراکنش
Key theories
- اتمی بودن و پایداری
- اتمی بودن تضمین میکند که اثرات یک تراکنش به طور کامل اعمال میشوند یا اصلاً اعمال نمیشوند، حتی در برابر خرابیها، و پایداری تضمین میکند که پس از تعهد یک تراکنش، تغییرات آن در برابر خرابیها باقی میمانند؛ هر دو از طریق ثبت وقایع و بازیابی پیادهسازی میشوند.
- سازگاری و ایزوله بودن
- سازگاری مستلزم آن است که هر تراکنش تعهد شده، محدودیتهای یکپارچگی پایگاه داده را حفظ کند، و ایزوله بودن مستلزم آن است که تراکنشهای همزمان نتایجی معادل با یک ترتیب سریالی تولید کنند و حالتهای میانی را از یکدیگر پنهان کنند.
- مفهوم تراکنش و محدودیتهای آن
- انتزاع تراکنش استدلال در مورد خرابیها و همزمانی را ساده میکند، اما گری محدودیتهایی را برای فعالیتهای طولانیمدت و در سراسر مرزهای سیستم ذکر کرد که کارهای بعدی در مورد ساگاها و تراکنشهای توزیعشده را برانگیخت.
Clinical relevance
تراکنشهای ACID دلیلی هستند که میتوان به پایگاههای داده برای عملیات حیاتی اعتماد کرد: انتقال وجه، کسر موجودی، یا رزرو یا به طور کامل انجام میشود یا اصلاً انجام نمیشود و در برابر خرابیها باقی میماند، به همین دلیل پایگاههای داده تراکنشی ستون فقرات سیستمهای بانکی، تجاری و ثبت سوابق هستند.
History
جیم گری مفهوم تراکنش و مزایا و محدودیتهای آن را در سال 1981 بیان کرد؛ هاردر و رویتر در بررسی خود در سال 1983 در مورد بازیابی مبتنی بر تراکنش، مخفف ACID را ابداع کردند. این ایدهها که حول سیستم R شرکت IBM توسعه یافتند، به مدل استاندارد پردازش دادههای قابل اعتماد تبدیل شدند و هر سیستم پایگاه داده بعدی را شکل دادند.
Key figures
- Jim Gray
- Andreas Reuter
- Theo Härder
Related topics
Seminal works
- gray1981
- haerder1983
- gray1992
Frequently asked questions
- تفاوت بین سازگاری در ACID و سازگاری در نظریه CAP چیست؟
- اینها مفاهیم متفاوتی هستند. سازگاری ACID به این معنی است که یک تراکنش محدودیتهای یکپارچگی پایگاه داده را حفظ میکند و آن را بین حالتهای معتبر جابجا میکند. سازگاری CAP به توافق همه کپیها در یک سیستم توزیعشده بر روی آخرین مقدار اشاره دارد. یک سیستم میتواند یکی را بدون دیگری برآورده کند، بنابراین یک کلمه در دو زمینه ویژگیهای متمایزی را نشان میدهد.
- آیا ویژگیهای ACID مستقل از یکدیگر هستند؟
- آنها تضمینهای مفهومی متمایزی هستند اما توسط مکانیزمهای همپوشان پیادهسازی میشوند. اتمی بودن و پایداری از ثبت وقایع و بازیابی حاصل میشوند؛ ایزوله بودن از کنترل همزمانی حاصل میشود؛ و سازگاری به طور مشترک توسط منطق تراکنش برنامه و اجرای سه ویژگی دیگر توسط سیستم حفظ میشود.