🗃️ Nhiều câu lệnh nhưng một ý định
Chuyển tiền gồm ít nhất ghi giảm một tài khoản và ghi tăng tài khoản khác. Nếu chỉ một bước thành công, dữ liệu sai dù từng câu SQL riêng lẻ hợp lệ. Transaction gom các thao tác thành một đơn vị được COMMIT hoặc hủy bằng ROLLBACK.
ACID là bốn câu hỏi
- Atomicity: toàn bộ hoặc không bước nào có hiệu lực.
- Consistency: giao dịch hợp lệ đưa cơ sở dữ liệu từ trạng thái thỏa ràng buộc sang trạng thái thỏa ràng buộc.
- Isolation: các giao dịch đồng thời không quan sát lẫn nhau theo cách trái mức cô lập đã chọn.
- Durability: sau commit, thay đổi tồn tại qua sự cố mà hệ thống cam kết chịu được.
Ví dụ lost update
T1 và T2 cùng đọc tồn kho 10. T1 tính còn 9; T2 tính còn 8. Nếu T1 ghi 9 rồi T2 ghi 8, thay đổi của T1 bị ghi đè. Có thể dùng cập nhật nguyên tử SET stock=stock-? kèm điều kiện, khóa hàng hoặc cơ chế kiểm tra phiên bản.
⚠️ Isolation có đánh đổi
Mức cô lập mạnh giảm anomaly nhưng có thể tăng chờ hoặc xung đột. Chọn giải pháp dựa trên invariant cần bảo vệ, kiểu tải và khả năng retry; không mặc định rằng mọi transaction tự động ngăn mọi lỗi cạnh tranh.
✍️ Luyện tập
Vẽ lịch đọc–ghi của hai người cùng mua sản phẩm cuối. Nêu invariant, điểm có thể sai và thiết kế cập nhật bảo đảm tồn kho không âm.
📚 Căn cứ biên soạn
- Chương trình GDPT 2018 và mạch nội dung Kết nối tri thức với cuộc sống.
- Nội dung biên soạn độc lập, nhấn mạnh bằng chứng, quy trình và giới hạn của kết luận.
Cùng nhau hiểu bài sâu hơn
Viết lời giải, công thức, đặt câu hỏi hoặc gửi ảnh phần bạn đang vướng.
Đăng nhập để đặt câu hỏi và tham gia trao đổi.
Chưa có trao đổi nào. Hãy là người đầu tiên đặt câu hỏi nhé.