1. Trang chủ
  2. » Công Nghệ Thông Tin

Hệ quản trị CSDL Tranh chấp đồng thời ppt

31 1,5K 43

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 1,43 MB

Nội dung

Transaction là tập hợp các thao tác có thứ tự truy xuất dữ liệu trên CSDL thành 1 đơn vị công việc logic xem là 1 thao tác nguyên tố, chuyển CSDL từ trạng thái nhất quán này sang trạng t

Trang 1

Hệ quản trị CSDL

Trình bày: Hồ Thị Hoàng Vy

Trang 2

Nội dung

Transaction Tranh chấp đồng thời

Xử lý tranh chấp đồng thời

Deadlock

Trình bày các tình huống tranh chấp và cách xử lý

Tránh deadlock

Trang 3

Nhắc lại kiến thức seminar lần 1

– Transaction là gì ? – Cách khai báo một transaction như thế nào?

Trang 4

Transaction là tập hợp các thao

tác có thứ tự truy xuất dữ liệu

trên CSDL thành 1 đơn vị công việc

logic (xem là 1 thao tác nguyên

tố), chuyển CSDL từ trạng thái nhất

quán này sang trạng thái nhất quán

khác

Rollback: Kết thúc giao tác thất bại

Khai báo giao tác

Commit: Kết thúc giao tác thành công Begin tran: bắt đầu giao tác

Khi nào thì rollback

Dữ liệu sẽ Được xác Nhận trên CSDL

Khi có một lệnh nào đó trong giao tác bị lỗi và cần phải khôi phục lại

dữ liệu

Trang 5

Transaction (tt)

• Lưu ý:

- Rollback không có tác dụng return

- Nếu có khai báo giao tác mà không có kết thúc giao tác giao tác vẫn còn thực hiện khi store procedure kết thúc.

- Phải luôn đảm bảo lúc runtime một trong 2 cặp [begin tran - commit] hoặc

Các câu lệnh xử lý khi bị lỗi

Rollback Tran return

END Commit

Trang 6

Tranh chấp đồng thời

1 Tranh chấp đồng thời là gì ?

Các tình huống có thể xảy ra tranh chấp

• Một số lỗi khi truy xuất đồng thời:

Trang 7

Khi nhiều giao tác cùng thực hiện truy xuất trên một đơn vị dữ liệu tại một thời điểm để thực hiện các thao tác đọc, ghi lên đơn vị dữ liệu đó đụng độ => tranh chấp đồng thời.

Trang 8

Tranh chấp đồng thời (tt)

Giao tác 1 Giao tác 2 Nhận xét

trên 1 đơn vị dữ liệu

Như vậy khi có 2 transaction (của 2 connection khác nhau) có ít nhất

1 thao tác ghi trên cùng một đơn vị dữ liệu sẽ xảy ra tình trạng tranh chấp Nếu để tình trạng tranh chấp này xảy ra sẽ dẫn đến những sai sót trên CSDL

Các tình huống xảy ra tranh chấp đồng thời

Trang 9

• ƒ Một bảng (table) trong cơ sở dữ liệu

• ƒ Một cơ sở dữ liệu (database).

Trang 10

Một số lỗi khi truy xuất đồng thời

Dirty read

Unrepeatable read

Phantom

Lost update

4 Mất dữ liệu cập nhật

1 Đọc dữ liệu rác

2 Không thể

đọc lại dữ liệu

3 Bóng ma

Trang 11

Dirty read (đọc dữ liệu rác)

Trang 12

Unrepeatable read

Hai lần đọc A của T1 cho kết quả khác nhau (trong cùng 1 giao tác)

Trang 13

Hai lần đọc A của T1 cho kết quả khác nhau (trong cùng 1 giao tác)

Trang 14

Lost update

Giao tác T2 thực hiện ghi đè lên dữ liệu được ghi bởi giao tác T1

Trang 15

Xử lý tranh chấp đồng thời

2 Sử dụng mức cô lập

Mức cô lập là những cấu hình được thiết lập trong các giao tác quy định việc xin khóa/giữ khóa của những thao tác đọc/ghi lên đvdl

1 Một số quy tắc đọc / ghi trên CSDL

HQTCSDL xử lý tranh chấp đồng thời ở mức cơ bản là nhờ những quy tắc đọc/ghi trên dvdl nhờ

sự hỗ trợ của việc cấp phát và thu hồi khóa

3 Khóa trực tiếp từ dòng lệnh

Trang 16

1.Các quy tắc đọc/ghi trên CSDL

1 Khi giao tác T thực hiện việc đọc đơn vị dữ liệu (đvdl) A  T thường xin khóa đọc trên A Nếu hệ thống cấp phát khóa đọc cho T thì T được phép đọc đvdl A

2 Khi giao tác T thực hiện việc ghi lên đvdl A  T bắt buộc phải xin khóa ghi trên

A Nếu hệ thống cấp phát khóa ghi cho T thì T được phép ghi lên dvdl A

3 Tại một thời điểm, chỉ có tối đa 1 giao tác giữ khóa ghi trên 1 đvdl

4 Tại một thời điểm, có thể có nhiều giao tác cùng giữ khóa đọc trên đvdl

5 Nếu một giao tác T đang giữ khóa ghi trên A thì đến hết giao tác

(rollback/commit) thì T mới trả khóa ghi

6 Khi một giao tác T đang giữ khóa ghi trên A  thì các giao tác khác muốn xin khóa đọc trên A thì giao tác đó phải chờ

7 Khi một giao tác T đang giữ khóa đọc trên A  thì các giao tác khác muốn xin khóa ghi trên A thì giao tác đó phải chờ

Trang 17

Bảng tương thích giữa các loại khoá

Cho phép (tương thích)Không cho phép (không tương thích)

Trang 18

Xử lý tranh chấp đồng thời

2 Sử dụng mức cô lập

Mức cô lập là những cấu hình được thiết lập trong các giao tác quy định việc xin khóa/giữ khóa của những thao tác đọc/ghi lên đvdl

1 Một số quy tắc đọc / ghi trên CSDL

HQTCSDL xử lý tranh chấp đồng thời ở mức cơ bản là nhờ những quy tắc đọc/ghi trên dvdl nhờ

sự hỗ trợ của việc cấp phát và thu hồi khóa

3 Khóa trực tiếp từ dòng lệnh

Trang 19

2 Sử dụng mức cô lập

Read Uncommitted

Read Committed

Serializable

BEGIN TRAN SET TRAN ISOLATION LEVEL Tên_mức_cô_lập

Các lệnh của giao tác

Repeatable Read

Tất cả các lệnh đọc ghi trong giao tác đều chịu ảnh hưởng của mức cô lập

Mức cô lập

mặc định

Trang 20

1 Read Uncommitted

• Đặc điểm:

– Đọc không cần xin khóa

– Khi dùng mức cô lập này có khả năng bị các lỗi:

Trang 21

2 Read Committed

• Đặc điểm:

– Đọc phải xin khóa

– Khóa đọc xong trả liền

– Khi dùng mức cô lập này có khả năng bị

Trang 22

Repeatable Read

• Đặc điểm:

– Đọc phải xin khóa

– Khóa đọc được giữ đến hết giao tác

– Khi dùng mức cô lập này có khả năng bị

Trang 23

• Đặc điểm:

– Đọc phải xin khóa

– Khóa đọc được giữ đến hết giao tác

– Không cho insert những dòng dữ liệu thỏa điều kiện thiết lập share-lock

– Khi dùng mức cô lập này có khả năng bị

các lỗi:

Mất dữ liệu cập nhật

•  giải quyết được lỗi dirty read và lỗi

unrepeatable read và phantom.

Trang 24

• Minh hoạ tình huống

• Demo tình huống

•Tránh deadlock

Dead-lock

Circle deadlock

• Minh hoạ tình huống

• Demo tình huống

•Tránh deadlock

Conversion

deadlock Trong truy xuất đồng thời, deadlock là một trạng thái trong đó các giao tác chờ nhau về mặt tài nguyên làm cho hệ thống đứng yên

Trang 26

Cycle deadlock

T1 chờ T2 trả khóa ghi trên B, và T2 chờ T1 trả khóa ghi

trên A  Hệ thống bị treo

Trang 27

Conversion deadlock

Giữ S-lock

Yêu cầu X-lock

Giữ S-lock

Yêu cầu X-lock Deadlock

Trang 28

Conversion deadlock

T1 chờ T2 trả khóa đọc trên A, và T2 chờ T1 trả khóa đọc trên A  Hệ thống bị treo

Trang 29

Tránh deadlock

Chuyển về dạng tuần tự - phối hợp transaction, mức

độ cô lập và lock

Trang 31

Thank You!

Ngày đăng: 15/03/2014, 17:20

HÌNH ẢNH LIÊN QUAN

Bảng tương thích giữa các loại khoá - Hệ quản trị CSDL Tranh chấp đồng thời ppt
Bảng t ương thích giữa các loại khoá (Trang 17)
Bảng 1 Bảng 2 - Hệ quản trị CSDL Tranh chấp đồng thời ppt
Bảng 1 Bảng 2 (Trang 25)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w