Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Lê Thị Minh Nguyện
Số trang: 9
Loại file: pdf
Dung lượng: 1.19 MB
Lượt xem: 15
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 giúp người học hiểu về "Xử lý truy xuất đồng thời". Nội dung trình bày cụ thể gồm có: Các vấn đề trong truy xuất đồng thời, cách giải quyết vấn đề, chế độ khóa,....
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Lê Thị Minh Nguyện 8/25/2017 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 Chương 5. Xử lý truy xuất đồng thời GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn 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.1. Mất dữ liệu đã cập nhật (lost updated) Xét 2 giao tác T1 T2 Read(A) A:=A+10 Write(A) 1.2. Không thể đọc lại (unrepeatable read) 1.3. “Bóng ma” (phantom) Read(A) A:=A+20 Write(A) Giả sử T1 và T2 được thực hiện đồng thời 1.4. Đọc dữ liệu chưa chính xác (dirty read) 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 A=50 T1 t1 Read(A) t2 A:=A+10 t3 Write(A) t4 t5 t6 A=60 Hệ quản trị Cơ sở dữ liệu 3 Hệ quản trị Cơ sở dữ liệu T2 Read(A) A:=A+20 Write(A) A=70 4 1 8/25/2017 1.1. Mất dữ liệu đã cập nhật (lost updated) (tt) 1.1. Mất dữ liệu đã cập nhật (lost updated) (tt) 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. • 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. Hệ quản trị Cơ sở dữ liệu 5 • Xét 2 giao tác • Ví dụ: giả sử nhà sách còn 200 cuốn sách. T2 Read(A) A:=A+10 Write(A) 6 1.2. Không thể đọc lại (unrepeatable read) (tt) 1.2. Không thể đọc lại (unrepeatable read) T1 Hệ quản trị Cơ sở dữ liệu 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? Read(A) Print(A) Read(A) Print(A) • Giả sử T1 và T2 được thực hiện đồng thời A=50 • T2 tiến hành đọc A hai lần thì cho hai kết quả khác nhau t1 T2 Read(A) Read(A) A=50 Print(A) A=50 t6 Read(A) A=60 t7 Print(A) A=60 t2 t3 A:=A+10 t4 t5 Hệ quản trị Cơ sở dữ liệu T1 Write(A) 7 Hệ quản trị Cơ sở dữ liệu 8 2 8/25/2017 1.3. “Bóng ma” (phantom) Đọc dữ liệu chưa chính xác (dirty read) • Xét 2 giao tác T1 và T2 được xử lý đồng thời • 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? A=70, B=50 T1 • T2 đã đọc dữ liệu được ghi bởi T1 nhưng sau đó T1 yêu cầu hủy việc ghi T2 t1 Read(A) t2 A:=A-50 t3 Write(A) A=70 T1 t1 Read(A) t2 A:=A+10 t3 Write(A) A=20 t5 t4 A=20 t6 t5 Read(B) B=50 Print(A+B) A+B=70 t6 t7 Read(B) t8 B:=B+50 t9 Write(B) Read(A) t4 Read(A) T2 Print(A) Abort mất 50 ??? Hệ quản trị Cơ sở dữ liệu 9 2. Cách giải quyết vấn đề Hệ quản trị Cơ sở dữ liệu 10 3. Chế độ khóa • 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. 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 11 Hệ quản trị Cơ sở dữ liệu 12 3 8/25/2017 3.1. Các cấp độ khóa 3.1. Các cấp độ khóa (tt) • Các kiểu lock • Binary Locks • Các mức Locking • Database level • Table level • Có 2 trạng thái: locked (1) or unlocked (0). • Page level • Nếu 1 object bị lock bởi 1 transaction, không transaction nào được sử dụng object đó • Row level • Field (attribute) level • Nếu 1 object là unlocked, bất kỳ transaction nào cũng có thể lock object đó để sử dụng 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 • 1 transaction phải “unlock”object sau khi hoàn tất. Hệ quản trị Cơ sở dữ liệu 13 Ví dụ 14 Hệ quản trị Cơ sở dữ liệu 14 3.1. Các cấp độ khóa (tt) S T1 T2 • Các kiểu lock • Shared Locks Lock(A) Read(A,t) t:=t+100 Write(A,t) Unlock(A) • Một shared lock tồn tại khi các transaction đồng thời đọc dữ liệu Lock(A) Read(A,s) s:=s*2 Write(A,s) Unlock(A) Lock(B) Read(B,s) s:=s*2 Write(B,s) Unlock(B) • Một shared lock không làm đụng độ dữ liệu khi các transaction đồng thời chỉ đọc dữ liệu • Một shared lock được gán khi transaction muốn đọc dữ liệu và dữ liệu đó không tồn tại exclusive lock. Lock(B) Read(B,t) t:=t+100 Write(B,t) Unlock(B) Hệ quản trị Cơ sở dữ liệu 15 Hệ quản trị Cơ sở dữ liệu 16 4 8/25/2017 3.1. Các cấp độ khóa (tt) 3.1. Các cấp độ khóa (tt) • Các kiểu lock • Exclusive Locks • Các kiểu lock • Exclusive Locks • Tồn tại khi transaction ghi dữ liệu • Tồn tại khi transaction ghi dữ liệu • Được sử dụng khi có khả năng đụng độ dữ liệu • Được sử dụng khi có khả năng đụng độ dữ liệu. • Một exclusive lock sẽ được gán khi transaction muốn ghi dữ liệu và dữ liệu đó chưa bị lock • Một exclusive lock sẽ được gán khi transaction muốn ghi dữ liệu và dữ liệu đó chưa bị lock • Được dùng cho thao tác sửa đổi dữ liệu như lệnh INSERT, UPDATE hay DELETE. Bảo đảm là nhiều lệnh cập nhật không thực hiện trên cùng 1 tài nguyên cùng 1 lúc • Được dùng cho thao tác sửa đổi dữ liệu như lệnh INSERT, UPDATE hay DELE ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Lê Thị Minh Nguyện 8/25/2017 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 Chương 5. Xử lý truy xuất đồng thời GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn 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.1. Mất dữ liệu đã cập nhật (lost updated) Xét 2 giao tác T1 T2 Read(A) A:=A+10 Write(A) 1.2. Không thể đọc lại (unrepeatable read) 1.3. “Bóng ma” (phantom) Read(A) A:=A+20 Write(A) Giả sử T1 và T2 được thực hiện đồng thời 1.4. Đọc dữ liệu chưa chính xác (dirty read) 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 A=50 T1 t1 Read(A) t2 A:=A+10 t3 Write(A) t4 t5 t6 A=60 Hệ quản trị Cơ sở dữ liệu 3 Hệ quản trị Cơ sở dữ liệu T2 Read(A) A:=A+20 Write(A) A=70 4 1 8/25/2017 1.1. Mất dữ liệu đã cập nhật (lost updated) (tt) 1.1. Mất dữ liệu đã cập nhật (lost updated) (tt) 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. • 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. Hệ quản trị Cơ sở dữ liệu 5 • Xét 2 giao tác • Ví dụ: giả sử nhà sách còn 200 cuốn sách. T2 Read(A) A:=A+10 Write(A) 6 1.2. Không thể đọc lại (unrepeatable read) (tt) 1.2. Không thể đọc lại (unrepeatable read) T1 Hệ quản trị Cơ sở dữ liệu 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? Read(A) Print(A) Read(A) Print(A) • Giả sử T1 và T2 được thực hiện đồng thời A=50 • T2 tiến hành đọc A hai lần thì cho hai kết quả khác nhau t1 T2 Read(A) Read(A) A=50 Print(A) A=50 t6 Read(A) A=60 t7 Print(A) A=60 t2 t3 A:=A+10 t4 t5 Hệ quản trị Cơ sở dữ liệu T1 Write(A) 7 Hệ quản trị Cơ sở dữ liệu 8 2 8/25/2017 1.3. “Bóng ma” (phantom) Đọc dữ liệu chưa chính xác (dirty read) • Xét 2 giao tác T1 và T2 được xử lý đồng thời • 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? A=70, B=50 T1 • T2 đã đọc dữ liệu được ghi bởi T1 nhưng sau đó T1 yêu cầu hủy việc ghi T2 t1 Read(A) t2 A:=A-50 t3 Write(A) A=70 T1 t1 Read(A) t2 A:=A+10 t3 Write(A) A=20 t5 t4 A=20 t6 t5 Read(B) B=50 Print(A+B) A+B=70 t6 t7 Read(B) t8 B:=B+50 t9 Write(B) Read(A) t4 Read(A) T2 Print(A) Abort mất 50 ??? Hệ quản trị Cơ sở dữ liệu 9 2. Cách giải quyết vấn đề Hệ quản trị Cơ sở dữ liệu 10 3. Chế độ khóa • 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. 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 11 Hệ quản trị Cơ sở dữ liệu 12 3 8/25/2017 3.1. Các cấp độ khóa 3.1. Các cấp độ khóa (tt) • Các kiểu lock • Binary Locks • Các mức Locking • Database level • Table level • Có 2 trạng thái: locked (1) or unlocked (0). • Page level • Nếu 1 object bị lock bởi 1 transaction, không transaction nào được sử dụng object đó • Row level • Field (attribute) level • Nếu 1 object là unlocked, bất kỳ transaction nào cũng có thể lock object đó để sử dụng 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 • 1 transaction phải “unlock”object sau khi hoàn tất. Hệ quản trị Cơ sở dữ liệu 13 Ví dụ 14 Hệ quản trị Cơ sở dữ liệu 14 3.1. Các cấp độ khóa (tt) S T1 T2 • Các kiểu lock • Shared Locks Lock(A) Read(A,t) t:=t+100 Write(A,t) Unlock(A) • Một shared lock tồn tại khi các transaction đồng thời đọc dữ liệu Lock(A) Read(A,s) s:=s*2 Write(A,s) Unlock(A) Lock(B) Read(B,s) s:=s*2 Write(B,s) Unlock(B) • Một shared lock không làm đụng độ dữ liệu khi các transaction đồng thời chỉ đọc dữ liệu • Một shared lock được gán khi transaction muốn đọc dữ liệu và dữ liệu đó không tồn tại exclusive lock. Lock(B) Read(B,t) t:=t+100 Write(B,t) Unlock(B) Hệ quản trị Cơ sở dữ liệu 15 Hệ quản trị Cơ sở dữ liệu 16 4 8/25/2017 3.1. Các cấp độ khóa (tt) 3.1. Các cấp độ khóa (tt) • Các kiểu lock • Exclusive Locks • Các kiểu lock • Exclusive Locks • Tồn tại khi transaction ghi dữ liệu • Tồn tại khi transaction ghi dữ liệu • Được sử dụng khi có khả năng đụng độ dữ liệu • Được sử dụng khi có khả năng đụng độ dữ liệu. • Một exclusive lock sẽ được gán khi transaction muốn ghi dữ liệu và dữ liệu đó chưa bị lock • Một exclusive lock sẽ được gán khi transaction muốn ghi dữ liệu và dữ liệu đó chưa bị lock • Được dùng cho thao tác sửa đổi dữ liệu như lệnh INSERT, UPDATE hay DELETE. Bảo đảm là nhiều lệnh cập nhật không thực hiện trên cùng 1 tài nguyên cùng 1 lúc • Được dùng cho thao tác sửa đổi dữ liệu như lệnh INSERT, UPDATE hay DELE ...
Tìm kiếm theo từ khóa liên quan:
Quản trị cơ sở dữ liệu Bài giảng Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Cơ sở dữ liệu Xử lý truy xuất đồng thời Truy xuất đồng thờiGợi ý tài liệu liên quan:
-
62 trang 397 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 373 6 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 284 0 0 -
13 trang 281 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 276 0 0 -
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 258 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 248 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 239 0 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 233 0 0 -
8 trang 185 0 0