تراکنش در پایگاه داده
مقدمه
تراکنشها در پایگاه داده نقش حیاتی در مدیریت دادهها و اطمینان از صحت و انسجام آنها ایفا میکنند. تراکنش به مجموعهای از عملیات گفته میشود که به صورت یک واحد واحد اجرا میشوند و باید یا به طور کامل انجام شوند یا اصلاً انجام نشوند. این مقاله به بررسی تراکنشها، ویژگیهای آنها و نحوه استفاده از آنها در پایگاه دادهها میپردازد.
ویژگیهای تراکنشها
چهار ویژگی اصلی که تراکنشها باید داشته باشند، تحت عنوان ACID شناخته میشوند:
1. Atomicity (اتمی بودن)
اتمی بودن به این معناست که یک تراکنش باید به صورت کامل انجام شود یا اصلاً انجام نشود. اگر در طول اجرای تراکنش خطایی رخ دهد، تمامی تغییرات انجام شده باید به حالت قبل بازگردانده شوند. این ویژگی تضمین میکند که دیتابیس در یک وضعیت ناسازگار باقی نماند.
2. Consistency (سازگاری)
سازگاری تضمین میکند که هر تراکنش دیتابیس را از یک وضعیت معتبر به وضعیت معتبر دیگری منتقل کند. این ویژگی اطمینان میدهد که قوانین و محدودیتهای تعریف شده برای دادهها همیشه رعایت شوند.
3. Isolation (ایزوله بودن)
ایزوله بودن به این معناست که تراکنشهای همزمان باید به گونهای اجرا شوند که به نظر برسد تراکنشها به ترتیب انجام شدهاند. این ویژگی از تداخل تراکنشها جلوگیری میکند.
4. Durability (دوام)
دوام به این معناست که پس از اتمام یک تراکنش، تغییرات انجام شده باید به طور دائمی در دیتابیس ذخیره شوند، حتی در صورت بروز خطاهای سیستمی یا قطعی برق.
اجرای تراکنشها در پایگاه داده
در پایگاه دادههای مدرن، تراکنشها به وسیله دستورات SQL مدیریت میشوند. به عنوان مثال، در MySQL و سایر سیستمهای مدیریت پایگاه داده رابطهای، دستورات زیر برای شروع، تایید و بازگرداندن تراکنشها استفاده میشوند:
شروع تراکنش
START TRANSACTION;
تایید تراکنش
COMMIT;
بازگرداندن تراکنش
ROLLBACK;
مثال عملی
فرض کنید میخواهیم مبلغی را از حساب A به حساب B منتقل کنیم. این عملیات شامل دو مرحله است: کاهش موجودی حساب A و افزایش موجودی حساب B. هر دو مرحله باید به عنوان یک تراکنش انجام شوند تا از وقوع وضعیت ناسازگار جلوگیری شود.
شروع تراکنش
START TRANSACTION;
کاهش موجودی حساب A
UPDATE accounts SET balance = balance - 100 WHERE account_id = 'A';
افزایش موجودی حساب B
UPDATE accounts SET balance = balance + 100 WHERE account_id = 'B';
تایید تراکنش
COMMIT;
اگر در هر کدام از مراحل خطایی رخ دهد، میتوانیم تراکنش را بازگردانیم:
ROLLBACK;
نتیجهگیری
تراکنشها ابزار قدرتمندی برای مدیریت عملیات پیچیده در پایگاه دادهها هستند. با استفاده از تراکنشها، میتوانیم اطمینان حاصل کنیم که دیتابیس همیشه در یک وضعیت معتبر و سازگار باقی میماند. ویژگیهای ACID (اتمی بودن، سازگاری، ایزوله بودن و دوام) تضمین میکنند که تراکنشها به درستی و بدون خطا اجرا شوند و دادهها همیشه محفوظ بمانند.
منابع
- ACID Properties on Wikipedia
- MySQL Documentation
- SQL Transaction
کلیدواژهها
- تراکنش
- پایگاه داده
- اتمی بودن
- سازگاری
- ایزوله بودن
- دوام
- مدیریت داده
- SQL
- COMMIT
- ROLLBACK