ورود

نسخه کامل مشاهده نسخه کامل : تراکنش ها



angel02
30-10-2010, 12:35
با سلام خدمت دوستان
فلوچارت اجرای تراکنش رو میخوام با توضیح.
وتراکنشی با زبان برنامه نویسی دلخواه
اصلا من نمیدونم تراکنش چیه.لطفا بهم کمک کنید. خیلی اضطراریه!

mahshud
03-11-2012, 16:59
تراکنش
هر برنامه یا بخشی از برنامه که در محیط بانک اطلاعاتی اجرا می‌شود و معمولاً عملی تغییردهنده در پایگاه‌داده انجام می‌دهد، تراکنش گویند به گونه‌ای که وضعیت پایگاه‌داده پس از اجرای هر بار تراکنش سازگار باشد
عملیات تشکیل‌دهنده یک تراکنش، مرتبط و وابسته و تجزیه‌ناپذیرهستند
ویژگی‌های تراکنش
چهار کنترل لازم به منظور حفظ صحت و جامعیت هر تراکنش وجود دارد:


تجزیه‌ناپذیری (Atomicity):

یک تراکنش باید یا بطور کامل انجام شود یا اصلاً اجرا نشود. شکست هر یک از عملیات، بر روی کل عملیات تأثیر گذاشته و همه عملیات باید لغو و داده‌ها به وضعیت پیشین باز گردند.
به عنوان مثال انتقال 500 دلار پول از یک حساب به حسابی دیگر به صورت زیر است:

Begin Transaction
Read (X, Acnt1)
SUB (x,500)
Write (X,Acnt1)
Read (Y, Acnt1)
ADD (y,500)
Write (Y,Acnt2)
End Transaction



سازگاری (Consistency):

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



انزوا (Isolation):

هر تراکنش باید از سایر تراکنش‌هایی که ممکن است همزمان در همان محیطدر حال اجرا باشند مستقل باشد.

Transaction 2

Transaction 1



Begin Transaction2
Read (y, p)
Dec (x)
Write (y,p)
End Transaction1


Begin Transaction1
Read (x, p)
Inc (x)
Write (x,p)
End Transaction1




یک واحد از x کم می‌کند

یک واحد به x اضافه می‌کند














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


ماندگاری (Durability): تأثیرات اجرای موفق یک تراکنش باید ماندگار باشد.

از کنار هم قرار دادن حرف اول لاتین این ویژگی‌ها، کلمه ACID حاصل می‌شود و از این رو این ویژگی‌ها را به اختصار "اسید" می‌نامند.
نکته: هر تراکنش ممکن است به دو صورت پایان پذیرد:
1) پایان موفق (commit): تمام بخش‌ها برای نهایی کردن کار توافق کرده‌اند. در این صورت همچنین تضمین می‌شود که داده‌ها در پایگاه‌داده ماندگار باشند.
2) پایان ناموفق (abort): زمانی رخ می‌دهد که سیستم به هر دلیلی تشخیص دهد تراکنش نباید ادامه یابد (تراکنش مرتکب خطا شود یا سر راه تراکنش دیگر قرار گیرد.) در این صورت تمام فعالیت‌های انجام شده لغو و به حالت قبل از شروع تراکنش باز می‌گردد.