تراکنش و مفهوم آن

برای نظر دادن اولین باش!
منتشرشده در سایر مقالات
12 آذر
تراکنش و مفهوم آن

تراکنش

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

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

مفهوم تراکنش

تراکنش واحدی از اجرای برنامه هایی است که احتمالا به داده های مختلف دسترسی می یابد و آنها را بروزرسانی می کند. معمولا یک تراکنش توسط برنامه کاربردی که به زبان کاربردی داده در سطح بالا ( معمولا SQL ) یا زبان برنامه نویسی( به عنوان مثال C++ یا جاوا ) با دسترسی پایگاه داده تعبیه شده در JDBC  یا ODBC است آغاز میشود. یک تراکنش محدود به اعلان های (یا هشدارهای عملکردی) شروع یا پایان تراکنش است .تراکنش تمام عملیات اجرایی از آغاز تا پایان تراکنش را دربرمی گیرد.

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

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

به دلیل سه ویژگی بالا، تراکنش ها روش ایده آلی از تبادل ساختار یک پایگاه داده می باشند. این امر منجر به اعمال یکی از الزامات خود تراکنش ها می شود. یک تراکنش باید ثبات پایگاه داده را حفظ کند. چنانچه یک تراکنش از اعداد اتمی در ایزولاسیون اجرا شود از یک پایگاه داده نامتناقض شروع می شود، پایگاه داده باید مجددا در انتهای تراکنش به ثبات برسد. این الزام به ثبات به فراتر از محدودیت تمام داده هایی که پیش از این مشاهده کردیم وارد می شود.(مانند محدودیت های کلیدی اصلی،صحت ارجاعی،محدودیت های بررسی و مانند این). در مقابل انتظار می رود تراکنش ها به فراتر از تضمین حفظ محدودیت های ثبات نرم افزار های کاربردی وارد شود که برای استفاده از ساختار SQL، داده جامع بسیار پیچیده ای هستند. چگونگی انجام این عمل و مسئولیت برنامه نویسی که کدهای تراکنش را می نویسد چیست. این ویژگی ثبات نامیده می شود. به منظور توضیح دقیق مواردی که در بالا ذکر شد به یک سیستم پایگاه داده ای نیاز داریم که ویژگی های زیر از تراکنش را حفظ کند:

  • اتمیک:تمام عملیات تراکنش به درستی در پایگاه داده انجام می شود یا در هیچ یک از تراکنش ها وجود ندارند.
  • ثبات: اجرای یک تراکنش بصورت انفرادی(بدون هیچ تراکنش همزمانی) ثبات پایگاه داده را حفظ می کند.
  • ایزولاسیون: حتی تراکنش های چندگانه ای که ممکن است همزمان اجرا شوند، سیستم را برای هر دو تراکنش TIو TJ شروع و پایان اجرای تراکنش TIوTJ ضمانت می کند. بنابراین هرتراکنش از تراکنش های در حال اجرای همزمان در سیستم ناآگاه است .
  • پایایی: پس از اتمام با موفقیت تراکنش، تغییراتی برای ادامه عملیات پایگاه داده باید انجام شود حتی اگر سیستم با خطا مواجه شود. این ویژگی ها اغلب ویژگی های ACID نامیده می شوند، این لغت اختصاری از حرف اول هر کلمه این چهار ویژگی مشتق شده است.

همچنان که مشاهده خواهیم کرد،تضمین ویژگی ایزولاسیون ممکن است اثر چشمگیری بر عملکرد سیستم داشته باشد. به این دلیل بعضی کاربردها با ویژگی ایزولاسیون سازگار هستند.

نظر دادن

از پر شدن تمامی موارد الزامی ستاره‌دار (*) اطمینان حاصل کنید. کد HTML مجاز نیست.

تهران ، خ کارگر شمالی ، کوچه اشراقی ، خیابان هئیت ، ساختمان گرد آفرید، پارک علم و فناوری دانشگاه تربیت مدرس تهران، پ 15 شماره تماس : 02166582371

درباره ما

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

آمار بازدید

امروز3
دیروز277
این هفته1408
این ماه4815
مجموع157822

6
آنلاین
پنج شنبه, 27 تیر 1398 00:50
توسعه یافته توسط مارال وب