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

Tailieu transaction 2

20 0 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

Seminar TH#1 Transaction và Lỗi tranh chấp đồng thời Store procedure Begin tran: Bắt đầu giao tác Commit : Kết thúc giao tác (thành công) q Dữ liệu xác nhận CSDL Rollback: Kết thúc giao tác (thất bại) q Dữ liệu khôi phục trạng thái bđ Khi rollback? Khi có lệnh giao tác bị lỗi cần phải khôi phục lại liệu • Lỗi hệ thống: Lỗi câu lệnh INSERT, UPDATE, DELETE ◦ Dựa vào biến @@error [0: thành công, != 0: mã lỗi] IF @@error != BEGIN Các câu lệnh xử lý bị lỗi END ◦ Lưu ý: Sau câu lệnh Select, Insert, Update, Delete biến @@error chứa trạng thái (thành công/ thất bại) việc thực thi câu lệnh Khi rollback? • Lỗi người dùng: ◦ Đọc giả thêm vào nhỏ 18 tuổi ◦ Xác định lỗi dựa vào đoạn code người dùng viết ◦ Ví dụ: IF @tuoi < 18 BEGIN Các câu lệnh xử lý bị lỗi END Kỹ thuật cấp phát khóa HQT Khi đặt khóa bảng thuộc tính làm điều kiện khóa => Chỉ khóa thuộc tính khóa Khi đặt khóa bảng thuộc tính làm điều kiện ko phải khóa => Khóa tồn bảng shared lock, read lock, khóa S, khóa đọc èCấp khóa đọc bảng TAIKHOAN èChỉ khóa thuộc tính khóa èCấp khóa đọc bảng GIAODICH exclusive lock, write lock, khóa X, khóa ghi (Khi thực thao tác ghi (Insert, Update, Delete) èCấp khóa ghi bảng TAIKHOAN èCấp khóa đọc bảng TAIKHOAN èCấp khóa đọc bảng LOAITAIKHOAN èCấp khóa đọc bảng KHACHHANG èCấp khóa ghi bảng TAIKHOAN èCấp khóa đọc bảng TAIKHOAN èCấp khóa ghi bảng TAIKHOAN èCấp khóa đọc bảng KHACHHANG èCấp khóa đọc bảng KHACHHANG Giao tác muốn read(TAIKHOAN) sau muốn write(TAIKHOAN) èCấp khóa X bảng TAIKHOAN update lock, Intend to write lock, Khóa U èCấp khóa U bảng TAIKHOAN èCấp khóa S bảng GIAODICH èCấp khóa X bảng KHACHHANG Kỹ thuật khóa vKhơng đặt khóa (Nolock) vKhóa chia sẻ (shared lock) : § Cịn gọi khóa đọc (read lock) Gọi tắt : Khóa S § Khi đọc đơn vị dự liệu SQL tự thiết lập shared lock đơn vị liệu § Shared lock thiết lập trang, bảng, hay dòng liệu 10 Kỹ thuật khóa vKhóa cập nhật (update lock) § Cịn gọi Intend to write lock Gọi tắt: Khóa U § Dùng có dự định ghi lại liệu đọc vKhóa độc quyền (exclusive lock) : § Cịn gọi khóa ghi (write lock) Gọi tắt : Khóa X § Khi thực thao tác ghi (Insert, Update, Delete) HQT tự động thiết lập khóa X đơn vị liệu § Khóa X giữ đến hết giao tác 11 Xin khóa đọc (TAIKHOAN) Đọc xong, giải phóng khóa liền (Unlock) Xin khóa đọc (GIAODICH) Đọc xong, giải phóng khóa liền (Unlock) Xin khóa ghi (TAIKHOAN) Ghi xong, giữ đến hết giao tác Bảng tương thích khóa Shared lock Shared lock Update lock Exclusive lock Update lock Exclusive lock ỵ ỵ ý ỵ ý ý ý ý ý ỵ Cho phộp (tng thớch) ý Khơng cho phép (khơng tương thích) 13 T1 T2 S(KH) X(KH) S(KH) X(KH) Lỗi tranh chấp đồng thời Dirty read Unrepeatable read Phantom Lost update Đọc liệu rác Không thể đọc lại liệu Bóng ma Mất liệu cập nhật 15 Dirty read STT T1 Begin tran write (A) //Insert | Update If (Lỗi) Rollback tran Commit tran T2 Begin tran read (A) Commit tran ð T2 đọc liệu (rác) bị T1 hủy 16 Unrepeatable read STT T1 Begin tran Read(A) T2 Begin tran Write(A) //Update | Delete Read(A) Commit tran Commit tran ð T1 đọc liệu giá trị A khác lần đọc 17 Phantom STT T1 Begin tran Read(A) T2 Begin tran write(B) //Insert | Update Read(A, B) Commit tran Commit tran ð T1 đọc tập liệu lần khác 18 Lost update STT T1 Begin tran Read(A) Write(A’’) Commit tran T2 Begin tran Read(A) Write(A’) Commit tran ð Dữ liệu ghi T2 bị ghi đè T1 19 Thanks

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

w