ệ quản trị cơ sở dữ liệu: Các đối tượng trong SQL Server - TS. Lại Hiền Phương (Phần 3)

49 108 0
ệ quản trị cơ sở dữ liệu: Các đối tượng trong SQL Server - TS. Lại Hiền Phương (Phần 3)

Đ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

Phần 3 bài giảng Hệ quản trị cơ sở dữ liệu: Các đối tượng trong SQL Server cung cấp cho người học các kiến thức: Khái niệm giao dịch, đặc tính của phiên giao dịch, các câu lệnh xử lý giao dịch, giao dịch tường minh, giao dịch tự động,... Mời các bạn cùng tham khảo nội dung chi tiết.

Các đối tượng SQL Server LẠI HIỀN PHƯƠNG EMAIL: LHPHUONG@TLU.EDU.VN LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Nội dung View Chỉ mục Trigger Transaction Lock LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Transaction - Giao dịch LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Khái niệm Giao dịch Giao dịch (Transaction) dùng để đảm bảo tính tồn vẹn liệu xảy cập nhật (các hành động INSERT, DELETE, UPDATE) Một giao dịch thường bao gồm nhiều lệnh cập nhật: SQL server đảm bảo cập nhật liệu tất lệnh transaction thực thành công Nếu có phát sinh lỗi lệnh transaction, tồn transaction bị hủy bỏ (Roll back Cancel) Dữ liệu trở trạng thái trước xảy transaction LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ Giả sử có hai tài khoản ngân hàng A B có số tiền tương ứng tỷ tỷ Việc chuyển tỷ từ tài khoản A sang tài khoản B thực phép cập nhật sau:  Trừ số tiền có A tỷ  Cộng thêm số tiền có B lên tỷ Nếu lệnh diễn độc lập, lệnh thứ bị lỗi -> tài khoản A bị trừ tỷ, tài khoản B giữ nguyên Cần đặt lệnh transaction để đảm bảo hai lệnh thực không thực lệnh LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Đặc tính phiên giao dịch Atomicity (Nguyên tố): phiên giao dịch đơn vị công việc nhỏ nhất, tất liệu thay đổi phiên giao dịch thực tất không thực Nếu phép cập nhật ví dụ trước thành cơng số tiền cập nhật A = tỷ, B = tỷ Nếu có lỗi trong phép cập nhật hai khơng thực A=8 tỷ, B=1 tỷ LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Đặc tính phiên giao dịch Consistency (Nhất quán): Giao dịch không thực có thao tác xung khắc mặt logic quan hệ, dẫn đến vi phạm tồn vẹn liệu Ví dụ có lệnh insert vào bảng SinhVien với địa Email đặt transaction, giao dịch không thực ta đặt ràng buộc UNIQUE với địa Email LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Đặc tính phiên giao dịch (tiếp) Durability (Bền vững): đảm bảo sau giao dịch thực thành cơng, tác dụng mà tạo phải tồn bền vững CSDL, cho dù hệ thống có bị lỗi Trong ví dụ chuyển tiền tài khoản, sau giao dịch thực thành cơng, dù hệ thống có bị lỗi tài khoản A phải có tỷ, tài khoản B phải có tỷ LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Đặc tính phiên giao dịch (tiếp) Isolation (Tách biệt): có nhiều giao dịch thực đồng thời phải đảm bảo chúng giữ độc lập để kết không ảnh hưởng lẫn Khi giao dịch chuyển tỷ từ tài khoản A sang tài khoản B thực hiện, có giao dịch khác thực chuyển tỷ từ tài khoản A sang tài khoản C khác, giao dịch tương tranh, cần đảm bảo chúng giữ độc lập LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Các trường hợp sử dụng giao dịch Nên sử dụng giao dịch Viết mã hai hay nhiều truy vấn thao tác tác động tới liệu có liên kết Khi cập nhật tham chiếu khóa ngoại Khi chuyển hàng từ bảng sang bảng khác Khi thất bại tập câu lệnh SQL vi phạm tính tồn vẹn liệu LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 10 Khóa cập nhật (Update Lock) Là chế độ khóa trung gian Shared Lock Exclusive Lock Cho phép đọc liệu ghi lại liệu sau đọc liệu Với câu lệnh UPDATE, chưa cần cập nhật trạng thái shared lock Khi thực cập nhật chế độ exclusive lock Intent Lock Dùng giải phân cấp đối tượng Trong SQL Server 200, intent Locks giải đến bảng không quan tâm đến ghi bảng Xem thông tin khóa Để xem thơng tin khóa sử dụng SQL Server, ta làm sau: Chọn đối tượng cần xem khóa Thực thủ tục sp_lock Đặt mức độ cô lập Read Uncommitted Giao tác đọc liệu mà khơng cần quan tâm liệu có bị thay đổi giao tác khác khơng Có thể đọc liệu gốc có phiên giao dịch sửa đổi liệu Ưu điểm: tăng hiệu đọc tiến trình Nhược điểm: khơng ngăn chặn vấn đề tương tranh => Tùy vào ứng dụng để đặt mức isolation Nếu việc đọc sai chấp nhận khơng cần đặt mức isolation cao để tăng hiệu đọc cho hệ thống Ví dụ Read Uncommitted: Bảng test có liệu sau T1 begin tran update test set Name = ‘d’ where ID=3 waitfor delay '00:00:10' rollback ID Name a b c T2 begin tran set tran isolation level read uncommitted select * from test commit tran Ví dụ Kết quả: T2 nhận ID Name a b d Read Committed Khi transaction đặt mức độ lập này, khơng phép đọc liệu (SELECT/UPDATE/DELETE) cập nhật mà phải đợi đến giao dịch hồn tất Ngăn Dirty Read, Lost Update Không ngăn tượng Unrepeatable Read, Phantom Read Committed ID Name a b c T1 begin tran update test set Name =‘d’ where id=3 waitfor delay '00:00:10' rollback T2 begin tran set tran isolation level read committed select * from test commit tran Read Committed Kết quả: T2 nhận ID Name a b c Giải thích: Mức Read Committed ngăn không cho phép giao dịch đọc (select/delete/update)CSDL giao dịch khác thay đổi (insert/delete/update) CSDL Repeatable Read Ngăn không cho transaction cập nhật vào liệu đọc transaction khác transaction hồn tất việc đọc Ưu điểm: giải vấn đề dirty read, lost update, unrepeatable read Nhược điểm: chưa giải vấn đề phantom Serializable Mức Repeatable bảo vệ liệu khỏi câu lệnh UPDATE không bảo vệ khỏi câu lệnh INSERT DELETE Mức Serializable bắt buộc giao tác khác phải chờ đợi giao tác hồn thành muốn thay đổi liệu Ưu điểm: giải vấn đề phantom Nhược điểm: làm chậm hoạt động giao dịch hệ thống Chỉ định khóa lệnh Khi đặt mức isolation level, mức lập định tác dụng lên tồn câu lệnh nằm sau Nếu lệnh khơng định lock trực tiếp, hoạt động theo mức cô lập chung hành transaction Chỉ định khóa lệnh Cú pháp : SELECT …FROM TABLE WITH (LOCK) DELETE… FROM TABLE WITH (LOCK) Ví dụ: Select * from test with (nolock) Chỉ định khóa lệnh Một số lock SQL Server READUNCOMMITTED/NOLOCK Tương tự mức READ UNCOMMITTED READCOMMITTED Tương tự mức READ COMMITTED REPETABLEREAD Tương tự mức REPEATABLE READ SERIALIZABLE/HOLDLOCK Tương tự mức SERIALIZABLE XLOCK Khóa độc quyền UPDLOCK Khóa update READPAST ROWLOCK Khóa dòng thao tác TABLOCK Khóa bảng TABLOCKX Xlock+tablock ... Lock LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Transaction - Giao dịch LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Khái niệm Giao dịch Giao dịch (Transaction) dùng để đảm bảo tính tồn vẹn liệu xảy cập nhật (các. .. TaiKhoan(MaTK, SoTien) LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 21 LOCK - Khóa LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 22 Khái niệm Khóa Khóa (Locks) cấu cho phép ngăn ngừa hành động đối tượng gây xung đột... FETCH TRUNCATE TABLE GRANT LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 16 Giao dịch khơng tường minh (Implicit transaction) (tiếp) Ví dụ: Giao dịch LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 17 Giao dịch tự động

Ngày đăng: 15/05/2020, 22:11

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan