انواع روش های کنترل همروندی تراکنش در سیستم های پایگاه داده
چهارمین کنفرانس بین المللی یافته های نوین علوم و تکنولوژی
خرید و دانلود فایل مقاله
با استفاده از پرداخت اینترنتی بسیار سریع و ساده می توانید اصل این مقاله را که دارای 10 صفحه است به صورت فایل PDF در اختیار داشته باشید.
مشخصات نویسندگان مقاله انواع روش های کنترل همروندی تراکنش در سیستم های پایگاه داده
سعیده روشن فکر - فارغ التحصیل کارشناسی ارشد کامپیوتر نرم افزار، دپارتمان برق و کامپیوتر، دانشگاه زنجان، زنجان، ایران
چکیده مقاله :
امروزه یکی از پرکاربردترین مسایل در دنیا مسایل مربوط به پایگاههای داده است. وقتی چندین تراکنش همزمان به دادهای مشترکی دسترسی پیدا میکنند، در صورتی که از الگوریتمهای کنترل همروندی پشتیبانی نشود، به احتمال بسیار زیادی تداخل رخ خواهد داد. و این مسیله باعث ایجاد مشکل در ناسازگاری پایگاه داده و مواردی از این دست خواهد شد. در این پژوهش سعی شده تا انواع متفاوتی از الگوریتم های کنترل همروندی تراکنش در سیستمهای پایگاه داده را شرح دهیم. از اولین الگوریتم های مورد استفاده در این زمینه الگوریتم های قفل گذاری بودند که به دلیل احتمال رخداد بنبست چندان از آن استفاده نمیشود. سپس الگوریتم های مهرزمانی مطرح شد که احتمال گرسنگی تراکنشها را به وجود میآورد. در این موارد، الگوریتمهای دیگری مانند خوشبینانه نیز به وجود آمد. امروزه الگوریتمهایی نظیر DGCC با ایجاد گراف وابستگی بین عناصر تراکنش سعی دارد تا از تداخل مابین تراکنش ها جلوگیری کند و همچنین الگوریتم TicToc به تازگی سعی کرده تا از abort های غیرضروری و کاذب با استفاده از مدیریت مهرزمانی جلوگیری کند. از دیگر الگوریتمهای مورد استفاده در این زمینه در سالهای اخیر، الگوریتم کنترل همروندی متوازن شده یا BCC میباشد که تفاوت اصلی آن با روش خوشبینانه در مرحله تشخیص وابستگی دادهها میباشد و الگوریتم سعی دارد تا از تداخل و ایجاد بنبست جلوگیری کند.
کلیدواژه ها:
کد مقاله /لینک ثابت به این مقاله
کد یکتای اختصاصی (COI) این مقاله در پایگاه سیویلیکا DSCONF04_252 میباشد و برای لینک دهی به این مقاله می توانید از لینک زیر استفاده نمایید. این لینک همیشه ثابت است و به عنوان سند ثبت مقاله در مرجع سیویلیکا مورد استفاده قرار میگیرد:
نحوه استناد به مقاله :
در صورتی که می خواهید در اثر پژوهشی خود به این مقاله ارجاع دهید، به سادگی می توانید از عبارت زیر در بخش منابع و مراجع استفاده نمایید:
روشن فکر، سعیده،1396،انواع روش های کنترل همروندی تراکنش در سیستم های پایگاه داده،چهارمین کنفرانس بین المللی یافته های نوین علوم و تکنولوژی،قم،https://civilica.com/doc/711017
در داخل متن نیز هر جا که به عبارت و یا دستاوردی از این مقاله اشاره شود پس از ذکر مطلب، در داخل پارانتز، مشخصات زیر نوشته می شود.
برای بار اول: ( 1396، روشن فکر، سعیده؛ )
برای بار دوم به بعد: ( 1396، روشن فکر؛ )
برای آشنایی کامل با نحوه مرجع نویسی لطفا بخش راهنمای سیویلیکا (مرجع دهی) را ملاحظه نمایید.
مدیریت اطلاعات پژوهشی
اطلاعات استنادی این مقاله را به نرم افزارهای مدیریت اطلاعات علمی و استنادی ارسال نمایید و در تحقیقات خود از آن استفاده نمایید.
تراکنش چیست؟
به فرآیند اجرای دستورات که به موجب آن در داده های پایگاه اطلاعاتی تغییر ایجاد می گردد ( درج اطلاعات جدید، ویرایش اطلاعات موجود یا حذف اطلاعات ) تراکنش ( Transaction ) می گویند. به عبارت خیلی ساده تر تراکنش به عمل اجرای دستورات کاربر در بانک اطلاعاتی می گویند. بر همین اساس به فرآیند های مالی و پولی که در سیستم های بانکی و پرداخت توسط مشتریان ، کاربران این سامانه رخ میدهد تراکنش مالی یا به اختصار تراکنش می گویند. تراکنش می تواند موفق یا ناموفق باشد. تراکنش همیشه از دو سمت تشکیل شده یکی مشتری و دیگری سرویس دهنده و بدین صورت انجام میشود که در خواستی برای خدمت دهنده (مثلاً بانک) فرستاده میشود و اگر کل تقاضای مشتری به درستی انجام شد مشتری از این امر با دریافت رسید از سوی خدمت دهنده ( سرویس دهنده ) با خبر میشود.
تراکنش خرید
انجام فرآیندی است که طی آن بواسطه ابزار پذیرش وجه کالا یا خدمات از حساب خریدار ( دارنده ) کسر و به حساب فروشنده ( پذیرنده ) واریز می گردد. در این عمل ابزار پذیرش می تواند درگاه پرداخت اینترنتی ( IPG ) و یا دستگاه کارتخوان سیار یا پایانه فروشگاهی باشد.
تراکنش موجودی
طی این فرآیند دارنده کارت می تواند از طریق ابزارهای پذیرش کارت نظیر دستگاه خود پرداز، پایانه فروشگاهی، کارتخوان سیار، کیوسک و . موجودی حساب خود را دریافت و کنترل نماید.
تراکنش برگشت از خرید
با انجام این تراکنش وجهی که از طریق کارت نقدی یا اعتباری و بعد از انجام یک تراکنش خرید موفق به حساب دارندهکارت مجددا بازگردانده میشود. مقدار این وجه تنها میتواند به اندازه یا کمتر از مقدار پول پرداخت شده قبلی توسط دارنده کارت باشد. همچنین تنها برای خریدهای موفق انواع تراکنش ها و بهطور کامل انجام شده قابل انجام است.
تراکنش پرداخت قبض
در این تراکنش دارنده کارت بانکی توسط یکی از ابزارهای پذیرش اقدام به پرداخت قبوض خدماتی یا قبض های دیگر نظیر قبض جریمه و یا حتی پرداخت قسط تسهیلات میکند.
مغایرت بانکی
معمولا در صورت بروز اختلاف داده ای طی انجام عملیات پرداخت الکترونیک بین سرویس دهندگان این حوزه به اصطلاح می گویند مغایرت بانکی پیش آمده است. برای مثال یک تراکنش خرید در سوئیچ شاپرک با موفقیت پردازش شده است ولی در زمان ارسال پاسخ به پایانه فروش ارتباط قطع شده است در این حالت بین سوئیچ شرکت ارائه دهنده خدمات پرداخت و سوئیچ شاپرک مغایرت به وجود آمده است ( از حساب خریدار پول کسر شده ولی به حساب فروشنده وجهی واریز نشده است) معمولا این مغایرت ها حداکثر در بازه زمانی 72 ساعته برطرف خواهند شد.
این پیشامد ممکن است هنگام خرید از فروشگاههای اینترنتی و در زمان پرداخت وجه از طریق درگاه پرداخت اینترنتی نیز رخ دهد، به همین دلیل است که سیزپی در راستای ارائه خدمات مطمئن به مشتریان خود و دارندگان کارتی که از درگاه پرداخت اینترنتی سیزپی خرید می کنند تیمی متشکل از کارشناسان زبده پرداخت الکترونیک برای بخش پیگیری مغایرت های بانکی احتمالی تشکیل داده است تا در کمترین زمان مغایرت های به وجود آمده را برطرف نمایند.
به هر دلیل که تراکنش های انجام شده با موفقیت به پایان نرسند و رسید عملیات موفق به کاربران تحویل نگردد یا به عبارتی تراکنش با خطا مواجه شود، کاربر پیام تراکنش ناموفق دریافت می کند. خطاهای تراکنشی دارای انواع مختلفی مانند خطای پذیرندگی، خطای کاربری، خطای صادرکنندگی، خطای شاپرکی و خطای کسب و کار است. خطای کاربری همواره عمدهترین دلیل بروز خطاها بوده، این نوع خطا به عملکرد شبکه پرداخت ارتباطی نداشته و ناشی از عملکرد دارنده کارت مانند کمبود موجودی یا فراموشی رمز است. کمترین سهم خطا هم مربوط به خطای شاپرکی است که به دلیل اختلال در سوئیچ شاپرک اتفاق می افتد.
پس بیشتر خطاهایی که در هنگام انجام عملیات پرداخت با آن مواجه می شویم، خطای انسانی بوده و بیشتر به این دلایل است:
رمز کارت نا معتبر است
موجودی کافی نیست
شماره کارت وارد شده نامعتبر است
رمز دوم کارت اشتباه وارد شده است.
رمز پویا منقضی شده است.
تاریخ انقضا صحیح وارد نشده است.
پرداخت کنندگانی ( دارندگانی ) که ممکن است با خطا مواجه شوند بهتر است ابتدا موارد ذکر شده را بررسی کنند و در صورتی که از درج صحیح اطلاعات مطمئن شدند، نسبت به اعلام خطا به شرکت ارائه دهنده سرویس پرداخت اقدام کنند.
محدودیت تراکنش
هر کارت بانکی نهایت تا 50 میلیون تومان می تواند تراکنش خرید در یک روز داشته باشد. این سقف خرید از کانال درگاه پرداخت اینترنتی و دستگاه پوز 50 میلیون بوده و در سایر ابزارهای انتقال و دریافت وجه این رقم محدودتر می شود. مثلا دریافت وجه نقد از دستگاه های خودپرداز محدود به 200هزار تومان است یا از طریق اپلیکیشن های پرداخت حداکثر شش میلیون بتوان انتقال داد.
تراکنش های مشکوک
بصورت عام چیزی به اسم تراکنشهای مشکوک نداریم ولی باتوجه به آئین نامه های سازمان امور مالیاتی در خصوص رسیدگی به تراکنش های بانکی که بیان می دارد : از آنجایی که تراکنش های بانکی واصله می توانند نتیجه معاملات و عملیات مشکوک به پولشویی باشند، بنا براین رعایت مفاد دستورالعمل کشف معاملات و عملیات مشکوک و اعلام محرمانه گزارش به مرجع ذیربط حسب مورد الزامی خواهد بود. و به این ترتیب اصطلاح تاکنش مشکوک به وجو آمد.
مطابق آنچه در قانون مالیاتهای مستقیم آمده است، تراکنشهایی که شرایط زیر را داشته باشند، تراکنش مشکوک محسوب نمیشوند؛
گردش حساب بینبانکی یک شخص؛ یعنی یک فرد مبلغی را از حساب خود در یک بانک بهحساب خود در یک بانک دیگر انتقال دهد
گردش حساب ناشی از دریافت وام و تسهیلات
تراکنشهایی که مربوط به دریافت طلب و یا پرداخت بدهی است
تراکنشهای ناشی از دریافت و یا پرداخت دستمزد، اجاره و یا سایر منابع درآمدی
گردش مالی ناشی از درآمد حاصل از کشاورزی
گردش مالی ناشی از ارث، وقف، نذر و حبس
تراکنشهایی که از درآمد معاف از مالیات به وجود آمدهاند
هر آنچه غیر از موارد بالا بود تراکنش مشکوک محسوب می شود.
شرکت های ارائه دهنده خدمات پرداخت و بانکها برای اینکه بتوانند در صورت بروز انواع تراکنش ها تراکنش های مشکوک آنها را شناسائی کنند از سیستم های کشف تقلب ( Fraud Detection ) استفاده می کنند.
راهنمای ردیابی تراکنش ارز دیجیتال، چرا، چگونه و کجا؟
ردیابی تراکنش ارز دیجیتال با استفاده از ابزارهایی ممکن است. ارزهای دیجیتال کاملاً شفاف و همه تراکنشهای آن قابل تأیید و ردیابی است. با این حال، شاید همه ندانند تراکنشهای رمز ارزها دقیقاً چگونه ردیابی میشود. در این مقاله میخواهیم به شما نشان دهیم چگونه میتوانید از طریق اکسپلورر بلاکچین تاریخچه تراکنشها و همچنین موجودی کیف پولتان را شخصاً تأیید کنید.
ردیابی تراکنش ارز دیجیتال
به جای اعتماد کردن خودتان تراکنشها را تأیید کنید؛ تراکنشهای رمز ارزها در دسترس همه هستند.
ارزهای دیجیتال مانند بیت کوین در مقایسه با پولهای سنتی بسیار منحصر به فرد هستند. این داراییها از فناوری جدیدی به نام بلاکچین استفاده میکنند. این فناوری به طور خلاصه یک دفتر کل توزیع شده شامل تمام تراکنشها است.
این بدان معناست که تمام تراکنشهای انجام شده بر روی هر رمز ارز در یک بلاکچین واحد ثبت شده و کل تاریخچه تراکنشها در این بلاکچین ذخیره میشود.
به یاد دارید که چگونه رسیدهایتان را نگه میداشتید و هر ماه حساب بانکیتان را چک میکردید تا مطمئن شوید تمام تراکنشهای مالی که در یک بازه زمانی مشخص انجام دادهاید درست بوده است؟ یا شاید به جای این کار صرفاً به بانکتان اعتماد میکردید.
خبر خوب این است که با وجود ارزهای دیجیتال لازم نیست به کسی اعتماد کنید؛ در انجام تراکنشهای رمز ارزها هیچ شخص ثالثی دخالت ندارد. تقریباً همه ارزهای دیجیتال از بلاکچین عمومی استفاده میکنند که در آن جزئیات تمام تراکنشهایی که تا به حال انجام شده قابل مشاهده است.
اما این به چه درد شما میخورد؟ این قابلیت علاوه بر اینکه نشان میدهد دیگران چقدر از شما ثروتمندتر هستند، در واقع یک هدف بسیار ارزشمند دیگر هم دارد و آن این است که میتوانید هر تراکنشی را که تا به حال ارسال یا دریافت کردهاید بررسی و تأیید کنید.
در واقع به کمک این فناوری میتواند ردیابی کردن تراکنشهای ارزهای دیجیتال را شخصاً انجام دهید. اگر احساس میکنید سرویسی که استفاده میکنید میزان صحیح بیت کوین شما را نشان نمیدهد میتوانید خودتان سابقه تراکنشها را بررسی کرده و ببینید آیا مشکلی وجود دارد یا خیر.
همچنین اگر یکی از دوستانتان ادعا میکند که تراکنشی را انجام داده و مبلغی را برایتان فرستاده است اما شما هنوز آن را دریافت نکردهاید میتوانید خودتان صحت گفته او را مستقیماً از طریق بلاکچین بررسی کنید.
به قول معروف «به جای اعتماد کردن خودتان مطمئن شوید»؛ در دنیای ارزهای دیجیتال میتوانید از هر اتفاقی در مورد تراکنشها شخصاً مطمئن شوید. اما چگونه میتوان کل تاریخچه بلاکچین را بررسی کرد؟
اکسپلوررهای بلوک: ردیابی کردن کل سابقه بلاکچین
اکسپلورر یا جستجوگر بلاک (Block Explorers) ابزار لازم برای دیدن همه تراکنشهایی است که تا به حال در یک بلاکچین انجام شده است. از طریق این ابزار میتوانید موجودی هر آدرس را بررسی کنید، جزئیات هر تراکنش و موارد دیگر را مشاهده کنید.
انواع مختلفی از اکسپلورر بلوک وجود دارد که با توجه به وجود انواع متعدد رمز ارزهای مختلف منطقی به نظر میرسد. بیشتر اوقات، یک اکسپلورر بلوک تنها مربوط به یک دارایی دیجیتال خاص است. چند مورد از اکسپلوررهای بلوک رایج عبارتاند از:
- بیت کوین: blockchain.com و blockstream
- اتریوم و توکنهای ای آر سی ۲۰ (ERC20): Etherscan و Ethplorer
- ریپل: Bithomp و نمودارهای XRP
از طریق این اکسپلوررهای بلوک میتوانید موجودی هر آدرسی را که وارد کنید یا جزئیات تراکنش هر شناسه تراکنشی که وارد کنید را مشاهده کنید. پس از وارد کردن اطلاعات میتوانید همه جزئیات مربوط به یک آدرس یا شناسه خاص را مشاهده کنید. این اطلاعات شامل تمام تراکنشهای ورودی و خروجی است که تا به حال برای یک آدرس خاص انجام شده است.
در خصوص تراکنشها، این اطلاعات شامل فرستنده تراکنش، مقدار رمز ارز ارسال شده، مقصد تراکنش، و مقدار کارمزد پرداخت شده برای انجام تراکنش است. به طور خلاصه، اکسپلورر بلوک مانند دانشنامهای حاوی تراکنشها و آدرسهای بلاکچین است که همه میتوانند کل تاریخچه آن را جستجو کنند.
چرا باید از اکسپلورر بلاکچین استفاده کنیم؟
کیف پول بلاکچین برخی از دادههای مربوط به تراکنشها را ارائه میدهد اما از نظر جزئیات و دسترسی محدود است. از سوی دیگر، اکسپلورر میتواند دادههای مربوط به تراکنشهای انجام شده بر روی تمام کیف پولهای بلاکچین را ارائه دهد. مزیت اصلی استفاده از اکسپلوررها این است که به حفظ شفافیت در انجام تراکنشها کمک میکنند.
اکسپلوررها به کاربران این امکان را میدهند تا موجودی و هزینههای پرداخت شده در آدرسهای قرارداد هوشمند را بررسی کنند تا قبل از ارسال کوینهای رمزنگاری شده به آن آدرس از معتبر بودن آن مطمئن شوند.
کاربران همچنین به کمک اکسپلوررها میتوانند بررسی کنند که آیا یک تراکنش خاص به گیرنده مورد نظر رسیده است یا خیر و در صورت عدم انجام تراکنش چه مشکلی پیش آمده است.
اکسپلوررها همچنین اطلاعاتی در مورد کارمزد تراکنشها ارائه میدهند. اکسپلوررها به عنوان یک ابزار تحقیقی به کاربران در گرفتن تصمیمهای مهم در مورد تراکنشها و سرمایهگذاری کمک میکنند.
نمونههای اکسپلورر بلاکچین
یکی از اولین اکسپلوررهای بلاکچین blockexplorer.com است. از آن زمان تا کنون چندین ابزار از این دست طراحی شده است. برخی از این اکسپلوررها blockchain.com (حالا با آدرس blockchain.org) و blockchair، tokenview و etherscan هستند. اکثر اکسپلوررهای موجود بلاکچین بیشتر بلاکچینها مانند بیت کوین، اتریوم و کاردانو را پوشش میدهند.
نحوه خواندن و ردیابی تراکنش ارز دیجیتال در اکسپلورر
حالا برای آشنایی عملی با این ابزار بیایید یک تراکنش را در اکسپلورر بلوک بررسی کنیم. برای کسانی که با تراکنشهای رمز ارزها آشنا نیستند ممکن است این قسمت گیج کننده به نظر برسد چرا که هر تراکنش شامل مجموعهای از اعداد و حروف تصادفی است.
بهتر است این مفهوم را به بخشهای کوچکتر تقسیم کنیم و هر کدام را جداگانه بررسی کنیم. در زیر یک اسکرین شات از اکسپلورر بلوک blockchain.com را مشاهده میکنید که مربوط به یک تراکنش بیت کوین است:
شناسه هش تراکنش
هش تراکنش، که به عنوان شناسه تراکنش (Transaction ID) نیز شناخته میشود، شناسه این تراکنش خاص است. به عبارت سادهتر این شناسه کد مربوط به این تراکنش است. اگر بخواهید جزئیات یک تراکنش خاص را جستجو کنید باید این رشته کد را در اکسپلورر بلوک وارد کنید.
آدرس (های) ارسال کننده
این بخش نشان میدهد که کدام آدرس ارزهای دیجیتال مرتبط با آن را ارسال میکند و اینکه چه مقدار ارسال میکند. همچنین میتوانید با کلیک کردن روی آدرس سابقه تراکنشهای ورودی و خروجی آن را مشاهده کنید.
هنگامی که یک تراکنش بیت کوین انجام میدهید به طور خودکار کل مبلغ را از آدرس خودتان ارسال میکنید و بقیه رمز ارز به آدرس باقیمانده شما ارسال میشود. بیایید نگاه دقیقتری به این مفهوم داشته باشیم:
آدرس باقیمانده (Change Address)
فرض کنید موجودی آدرس شما یک بیت کوین است. شما میخواهید ۰/۱ بیت کوین برای یکی از دوستانتان ارسال کنید. هنگام انجام این تراکنش کل موجودی آدرس شما ارسال میشود. البته تمام موجودی شما به آدرس دوستتان ارسال نمیشود و او فقط ۰/۱ بیت کوین مدنظر را دریافت میکند.
بقیه ۰/۹ بیت کوین به آدرس باقیمانده شما ارسال میشود. این آدرس کاملاً در کنترل خود شماست. این ویژگی مختص بیت کوین و مشتقات آن است و رمز ارزهای دیگر مانند اتریوم و ریپل کل موجودی آدرس را ارسال نمیکنند.
کارمزدها
اکثر شبکههای ارزهای دیجیتال دارای کارمزدهای مربوط به انجام تراکنشها هستند. بیت کوین هم از این قاعده مستثنی نیست. در این بخش میتوانید ببینید هزینه انجام تراکنش چقدر بوده است. این کارمزدها به آن ماینرهایی پرداخت میشود که بلوکهای حاوی تراکنشها را برای شبکه تأیید میکنند.
آدرس (های) دریافت کننده
در این بخش میتوان آدرسهای مقصد مورد نظر یک تراکنش را مشاهده کرد. همچنین میتوان دید هر آدرس چه مقدار رمز ارز دریافت میکند. درست مانند آدرس ارسال کننده، میتوان بر روی آدرسهای دریافت کننده کلیک کرده و سابقه تراکنشهای آنها را مشاهده کرد. معمولاً در پایین این آدرسها آدرس باقیمانده قرار دارد که در بخش قبل توضیح داده شد.
وضعیت تراکنش
بخش غالباً نادیده گرفته شده و در عین حال بسیار مهم یک تراکنش «وضعیت» آن است. برای اینکه یک تراکنش تکمیل شده و معتبر تلقی شود، ابتدا باید توسط ماینرهای اعتبارسنج تأیید شود.
یک تراکنش تأیید نشده مانند آنچه در بالا نشان داده شده است ممکن است هر لحظه نامعتبر یا لغو شود. بهتر است تراکنشهای تأیید نشده را «هنوز دریافت نشده» در نظر بگیرید و منتظر بمانید تا واقعاً تأیید شود.
امکان مشاهده بیش از یک آدرس ارسال یا دریافت کننده نیز وجود دارد. این کار را میتوان از طریق یک ویژگی پیشرفتهتر که به «دسته بندی تراکنش» معروف است انجام داد. این یک ویژگی متداول مورد استفاده در صرافیهای ارزهای دیجیتال است که برای کاهش کارمزدها ارزهای دیجیتال را از طریق یک تراکنش برای چند نفر ارسال میکنند.
راهنمای ابزار رایگان تریدینگ ویو (TradingView) به زبان ساده برای تحلیل تکنیکال
تراکنش ها (Transactions) در MySQL — راهنمای جامع
یک «تراکنش» (transaction)، گروهی متوالی از عملیات دستکاری پایگاه داده است که به صورت یک واحد کاری مجزا اجرا میشود. به بیان دیگر، یک تراکنش هرگز کامل نمیشود؛ مگر اینکه هر یک از اعمال درون گروه موفقیتآمیز باشند. اگر هر یک از اعمال درون تراکنش با شکست مواجه شوند، کل تراکنش شکست میخورد.
خصوصیات تراکنش
تراکنشها دارای چهار خصوصیت استاندارد هستند که معمولاً ACID نامیده میشوند. این موارد در ادامه بیان شدهاند.
- Atomicity – این خصوصیت تضمین میکند که همه عملیات درون واحد کاری به طور موفقیتآمیزی کامل شدهاند؛ در غیر این صورت، تراکنش در نقطه شکست متوقف میشود و عملیات قبلی به وضعیتهای (States) پیشین خود باز میگردند.
- Consistency – این خصوصیت تضمین میکند که پایگاه داده بر اساس اجرای موفقیتآمیز یک تراکنش، وضعیتها را به طور مناسبی تغییر میدهد.
- Isolation – این خصوصیت تراکنشها را قادر میسازد تا به طور مستقل از هم عمل کنند و برای یکدیگر شفاف باشند. به عبارت دیگر عملکرد هر تراکنش برای دیگر تراکنشها شفاف است؛ اما این امر مانع استقلال آنها از یکدیگر نمیشود.
- Durability – انواع تراکنش ها انواع تراکنش ها این خصوصیت تضمین میکند که نتیجه یا تأثیر یک تراکنش اجرا شده، در صورت از کار افتادن سیستم به قوت خود باقی میماند.
در MySQL، تراکنشها با عبارت «BEGIN WORK» آغاز و با عبارت «COMMIT» یا «ROLLBACK» پایان مییابند. دستورهای SQL قرار گرفته بین این عبارتهای آغاز و پایان بخش عمده تراکنشها را تشکیل میدهند.
COMMIT و ROLLBACK
این دو کلیدواژه به طور عمده برای تراکنشهای MySQL مورد استفاده قرار میگیرند.
- وقتی یک تراکنش موفق کامل میشود، دستور COMMIT باید صادر شود تا تغییرات صورت گرفته روی همه جدولهای درگیر اعمال شوند.
- اگر شکستی به وقوع بپیوندد، باید یک دستور ROLLBACK صادر شود تا کلیه جدولهایی که تراکنش به آنها ارجاع داشته، به وضعیت قبل خود بازگردند.
رفتار یک تراکنش را میتوان با تنظیم متغیر نشست (Session) که AUTOCOMMIT نامیده میشود، کنترل کرد. اگر AUTOCOMMIT روی ۱ تنظیم شده باشد (یعنی مقدار پیشفرض)، هر عبارت SQL (چه درون تراکنش باشد و چه نباشد) به عنوان یک تراکنش کامل در نظر گرفته میشود و به طور پیشفرض پس از پایان یافتن COMMIT میشود.
زمانی که AUTOCOMMIT روی مقدار 0 تنظیم شده باشد، با صادر کردن دستور SET AUTOCOMMIT = 0، سریهای بعدی عبارتها مانند یک تراکنش عمل میکنند و تا زمانی که یک دستور صریح COMMIT صادر نشود، هیچ فعالیتی به Commit نمیشود. این دستورهای SQL را میتوان در PHP با استفاده از تابع ()mysql_query اجرا کرد.
یک مثال کلی از تراکنش
توالی زیر از رویدادها، مستقل از زبان برنامهنویسی مورد استفاده است. مسیر منطقی را میتوان با هر زبانی که برای ساخت «برنامه کاربردی» (application) مورد استفاده قرار میگیرد ایجاد کرد.
این دستورات SQL را میتوان با استفاده از تابع ()mysql_query در زبان برنامهنویسی «پیاچپی» (PHP) اجرا کرد.
- آغاز تراکنش با صادر کردن دستور SQL که در ادامه آمده: BEGIN WORK
- صادر کردن یکی یا تعداد بیشتری از دستورهای SQL مانند SELECT, INSERT, UPDATE یا DELETE.
- بررسی اینکه خطایی وجود نداشته باشد و همه چیز مطابق با خواست کاربر (برنامهنویس) پیش برود.
- اگر خطایی وجود داشته باشد، باید یک دستور ROLLBACK و در غیر این صورت یک دستور COMMIT صادر شود.
انواع جدول تراکنش-امن در MySQL
به جز چند شرایط استثنایی مشخص، نمیتوان از تراکنشها به طور مستقیم استفاده کرد. با این وجود، شرایط مذکور نیز امن و تضمین شده نیستند. کاربرانی که تمایل به استفاده از تراکنشها در دستورات MySQL دارند، باید جدولهای خود را به شکل خاصی بسازند. انواع گوناگونی از جدولها در MySQL وجود دارد که از تراکنشها انواع تراکنش ها پشتیبانی میکنند، اما محبوبترین آنها InnoDB است.
پشتیبانی از جدولهای InnoDB نیازمند نوع خاصی از پارامترهای کامپایل هنگام کامپایل کردن MySQL از کد منبع است. اگر نسخه MySQL کاربر از InnoDB پشتیبانی نمیکند، نیاز به نصب نسخهای است که از این نوع جدول پشتیبانی کند. در صورتی که نسخه MySQL کاربر از InnoDB پشتیبانی میکند، کافی است در دستور ایجاد جدول از عبارت TYPE = InnoDB استفاده کند. برای نمونه کد زیر یک جدول InnoDB به نام tcount_tbl ایجاد میکند:
برای دریافت جزییات بیشتر در خصوص InnoDB میتوان به صفحه (+) مراجعه کرد. همچنین، میتوان انواع دیگری از جدولها مانند GEMINI یا BDB را نیز مورد استفاده قرار داد؛ اما این امر بستگی دارد به اینکه نسخه نصب شده توسط کاربر از آنها پشتیبانی میکند یا خیر.
اگر این مطلب برایتان مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشوند:
آشنایی با مالیات تراکنش بانکی در ۵ گام
مالیات تراکنش بانکی از انواع جدید مالیات است که به دلیل فراوانی حتی با نرخ کم، عایدی قابل توجهی را نصیب دولت می کند.
اگر صاحب شغل هستید برای عدم ایجاد شک برای سازمان امور مالیاتی در خصوص تراکنش های مالی، بهتر است با
تراکنش های بانکی مشکوک آشنا شوید و با استفاده از روش هایی از ایجاد تراکنش های بانکی مشکوک خودداری کنید.
اگر تمایل دارید با انواع تراکنش های بانکی آشنا شوید و
دلایل شک سازمان امور مالیاتی به برخی از تراکنش های بانکی را بدانید تا انتهای این مقاله با ما همراه باشید.
1# مالیات تراکنش مالی
مالیات بر تراکنش های مالی (Financial Transaction Tax) در سال 1964 در انگلستان به صورت مالیات حق تمبر تصویب شد.
مالیات بر تراکنش های مالی انواعی نظیر مالیات بر تراکنش های اوراق بهادار، اوراق بدهی، مالیات بر تراکنش های ارزی، حق بیمه، معاملات املاک و مستغلات و مالیات تراکنش بانکی دارد.
2# مالیات تراکنش بانکی
در سال 1898 دولت آمریکا اولین بار مفهوم مالیات تراکنش بانکی (Banking Transaction Tax) را به صورت پرداخت دو سنت برای هر چک بانکی مورد معامله مقرر کرد.
علاوه بر آمریکا برخی کشورهای آمریکای لاتین، یونان و استرالیا نیز از این نوع مالیات استفاده کردند.
مالیات تراکنش بانکی از جدیدترین انواع مالیات است.
مودیان مالیاتی که در این بخش از مالیات صاحبان مشاغل و فعالین اقتصادی هستند،
باید اطلاعات مربوط به معاملات تجاری خود را دریافت، جمع آوری و طبقه بندی کنند تا
با شفاف سازی اطلاعات مورد سوءظن نظام مالیاتی کشور قرار نگیرند.
لذا آشنایی با دستورالعمل رسیدگی به تراکنش های بانکی برای رفع این نگرانی ها ضروری است.
سازمان امور مالیاتی دستورالعملی صادر کرده است که
به موجب آن تمامی واریزی های بانکی یا گردش بستانکاری جزء درآمد مودی مالیاتی قرار نگیرد؛
بلکه تراکنش های بانکی باید مورد بررسی قرار گیرند و در صورت نامشخص انواع تراکنش ها و بیش از حد بودن بر آن ها تمرکز شود و
از مودی در خصوص چنین تراکنش هایی بازخواست شود.
سازمان امور مالیاتی در مبحث مالیات بر تراکنش بانکی اطلاعات معاملات بانکی فعالان اقتصادی را بررسی می کند و
در صورتی که اطلاعات برای سازمان امور مالیاتی مورد شک و تردید باشد،
موارد مشکوک را در لوح فشرده ای قرار می دهند و مودیان مالیاتی مکلف هستند تا
در موعد زمانی مقرر لوح فشرده را از سازمان امور مالیاتی دریافت کنند و
پس از آن یک ماه فرصت دارند تا آن موارد را برطرف کنند؛ در غیر این صورت مشمول جرائم مالیاتی می شوند.
به دلیل گسترده بودن این مالیات حتی نرخ بسیار پایین آن هم می تواند درآمد قابل توجه در مدت زمان کوتاه فراهم آورد.
دیدگاه شما