Tính đồng thời có thể gây ra các vấn đề:
- Một transaction đọc dữ liệu đang được cập nhật bởi một transaction khác.
- Kết quả cuối cùng của dữ liệu có thể không đúng nếu có nhiều transaction cùng thực hiện cập nhật dữ liệu.
Concurrency Control Protocols
Các phương pháp kiểm soát tính đồng thời:
- Dựa vào việc sử dụng khóa (Lock-based)
- Hai pha (Two Phases)
- Dựa vào nhãn thời gian (Timestamp-based)
- Dựa vào việc hợp thức hóa (Validation-based)
Lock-based
DBMS nào cũng có các loại khóa sau:
- Khóa chia sẻ (Shared Lock): chỉ cho phép có nhiều transaction cùng thực hiện việc đọc dữ liệu. Nếu có một transaction cần thực hiện cập nhật dữ liệu, nó cần phải chờ cho quá trình đọc dữ liệu kết thúc.
- Khóa độc quyền (Exclusive Lock): cho phép duy nhất một transaction có quyền đọc hoặc ghi.