Chương 8<br />
<br />
GV Phi Loan - FIT - UIH<br />
<br />
1<br />
<br />
Nội dung<br />
•<br />
•<br />
•<br />
•<br />
<br />
Transaction là gì?<br />
Tính chất của Transaction<br />
Thực thi transaction tường minh<br />
Bài toán đồng thời và cơ chế quản l{ khóa<br />
– Các loại khóa<br />
– Cơ chế quản l{ khóa<br />
– Giải quyết tình huống nghẽn khóa<br />
<br />
GV Phi Loan - FIT - UIH<br />
<br />
2<br />
<br />
Khái quát về Transaction<br />
• A transaction is a sequence of operations<br />
performed as a single logical unit of work.<br />
• Nếu 1 transaction thành công, tất cả các chỉnh<br />
sửa dữ liệu trong transaction đó sẽ được<br />
công nhận (commit). Nếu có lỗi khi thực thi<br />
transaction, tất cả mọi sửa đổi dữ liệu sẽ bị<br />
xóa và CSDL trở về lại tình trạng ban đầu<br />
trước khi thực thi transaction đó.<br />
<br />
GV Phi Loan - FIT - UIH<br />
<br />
3<br />
<br />
Bốn thuộc tính cơ bản (ACID) của<br />
transaction<br />
• Tính nguyên tố (Atomicity): một transaction phải<br />
<br />
là 1 đơn vị công việc nguyên tử; hoặc tất cả các sửa đổi dữ<br />
liệu đều được thực thi hoặc không 1 sửa đổi nào được thực<br />
thi.<br />
<br />
• Tính nhất quán (Consistency): một giao tác phải<br />
chuyển CSDL từ trạng thái nhất quán này sang trạng thái<br />
nhất quán khác.<br />
<br />
• Tính cô lập (Isolation) : Những chỉnh sửa được làm<br />
<br />
bởi transaction hiện hành phải được cô lập khỏi những chỉnh<br />
sửa được làm bởi các transaction hiện hành khác.<br />
<br />
• Tính bền vững (Durability): những thay đổi của<br />
<br />
CSDL do giao tác thực hiện thành công là bền vững, không bị<br />
mất đi kể cả khi có lỗi xảy ra sau đó.<br />
<br />
GV Phi Loan - FIT - UIH<br />
<br />
4<br />
<br />
Phân loại Transaction<br />
• Giao tác tường minh (explicit transaction): được khai<br />
báo bằng lệnh BEGIN TRANSACTION<br />
• Giao tác ngầm định (implicit transaction): giao tác<br />
mới sẽ tự động bắt đầu ngay khi giao tác trước đó hoàn<br />
tất, nhưng mỗi transaction được kết thúc tường minh bằng<br />
lệnh COMMIT hay ROLLBACK<br />
• Giao tác tự động chuyển giao (autocommit<br />
<br />
transaction): mỗi một lệnh được xem như 1 transaction.<br />
GV Phi Loan - FIT - UIH<br />
<br />
5<br />
<br />