- mức độ tương tranh dữ liệu cao nhất.
Các chế độ khóa: Trong CSDL đa người sử dụng có 2 chế độ khóa :
Chế độ khóa dành riêng : Dành khi cần thay đổi dữ liệu. Khóa một tài nguyên dành riêng cho giao dịch duy nhất có thể thay đổi tài nguyên cho tới khi khóa được giải phóng .
Chế độ khóa chia xẻ : Các tài nguyên liên hiệp được chia xẻ, tùy thuộc vào các thao tác liên quan (ví dụ đọc). Một vài giao dịch có thể chiếm khóa chia xẻ trên cùng một tài nguyên .
a. Các giao dịch và tương tranh dữ liệu(tiếp)Khoảng thời gian khóa: Khóa giao dịch được giữ cho khoảng Khoảng thời gian khóa: Khóa giao dịch được giữ cho khoảng
thời gian giao dịch, ngăn ngừa can thiệp có tính phá hủy như đọc dirty, mất cập nhật, và các thao tác DDL phá hủy từ các giao dịch tương tranh.
- Oracle giải phóng mọi khóa đã chiếm bởi các câu lệnh
trong giao dịch khi chúng chuyển giao/undo / rollback đến các điểm an toàn.
- Chỉ những giao dịch không chờ cho các tài nguyên được
khóa trước đó mới có thể chiếm khóa tài nguyên có sẵn .
- Các giao dịch chờ sẽ tiếp tục chờ cho tới khi chuyển giao
a. Các giao dịch và tương tranh dữ liệu(tiếp)Phiên bản khóa dữ liệu và sự leo thang khóa Phiên bản khóa dữ liệu và sự leo thang khóa
Giao dịch giữ các khóa dòng dành riêng cho mọi dòng insert, update, delete trong giao dịch.
Giao dịch biến đổi tự động một khóa bảng mức nghiêm ngặt thấp nhất thành mức nghiêm ngặt cao hơn tương ứng. (Nếu 1 giao dịch sau đó cập nhật 1 hay nhiều dòng bị khóa, khóa bảng chia xẻ dòng sẽ tự động biến đổi thành khóa bảng dành riêng dòng. )
Leo thang khóa xuất hiện khi rất nhiều khóa được giữ ở một mức nghiền hạt (VD, các dòng) và cơ sở dữ liệu đưa ra các khóa để khóa mức nghiền hạt cao hơn(VD, bảng).
b. Các kiểu khóa
Khóa Mô tả
Các khóa DML (các khóa dữ liệu)
Các khóa DML bảo vệ dữ liệu. VD, Các khóa bảng khóa toàn bộ bảng, các khóa dòng khóa toàn bộ dòng
Các khóa DDL (các khóa tự điển)
Khóa DDL bảo vệ cấu trúc của đối tượng lược đồ-VD, định nghĩa các bảng và các view.
Các khóa nội và chốt Internal locks & latches bảo vệ cấu trúc cơ sở dữ liệu như các file dữ liệu. Internal
locks & latches là hoàn toàn tự động. Các khóa Oracle có thể là 1 trong 3 phạm trù chung:
b1. Các khóa DML
Các khóa DML: Mục tiêu của khóa DML (data lock) là đảm bảo tính toàn vẹn của dữ liệu đang truy nhập tương tranh bởi nhiều người sử dụng.
DML khóa sự cản trở sự đụng độ tạm thời các thao tác DML
hay DDL.
Câu lệnh DML thu được tự động cả các khóa mức bảng và
mức dòng.
Bao gồm: Các khóa dòng (Row Locks (TX) và Các khóa
Các khóa dòng (TX)
Ngăn ngừa 2 giao dịch cùng thay đổi một dòng. Khi thay đổi 1 dòng, yêu cầu có khóa dòng. Khóa dòng cung cấp khả năng khóa mịn nhất vì vậy cung cấp mức tương tranh và thông lượng tốt nhất.