Bài giảng Kiến trúc cài đặt cơ sở dữ liệu - Chương 8 cung cấp cho người học kiến thức cơ bản về Transacion và bài toán đông thời. Nội dung trình bày trong chương này gồm có: Transacion là gì? Tính chất của Transaction, thực thi transacion tường minh, bài toán đông thời và cơ chế quản lý khóa. Mời các bạn tham khảo.
Trang 1Ch ng 8
Trang 3Khái quát v Transaction
• A transaction is a sequence of operations
performed as a single logical unit of work
Trang 4CSDL do giao tác th c hi n thành công là b n v ng, không b
m t đi k c khi ć l i x y ra sau đ́.
Trang 5P i Transaction
• Giao t́c t ng minh (explicit transaction): đ c khai báo b ng l nh BEGIN TRANSACTION
• Giao t́c ng m đ nh (implicit transaction): giao tác
m i s t đ ng b t đ u ngay khi giao tác tr c đ́ hoàn
t t, nh ng m i ̀ ̀ ̀ ̀ ̀ ̀ ̀
nh COMMIT hay ROLLBACK
• Giao t́c t đ ng chuy n giao (autocommit
transaction): m i m t l nh đ c xem nh 1 transaction.
Trang 6Transaction trong SQL server
Trang 7QUAN Ĺ TRANSACTION
Trang 9Ví d
Trang 10v m d ng (save-point) bên trong 1
transaction
Trang 11Ví d
BEGIN TRANSACTION
USE Pubs
UPDATE Titles
SET Royalty = Royalty + 20
WHERE type LIKE 'busin%'
IF (SELECT MAX(Royalty) FROM Titles WHERE Type LIKE 'busin%')
>$25
BEGIN
ROLLBACK TRANSACTION PRINT 'Transaction Rolled back' END
ELSE
BEGIN
COMMIT TRANSACTION
Trang 12T m d ng cho 1 TRANSACTION
• L ̀“́VÈT‘́N“́CTIOǸ ̀ t 1 m d ng (save point) bên trong 1 ̀Đ m d ng chia transaction thành 1 các ph n khác nhau sao cho
transaction có th quay v l ̀ m d ng này n u 1
ph n c a transaction b lo i b ̀ u ki n
• Cú pháp
SAVE TRAN[SACTION]
{savepoint_name }
Trang 20Các l nh không h p l trong transaction
• Rollback ph i có kh ̀ ̀ ̀ y các
– CREATE DATABASE, ALTER DATABASE
– CREATE TABLE, ALTER TABLE, TRUNCATE TABLE – CREATE INDEX
Trang 21QUAN Ĺ KH́A
SQL Server uses a dynamic, cooperative locking
mechanism to protect the consistency of the data in the database
Trang 22N i dung
– K a Intent
Trang 26Lock Granularity and Hierarchies
Trang 27C a
Trang 35Lock Compatibility Matrix
Trang 37Concurrency Effects
Trang 38T nh cô p va bài toán ng th i
Isolation and Concurrency Problems
Trang 39Dynamic Lock Management
Trang 40C p transaction
(transaction isolation level)
• N ̀ n ̀ ̀ p cho transaction không ̀ ̀
Trang 45C
i
Trang 46Nonstandard Isolation Level:
– The statements in a transaction get a
snapshot of the committed data as it existed at the start of the transaction
Trang 47Nonstandard Isolation Level
Trang 48SELECT * FROM HumanResources.EmployeePayHistory;
SELECT * FROM HumanResources.Department;
GO
COMMIT TRANSACTION;
GO
Trang 49Lock Duration by Transaction Isolation Level
Trang 51Ví d v s d ng khoá
• User1 đang th c hi n các l nh sau đ c p nh t đi m
và ngày thi cho ng viên ć mã là ‘000002’ trong b ng ExternalCandidate.
Trang 52Ví d v s d ng khoá
l ch ph ng v n cho các ng viên, nh ng không th xem chi
ti t c a các ̀ ̀ ̀ m thi trên 80 User2 ̀̀
Trang 57SELECT * FROM publishers
SELECT * FROM authors
COMMIT TRANSACTION
Trang 58N a - Deadlock
• A deadlock occurs when two or more tasks
permanently block each other because each task has
a lock on a resource that the other task(s) are trying
to lock
• D ̀ ̀ ̀ ̀ ̀deadly embrace