تراکنش چیست؟✅
مفهوم تراکنش
تراکنش
اغلب، مجموعه ای از چندین عملیات در یک پایگاه داده انجام می شود به طوری که از دیدگاه کاربران پایگاه داده یک واحد است. اغلب، مجموعه ای از عملیات در پایگاه داده از دیدگاه کاربر به عنوان یک عملیات واحد دیده می شود. به عنوان مثال، انتقال پول از یک حساب جاری به یک حساب پس انداز یک عملیات جداگانه در سیستم بانک اطلاعاتی از نظر مشتری است، اما در واقع چندین عملکرد تشکیل می شود. واضح است که این عمل باید به طور کامل انجام شود یا در صورت بروز خطا اصلا انجام نشود.
به مجموعه عملیاتی که یک واحد کاری منطقی و مجزا را تشکیل می دهد، تراکنش می گویند. سیستم پایگاه داده باید از اجرای صحیح تراکنش ها در برابر خطاها در صورت انجام یا عدم تعهد یک تراکنش اطمینان حاصل کند. علاوه بر این، سیستم پایگاه داده باید اجرای همزمان تراکنش ها را به گونه ای مدیریت کند که از ناپایداری آنها جلوگیری کند. به عنوان مثال، در تراکنش انتقال سرمایه، موجودی کلی مشتری را محاسبه می کند و ممکن است قبل از انتقال سرمایه از طریق تراکنش، مانده حساب جاری را ببیند، اما پس از تایید حساب، مانده پس انداز را ببینید، بنابراین نتیجه درست است. در دسترس نیست.
مفهوم تراکنش
تراکنش واحدی از اجرای برنامه است که ممکن است به داده های مختلف دسترسی داشته باشد و به روز شود. یک تراکنش معمولاً توسط یک برنامه کاربردی در یک زبان برنامه داده سطح بالا (معمولا SQL) یا یک زبان برنامه نویسی (مثلا C++ یا جاوا) با دسترسی به پایگاه داده جاسازی شده در JDBC یا ODBC آغاز می شود. یک تراکنش به اطلاعیه ها (یا هشدارهای عملکردی) شروع یا پایان تراکنش محدود می شود. تراکنش شامل کلیه عملیات اجرایی از ابتدا تا پایان تراکنش می باشد.
این مجموعه مراحل باید به عنوان یک واحد مجزا و غیرقابل تقسیم برای کاربر انجام شود. از آنجا که تراکنش غیرقابل تقسیم است، یا باید به طور کامل اجرا شود یا اصلاً اجرا نشود. بنابراین اگر یک تراکنش شروع شود اما به هر دلیلی با شکست مواجه شود، هر تغییری که در پایگاه داده ایجاد شود ممکن است باعث شود که تراکنش به طور نامحدود خاتمه یابد. این الزامات صرف نظر از شرایطی مانند خطای تبدیل (مثلاً اگر بر صفر تقسیم شود)، خرابی سیستم عامل یا خاموش شدن سیستم رایانه اعمال می شود. همانطور که می بینیم، تضمین این الزامات دشوار است زیرا ممکن است برخی از تغییرات همچنان در متغیرهای حافظه مبادله اصلی ذخیره شوند در حالی که سایر تغییرات در پایگاه داده نوشته شده و روی دیسک ذخیره می شوند. این ویژگی “همه یا هیچ” به عنوان اتمی نامیده می شود.
علاوه بر این، از آنجا که یک تراکنش یک واحد مستقل است، عملیات آن را نمی توان از سایر عملیات پایگاه داده یا بخشی از تراکنش جدا کرد. اگرچه میدانستیم واقعیت کاملاً متفاوت است، اما قصد داریم تأثیر این تراکنشها در سطح کاربر را شرح دهیم. حتی یک SQL منفرد شامل دسترسی های جداگانه به پایگاه داده است، و یک تراکنش ممکن است حاوی چندین نمونه از SQL باشد. بنابراین، سیستم پایگاه داده باید اقدامات ویژه ای را انجام دهد تا اطمینان حاصل شود که تراکنش ها به درستی بدون تداخل با پایگاه های داده در حال اجرا همزمان عمل می کنند. از این ویژگی به عنوان انزوا یاد می شود. حتی اگر سیستم اجرای صحیح تراکنش را تضمین کند، اگر سیستم به طور متوالی از کار بیفتد، این یک هدف کوچک است و در نتیجه سیستم تراکنش را فراموش می کند. بنابراین، عملیات یک تراکنش باید در زمان شکست ادامه یابد. این ویژگی قابلیت اطمینان نامیده می شود.
حسابداری پیمانکاری یکی از موارد مهم در حوزه حسابداری است که در شرکت ها ازز اهمیت بالایی برخوردار است،حسابدارن حرفه ای نیز باید بر این مبحث اشراف داشته باشند،دوره حسابداری پیمانکاری آکادمی استاد حساب یکی از راه های سریع فرا گرفتن حسابدداری پیمانکاری است که شما می توانید این دوره جامع را تهیه کنید و حسابداری پیمانکاری را به شکل کامل فرا بگیرید.
به دلیل سه ویژگی فوق، تراکنش ها روشی ایده آل برای تبادل ساختار یک پایگاه داده هستند. این امر منجر به اعمال یکی از الزامات خود معاملات می شود. یک تراکنش باید ثبات پایگاه داده را حفظ کند. اگر یک تراکنش عدد اتمی به صورت مجزا و با شروع از یک پایگاه داده ناسازگار اجرا شود، پایگاه داده باید در پایان تراکنش مجدداً ایجاد شود. این الزام سازگاری فراتر از تمام محدودیتهای دادهای است که قبلاً دیدهایم (مانند محدودیتهای کلید اولیه، اعتبار ارجاعی، محدودیتهای بررسی و موارد مشابه). از سوی دیگر، انتظار می رود تراکنش ها فراتر از تضمین محدودیت های سازگاری برنامه هایی که برای استفاده از ساختار SQL بسیار پیچیده هستند، وارد شوند. نحوه انجام این کار و برنامه نویسی که کدهای تراکنش را می نویسد چه مسئولیتی دارد. به این خاصیت ثبات می گویند. برای توصیف دقیق موارد فوق، ما به یک سیستم پایگاه داده نیاز داریم که ویژگی های زیر را برای یک تراکنش حفظ کند:
- Atomic: تمام عملیات تراکنش ها به درستی در پایگاه داده انجام می شود یا هیچ یک از تراکنش ها وجود ندارد.
- سازگاری: اجرای یک تراکنش (بدون هیچ گونه تراکنش همزمان) ثبات پایگاه داده را حفظ می کند.
- جداسازی: حتی چندین تراکنش که ممکن است همزمان اجرا شوند، سیستم شروع و پایان تراکنش های TI و TJ را برای تراکنش های TI و TJ تضمین می کند. بنابراین هر تراکنش یکی از تراکنش هایی است که به طور همزمان در سیستم ناآگاه در حال انجام است.
- قابلیت اطمینان: پس از اتمام موفقیت آمیز تراکنش، حتی اگر سیستم با خطا مواجه شود، باید تغییراتی برای ادامه عملیات پایگاه داده اعمال شود. این ویژگیها اغلب ویژگیهای ACID نامیده میشوند که مخفف آن از حرف اول هر کلمه از این چهار ویژگی است.
همانطور که خواهیم دید، اطمینان از ویژگی ایزوله می تواند تأثیر قابل توجهی بر عملکرد سیستم داشته باشد. به همین دلیل، برخی از برنامه ها با ویژگی ایزوله سازگار هستند.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.