حسابرسی فناوری اطلاعات

کنترل های سیستم های اطلاعاتی، کنترل همزمانی تراکنش ها

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

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

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

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

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

• نیمه خوش بینانه: در این حالت تراکنش های همزمان براساس یک سری قواعد اصلی متوقف می شوند. لیکن قواعد از حالت بدبینانه کمتر بوده تا عملکرد حفظ شود.

نظر دهید