Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời

Nội dung

1. Các vấn đề trong truy xuất đồng thời

1.1. Mất dữ liệu đã cập nhật (lost updated)

1.2. Không thể đọc lại (unrepeatable read)

1.3. “Bóng ma” (phantom)

1.4. Đọc dữ liệu chưa chính xác (dirty read)

2. Cách giải quyết vấn đề

3. Chế độ khóa

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 1

Trang 1

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 2

Trang 2

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 3

Trang 3

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 4

Trang 4

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 5

Trang 5

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 6

Trang 6

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 7

Trang 7

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 8

Trang 8

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời trang 9

Trang 9

pdf 9 trang Trúc Khang 09/01/2024 4400
Bạn đang xem tài liệu "Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời

Bài giảng Cơ sở dữ liệu - Chương 5: Xử lý truy xuất đồng thời
8/25/2017
1
Chương 5.
Xử lý truy xuất đồng thời
GV: Lê Thị Minh Nguyện
Email: nguyenltm@huflit.edu.vn
Nội dung
1. Các vấn đề trong truy xuất đồng thời
2. Cách giải quyết vấn đề
3. Chế độ khóa
Hệ quản trị Cơ sở dữ liệu 2
1. Các vấn đề trong truy xuất đồng thời
1.1. Mất dữ liệu đã cập nhật (lost updated)
1.2. Không thể đọc lại (unrepeatable read)
1.3. “Bóng ma” (phantom)
1.4. Đọc dữ liệu chưa chính xác (dirty read)
Hệ quản trị Cơ sở dữ liệu 3
1.1. Mất dữ liệu đã cập nhật (lost updated)
Hệ quản trị Cơ sở dữ liệu 4
 Xét 2 giao tác
 Giả sử T1 và T2 được thực hiện đồng thời
 Dữ liệu đã cập nhật tại t4 của T1
bị mất vì đã bị ghi chồng lên ở 
thời điểm t6
t1
t2
t3
t4
t5
t6
Read(A)
A=50 T2T1
Read(A)
A:=A+10
Write(A)
A:=A+20
Write(A)
A=60 A=70
T2
Read(A)
A:=A+20
Write(A)
T1
Read(A)
A:=A+10
Write(A)
8/25/2017
2
1.1. Mất dữ liệu đã cập nhật (lost updated) (tt)
Hệ quản trị Cơ sở dữ liệu 5
Tình trạng xảy ra khi hai hay nhiều thao tác của các giao tác
khác nhau cùng yêu cầu truy cập một mục dữ liệu. Các dữ
liệu đã được các thao tác trước cập nhật nhưng lại bị các thao
tác sau cập nhật lại làm thay đổi kết quả mong muốn.
1.1. Mất dữ liệu đã cập nhật (lost updated) (tt)
Hệ quản trị Cơ sở dữ liệu 6
• Ví dụ: nhà sách còn 500 cuốn sách:
Từ lúc T1 nhân viên A yêu cầu mua 400 cuốn sách từ khách hàng X.
Cũng từ T1 nhân viên B yêu cầu mua 300 cuốn từ khách hàng Y.
A và B đọc dữ liệu thấy 500 cuốn nên đều đồng ý bán.
Vào lúc T2 nhân viên A sẽ thực hiện cập nhật số sách từ 500 thành 100.
Vào lúc T3 nhân viên B sẽ cập nhật số sách từ 500 thành 200
• Như vậy thao tác cập nhật của A không có tác dụng hay dữ liệu của A cập
nhật sẽ bị mất vì B cập nhật sau.
1.2. Không thể đọc lại (unrepeatable read)
Hệ quản trị Cơ sở dữ liệu 7
• Xét 2 giao tác
• Giả sử T1 và T2 được thực hiện đồng thời
• T2 tiến hành đọc A hai lần thì
cho hai kết quả khác nhau
T2
Read(A)
Print(A)
Read(A)
Print(A)
T1
Read(A)
A:=A+10
Write(A)
t1
t2
t3
t4
t5
t6
Read(A)
A=50 T2T1
Read(A)
A:=A+10
Write(A)
Print(A)
Read(A)
t7 Print(A)
A=50
A=50
A=60
A=60
1.2. Không thể đọc lại (unrepeatable read) (tt)
Hệ quản trị Cơ sở dữ liệu 8
• Ví dụ: giả sử nhà sách còn 200 cuốn sách.
Vào lúc T1 nhân viên A bán cho khách 150 cuốn, sẽ thực hiện cập nhật sách từ
200 thành 50. (giao dịch chưa hoàn thành chẳng hạn vì việc giao nhận tiền chưa
xong).
Sau đó lúc T2, B nhận được yêu cầu mua 100 cuốn sách, nếu B đọc được dữ liệu
chưa hoàn tất thì B sẽ từ chối bán 100 cuốn sách này.
Nếu vào lúc T3 vì lý do nào đó chẳng hạn không đủ tiền khách hàng của A
không mua 150 cuốn sách nữa. Giao tác bán hàng của A sẽ không thực hiện nên
quay về trạng thái số sách còn lại là 200
Nhưng B từ chối khách hàng.
Nếu B không đọc được dữ liệu từ lúc T1 đến T3 thì sẽ như thế nào?
8/25/2017
3
1.3. “Bóng ma” (phantom)
Hệ quản trị Cơ sở dữ liệu 9
• Xét 2 giao tác T1 và T2 được xử lý đồng thời
• A và B là 2 tài khoản
• T1 rút 1 số tiền ở tài khoản A rồi đưa vào tài khoản B
• T2 kiểm tra đã nhận đủ tiền hay chưa?
mất 50 ??? 
t1
t2
t3
t4
t5
t6
Read(A)
T2T1
Read(A)
A:=A-50
Write(A)
Read(B)
Print(A+B)
t7 Read(B)
A=70
A=20
A+B=70
A=70, B=50
A=20
B=50
B:=B+50
Write(B)
t8
t9
Đọc dữ liệu chưa chính xác (dirty read)
Hệ quản trị Cơ sở dữ liệu 10
• Xét 2 giao tác T1 và T2 được xử lý đồng thời
• T2 đã đọc dữ liệu được ghi
bởi T1 nhưng sau đó T1 yêu
cầu hủy việc ghi
t1
t2
t3
t4
t5
t6
Read(A)
T2T1
Read(A)
A:=A+10
Write(A)
Print(A)
Abort
2. Cách giải quyết vấn đề
• Các hệ quản trị CSDL thương mại đã làm hết rồi!!!!!!
• Thực hiện cơ chế Transaction và cơ chế khoa
• Trước khi transaction đọc hoặc chỉnh sửa dữ liệu, nó cần
được bảo vệ và tránh ảnh hưởng của các transaction khác
đang chỉnh sửa cùng dữ liệu.
Hệ quản trị Cơ sở dữ liệu 11
3. Chế độ khóa
3.1. Các cấp độ khóa
3.2. Các mức cô lập cho giao tác
3.3. Live lock
3.4. Dead lock
Hệ quản trị Cơ sở dữ liệu 12
8/25/2017
4
3.1. Các cấp độ khóa
Hệ quản trị Cơ sở dữ liệu 13
• Các mức Locking
• Database level 
• Table level 
• Page level 
• Row level 
• Field (attribute) level
Bất kể mức khóa nào DBMS có thể
dùng 2 loại khóa khác nhau: Binary và
Shared / Exclusive 
3.1. Các cấp độ khóa (tt)
Hệ quản trị Cơ sở dữ liệu 14
14
• Các kiểu lock
• Binary Locks
• Có 2 trạng thái: locked (1) or unlocked (0).
• Nếu 1 object bị lock bởi 1 transaction, không transaction nào
được sử dụng object đó
• Nếu 1 object là unlocked, bất kỳ transaction nào cũng có thể
lock object đó để sử dụng
• 1 transaction phải “unlock”object sau khi hoàn tất.
Ví dụ
Hệ quản trị Cơ sở dữ liệu 15
T2T1
Read(A,s)
s:=s*2
t:=t+100
Read(A,t)
t:=t+100
Write(A,t)
Read(B,t)
Write(B,t)
s:=s*2
Write(A,s)
Read(B,s)
Write(B,s)
S
Lock(A)
Unlock(A)
Lock(A)
Unlock(A)
Lock(B)
Unlock(B)
Lock(B)
Unlock(B)
3.1. Các cấp độ khóa (tt)
Hệ quản trị Cơ sở dữ liệu 16
• Các kiểu lock
• Shared Locks
• Một shared lock tồn tạ

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_5_xu_ly_truy_xuat_dong_thoi.pdf