پردازش تراکنش

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در دانش رایانه پردازش تراکنش نوعی از پردازش اطلاعات است که به عملیات‌های منفرد تجزیه ناپذیری به نام تراکنش تقسیم شده است. به عبارت دیگر یک تراکنش کوچکترین واحد عملیات و کار است. تمام عملیات موجود در یک تراکنش می باید به طور کامل انجام پذیرند و یا هیجکدام انجام نشوند و نتیجه اجرای تراکنش موفقیت یا شکست است و نمی تواند در حالت میانی قرار بگیرد.

مدیریت تراکنش یکی از مهمترین ملزومات برنامه‌های کاربردی تجاری هستند. بیشتر برنامه‌های تجاری در حوزه‌های مالی، بانکداری و تجارت الکترونیک برای ارائه خدمات خود تکیه بر پردازش تراکنش دارند.

توصیف[ویرایش]

عملیات تشکیل دهنده یک تراکنش مرتبط و وابسته هستند.پردازش تراکنش برای این به وجود آمده است که یک سامانه رایانه ای (معمولا یک سامانه پایگاه داده) را بتوان همواره در یک وضعیت سازگار و مشخص نگاه داشت. برای رسیدن به این هدف در پردازش تراکنش اطمینان حاصل می‌شود که یا تمامی عملیات آن با موفقیت انجام شوند و یا همه لغو گردند.

به عنوان مثال یک تراکنش مالی ممکن است انتقال مبلغی از حساب پس انداز یک مشتری به حساب جاری مشتری دیگری دریک بانک باشد. این تراکنش را می توان به دو عملیات تقسیم کرد: بدهکار کردن حساب پس انداز یک مشتری به اندازه مبلغ مورد نظر و طلبکار کردن حساب جاری مشتری دیگر به اندازه همان مبلغ است. چنانچه تنها یکی از این دو با موفقیت انجام شود و دیگری لغو گرددف در پایان روز حسابهای بانک مورد نظر تناقض خواهد داشت و جامعیت داده‌ها به مخاطره می افتد.

با پردازش تراکنش می توان عملیات مرتبط را در قالب یک تراکنش تجزیه ناپذیر بسته بندی نمود و سیستم پردازش تراکنش در صورتی که حتی یکی از این عملیات با موفقیت انجام نشود تمام عملیات انجام شده را نیز بازگردانی می‌کند و رد پای این تراکنش را پاک می‌کند تا سیستم به همان وضعیت سازگار قبل از آغاز تراکنش برگردد. چنانچه همه عملیات یک تراکنش با موفقیت انجام پذیرد، تراکنش نهایی می‌شود و تغییرات ایجاد شده در سیستم پایدار خواهند بود.پردازش تراکنش جامعیت داده‌ها و سازگاری سیستم را در برابر خطاهای سخت افزاری و نرم افزاری که ممکن است مانع از اجرای کامل یک عملیات شوند محافظت می کند.

ویژگیهای ACID برای تراکنش ها[ویرایش]

یک تراکنش یک واحد کار است که دارای ویژگیهای زیر است :[۱]

تجزیه ناپذیری (Atomicity) 
یک تراکنش باید به صورت کامل انجام شود و یا لغو گردد. شکست هر یک از عملیات بر روی کل عملیات تراکنش تاثیر می گذارد و همه عملیات باید لغو و داده‌ها به وضعیت پیشین بازگردند.
سازگاری (Consistency)
یک تراکنش باید سیستم را از یک حالت سازگار به حالت سازگار دیگری ببرد و جامعیت داده‌ها را باتوجه به قوانین آن حفظ کند. تراکنش ملزم است تضمین کند که تک‌تک تغییرات در حیطه مفهومی سیستم، بامعنی هستند. به عنوان مثال در یک پایگاه داده رابطه ای یک تراکنش باید تمامی محدودیتهای جامعیتی تعریف شده روی داده‌ها را حفظ کند.
انزوا (Isolation) 
هر تراکنش باید از سایر تراکنش هایی که ممکن است همزمان در همان محیط در حال اجرا باشند مستقل باشد. اجرای تراکنش‌ها به صورت همزمان باید با یک ترتیب از اجرای تراکنش‌ها به صورت پشت سر هم یکسان باشد.
ماندگاری(Durability)
تاثیرات اجرای موفق یک تراکنش باید ماندگار باشند.

از کنار هم قرار دادن حرف اول لاتین هریک از این ویژگی‌ها کلمه ACID حاصل می‌شود و از این رو این ویژگیها را به اختصار "اسید" می نامند.

منابع[ویرایش]