8/25/2017
1
Chương 4.
Quản 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 của giao tác
4. Trạng thái của giao tác
5. Khai báo giao tác trong SQL Server
6. Lịch biểu
Hệ quản trị Cơsở dữ liệu 2
1. Giới thiệu
Hệ quản trị Cơsở dữ liệu 3
dụ
Hệ thống giao dịch ngân hàng
Hệ thống đặt bay
DBMS 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
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ự
1. Giới thiệu (tt)
Hệ quản trị Cơsở dữ liệu 4
Khi DBMS gặp sự cố
Các thao tác thể làm cho trạng thái CSDL không chính xác
Đọc số của tài khoản A
Kiểm tra (số > số tiền cần rút)
Tăng số 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ố
8/25/2017
2
2. Định nghĩa giao tác
Hệ quản trị Cơsở dữ liệu 5
Giao tác 1đơn vị xử nguyên tố gồm 1chuỗi các hành động
tương tác lên CSDL.Khi thực hiện một giao tác hoặc phải thực
hiện tất cả các hành động của hoặc thì không thực hiện
hành động nào hết.
CSDL nhất quán 1CSDL nhất quán 2
Giao tác
2. Định nghĩa giao tác (tt)
Hệ quản trị Cơsở dữ liệu 6
3. Tính chất ACID của giao tác
Hệ quản trị Cơsở dữ liệu 7
3.1. Tính Nguyên tố (Atomicity)
3.2. Tính Nhất quán (Consistency)
3.3. Tính lập (Isolation)
3.4. Tính Bền vững (Durability)
3.1. Tính Nguyên tố (Atomicity)
Hệ quản trị Cơsở dữ liệu 8
Tính Nguyên tố (Atomicity)
Hoặc toàn bộ hoạt động của giao dịch được phản ánh đúng đắn trong
CSDL hoặc không hoạt động nào cả.
Nói cách khác, tác dụng của các câu lệnh trong một giao tác phải như
một câu lệnh đơn. Không chia nhỏ ra được.
8/25/2017
3
3.1. Tính Nguyên tố (Atomicity) (tt)
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 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
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ở dữ liệu 10
Tính Nhất quán (Consistency)
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ọi RBTV được thỏa gọi 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 quán).
dụ:phái nam hoặc nữ,nhưng đến phái Enter đi qua
cho phép thì không còn trạng thái nhất quán.
3.2. Tính Nhất quán (Consistency)
Hệ quản trị Cơsở dữ liệu 11
Consistency
Tổng A+B 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
T: Read(A,t);
t:=t-50;
Write(A,t);
Read(B,t);
t:=t+50;
Write(B,t);
3.3. Tính lập (Isolation)
Hệ quản trị Cơsở dữ liệu 12
Tính lập (Isolation)
Một giao tác không quan tâm đến các giao tác khác xử đồng thời với
Khi n giao tác xử đồng thời phải làm sao bảo đảm tôi
tính độc lập của riêng tôi.
8/25/2017
4
3.3. Tính lập (Isolation)
Hệ quản trị Cơsở dữ liệu 13
Giả sử 1 giao tác T’ thực hiện phép toán A+B 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
Tkế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 trạng thái ơ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
đó.
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ở dữ liệu 14
Tính Bền vững (Durability)
Mọi thay đổi giao tác thực hiện trên CSDL phải được ghi nhận
bền vững
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 sự 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 bn vng đảm bảo rng mt khi giao dch được
hoàn thành, tất cả các cập nhật trên CSDL bền vững
thậm chí nếu lỗi hệ thống sau khi giao dịch hoàn
thành thực hiện.Giả sử một lỗi hệ thống thể dẫnđến
mt mát dliu trong bnhchính, nhưng dliu
được ghi o đĩa không bao gibmt.
Hệ quản trị Cơsở dữ liệu 15
4. Trạng thái của giao tác
Hệ quản trị Cơsở dữ liệu 16
8/25/2017
5
5. Khai báo giao tác trong SQL Server
Hệ quản trị Cơsở dữ liệu 17
Giao tác SQL được định nghĩa dựa trên các câu lệnh xử giao tác
sau :
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 điểm đánh
dấu).
ROLLBACK TRANSACTION: Quay lui trở 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 nghĩa giao tác đã thực hiện thành công.
ROLLBACK [WORK]: Quay lui trở 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 trong SQL Server (tt)
Hệ quản trị Cơsở dữ liệu 18
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
5. Khai báo giao tác trong SQL Server (tt)
Hệ quản trị Cơsở dữ liệu 19
5. Khai báo giao tác trong SQL Server (tt)
Hệ quản trị Cơsở dữ liệu 20