Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.
Bài 0535phút ước tínhCơ bản đến Chuyên sâu
5. Transactions ACID, Locking & Bảo Toàn Dữ Liệu Tài Chính Tuyệt Đối
Xử lý các bài toán giao dịch ngân hàng: Đảm bảo tính nguyên tử (Atomicity), chống xung đột ghi đồng thời (Race Condition) với SELECT FOR UPDATE.
🛡️ 4 Trụ Cột ACID Trong Cơ Sở Dữ Liệu
- Atomicity (Nguyên tử): Toàn bộ các lệnh trong Transaction phải có tiêu chí kiểm tra kết quả, nếu 1 lệnh lỗi thì toàn bộ bị Rollback quay về trạng thái cũ.
- Consistency (Nhất quán): Dữ liệu luôn thỏa mãn mọi ràng buộc toàn vẹn.
- Isolation (Cô lập): Các giao dịch chạy song song không làm sai lệch kết quả của nhau.
- Durability (Bền vững): Khi đã Commit, dữ liệu được ghi vĩnh viễn vào ổ cứng.
-- GIAO DỊCH CHUYỂN TIỀN GIỮA 2 TÀI KHOẢN VỚI TRANSACTION & ROW LOCKING
BEGIN;
-- 1. Khóa dòng dữ liệu tài khoản nguồn để tránh xung đột
SELECT balance FROM bank_accounts WHERE account_no = 'ACC_001' FOR UPDATE;
-- 2. Trừ tiền tài khoản gửi (kiểm tra số dư đủ)
UPDATE bank_accounts
SET balance = balance - 1000000
WHERE account_no = 'ACC_001' AND balance >= 1000000;
-- 3. Cộng tiền tài khoản nhận
UPDATE bank_accounts
SET balance = balance + 1000000
WHERE account_no = 'ACC_002';
-- 4. Ghi log giao dịch
INSERT INTO transaction_logs (from_acc, to_acc, amount, created_at)
VALUES ('ACC_001', 'ACC_002', 1000000, NOW());
-- Nếu không có lỗi xảy ra thì chốt giao dịch
COMMIT;
Thực hành
Thực hành và tự đánh giá
Mô phỏng tình huống chuyển tiền không đủ số dư và kiểm tra lệnh ROLLBACK bảo toàn dữ liệu.
🏢 BẠN MUỐN TRIỂN KHAI CHO CẢ PHÒNG BAN / DOANH NGHIỆP?
Đề Xuất Công Ty Tài Trợ & Đào Tạo In-House Trọn Gói
AI Tinh Gọn hỗ trợ khảo sát hiện trạng, kèm 1-1 on-premise bảo mật dữ liệu, setup hạ tầng riêng và xuất hóa đơn VAT hợp pháp cho doanh nghiệp.
⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại.
Giáo trình mở →
Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.