SlideShare a Scribd company logo
1 of 66
Quản lý giao tác
Chương 2
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 2
 Giới thiệu
 Khái niệm giao tác (transaction)
 Định nghĩa
 Tính chất ACID của giao tác
 Các thao tác của giao tác
 Trạng thái của giao tác
 Lịch thao tác (schedule)
 Giới thiệu
 Định nghĩa
 Lịch tuần tự (serial schedule)
 Lịch khả tuần tự (serilizable schedule)
 Conflict-Serializable
 View-Serializable
Nội dung chi tiết
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 3
 Ví dụ
 Hệ thống giao dịch ngân hàng
 Hệ thống đặt vé bay
 DBMS là môi trường đa người dùng
 Nhiều thao tác truy xuất lên cùng một đơn vị dữ liệu
 Nhiều thao tác thi hành đồng thời
Giới thiệu
Thời gian
Khách hàng 1 Khách hàng 2
Tìm thấy 1 chỗ trống
Tìm thấy 1 chỗ trống
Đặt vé bay
Đặt vé bay
2 khách hàng đặt
cùng 1 chỗ trống
???
Cơ chế tuần tự
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 4
 Khi DBMS gặp sự cố
 Các thao tác có thể làm cho trạng thái CSDL không chính
xác
Giới thiệu (tt)
Đọc số dư của tài khoản A
Kiểm tra (số dư > số tiền cần rút)
Tăng số dư của tài khoản B
Giảm số dư của tài khoản A
Tài khoản A Tài khoản B
Sự cố Ngân hàng chịu lỗ
1 khoảng tiền ???
Nguyên tố
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 5
 Giới thiệu
 Khái niệm giao tác (transaction)
 Định nghĩa
 Tính chất ACID của giao tác
 Các thao tác của giao tác
 Trạng thái của giao tác
 Lịch thao tác (schedule)
 Giới thiệu
 Định nghĩa
 Lịch tuần tự (serial schedule)
 Lịch khả tuần tự (serilizable schedule)
 Conflict-Serializable
 View-Serializable
Nội dung chi tiết
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 6
 Giao tác là 1 đơn vị xử lý nguyên tố gồm 1 chuỗi các
hành động tương tác lên CSDL
 Nguyên tố: không thể phân chia được nữa
Giao tác (Transaction)
CSDL nhất quán
1
CSDL nhất quán
2
Giao tác
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 7
Giao tác (tt)
Transaction
manager
Log
manager
Query
processor
Buffer
manager
Recovery
manager
Log
Data
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 8
 Nguyên tố (Atomicity)
 Hoặc là toàn bộ hoạt động của giao dịch được phản ánh đúng
đắn trong CSDL hoặc không có hoạt động nào cả
 Nhất quán (Consistency)
 Một giao tác được thực hiện độc lập với các giao tác khác xử lý
đồng thời với nó để bảo đảm tính nhất quán cho CSDL
 Cô lập (Isolation)
 Một giao tác không quan tâm đến các giao tác khác xử lý đồng
thời với nó
 Bền vững (Durability)
 Mọi thay đổi mà giao tác thực hiện trên CSDL phải được ghi
nhận bền vững
Tính chất ACID của giao tác
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 9
 Consistency
 Tổng A+B là không đổi
 Nếu CSDL nhất quán trước khi T được thực hiện thì sau
khi T hoàn tất CSDL vẫn còn nhất quán
Ví dụ
T: Read(A,t);
t:=t-50;
Write(A,t);
Read(B,t);
t:=t+50;
Write(B,t);
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 10
 Atomicity
 A=100, B=200 (A+B=300)
 Tại thời điểm sau khi write(A,t)
 A=50, B=200 (A+B=250) - CSDL không nhất quán
 Tại thời điểm sau khi write(B,t)
 A=50, B=250 (A+B=300) - CSDL nhất quán
 Nếu T không bao giờ bắt đầu thực hiện hoặc T được đảm bảo
phải hoàn tất thì trạng thái không nhất quán sẽ không xuất hiện
Ví dụ (tt)
T: Read(A,t);
t:=t-50;
Write(A,t);
Read(B,t);
t:=t+50;
Write(B,t);
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 11
 Durability
 Khi T kết thúc thành công
 Dữ liệu sẽ không thể nào bị mất bất chấp có sự cố hệ
thống xãy ra
Ví dụ (tt)
T: Read(A,t);
t:=t-50;
Write(A,t);
Read(B,t);
t:=t+50;
Write(B,t);
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 12
 Isolation
 Giả sử có 1 giao tác T’ thực hiện phép toán A+B và chen
vào giữa thời gian thực hiện của T
 T’ kết thúc: A+B=50+200=250
 T kết thúc: A+B=50+250=300
 Hệ thống của các giao tác thực hiện đồng thời có trạng thái
tương đương với trạng thái hệ thống của các giao tác thực
hiện tuần tự theo 1 thứ tự nào đó
Ví dụ (tt)
T: Read(A,t);
t:=t-50;
Write(A,t);
Read(B,t);
t:=t+50;
Write(B,t);
T’
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 13
 Giả sử CSDL gồm nhiều đơn vị dữ liệu
 Một đơn vị dữ liệu (element)
 Có một giá trị
 Được truy xuất và sửa đổi bởi các giao tác
 Quan hệ (relation) - Lớp (class)
 Khối dữ liệu trên đĩa (block) / trang (page)
 Bộ (tuple) - Đối tượng (object)
Các thao tác của giao tác
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 14
 Input(X)
 Read(X, t)
Các thao tác của giao tác (tt)
Buffer Disk
X
X
t
 Write(X, t)
 Output(X)
Buffer Disk
X
t X
X
X
 Bufffer manager
 Input
 Output
 Transaction
 Read
 Write
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 15
 Giả sử CSDL có 2 đơn vị dữ liệu A và B với ràng buộc
A=B trong mọi trạng thái nhất quán
 Giao tác T thực hiện 2 bước
 A:=A*2
 B:=B*2
 Biểu diễn T
 Read(A,t) ; t=t*2; Write(A,t);
 Read(B,t) ; t=t*2; Write(B,t);
Ví dụ
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 16
Ví dụ (tt)
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk B
Disk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 17
 Active
 Ngay khi bắt đầu thực hiện thao tác đọc/ghi
 Partially committed
 Sau khi lệnh thi hành cuối cùng thực hiện
 Failed
 Sau khi nhận ra không thể thực hiện các hành động được nữa
 Aborted
 Sau khi giao tác được quay lui và CSDL được phục hồi về trạng
thái trước trạng thái bắt đầu giao dịch
 Bắt đầu lại giao tác (nếu có thể)
 Hủy giao tác
 Committed
 Sau khi mọi hành động hoàn tất thành công
Trạng thái của giao tác
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 18
Sơ đồ trạng thái của giao tác
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 19
 Giới thiệu
 Khái niệm giao tác (transaction)
 Định nghĩa
 Tính chất ACID của giao tác
 Các thao tác của giao tác
 Trạng thái của giao tác
 Lịch thao tác (schedule)
 Giới thiệu
 Định nghĩa
 Lịch tuần tự (serial schedule)
 Lịch khả tuần tự (serilizable schedule)
 Conflict-Serializable
 View-Serializable
Nội dung chi tiết
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 20
 Thực hiện tuần tự
 Tại một thời điểm, một giao tác chỉ có thể bắt đầu khi giao
tác trước nó hoàn tất
 Thực hiện đồng thời
 Cho phép nhiều giao tác cùng truy xuất dữ liệu
 Gây ra nhiều phức tạp về nhất quán dữ liệu
 Tuy nhiên
 Tận dụng tài nguyên và thông lượng (throughput)
 Trong khi 1 giao tác đang thực hiện đọc/ghi trên đĩa, 1 giao tác khác đang xử
lý tính toán trên CPU
 Giảm thời gian chờ
 Các giao tác ngắn phải chờ đợi các giao tác dài
 Chia sẻ chu kỳ CPU và truy cập đĩa để làm giảm sự trì hoãn trong khi các
giao tác thực thi
Giới thiệu
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 21
 Là một thành phần của DBMS có nhiệm vụ lập 1 lịch
để thực hiện n giao tác xử lý đồng thời
Bộ lập lịch (Scheduler)
Transaction
manager
Scheduler
Read/Write
request
Read & Write
Buffers
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 22
 Một lịch thao tác S được lập từ n giao tác T1, T2, …, Tn
được xử lý đồng thời là 1 thứ tự thực hiện các hành
động của n giao tác này
 Thứ tự xuất hiện của các thao tác trong lịch phải giống
với thứ tự xuất hiện trong giao tác
 Gồm có
 Lịch tuần tự (Serial)
 Lịch khả tuần tự (Serializable)
 Confict-Serializability
 View-Serializability
Lịch thao tác (Schedule)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 23
Ví dụ
T2
T1
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)
 Giả sử ràng buộc nhất quán trên CSDL là A=B
 Từng giao tác thực hiện riêng lẽ thì tính nhất quán sẽ
được bảo toàn
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 24
Lịch tuần tự (Serial schedule)
 Một lịch S được gọi là tuần tự nếu các hành động của
các giao tác Ti (i=1..n) được thực hiện liên tiếp nhau
T1
T2
Tn
…
Thời gian
S
T3
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 25
Lịch tuần tự (tt)
T2
T1
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)
A B
25 25
125
125
250
250
S1
T2
T1
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)
A B
25 25
50
50
150
150
S2
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 26
Lịch khả tuần tự
(Serializable schedule)
 Một lịch S được lập từ n giao tác T1, T2, …, Tn xử lý
đồng thời được gọi là khả tuần tự nếu nó cho cùng
kết quả với 1 lịch tuần tự nào đó được lập từ n giao
tác này
Tn
T1
T2
T3
Thời gian
S
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 27
Lịch khả tuần tự (tt)
T2
T1
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)
A B
25 25
125
125
250
250
S3
 Trước S3 khi thực hiện
 A=B=c
 với c là hằng số
 Sau khi S3 kết thúc
 A=2*(c+100)
 B=2*(c+100)
 Trạng thái CSDL nhất
quán
 S3 là khả tuần tự
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 28
Lịch khả tuần tự (tt)
T2
T1
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)
A B
25 25
125
50
250
150
S4
 Trước S4 khi thực hiện
 A=B=c
 với c là hằng số
 Sau khi S4 kết thúc
 A = 2*(c+100)
 B = 2*c + 100
 Trạng thái CSDL không
nhất quán
 S4 không khả tuần tự
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 29
Lịch khả tuần tự (tt)
T2
T1
Read(A,s)
s:=s*1
t:=t+100
Read(A,t)
t:=t+100
Write(A,t)
Read(B,t)
Write(B,t)
s:=s*1
Write(A,s)
Read(B,s)
Write(B,s)
A B
25 25
125
25
125
125
S5
 Khi S5 kết thúc
 A và B bằng nhau
 Trạng thái cuối cùng
nhất quán
 S5 khả tuần tự, có kết
quả giống với lịch tuần
tự
 T1, T2
 T2, T1
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 30
Lịch khả tuần tự (tt)
 Để xác định 1 lịch thao tác có khả tuần tự hay không
 Xem xét chi tiết các hành động của các giao tác???
 Tuy nhiên
 Bộ lập lịch khó biết được “Giao tác này có nhân A với hằng số
khác 1 hay không?”
 Nhưng
 Bộ lập lịch phải biết các thao tác đọc/ghi của giao tác
 Những đơn vị dữ liệu nào được giao tác đọc
 Những đơn vị dữ liệu nào có thể bị thay đổi
 Để đơn giản công việc cho bộ lập lịch
 Nếu có hành động nào tác động lên đơn vị dữ liệu A làm cho
trạng thái CSDL không nhất quán thì giao tác vẫn thực hiện
hành động đó
 Thao tác đọc và ghi – Read(X) / Write(X)
 Qui ước: ri(X) và wi(X)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 31
Conflict-Serializability
 Ý tưởng
 Xét 2 hành động liên tiếp nhau trong 1 lịch thao tác
 Nếu thứ tự của chúng được đổi cho nhau
 Thì hoạt động của ít nhất 1 giao tác có thể thay đổi
T T’
Hành động 1
Hành động 2
Hành động 4
Hành động 1’
Hành động 3’
Hành động 4’
Hành động 3
Hành động 2’
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 32
Conflict-Serializability (tt)
 Cho lịch S có 2 giao tác Ti và Tj, xét các trường hợp
 ri(X) ; rj(Y)
 Không bao giờ có xung đột, ngay cả khi X=Y
 Cả 2 thao tác không làm thay đổi giá trị của đơn vị dữ liệu X, Y
 ri(X) ; wj(Y)
 Không xung đột khi XY
 Tj ghi Y sau khi Ti đọc X, giá trị của X không bị thay đổi
 Ti đọc X không ảnh hưởng gì đến Tj ghi giá trị của Y
 wi(X) ; rj(Y)
 Không xung đột khi XY
 wi(X) ; wj(Y)
 Không xung đột khi XY
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 33
Conflict-Serializability (tt)
 Hai hành động xung đột nếu
 Thuộc 2 giao tác khác nhau
 Truy xuất đến cùng 1 đơn vị dữ liệu
 Có ít nhất một hành động ghi (write)
 không thể hoán vị thứ tự
Read(A)
Write(A)
Ti Tj
Write(A)
Write(A)
Ti Tj
Write(A)
Read(A)
Ti Tj
Loại bỏ sự trùng hợp
ngẫu nhiên
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 34
Conflict-Serializability (tt)
 Ví dụ
T2
T1
Read(A)
Read(A)
Write(A)
Read(B)
Write(B)
Write(A)
Read(B)
Write(B)
S
T2
T1
Read(A)
Read(A)
Write(A)
Read(B)
Write(B)
Write(A)
Read(B)
Write(B)
S’
T2
T1
Read(A)
Read(A)
Write(A)
Read(B)
Write(B)
Write(A)
Read(B)
Write(B)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 35
Conflict-Serializability (tt)
 Định nghĩa
 S, S’ là những lịch thao tác conflict-equivalent
 Nếu S có thể được chuyển thành S’ bằng một chuỗi những hoán
vị các thao tác không xung đột
 Một lịch thao tác S là conflict-serializable
 Nếu S là conflict-equivalent với một lịch thao tác tuần tự nào đó
 S conflict-serializable  S khả tuần tự
 S conflict-serializable  S khả tuần tự ???
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 36
Conflict-Serializability (tt)
 Xét lại lịch S5
T2
T1
Read(A,s)
s:=s*1
t:=t+100
Read(A,t)
t:=t+100
Write(A,t)
Read(B,t)
Write(B,t)
s:=s*1
Write(A,s)
Read(B,s)
Write(B,s)
A B
25 25
125
25
125
125
S5
Serializable
nhưng không
conflict-serializable
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 37
Conflict-Serializability (tt)
 Xét trường hợp
nhưng không
conflict-serializable
Write(Y)
Write(X)
S
T2
T1
Write(Y)
Write(X)
Write(X)
T3
S
T2
T1
Write(Y)
Write(X)
Write(X)
T3
Write(Y)
Write(X)
Serial Serializable
S’
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 38
Kiểm tra Conflict-Serializability
 Cho lịch S
 S có conflict-serializable không?
 Ý tưởng
 Các hành động xung đột trong lịch S được thực hiện theo
thứ tự nào thì các giao tác thực hiện chúng trong S’ sẽ
cũng ở thứ tự đó
T2
T1
Read(A)
Read(A)
Write(A)
Read(B)
Write(B)
Write(A)
Read(B)
Write(B)
S
T2
T1
Read(A)
Read(A)
Write(A)
Read(B)
Write(B)
Write(A)
Read(B)
Write(B)
S’
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 39
Kiểm tra Conflict-Serializability (tt)
 Cho lịch S có 2 giao tác T1, T2
 T1 thực hiện hành động A1
 T2 thực hiện hành động A2
 Ta nói T1 thực hiện trước T2, ký kiệu T1 S T2, khi
 A1 được thực hiện trước A2 trong S
 A1 không nhất thiết phải liên tiếp A2
 A1 và A2 cùng thao tác lên 1 đơn vị dữ liệu
 Có ít nhất 1 hành động ghi trong A1 và A2
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 40
Precedence graph
 Cho lịch S gồm các giao tác T1, T2, …, Tn
 Đồ thị trình tự của S, ký hiệu P(S), có
 Đỉnh là các giao tác Ti
 Ta có thể đặt nhãn cho đỉnh là i
 Cung đi từ Ti đến Tj nếu Ti S Tj
 Nếu P(S) không có chu trình thì S conflict-serializable
 Thứ tự hình học (topological order) của các đỉnh là
thứ tự của các giao tác trong lịch tuần tự
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 41
Precedence graph (tt)
 Bổ đề
 S1, S2 conflict-equivalent  P(S1) = P(S2)
 Chứng minh
 Giả sử P(S1)  P(S2)
  Ti sao cho Ti  Tj có trong S1 và không có trong S2
 S1 = … pi(A) … qj(A) …
S2 = …qj(A) … pi(A) …
 Và pi(A) và qj(A) là xung đột
  S1, S2 không conflict-equivalent
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 42
Precedence graph (tt)
 Chú ý
 P(S1) = P(S2)  S1, S2 conflict-equivalent
 Xét 2 trường hợp
T2
T1
Read(A)
Read(B)
Write(A)
Write(B)
S
T2
T1
Read(A)
Read(B)
Write(A)
Write(B)
S’
1 2
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 43
Precedence graph (tt)
 Định lý
 P(S1) không có chu trình  S1 conflict-serializable
 Chứng minh ()
 Giả sử S1 conflict-serializable
  S2 sao cho: S1 và S2 conflict-equivalent
  P(S2) = P(S1)
 S2 là lịch tuần tự
 P(S1) không có chu trình vì P(S2) không có chu trình
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 44
Precedence graph (tt)
 Định lý
 P(S1) không có chu trình  S1 conflict-serializable
 Chứng minh ()
 Giả sử P(S1) không có chu trình
 Ta biến đổi S1 như sau
 Chọn ra 1 giao tác T1 không có cung nào đi đến nó
S1 = … qj(A) … p1(A) …
 Đem T1 lên vị trí đầu
S1 = < hành động của T1 ><… phần còn lại ...>
 Lập lại quá trình này để tuần tự hoá cho phần còn lại
 S1 tuần tự
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 45
Ví dụ
T2
T1
Read(A)
Read(B)
Write(A)
Write(B)
S
T3
Read(A)
Write(A)
Read(B)
Write(B)
 T2 S T3
2 3
 T2 S T3
1 2
1 2 3
 P(S) không có chu trình
 S conflict-serializable theo
thứ tự T1, T2, T3
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 46
Ví dụ (tt)
T2
T1
Read(A)
Read(B)
Write(A)
Write(B)
S
T3
Read(A)
Write(A)
Read(B)
Write(B)
 S conflict-serializable theo thứ tự T1, T2, T3
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 47
Ví dụ (tt)
T2
T1
Read(A)
Read(B)
Write(A)
Write(B)
S
T3
Read(A)
Write(A)
Read(B)
Write(B)
 P(S) có chu trình
 S không conflict-serializable
 T2 S T3
2 3
 T2 S T1
2 1
 T1 S T2
1 2
1 2 3
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 48
Bài tập
T2
T1
Read(A)
Write(A)
S
T4
Read(A)
Write(A)
T3
 Vẽ P(S)
 S có conflict-serializable không?
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 49
Bài tập (tt)
T2
T1
Read(A)
Read(C)
Write(A)
Write(C)
S
T4
Read(A)
Write(A)
Write(D)
Write(B)
T3
 Vẽ P(S)
 S có conflict-serializable không?
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 50
View-Serializability
 Xét lịch S
T2
T1
Write(A)
S
Write(A)
T3
Read(A)
Write(A)
1 2
3
 P(S) có chu trình
 S không conflict-serializable
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 51
View-Serializability (tt)
 So sánh lịch S và 1 lịch tuần tự S’
 Trong S và S’ đều có T1 thực hiện read(A)
 T2 và T3 không đọc A
 Kết quả của S và S’ giống nhau
T2
T1
Write(A)
S
Write(A)
T3
Read(A)
Write(A)
Không conflict-serializable
T2
T1
Write(A)
S’
Write(A)
T3
Read(A)
Write(A)
Serial
Giải thích như thế nào đây?
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 52
View-Serializability (tt)
 Ý tưởng
 Xét trường hợp
 Nhận xét
 Sau khi T ghi A xong mà không có giao tác nào đọc giá trị của A
 Khi đó, hành động wT(A) có thể chuyển đến 1 vị trí khác trong
lịch thao tác mà ở đó cũng không có giao tác nào đọc A
 Ta nói
 Hành động rU(A) có gốc là giao tác T
T U
Write(A)
Read(A)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 53
View-Serializability (tt)
 Định nghĩa
 S, S’ là những lịch thao tác view-equivalent
 1- Nếu trong S có wj(A) … rj(A) thì trong S’ cũng có wj(A) … rj(A)
 2- Nếu trong S có ri(A) là thao tác đọc giá trị ban đầu của A
thì trong S’ cũng ri(A) đọc giá trị ban đầu của A
 3- Nếu trong S có wi(A) là thao tác ghi giá trị sau cùng lên A
thì trong S’ cũng có wi(A) ghi giá trị sau cùng lên A
 Một lịch thao tác S là view-serializable
 Nếu S là view-equivalent với một lịch thao tác tuần tự nào đó
 S view-serializable  S conflict-serializable
 S view-serializable  S conflict-serializable???
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 54
View-Serializability (tt)
 S conflict-serializable  S view-serializable
 Chứng minh
 Hoán vị các hành động không xung đột
 Không làm ảnh hưởng đến những thao tác đọc
 Cũng không làm ảnh hưởng đến trạng thái CSDL
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 55
View-Serializability (tt)
 S view-serializable  S conflict-serializable
 Trong S có những hành động ghi không có tác dụng
(useless)
 S = … w2(A) …………… w3(A) …
Không có hành động đọc A
T2
T1
Write(A)
S
Write(A)
T3
Read(A)
Write(A)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 56
View-Serializability (tt)
Lịch thao tác
View-Serializable
Conflict-
Serializable
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 57
Kiểm tra View-Serializability (tt)
 Cho 1 lịch thao tác S
 Thêm 1 giao tác cuối Tf vào trong S sao cho Tf thực
hiện việc đọc hết tất cả đơn vị dữ liệu ở trong S
 (bỏ qua điều kiện thứ 3 của định nghĩa view-equivalent)
 S = … w1(A)…………w2(A) rf(A)
 Thêm 1 giao tác đầu tiên Tb vào trong S sao cho Tb
thực hiện việc ghi các giá trị ban đầu cho các đơn vị
dữ liệu
 (bỏ qua điều kiện thứ 2 của định nghĩa view-equivalent)
 S = wb(A)… w1(A)…………w2(A)…
Ghi A cuối cùng
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 58
Kiểm tra View-Serializability (tt)
 Vẽ đồ thị trình tự gán nhãn cho S, ký hiệu LP(S),
(Labeled Prececence Graph)
 Đỉnh là các giao tác Ti (bao gồm Tb và Tf)
 Cung
 (1) Nếu có ri(X) với gốc là Tj thì vẽ cung đi từ Tj đến Ti
wj(X) … ri(X)
 (2) Với mỗi wj(X) … ri(X), xét wk(X) sao cho Tk không chèn vào
giữa Tj và Ti
i
j
X
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 59
Kiểm tra View-Serializability (tt)
 (2a) Nếu Tj  Tb và Ti  Tf thì vẽ cung Tk  Ti và Tj  Tk
Tj Ti
Write(X)
Read(X)
Tk
Write(X)
Tj Ti
Write(X)
Read(X)
Tk
Write(X)
i
j k
X
X
i
j
k
X
X
X X
Chọn 1 cung vừa tạo sao cho
đồ thị không có chu trình
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 60
Kiểm tra View-Serializability (tt)
 (2b) Nếu Tj  Tb thì vẽ cung Ti  Tk
 (2c) Nếu Ti = Tf thì vẽ cung Tk  Tj
Tj = Tb Ti
Write(X)
Read(X)
Tk
Write(X)
Tk
Write(X)
Tj Ti = Tf
Write(X)
Read(X)
Tk
Write(X)
Tk
Write(X)
i
j k
X
X
X
i
j
k
X
X
X
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 61
Ví dụ
T2
T1
Write(A)
S
Write(A)
T3
Read(A)
Write(A)
T2
T1
Write(A)
S’
Write(A)
T3
Read(A)
Write(A)
Write(A)
Tb Tf
Read(A)
1 2 3
b f
 LP(S) không có chu trình
 S view-serializable theo
thứ tự Tb, T1, T2, T3, Tf
A A
Write(A)
A
A
Read(A)
Write(A)
Write(A)
Read(A)
A
Write(A)
A
Không chọn vì
không thể dời Tb
vào giữa T3 và Tf
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 62
Ví dụ (tt)
T2
T1
Write(A)
S’
Write(A)
T3
Read(A)
Write(A)
Write(A)
Tb Tf
Read(A)
1 2 3
b f
 LP(S) có chu trình
 S không view-serializable
T2
T1
Write(A)
S
Read(A)
T3
Read(A)
Write(A)
Write(A)
Read(A)
Read(A)
Write(A)
Read(A)
Write(A)
A A
A
Write(A)
Read(A)
A
A
Write(A)
A
A
Không chọn vì
không thể dời Tb
vào giữa T2 và T3
Write(A)
Write(A)
Không chọn vì
không thể dời Tb
vào giữa T2 và T3
A
A
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 63
Ví dụ (tt)
 Bỏ cung từ T3 sang T1
 LP(S) không chu trình
 S view-serializable theo thứ tự Tb, T1, T2, T3, Tf
1 2 3
b f
A A
A A
A
A
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 64
Bài tập
T2
T1
Write(A)
S
Read(A)
T3
Read(B)
Write(B)
Read(A)
Write(B)
Write(B)
 Vẽ LP(S)
 S có view-serializable?
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 65
Bài tập (tt)
 Vẽ LP(S)
 S có view-serializable?
T2
T1
Read(A)
S
Write(C)
T3
Read(A)
Write(B)
Read(C)
Write(D)
Write(A)
T4
Read(B)
Read(C)
Read(B)
Write(A)
Write(B)
Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 66

More Related Content

What's hot

Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT NguynMinh294
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêthuhuynhphonegap
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Dịch vụ Làm Luận Văn 0936885877
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2tranquanthien
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phimvennguyennoinho
 
UML mô hình khái niệm
UML mô hình khái niệmUML mô hình khái niệm
UML mô hình khái niệmNguyễn Phúc
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006Tran Tien
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPNguyễn Danh Thanh
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệHưởng Nguyễn
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Nguyễn Công Hoàng
 
Quản lý giải vô địch bóng đá quốc gia
Quản lý giải vô địch bóng đá quốc giaQuản lý giải vô địch bóng đá quốc gia
Quản lý giải vô địch bóng đá quốc giaTran Van Cuong
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhnataliej4
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Bai 3 thietke_csdlpt
Bai 3 thietke_csdlptBai 3 thietke_csdlpt
Bai 3 thietke_csdlptHồ Lợi
 

What's hot (20)

Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phim
 
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đĐề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
 
UML mô hình khái niệm
UML mô hình khái niệmUML mô hình khái niệm
UML mô hình khái niệm
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Quản lý giải vô địch bóng đá quốc gia
Quản lý giải vô địch bóng đá quốc giaQuản lý giải vô địch bóng đá quốc gia
Quản lý giải vô địch bóng đá quốc gia
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Bai 3 thietke_csdlpt
Bai 3 thietke_csdlptBai 3 thietke_csdlpt
Bai 3 thietke_csdlpt
 

Similar to CSDLP3.ppt

6.1 query optimization overview
6.1 query optimization overview6.1 query optimization overview
6.1 query optimization overviewTrần Thanh
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTMasterCode.vn
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Hồ Lợi
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Vo Oanh
 
13929219602082.ppt
13929219602082.ppt13929219602082.ppt
13929219602082.pptminh dang
 
Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Vo Oanh
 
Lttt matlab chuong 3
Lttt matlab chuong 3Lttt matlab chuong 3
Lttt matlab chuong 3Hoa Cỏ May
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanhJohn Carter
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921tienhien110293
 
Lttt matlab chuong 1
Lttt matlab chuong 1Lttt matlab chuong 1
Lttt matlab chuong 1Hoa Cỏ May
 
Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Nhóc Nhóc
 
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...BangNgoVanCong
 
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM nataliej4
 
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1TUNG0908
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTonhaco Bestco
 

Similar to CSDLP3.ppt (20)

6.1 query optimization overview
6.1 query optimization overview6.1 query optimization overview
6.1 query optimization overview
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2
 
65 csdl
65 csdl65 csdl
65 csdl
 
13929219602082.ppt
13929219602082.ppt13929219602082.ppt
13929219602082.ppt
 
Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1
 
Lttt matlab chuong 3
Lttt matlab chuong 3Lttt matlab chuong 3
Lttt matlab chuong 3
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921
 
Lttt matlab chuong 1
Lttt matlab chuong 1Lttt matlab chuong 1
Lttt matlab chuong 1
 
Chuong1 c
Chuong1 c Chuong1 c
Chuong1 c
 
Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07
 
Ktlt C10 Cau Truc
Ktlt C10 Cau TrucKtlt C10 Cau Truc
Ktlt C10 Cau Truc
 
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...
Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Ca...
 
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM
Lý Thuyết Và Bài Tập Thực Hành Golden Common Lisp - ĐH Bách Khoa TP.HCM
 
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1
Tai lieu thi nghiem mon ly thuyet dieu khien tu dong 1
 
Dieukhientuyentin hmoi
Dieukhientuyentin hmoiDieukhientuyentin hmoi
Dieukhientuyentin hmoi
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệu
 

CSDLP3.ppt

  • 1. Quản lý giao tác Chương 2
  • 2. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 2  Giới thiệu  Khái niệm giao tác (transaction)  Định nghĩa  Tính chất ACID của giao tác  Các thao tác của giao tác  Trạng thái của giao tác  Lịch thao tác (schedule)  Giới thiệu  Định nghĩa  Lịch tuần tự (serial schedule)  Lịch khả tuần tự (serilizable schedule)  Conflict-Serializable  View-Serializable Nội dung chi tiết
  • 3. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 3  Ví dụ  Hệ thống giao dịch ngân hàng  Hệ thống đặt vé bay  DBMS là môi trường đa người dùng  Nhiều thao tác truy xuất lên cùng một đơn vị dữ liệu  Nhiều thao tác thi hành đồng thời Giới thiệu Thời gian Khách hàng 1 Khách hàng 2 Tìm thấy 1 chỗ trống Tìm thấy 1 chỗ trống Đặt vé bay Đặt vé bay 2 khách hàng đặt cùng 1 chỗ trống ??? Cơ chế tuần tự
  • 4. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 4  Khi DBMS gặp sự cố  Các thao tác có thể làm cho trạng thái CSDL không chính xác Giới thiệu (tt) Đọc số dư của tài khoản A Kiểm tra (số dư > số tiền cần rút) Tăng số dư của tài khoản B Giảm số dư của tài khoản A Tài khoản A Tài khoản B Sự cố Ngân hàng chịu lỗ 1 khoảng tiền ??? Nguyên tố
  • 5. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 5  Giới thiệu  Khái niệm giao tác (transaction)  Định nghĩa  Tính chất ACID của giao tác  Các thao tác của giao tác  Trạng thái của giao tác  Lịch thao tác (schedule)  Giới thiệu  Định nghĩa  Lịch tuần tự (serial schedule)  Lịch khả tuần tự (serilizable schedule)  Conflict-Serializable  View-Serializable Nội dung chi tiết
  • 6. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 6  Giao tác là 1 đơn vị xử lý nguyên tố gồm 1 chuỗi các hành động tương tác lên CSDL  Nguyên tố: không thể phân chia được nữa Giao tác (Transaction) CSDL nhất quán 1 CSDL nhất quán 2 Giao tác
  • 7. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 7 Giao tác (tt) Transaction manager Log manager Query processor Buffer manager Recovery manager Log Data
  • 8. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 8  Nguyên tố (Atomicity)  Hoặc là toàn bộ hoạt động của giao dịch được phản ánh đúng đắn trong CSDL hoặc không có hoạt động nào cả  Nhất quán (Consistency)  Một giao tác được thực hiện độc lập với các giao tác khác xử lý đồng thời với nó để bảo đảm tính nhất quán cho CSDL  Cô lập (Isolation)  Một giao tác không quan tâm đến các giao tác khác xử lý đồng thời với nó  Bền vững (Durability)  Mọi thay đổi mà giao tác thực hiện trên CSDL phải được ghi nhận bền vững Tính chất ACID của giao tác
  • 9. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 9  Consistency  Tổng A+B là không đổi  Nếu CSDL nhất quán trước khi T được thực hiện thì sau khi T hoàn tất CSDL vẫn còn nhất quán Ví dụ T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
  • 10. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 10  Atomicity  A=100, B=200 (A+B=300)  Tại thời điểm sau khi write(A,t)  A=50, B=200 (A+B=250) - CSDL không nhất quán  Tại thời điểm sau khi write(B,t)  A=50, B=250 (A+B=300) - CSDL nhất quán  Nếu T không bao giờ bắt đầu thực hiện hoặc T được đảm bảo phải hoàn tất thì trạng thái không nhất quán sẽ không xuất hiện Ví dụ (tt) T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
  • 11. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 11  Durability  Khi T kết thúc thành công  Dữ liệu sẽ không thể nào bị mất bất chấp có sự cố hệ thống xãy ra Ví dụ (tt) T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
  • 12. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 12  Isolation  Giả sử có 1 giao tác T’ thực hiện phép toán A+B và chen vào giữa thời gian thực hiện của T  T’ kết thúc: A+B=50+200=250  T kết thúc: A+B=50+250=300  Hệ thống của các giao tác thực hiện đồng thời có trạng thái tương đương với trạng thái hệ thống của các giao tác thực hiện tuần tự theo 1 thứ tự nào đó Ví dụ (tt) T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t); T’
  • 13. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 13  Giả sử CSDL gồm nhiều đơn vị dữ liệu  Một đơn vị dữ liệu (element)  Có một giá trị  Được truy xuất và sửa đổi bởi các giao tác  Quan hệ (relation) - Lớp (class)  Khối dữ liệu trên đĩa (block) / trang (page)  Bộ (tuple) - Đối tượng (object) Các thao tác của giao tác
  • 14. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 14  Input(X)  Read(X, t) Các thao tác của giao tác (tt) Buffer Disk X X t  Write(X, t)  Output(X) Buffer Disk X t X X X  Bufffer manager  Input  Output  Transaction  Read  Write
  • 15. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 15  Giả sử CSDL có 2 đơn vị dữ liệu A và B với ràng buộc A=B trong mọi trạng thái nhất quán  Giao tác T thực hiện 2 bước  A:=A*2  B:=B*2  Biểu diễn T  Read(A,t) ; t=t*2; Write(A,t);  Read(B,t) ; t=t*2; Write(B,t); Ví dụ
  • 16. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 16 Ví dụ (tt) Hành động Read(A,t) t:=t*2 Write(A,t) Read(B,t) t:=t*2 Write(B,t) Output(A) Output(B) t 8 16 16 8 16 16 16 16 Mem A Mem B Disk B Disk A 8 8 16 16 16 16 16 16 8 8 16 16 16 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 16
  • 17. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 17  Active  Ngay khi bắt đầu thực hiện thao tác đọc/ghi  Partially committed  Sau khi lệnh thi hành cuối cùng thực hiện  Failed  Sau khi nhận ra không thể thực hiện các hành động được nữa  Aborted  Sau khi giao tác được quay lui và CSDL được phục hồi về trạng thái trước trạng thái bắt đầu giao dịch  Bắt đầu lại giao tác (nếu có thể)  Hủy giao tác  Committed  Sau khi mọi hành động hoàn tất thành công Trạng thái của giao tác
  • 18. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 18 Sơ đồ trạng thái của giao tác
  • 19. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 19  Giới thiệu  Khái niệm giao tác (transaction)  Định nghĩa  Tính chất ACID của giao tác  Các thao tác của giao tác  Trạng thái của giao tác  Lịch thao tác (schedule)  Giới thiệu  Định nghĩa  Lịch tuần tự (serial schedule)  Lịch khả tuần tự (serilizable schedule)  Conflict-Serializable  View-Serializable Nội dung chi tiết
  • 20. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 20  Thực hiện tuần tự  Tại một thời điểm, một giao tác chỉ có thể bắt đầu khi giao tác trước nó hoàn tất  Thực hiện đồng thời  Cho phép nhiều giao tác cùng truy xuất dữ liệu  Gây ra nhiều phức tạp về nhất quán dữ liệu  Tuy nhiên  Tận dụng tài nguyên và thông lượng (throughput)  Trong khi 1 giao tác đang thực hiện đọc/ghi trên đĩa, 1 giao tác khác đang xử lý tính toán trên CPU  Giảm thời gian chờ  Các giao tác ngắn phải chờ đợi các giao tác dài  Chia sẻ chu kỳ CPU và truy cập đĩa để làm giảm sự trì hoãn trong khi các giao tác thực thi Giới thiệu
  • 21. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 21  Là một thành phần của DBMS có nhiệm vụ lập 1 lịch để thực hiện n giao tác xử lý đồng thời Bộ lập lịch (Scheduler) Transaction manager Scheduler Read/Write request Read & Write Buffers
  • 22. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 22  Một lịch thao tác S được lập từ n giao tác T1, T2, …, Tn được xử lý đồng thời là 1 thứ tự thực hiện các hành động của n giao tác này  Thứ tự xuất hiện của các thao tác trong lịch phải giống với thứ tự xuất hiện trong giao tác  Gồm có  Lịch tuần tự (Serial)  Lịch khả tuần tự (Serializable)  Confict-Serializability  View-Serializability Lịch thao tác (Schedule)
  • 23. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 23 Ví dụ T2 T1 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)  Giả sử ràng buộc nhất quán trên CSDL là A=B  Từng giao tác thực hiện riêng lẽ thì tính nhất quán sẽ được bảo toàn
  • 24. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 24 Lịch tuần tự (Serial schedule)  Một lịch S được gọi là tuần tự nếu các hành động của các giao tác Ti (i=1..n) được thực hiện liên tiếp nhau T1 T2 Tn … Thời gian S T3
  • 25. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 25 Lịch tuần tự (tt) T2 T1 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) A B 25 25 125 125 250 250 S1 T2 T1 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) A B 25 25 50 50 150 150 S2
  • 26. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 26 Lịch khả tuần tự (Serializable schedule)  Một lịch S được lập từ n giao tác T1, T2, …, Tn xử lý đồng thời được gọi là khả tuần tự nếu nó cho cùng kết quả với 1 lịch tuần tự nào đó được lập từ n giao tác này Tn T1 T2 T3 Thời gian S
  • 27. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 27 Lịch khả tuần tự (tt) T2 T1 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) A B 25 25 125 125 250 250 S3  Trước S3 khi thực hiện  A=B=c  với c là hằng số  Sau khi S3 kết thúc  A=2*(c+100)  B=2*(c+100)  Trạng thái CSDL nhất quán  S3 là khả tuần tự
  • 28. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 28 Lịch khả tuần tự (tt) T2 T1 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) A B 25 25 125 50 250 150 S4  Trước S4 khi thực hiện  A=B=c  với c là hằng số  Sau khi S4 kết thúc  A = 2*(c+100)  B = 2*c + 100  Trạng thái CSDL không nhất quán  S4 không khả tuần tự
  • 29. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 29 Lịch khả tuần tự (tt) T2 T1 Read(A,s) s:=s*1 t:=t+100 Read(A,t) t:=t+100 Write(A,t) Read(B,t) Write(B,t) s:=s*1 Write(A,s) Read(B,s) Write(B,s) A B 25 25 125 25 125 125 S5  Khi S5 kết thúc  A và B bằng nhau  Trạng thái cuối cùng nhất quán  S5 khả tuần tự, có kết quả giống với lịch tuần tự  T1, T2  T2, T1
  • 30. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 30 Lịch khả tuần tự (tt)  Để xác định 1 lịch thao tác có khả tuần tự hay không  Xem xét chi tiết các hành động của các giao tác???  Tuy nhiên  Bộ lập lịch khó biết được “Giao tác này có nhân A với hằng số khác 1 hay không?”  Nhưng  Bộ lập lịch phải biết các thao tác đọc/ghi của giao tác  Những đơn vị dữ liệu nào được giao tác đọc  Những đơn vị dữ liệu nào có thể bị thay đổi  Để đơn giản công việc cho bộ lập lịch  Nếu có hành động nào tác động lên đơn vị dữ liệu A làm cho trạng thái CSDL không nhất quán thì giao tác vẫn thực hiện hành động đó  Thao tác đọc và ghi – Read(X) / Write(X)  Qui ước: ri(X) và wi(X)
  • 31. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 31 Conflict-Serializability  Ý tưởng  Xét 2 hành động liên tiếp nhau trong 1 lịch thao tác  Nếu thứ tự của chúng được đổi cho nhau  Thì hoạt động của ít nhất 1 giao tác có thể thay đổi T T’ Hành động 1 Hành động 2 Hành động 4 Hành động 1’ Hành động 3’ Hành động 4’ Hành động 3 Hành động 2’
  • 32. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 32 Conflict-Serializability (tt)  Cho lịch S có 2 giao tác Ti và Tj, xét các trường hợp  ri(X) ; rj(Y)  Không bao giờ có xung đột, ngay cả khi X=Y  Cả 2 thao tác không làm thay đổi giá trị của đơn vị dữ liệu X, Y  ri(X) ; wj(Y)  Không xung đột khi XY  Tj ghi Y sau khi Ti đọc X, giá trị của X không bị thay đổi  Ti đọc X không ảnh hưởng gì đến Tj ghi giá trị của Y  wi(X) ; rj(Y)  Không xung đột khi XY  wi(X) ; wj(Y)  Không xung đột khi XY
  • 33. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 33 Conflict-Serializability (tt)  Hai hành động xung đột nếu  Thuộc 2 giao tác khác nhau  Truy xuất đến cùng 1 đơn vị dữ liệu  Có ít nhất một hành động ghi (write)  không thể hoán vị thứ tự Read(A) Write(A) Ti Tj Write(A) Write(A) Ti Tj Write(A) Read(A) Ti Tj Loại bỏ sự trùng hợp ngẫu nhiên
  • 34. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 34 Conflict-Serializability (tt)  Ví dụ T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B) S T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B) S’ T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B)
  • 35. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 35 Conflict-Serializability (tt)  Định nghĩa  S, S’ là những lịch thao tác conflict-equivalent  Nếu S có thể được chuyển thành S’ bằng một chuỗi những hoán vị các thao tác không xung đột  Một lịch thao tác S là conflict-serializable  Nếu S là conflict-equivalent với một lịch thao tác tuần tự nào đó  S conflict-serializable  S khả tuần tự  S conflict-serializable  S khả tuần tự ???
  • 36. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 36 Conflict-Serializability (tt)  Xét lại lịch S5 T2 T1 Read(A,s) s:=s*1 t:=t+100 Read(A,t) t:=t+100 Write(A,t) Read(B,t) Write(B,t) s:=s*1 Write(A,s) Read(B,s) Write(B,s) A B 25 25 125 25 125 125 S5 Serializable nhưng không conflict-serializable
  • 37. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 37 Conflict-Serializability (tt)  Xét trường hợp nhưng không conflict-serializable Write(Y) Write(X) S T2 T1 Write(Y) Write(X) Write(X) T3 S T2 T1 Write(Y) Write(X) Write(X) T3 Write(Y) Write(X) Serial Serializable S’
  • 38. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 38 Kiểm tra Conflict-Serializability  Cho lịch S  S có conflict-serializable không?  Ý tưởng  Các hành động xung đột trong lịch S được thực hiện theo thứ tự nào thì các giao tác thực hiện chúng trong S’ sẽ cũng ở thứ tự đó T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B) S T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B) S’
  • 39. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 39 Kiểm tra Conflict-Serializability (tt)  Cho lịch S có 2 giao tác T1, T2  T1 thực hiện hành động A1  T2 thực hiện hành động A2  Ta nói T1 thực hiện trước T2, ký kiệu T1 S T2, khi  A1 được thực hiện trước A2 trong S  A1 không nhất thiết phải liên tiếp A2  A1 và A2 cùng thao tác lên 1 đơn vị dữ liệu  Có ít nhất 1 hành động ghi trong A1 và A2
  • 40. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 40 Precedence graph  Cho lịch S gồm các giao tác T1, T2, …, Tn  Đồ thị trình tự của S, ký hiệu P(S), có  Đỉnh là các giao tác Ti  Ta có thể đặt nhãn cho đỉnh là i  Cung đi từ Ti đến Tj nếu Ti S Tj  Nếu P(S) không có chu trình thì S conflict-serializable  Thứ tự hình học (topological order) của các đỉnh là thứ tự của các giao tác trong lịch tuần tự
  • 41. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 41 Precedence graph (tt)  Bổ đề  S1, S2 conflict-equivalent  P(S1) = P(S2)  Chứng minh  Giả sử P(S1)  P(S2)   Ti sao cho Ti  Tj có trong S1 và không có trong S2  S1 = … pi(A) … qj(A) … S2 = …qj(A) … pi(A) …  Và pi(A) và qj(A) là xung đột   S1, S2 không conflict-equivalent
  • 42. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 42 Precedence graph (tt)  Chú ý  P(S1) = P(S2)  S1, S2 conflict-equivalent  Xét 2 trường hợp T2 T1 Read(A) Read(B) Write(A) Write(B) S T2 T1 Read(A) Read(B) Write(A) Write(B) S’ 1 2
  • 43. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 43 Precedence graph (tt)  Định lý  P(S1) không có chu trình  S1 conflict-serializable  Chứng minh ()  Giả sử S1 conflict-serializable   S2 sao cho: S1 và S2 conflict-equivalent   P(S2) = P(S1)  S2 là lịch tuần tự  P(S1) không có chu trình vì P(S2) không có chu trình
  • 44. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 44 Precedence graph (tt)  Định lý  P(S1) không có chu trình  S1 conflict-serializable  Chứng minh ()  Giả sử P(S1) không có chu trình  Ta biến đổi S1 như sau  Chọn ra 1 giao tác T1 không có cung nào đi đến nó S1 = … qj(A) … p1(A) …  Đem T1 lên vị trí đầu S1 = < hành động của T1 ><… phần còn lại ...>  Lập lại quá trình này để tuần tự hoá cho phần còn lại  S1 tuần tự
  • 45. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 45 Ví dụ T2 T1 Read(A) Read(B) Write(A) Write(B) S T3 Read(A) Write(A) Read(B) Write(B)  T2 S T3 2 3  T2 S T3 1 2 1 2 3  P(S) không có chu trình  S conflict-serializable theo thứ tự T1, T2, T3
  • 46. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 46 Ví dụ (tt) T2 T1 Read(A) Read(B) Write(A) Write(B) S T3 Read(A) Write(A) Read(B) Write(B)  S conflict-serializable theo thứ tự T1, T2, T3
  • 47. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 47 Ví dụ (tt) T2 T1 Read(A) Read(B) Write(A) Write(B) S T3 Read(A) Write(A) Read(B) Write(B)  P(S) có chu trình  S không conflict-serializable  T2 S T3 2 3  T2 S T1 2 1  T1 S T2 1 2 1 2 3
  • 48. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 48 Bài tập T2 T1 Read(A) Write(A) S T4 Read(A) Write(A) T3  Vẽ P(S)  S có conflict-serializable không?
  • 49. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 49 Bài tập (tt) T2 T1 Read(A) Read(C) Write(A) Write(C) S T4 Read(A) Write(A) Write(D) Write(B) T3  Vẽ P(S)  S có conflict-serializable không?
  • 50. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 50 View-Serializability  Xét lịch S T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) 1 2 3  P(S) có chu trình  S không conflict-serializable
  • 51. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 51 View-Serializability (tt)  So sánh lịch S và 1 lịch tuần tự S’  Trong S và S’ đều có T1 thực hiện read(A)  T2 và T3 không đọc A  Kết quả của S và S’ giống nhau T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) Không conflict-serializable T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Serial Giải thích như thế nào đây?
  • 52. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 52 View-Serializability (tt)  Ý tưởng  Xét trường hợp  Nhận xét  Sau khi T ghi A xong mà không có giao tác nào đọc giá trị của A  Khi đó, hành động wT(A) có thể chuyển đến 1 vị trí khác trong lịch thao tác mà ở đó cũng không có giao tác nào đọc A  Ta nói  Hành động rU(A) có gốc là giao tác T T U Write(A) Read(A)
  • 53. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 53 View-Serializability (tt)  Định nghĩa  S, S’ là những lịch thao tác view-equivalent  1- Nếu trong S có wj(A) … rj(A) thì trong S’ cũng có wj(A) … rj(A)  2- Nếu trong S có ri(A) là thao tác đọc giá trị ban đầu của A thì trong S’ cũng ri(A) đọc giá trị ban đầu của A  3- Nếu trong S có wi(A) là thao tác ghi giá trị sau cùng lên A thì trong S’ cũng có wi(A) ghi giá trị sau cùng lên A  Một lịch thao tác S là view-serializable  Nếu S là view-equivalent với một lịch thao tác tuần tự nào đó  S view-serializable  S conflict-serializable  S view-serializable  S conflict-serializable???
  • 54. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 54 View-Serializability (tt)  S conflict-serializable  S view-serializable  Chứng minh  Hoán vị các hành động không xung đột  Không làm ảnh hưởng đến những thao tác đọc  Cũng không làm ảnh hưởng đến trạng thái CSDL
  • 55. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 55 View-Serializability (tt)  S view-serializable  S conflict-serializable  Trong S có những hành động ghi không có tác dụng (useless)  S = … w2(A) …………… w3(A) … Không có hành động đọc A T2 T1 Write(A) S Write(A) T3 Read(A) Write(A)
  • 56. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 56 View-Serializability (tt) Lịch thao tác View-Serializable Conflict- Serializable
  • 57. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 57 Kiểm tra View-Serializability (tt)  Cho 1 lịch thao tác S  Thêm 1 giao tác cuối Tf vào trong S sao cho Tf thực hiện việc đọc hết tất cả đơn vị dữ liệu ở trong S  (bỏ qua điều kiện thứ 3 của định nghĩa view-equivalent)  S = … w1(A)…………w2(A) rf(A)  Thêm 1 giao tác đầu tiên Tb vào trong S sao cho Tb thực hiện việc ghi các giá trị ban đầu cho các đơn vị dữ liệu  (bỏ qua điều kiện thứ 2 của định nghĩa view-equivalent)  S = wb(A)… w1(A)…………w2(A)… Ghi A cuối cùng
  • 58. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 58 Kiểm tra View-Serializability (tt)  Vẽ đồ thị trình tự gán nhãn cho S, ký hiệu LP(S), (Labeled Prececence Graph)  Đỉnh là các giao tác Ti (bao gồm Tb và Tf)  Cung  (1) Nếu có ri(X) với gốc là Tj thì vẽ cung đi từ Tj đến Ti wj(X) … ri(X)  (2) Với mỗi wj(X) … ri(X), xét wk(X) sao cho Tk không chèn vào giữa Tj và Ti i j X
  • 59. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 59 Kiểm tra View-Serializability (tt)  (2a) Nếu Tj  Tb và Ti  Tf thì vẽ cung Tk  Ti và Tj  Tk Tj Ti Write(X) Read(X) Tk Write(X) Tj Ti Write(X) Read(X) Tk Write(X) i j k X X i j k X X X X Chọn 1 cung vừa tạo sao cho đồ thị không có chu trình
  • 60. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 60 Kiểm tra View-Serializability (tt)  (2b) Nếu Tj  Tb thì vẽ cung Ti  Tk  (2c) Nếu Ti = Tf thì vẽ cung Tk  Tj Tj = Tb Ti Write(X) Read(X) Tk Write(X) Tk Write(X) Tj Ti = Tf Write(X) Read(X) Tk Write(X) Tk Write(X) i j k X X X i j k X X X
  • 61. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 61 Ví dụ T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f  LP(S) không có chu trình  S view-serializable theo thứ tự Tb, T1, T2, T3, Tf A A Write(A) A A Read(A) Write(A) Write(A) Read(A) A Write(A) A Không chọn vì không thể dời Tb vào giữa T3 và Tf
  • 62. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 62 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f  LP(S) có chu trình  S không view-serializable T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) Read(A) Write(A) Read(A) Write(A) A A A Write(A) Read(A) A A Write(A) A A Không chọn vì không thể dời Tb vào giữa T2 và T3 Write(A) Write(A) Không chọn vì không thể dời Tb vào giữa T2 và T3 A A
  • 63. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 63 Ví dụ (tt)  Bỏ cung từ T3 sang T1  LP(S) không chu trình  S view-serializable theo thứ tự Tb, T1, T2, T3, Tf 1 2 3 b f A A A A A A
  • 64. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 64 Bài tập T2 T1 Write(A) S Read(A) T3 Read(B) Write(B) Read(A) Write(B) Write(B)  Vẽ LP(S)  S có view-serializable?
  • 65. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 65 Bài tập (tt)  Vẽ LP(S)  S có view-serializable? T2 T1 Read(A) S Write(C) T3 Read(A) Write(B) Read(C) Write(D) Write(A) T4 Read(B) Read(C) Read(B) Write(A) Write(B)
  • 66. Hệ Quản Trị CSDL - Khoa CNTT - ĐH KHTN Tp.HCM 66