معامله را می توان به عنوان گروهی از کارها تعریف کرد. یک کار واحد حداقل واحد پردازش است که نمی تواند بیشتر تقسیم شود.
بیایید نمونه ای از یک معامله ساده را بگیریم. فرض کنید یک کارمند بانک 500 روپیه را از حساب A به حساب B منتقل می کند. این معامله بسیار ساده و کوچک شامل چندین کار سطح پایین است.
خواص اسیدی
معامله یک واحد بسیار کوچک از یک برنامه است و ممکن است شامل چندین کار سطح پایین باشد. معامله در یک سیستم بانک اطلاعاتی باید برای اطمینان از صحت ، کامل بودن و یکپارچگی داده ها ، یک تومی ، مقاومت در برابر C ، من و قابلیت اطمینان - که معمولاً به عنوان خصوصیات اسید شناخته می شود - حفظ کند.
اتمی - این ملک بیان می کند که یک معامله باید به عنوان یک واحد اتمی رفتار شود ، یعنی همه عملیات آن اجرا می شود یا هیچ کدام. در یک پایگاه داده نباید هیچ دولتی وجود داشته باشد که معامله تا حدی انجام شود. ایالات باید قبل از اجرای معامله یا بعد از اجرای/سقط جنین/عدم موفقیت معامله تعریف شوند.
قوام - بانک اطلاعاتی پس از هرگونه معامله باید در یک وضعیت مداوم باقی بماند. هیچ معامله ای نباید تأثیر منفی بر داده های ساکن در پایگاه داده داشته باشد. اگر پایگاه داده قبل از اجرای معامله در وضعیت مداوم قرار داشته باشد ، باید پس از اجرای معامله نیز سازگار باشد.
دوام - بانک اطلاعاتی باید به اندازه کافی بادوام باشد تا تمام به روزرسانی های خود را حفظ کند حتی اگر سیستم از کار بیفتد یا دوباره راه اندازی شود. اگر معامله بخشی از داده ها را در یک بانک اطلاعاتی به روز کند و مرتکب شود ، پس از آن پایگاه داده داده های اصلاح شده را نگه می دارد. اگر معامله ای انجام شود اما سیستم قبل از نوشتن داده ها بر روی دیسک انجام نمی شود ، پس از بازگرداندن سیستم به عمل ، داده ها به روز می شوند.
جداسازی - در یک سیستم بانک اطلاعاتی که در آن بیش از یک معامله به طور همزمان و به طور موازی انجام می شود ، دارایی انزوا بیان می کند که تمام معاملات انجام می شود و به گونه ای اجرا می شود که گویی این تنها معامله در سیستم است. هیچ معامله ای بر وجود هر معامله دیگری تأثیر نخواهد گذاشت.
قابلیت استفاده از سریال
هنگامی که معاملات متعدد توسط سیستم عامل در یک محیط چند برنامه ریزی انجام می شود ، امکاناتی وجود دارد که دستورالعمل های یک معاملات با برخی از معاملات دیگر در هم تنیده می شوند.
برنامه - یک توالی اجرای زمانی از یک معامله ، یک برنامه نامیده می شود. یک برنامه می تواند معاملات زیادی در آن داشته باشد ، هر کدام شامل تعدادی دستورالعمل/وظایف است.
برنامه سریال - این برنامه ای است که در آن معاملات به گونه ای تراز می شوند که ابتدا یک معامله انجام شود. هنگامی که اولین معامله چرخه خود را تکمیل می کند ، معامله بعدی اجرا می شود. معاملات یکی پس از دیگری سفارش داده می شود. این نوع برنامه را به عنوان برنامه سریال نامیده می شود ، زیرا معاملات به صورت سریال اجرا می شوند.
در یک محیط چند انتقال ، برنامه های سریال به عنوان معیار در نظر گرفته می شوند. توالی اجرای یک دستورالعمل در یک معامله قابل تغییر نیست ، اما دو معاملات می توانند دستورالعمل های خود را به صورت تصادفی اجرا کنند. اگر دو معاملات مستقل باشند و روی بخش های مختلف داده ها کار کنند ، این اعدام ضرری ندارد. اما در صورتی که این دو معاملات روی همان داده ها کار می کنند ، ممکن است نتایج متفاوت باشد. این نتیجه متغیر ممکن است بانک اطلاعاتی را به حالت متناقض برساند.
برای حل این مشکل ، اگر معاملات آن یا سریال باشد یا رابطه هم ارزی داشته باشد ، به اجرای موازی یک برنامه معامله اجازه می دهیم.
برنامه های هم ارزی
یک برنامه هم ارزی می تواند از انواع زیر باشد -
هم ارزی
اگر دو برنامه پس از اجرای یک نتیجه یکسان تولید کنند ، گفته می شود که آنها معادل آن هستند. آنها ممکن است برای برخی از ارزش ها و نتایج متفاوت برای مجموعه دیگری از مقادیر نتیجه یکسان داشته باشند. به همین دلیل این هم ارزی به طور کلی قابل توجه تلقی نمی شود.
مشاهده هم ارزی
اگر معاملات در هر دو برنامه اقدامات مشابهی را به روشی مشابه انجام دهند ، دو برنامه هم ارزی خواهد بود.
اگر T داده های اولیه را در S1 بخواند ، داده های اولیه را در S2 نیز می خواند.
اگر T مقدار نوشته شده توسط J در S1 را بخواند ، پس مقدار نوشته شده توسط J در S2 را نیز می خواند.
اگر T نوشتن نهایی را بر روی مقدار داده در S1 انجام دهد ، سپس نوشتن نهایی را روی مقدار داده در S2 نیز انجام می دهد.
هم ارزی
در صورت داشتن خصوصیات زیر ، دو برنامه متناقض خواهد بود -
- هر دو متعلق به معاملات جداگانه هستند.
- هر دو به یک مورد داده یکسان دسترسی پیدا می کنند.
- حداقل یکی از آنها عملیات "نوشتن" است.
گفته می شود که دو برنامه با انجام چندین معاملات با عملیات متناقض معادل تضاد است اگر و فقط اگر -
- هر دو برنامه شامل همان مجموعه معاملات است.
- ترتیب جفت های عملیاتی متناقض در هر دو برنامه حفظ می شود.
توجه - مشاهده برنامه های معادل مشاهده Serializable و برنامه های معادل درگیری با سریال قابل تعویض هستند. همه برنامه های Serializable درگیری مشاهده می شوند.
ایالات معاملات
معامله در یک پایگاه داده می تواند در یکی از حالتهای زیر باشد -
فعال - در این ایالت ، معامله در حال انجام است. این وضعیت اولیه هر معامله است.
تا حدی مرتکب شده - هنگامی که یک معامله عملیات نهایی خود را انجام می دهد ، گفته می شود که در یک کشور تا حدی متعهد قرار دارد.
در صورت عدم موفقیت هر یک از چک های انجام شده توسط سیستم بازیابی پایگاه داده ، گفته می شود که معامله در حالت شکست خورده است. معامله شکست خورده دیگر نمی تواند بیشتر ادامه یابد.
سقط جنین - در صورت عدم موفقیت هر یک از این چک ها و معامله به حالت شکست خورده رسیده است ، سپس مدیر بازیابی تمام عملیات نوشتن خود را در پایگاه داده باز می گرداند تا پایگاه داده را به حالت اصلی خود بازگرداند و در آنجا قبل از اجرای معامله بود. معاملات در این ایالت سقط شده است. ماژول بازیابی پایگاه داده می تواند یکی از دو عملیات را پس از سقط معامله انتخاب کند -
- معامله را دوباره شروع کنید
- معامله را بکشید
متعهد - اگر یک معامله تمام عملیات خود را با موفقیت انجام دهد ، گفته می شود که مرتکب شده است. اکنون تمام تأثیرات آن به طور دائم در سیستم پایگاه داده ایجاد شده است.
استراتژیهای اسکالپ...
ما را در سایت استراتژیهای اسکالپ دنبال می کنید
برچسب :
نویسنده : جعفر بدیعی
بازدید : <-PostHit->
تاريخ : جمعه
29 ارديبهشت
1402 ساعت: 14:52