Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.48 MB, 7 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Hệ quản trị Cơsở dữ liệu 2
•Hệ thống giao dịch ngân hàng
•Hệ thống đặt vé bay
•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
Thời gian
<b>Khách hàng 1</b> <b>Khách hàng 2</b>
Tìm thấy 1 chỗ trống
Tìm thấy 1 chỗ trống
Đặt vé bay
<b>2 khách hàng đặt cùng 1 </b>
<b>chỗ trống ???</b>
Đọ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
<b>Tài khoản A</b> <b>Tài khoản B</b>
Hệ quản trị Cơsở dữ liệu 5
CSDL nhất quán 1 <sub>Giao tác</sub> CSDL nhất quán 2
Hệ quản trị Cơsở dữ liệu 6
Hệ quản trị Cơsở dữ liệu 7
Hệ quản trị Cơsở dữ liệu 8
• Hoặc là tồ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ả.
Hệ quản trị Cơsở dữ liệu 9
•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 qn
•Tại thời điểm sau khi write(B,t)
• A=50, B=250 (A+B=300) - CSDL nhất qn
• Nếu T khơng bao giờ bắt đầu thực hiện hoặc T được đảm bảo phải hồn tất
thì trạng thái khơng nhất qn sẽ khơng xuất hiện
<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>
Hệ quản trị Cơsở dữ liệu 10
• Bất kỳ CSDL nào thì mọi ràng buộc tòan vẹn phải thỏa. Tại bất kỳ thời
điểm mà mọi RBTV được thỏa gọi là tính nhất quán.
• Một giao tác phải biến CSDL từ trạng thái nhất quán này sang trạng thái
nhất quán khác không được phá vở trạng thái nhất quán. E1 T E2
(E1nhất quán thì E2 phải nhất qn).
• 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ó
Hệ quản trị Cơsở dữ liệu 13
• 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
đó.
<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>
T’
Hệ quản trị Cơsở dữ liệu 14
<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>
Hệ quản trị Cơsở dữ liệu 15
Hệ quản trị Cơsở dữ liệu 17
• BEGIN TRANSACTION:Bắt đầu một giao tác
• SAVE TRANSACTION:Đánh dấu một vị trí trong giao tác (gọi là điểm đánh
dấu).
• ROLLBACK TRANSACTION: Quay luitrở lại đầu giao tác hoặc một điểm
đánh dấu trước đó trong giao tác.
• COMMIT TRANSACTION:Đánh dấu điểm kết thúc một giao tác. Khi câu
lệnh này thực thi cũng có nghĩa là giao tác đã thực hiện thành cơng.
• ROLLBACK [WORK]:Quay luitrở lại đầu giao tác.
• COMMIT [WORK]:Đánh dấu kết thúc giao tác.
Hệ quản trị Cơsở dữ liệu 18
•Cú Pháp:
BEGIN TRANSACTION
SQL Statements
COMMIT | ROLLBACK TRANSACTION
BEGIN TRANSACTION giaotac1
UPDATE monhoc SET sodvht=4 WHERE sodvht=3
UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS
NULL
ROLLBACK TRANSACTION giaotac1
BEGIN TRANSACTION giaotac2
UPDATE monhoc SET sodvht=4 WHERE sodvht=3
UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULL
COMMIT TRANSACTION giaotac2
Hệ quản trị Cơsở dữ liệu 21
Hệ quản trị Cơsở dữ liệu 22
Hệ quản trị Cơsở dữ liệu 23
•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ó hồn tất
•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 qn dữ liệu
•Tuy nhiên
•Tận dụng tài ngun 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 tố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ì hỗn trong khi các giao tác thực thi
•Buộc1 giaodịch phải đợi,chẳng hạnchođếnkhi khóađang đượcucầu được
giảiphóng
•Buộc mộtgiaodịch ngừng lạivà táikhởi động
Hệ quản trị Cơsở dữ liệu 25
Hệ quản trị Cơsở dữ liệu 26
Bộ xếp lịch