Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

ĐẠI HỌC ĐÀ NẴNG – ĐẠI HỌC KINH TẾ

KHOA THỐNG KÊ TIN HỌC

TƯƠNG TRANH TRONG CSDL


Giảng viên: Cao Thị Nhâm
nhamct@due.edu.vn
Nội dung chính
•Tính tương tranh trong CSDL

•Các vấn đề thường gặp trong tương tranh

•Giải quyết tương tranh

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 2


Giới thiệu

🡪 Cần có cơ chế giải quyết tương tranh

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 3


Các vấn đề thường gặp (1)
•Mất dữ liệu (lost updates)

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 4


Các vấn đề thường gặp (2)
•Dữ liệu bẩn (Dirty reads)

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 5


Các vấn đề thường gặp (3)
•Dữ liệu đọc không lặp lại (Non-Repeatable Reads)

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 6


Các vấn đề thường gặp (4)
•Dữ liệu ảo (Phantom)

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 7


Các cấp độ cô lập trong giao tác
•Chuẩn ANSI SQL 1992 quy định các cấp độ cô lập để quản lý
giao tác

•Quy định mức độ “nhìn thấy” dữ liệu của một giao tác từ
những giao tác khác

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 8


Các cấp độ cô lập trong giao tác
• Read Uncommited
• Các truy vấn được phép đọc dữ liệu chưa commit của giao tác khác

• Read Commited (mặc định trong SQL Server)


• Các truy vấn không được phép đọc dữ liệu chưa commit của giao tác khác

• Repeatable Read
• Ngăn không cho một giao tác ghi vào dữ liệu đang được xử lý bởi giao tác khác

• Serializable
• Khóa toàn bộ những bản ghi có thể bị ảnh hưởng bởi giao tác khác

• Snapshot (từ phiên bản MS SQL Server 2005)


• Khi một giao tác đang SELECT, các bản ghi không bị khóa mà một bản sao của bản ghi được tạo
ra và giao tác làm việc trên dữ liệu này

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 9


Giải quyết tương tranh
•Sử dụng các cấp độ cô lập

Mức cô lập Lost update Dirty read Nonrepeatable Phantom read


read

Read Uncommitted Không giải Không giải Không giải quyết Không giải
quyết được quyết được được quyết được

Read Committed Không giải Không giải quyết


Giải quyết được Giải quyết được
quyết được được

Repeatable read Không giải


Giải quyết được Giải quyết được Giải quyết được
quyết được

Serializable Giải quyết được Giải quyết được Giải quyết được Giải quyết được

Snapshot
YES: có xảy
Giải quyết được
ra hiện tượng
Giải quyết được Giải quyết được Giải quyết được
NO: không xảy ra hiện
tượng
@NhamCT MIS3008. Quản trị cơ sở dữ liệu 10
Thiết lập cấp độ cô lập
SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SNAPSHOT
| SERIALIZABLE }

@NhamCT MIS3008. Quản trị cơ sở dữ liệu 11


@NhamCT MIS3008. Quản trị cơ sở dữ liệu 12

You might also like