در دانش رایانهپردازش تراکنش نوعی از پردازش اطلاعات است که به عملیاتهای منفرد تجزیه ناپذیری به نام تراکنش (پایگاه داده) تقسیم شدهاست. به عبارت دیگر یک تراکنش کوچکترین واحد عملیات و کار است.
تمام عملیات موجود در یک تراکنش میباید بهطور کامل انجام پذیرند یا هیچکدام انجام نشوند و نتیجه اجرای تراکنش موفقیت یا شکست است و نمیتواند در حالت میانی قرار بگیرد.
مدیریت تراکنش یکی از مهمترین ملزومات برنامههای کاربردی تجاری هستند. بیشتر برنامههای تجاری در حوزههای مالی، بانکداری و تجارت الکترونیک برای ارائه خدمات خود تکیه بر پردازش تراکنش دارند.
توصیف
عملیات تشکیل دهنده یک تراکنش مرتبط و وابسته هستند. پردازش تراکنش برای این به وجود آمده است که یک سامانه رایانهای (معمولاً یک سامانه پایگاه داده) را بتوان همواره در یک وضعیت سازگار و مشخص نگاه داشت. برای رسیدن به این هدف در پردازش تراکنش اطمینان حاصل میشود که یا تمامی عملیات آن با موفقیت انجام شوند یا همه لغو گردند.
به عنوان مثال یک تراکنش مالی ممکن است انتقال مبلغی از حساب پس انداز یک مشتری به حساب جاری مشتری دیگری دریک بانک باشد. این تراکنش را میتوان به دو عملیات تقسیم کرد: بدهکار کردن حساب پس انداز یک مشتری به اندازه مبلغ مورد نظر و طلبکار کردن حساب جاری مشتری دیگر به اندازه همان مبلغ است. چنانچه تنها یکی از این دو با موفقیت انجام شود و دیگری لغو گردد در پایان روز حسابهای بانک مورد نظر تناقض خواهد داشت و جامعیت دادهها به مخاطره میافتد.
با پردازش تراکنش میتوان عملیات مرتبط را در قالب یک تراکنش تجزیه ناپذیر بستهبندی نمود و سیستم پردازش تراکنش در صورتی که حتی یکی از این عملیات با موفقیت انجام نشود تمام عملیات انجام شده را نیز بازگردانی میکند و رد پای این تراکنش را پاک میکند تا سیستم به همان وضعیت سازگار قبل از آغاز تراکنش برگردد. چنانچه همه عملیات یک تراکنش با موفقیت انجام پذیرد، تراکنش نهایی میشود و تغییرات ایجاد شده در سیستم پایدار خواهند بود. پردازش تراکنش جامعیت دادهها و سازگاری سیستم را در برابر خطاهای سختافزاری و نرمافزاری که ممکن است مانع از اجرای کامل یک عملیات شوند محافظت میکند.
ویژگیهای ACID برای تراکنشها
یک تراکنش یک واحد کار است که دارای ویژگیهای زیر است:[۱]
تجزیه ناپذیری (Atomicity)
یک تراکنش باید به صورت کامل انجام شود یا لغو گردد. شکست هر یک از عملیات بر روی کل عملیات تراکنش تأثیر میگذارد و همه عملیات باید لغو و دادهها به وضعیت پیشین بازگردند.
سازگاری (Consistency)
یک تراکنش باید سیستم را از یک حالت سازگار به حالت سازگار دیگری ببرد و جامعیت دادهها را باتوجه به قوانین آن حفظ کند. تراکنش ملزم است تضمین کند که تکتک تغییرات در حیطه مفهومی سیستم، بامعنی هستند. به عنوان مثال در یک پایگاه داده رابطهای یک تراکنش باید تمامی محدودیتهای جامعیتی تعریف شده روی دادهها را حفظ کند.
انزوا (Isolation)
هر تراکنش باید از سایر تراکنشهایی که ممکن است همزمان در همان محیط در حال اجرا باشند مستقل باشد. اجرای تراکنشها به صورت همزمان باید با یک ترتیب از اجرای تراکنشها به صورت پشت سر هم یکسان باشد.
ماندگاری(Durability)
تأثیرات اجرای موفق یک تراکنش باید ماندگار باشند.
از کنار هم قرار دادن حرف اول لاتین هریک از این ویژگیها کلمه ACID حاصل میشود و از این رو این ویژگیها را به اختصار «اسید» مینامند.