• 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.. Tính Cô lập ( I solation).[r]
(1)Chương 4. Quản lý giao tác
GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn
Nội dung 1 Giới thiệu
2 Định nghĩa giao tác
3 Tính chất ACID giao tác 4 Trạng thái giao tác
5 Khai báo giao tác SQL Server 6 Lịch biểu
Hệ quản trị Cơsở liệu
1 Giới thiệu
•Ví dụ
•Hệ thống giao dịch ngân hàng
•Hệ thống đặt vé bay
•DBMS mơi trường đa người dùng
•Nhiều thao tác truy xuất lên đơn vị liệu
•Nhiều thao tác thi hành đồng thời
Thời gian
Khách hàng 1 Khách hàng 2
Tìm thấy chỗ trống
Tìm thấy chỗ trống Đặt vé bay
2 khách hàng đặt chỗ trống ???
1 Giới thiệu (tt) •Khi DBMS gặp cố
•Các thao tác làm cho trạng thái CSDL khơng xác
Đọc số dư tài khoản A Kiểm tra (số dư > số tiền cần rút) Tăng số dư tài khoản B Giảm số dư tài khoản A
Tài khoản A Tài khoản B
(2)2 Định nghĩa giao tác
Hệ quản trị Cơsở liệu
• Giao tác đơn vị xử lý nguyên tố gồm chuỗi hành động tương tác lên CSDL Khi thực giao tác phải thực hiện tất hành động khơng thực hiện hànhđộng hết.
CSDL quán Giao tác CSDL quán
2 Định nghĩa giao tác (tt)
Hệ quản trị Cơsở liệu
3 Tính chất ACID giao tác
Hệ quản trị Cơsở liệu
3.1 Tính Nguyêntố (Atomicity)
3.2 TínhNhất qn (Consistency) 3.3 Tính Cơlập (Isolation)
3.4 TínhBền vững (Durability)
3.1 Tính Nguyên tố (Atomicity)
Hệ quản trị Cơsở liệu
• Tính Ngun tố (Atomicity)
• Hoặc tồn hoạt động giao dịch phản ánh đắn CSDL khơng có hoạt động
(3)3.1 Tính Nguyên tố (Atomicity) (tt)
Hệ quản trị Cơsở liệu
•A=100, B=200 (A+B=300)
•Tại thời điểm sau write(A,t)
• A=50, B=200 (A+B=250) - CSDL khơng qn
•Tại thời điểm sau write(B,t) • A=50, B=250 (A+B=300) - CSDL qn
• Nếu T khơng bắt đầu thực T đảm bảo phải hồn tất trạng thái khơng qn không xuất
T:Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
3.2 Tính Nhất quán (Consistency)
Hệ quản trị Cơsở liệu 10
• Tính Nhất qn (Consistency)
• Bất kỳ CSDL ràng buộc tòan vẹn phải thỏa Tại thời điểm mà RBTV thỏa gọi tính quán
• Một giao tác phải biến CSDL từ trạng thái quán sang trạng thái quán khác không phá trạng thái quán E1 T E2 (E1nhất qn E2 phải qn)
• Ví dụ: phái nam nữ, gõ đến phái Enter qua mà cho phép khơng cịntrạng thái qn.
3.2 Tính Nhất qn (Consistency)
• Consistency
• Tổng A+B khơng đổi T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
3.3 Tính Cơ lập (Isolation)
• Tính Cơ lập (Isolation)
• Một giao tác không quan tâm đến giao tác khác xử lý đồng thời với
(4)3.3 Tính Cơ lập (Isolation)
Hệ quản trị Cơsở liệu 13
• Giả sử có giao tác T’ thực phép toán A+B chen vào thời gian thực T
• T’ kết thúc: A+B=50+200=250 • T kết thúc: A+B=50+250=300
• Hệ thống giao tác thực đồng thời có trạng thái tương đương với trạng thái hệ thống giao tác thực theo thứ tự
T:Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
T’
3.4 Tính Bền vững (Durability)
Hệ quản trị Cơsở liệu 14
• Tính Bền vững (Durability)
• Mọi thay đổi mà giao tác thực CSDL phải ghi nhận bền vững
• Khi T kết thúc thành cơng
• Dữ liệu khơng thể bị bất chấp có cố hệ thống xảy ra
T:Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t);
3.4 Tính Bền vững (Durability) (tt)
• Tính bền vững đảm bảo giao dịch được hoàn thành,tất cập nhật CSDL bền vững thậm chí có lỗi hệ thống sau giao dịch hoàn thànhthực Giả sử lỗi hệ thống dẫn đến mất mát liệu nhớ chính, liệu được ghi vào đĩa không bị mất.
Hệ quản trị Cơsở liệu 15
4 Trạng thái giao tác
(5)5 Khai báo giao tác SQL Server
Hệ quản trị Cơsở liệu 17
• Giao tác SQL định nghĩa dựa câu lệnh xử lý giao tác sau :
• BEGIN TRANSACTION:Bắt đầu giao tác
• SAVE TRANSACTION:Đánh dấu vị trí giao tác (gọi điểm đánh
dấu)
• ROLLBACK TRANSACTION: Quay luitrở lại đầu giao tác điểm
đánh dấu trước giao tác
• COMMIT TRANSACTION:Đánh dấu điểm kết thúc giao tác Khi câu
lệnh thực thi có nghĩa giao tác thực 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
5 Khai báo giao tác SQL Server (tt)
Hệ quản trị Cơsở 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
(6)5 Khai báo giao tác SQL Server (tt)
Hệ quản trị Cơsở liệu 21
6 Lịch biểu 6.1 Giới thiệu 6.2 Khái niệm
6.3 Lịch thao tác (Schedule) 6.4 Lịch tuần tự
6.5 Lịch khả tuần tự
6.6 Kiểm tra tính khả lịch
Hệ quản trị Cơsở liệu 22
6.1 Giới thiệu
Hệ quản trị Cơsở liệu 23
•Thực tuần tự
•Tại thời điểm, giao tác bắt đầu giao tác trước hồn tất •Thực đồng thời
•Cho phép nhiều giao tác truy xuất liệu
•Gây nhiều phức tạp quán liệu
•Tuy nhiên
•Tận dụng tài nguyên thơng lượng (throughput)
•Trong giao tác thực đọc/ghi đĩa, giao tác khác xử lý tính tốn CPU
•Giảm thời gian chờ
•Các giao tác ngắn phải chờ đợi giao tác dài
•Chia sẻ chu kỳ CPU truy cập đĩa để làm giảm trì hỗn giao tác thực thi
6.2 Khái niệm
•Khi thực giao dịch đồng thời gây tình trạng khóa sống (live lock), khóa gài vấn đề bất khả tuần tự Để loại bỏ vấn đề này, có cơng cụ:
• Bộ xếp lịch (schedule)
• Nghi thức (protocol)
(7)6.2 Khái niệm (tt)
•Bộ xếp lịch(schedule) thànhphần hệ thống CSDL, có vai trị làmtrọngtài phânxửcác ucầu đangcó xungđột.Người thiết kế hệ thống biếtcách loại bỏkhóasống xếp lịch
FIFO.Một xếp lịchcó thể xửlý khóa gài tínhbất khả
tuần tự bằngcách:
•Buộc1 giaodịch phải đợi,chẳng hạnchođếnkhi khóađang đượcucầu giảiphóng
•Buộc mộtgiaodịch ngừng lạivà táikhởi động
Hệ quản trị Cơsở liệu 25
6.2 Khái niệm (tt)
Hệ quản trị Cơsở liệu 26
Bộ xếp lịch
6.2 Khái niệm (tt)
•Nghi thức (protocal):là quy định mà giao dịch
phải tuân theo Chẳng hạn, chiến lược tránh khoá gài bằng cách yêu cầu khoá chốt mục liệu theo thứ tự cố định nghi thức.
6.3 Lịch thao tác (Schedule)
•Một lịch thao tácSđược lập từngiao tácT1, T2, …, Tnđược xử lý đồng
thời thứ tự thực hành độngcủangiao tác này
•Thứ tự xuất thao tác lịch phải giống với thứ tự xuất giao tác