1. Trang chủ
  2. » Công Nghệ Thông Tin

Slide seminar lần 1 file

53 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Chương Giao Tác Nội dung www.themegallery.com Giới thiệu Giao tác Điều khiển đồng thời Giới thiệu Đặt hàng Website bàn hàng ĐH ko có chi tiết Giải ??? Chi tiết_2 ĐH Chi tiết_1 ĐH CSDL sai www.themegallery.com Đơn Hàng Cập nhật SL Nội dung www.themegallery.com Giới thiệu Giao tác Điều khiển đồng thời Định nghĩa Giao tác Đơn Hàng Chi tiết_2 ĐH Chi tiết_1 ĐH Cập nhật SL www.themegallery.com  Giao tác chuỗi hành động tương tác CSDL  Giao tác phải đảm bảo tính chất ACID Tính ACID Mọi thao tác phải thực hiện, bị hủy Atomicity (nguyên tố) Durability (bền vững) Khi giao tác thực thành cơng thay đổi phải lưu bền vững CSDL www.themegallery.com Tất liệu phải trạng thái quán sau giao tác kết thúc Consistency (nhất quán) Isolation (cô lập) Một giao tác thực đồng thời với giao tác khác khơng bị ảnh hưởng giao tác khác Khai báo giao tác Giao tác Đơn Hàng Chi tiết_2 ĐH Chi tiết_1 ĐH Cập nhật SL Begin Tran Bắt đầu giao tác INSERT  Đơn hàng INSERT  Chi tiết đơn hàng INSERT  Chi tiết đơn hàng Update  Cập nhật số sản phẩm End Tran Kết thúc giao tác www.themegallery.com Database trước giao tác SELECT SELECT INSERT UPDATE DELETE Database sau giao tác www.themegallery.com INSERT UPDATE Lỗi phần mềm Database trước giao tác ROLLBACK Database trước giao tác ROLLBACK GIAO TÁC Tình giao tác SELECT INSERT Lỗi phần cứng Ví dụ Database trước giao tác Begin Tran Bắt đầu giao tác INSERT  Đơn hàng INSERT  Chi tiết đơn hàng INSERT  Chi tiết đơn hàng Update  Cập nhật số sản phẩm End Tran Kết thúc giao tác Database trước giao tác www.themegallery.com Cú pháp Create proc TenProc As Begin Bắt đầu giao tác Begin tran Kết thúc giao tác  hủy /*giao tác bị lỗi*/ giao tác, đưa CSDL trạng thái ban đầu rollback tran /*giao tác thành công*/ Kết thúc giao tác thành commit tran công giao tác lưu bền vững xuống CSDL End www.themegallery.com Các cấp độ khóa STT Khóa Serializable / Holdlock Updlock XLock Readpast www.themegallery.com Ý nghĩa -Thiết lập shared lock đọc, giữ lock đến hết giao tác -Khơng cho insert dịng thỏa điều kiện thiết lập khóa -Dùng updatelock thay cho shared lock -Chỉ sử dụng câu select -Uplock giữ đến hết giao tác Chỉ định dùng khóa độc quyền -Chỉ khóa dịng liệu thao tác -Áp dụng cho câu lệnh select -Chỉ dùng với READ COMMITTED REPEATABLE READ Các cấp độ khóa STT Khóa Ý nghĩa RowLock TabLock Chỉ đặt khóa dịng cần thao tác -Khóa tồn dòng bảng thao tác -Các thao tác (Insert / Update / Delete) thực bảng 10 TabLockX Xlock + TabLock  1, 2, 3, 5, 6, có ý nghĩa dùng câu select  1, 2, 3, 5, 6, kết hợp với (khóa theo kiểu key-range) 8, (chỉ đơn vị cần khóa) www.themegallery.com Thiết lập cấp độ khóa Select … From {Tab1 Alias1 with (Lock_mode [,…n]} [,…n]) Where … Ví dụ : Select SV.HoVaTen, K.TenKhoa From SinhVien SV with (ReadCommitted), Khoa K with (Updlock) Where SV.Khoa = K.Ma www.themegallery.com Deadlock Conversion deadlock www.themegallery.com Conversion deadlock Transaction Transaction Select (A) Select (A) Insert/ Update/Delete (A) Commit www.themegallery.com Insert/ Update/Delete (A) Commit Deadlock Cycle deadlock www.themegallery.com Cycle deadlock Transaction Transaction Insert/ Update/Delete (A) Insert/ Update/Delete (B) Insert/ Update/Delete (B) Commit www.themegallery.com Insert/ Update/Delete (A) Commit Deadlock  Khi dead lock xảy  SQL Server chọn transaction gây dead lock để hủy bỏ, transaction cịn lại tiếp tục thực hoàn tất  Transaction bị chọn hủy transaction mà SQL ước tính chi phí cho phần việc làm transaction cịn lại www.themegallery.com Thank You! Bài tập STT T1 Begin tran Begin tran SELECT * FROM SACH T2 INSERT SACH (MaSach) Values (‘S003’) SET @Msach = (SELECT Top MaSach FROM SACH ORDER BY MaSach DESC) Rollback … Commit www.themegallery.com Bài tập STT T1 Begin tran Begin tran SELECT * FROM SACH T2 INSERT SACH (MaSach) Values (‘S003’) SET @Msach = (SELECT Top MaSach FROM SACH ORDER BY MaSach DESC) Commit … Commit www.themegallery.com Bài tập STT T1 Begin tran Begin tran SELECT * FROM SACH T2 UPDATE SACH Set TenSach = ‘ABC’ WHERE MaSach = ‘S003’ SELECT * FROM SACH Commit … Commit www.themegallery.com Bài tập STT T1 Begin tran T2 Begin tran SELECT * FROM PHIEUDATHANG SELECT * FROM PHIEUDATHANG INSERT PHIEUDATHANG (MaPD, MaKH) VALUES (‘PD004’,’KH003’) INSERT PHIEUDATHANG (MaPD, MaKH) VALUES (‘PD004’,’KH002’) Commit Commit www.themegallery.com Bài tập STT T1 Begin tran Begin tran SELECT * FROM PHIEUDATHANG WHERE MaKH = ‘KH002’ INSERT PHIEUDATHANG (MaPD, MaKH) VALUES (‘PD004’,’KH002’) SELECT * FROM PHIEUDATHANG INSERT PHIEUDATHANG (MaPD, MaKH) VALUES (‘PD005’,’KH002’) T2 Commit Commit www.themegallery.com Bài tập STT T1 Begin tran T2 Begin tran INSERT PHIEUDATHANG (MaPD, MaKH) VALUES (‘PD005’,’KH002’) SELECT * FROM PHIEUDATHANG WHERE MaKH = ‘KH002’ SELECT * FROM PHIEUDATHANG WHERE MaKH = ‘KH002’ UPDATE PHIEUDATHANG SET MaKH = ‘KH003’ WHERE MaPD = ‘PD005’ SELECT * FROM PHIEUDATHANG WHERE MaKH = ‘KH002’ Commit www.themegallery.com Commit

Ngày đăng: 06/04/2023, 09:30

w