Bài giảng Hệ quản trị cơ sở dữ liệu: Giao tác trong SQL server - Phan Hiền
Số trang: 12
Loại file: pdf
Dung lượng: 817.96 KB
Lượt xem: 19
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương này giới thiệu về các giao tác trong SQL Server. Nội dung chính được trình bày trong chương này gồm có: tính chất của giao tác, giao tác tường minh (explicit), điểm lưu (save point), giao không tường minh (implicit), giao tác tự động (autocommit), giao tác lồng nhau,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Giao tác trong SQL server - Phan Hiền GIAO TÁC TRONG SQL SERVER Phan Hiền 1 GIAO TÁC (TRANSACTION) Khái niệm Giao tác được hiểu như khái niệm chỉ tập các lệnh được thực hiện nhưng có sự gắn kết với nhau và được coi như là 1 đơn vị hoạt động, chúng chỉ thành công nếu như tất cả thành công và thất bại nếu có 1 phần tử thất bại. 2 TÍNH CHẤT CỦA GIAO TÁC Tính nguyên tử (Atomicty) Thành công nếu tất cả thành công. Tính nhất quán (Consistency) Vẫn đảm bảo các ràng buộc. Tính cô lập (Isolation) Thể hiện mức độ riêng tư của từng giao tác. (Một giao tác đang thay đổi có thể bên ngoài thấy hay không thấy) Tính bền vững (Durability) Khi hệ thống có lỗi, nhưng thành công của giao tác vẫn được ghi vào dữ liệu. 3 GIAO TÁC TƯỜNG MINH (EXPLICIT) Giao tác Begin tran [tên_giao_tác] lệnh | khối_lệnh { Commit tran | Rollback tran } [tên_giao_tác] Tạo điểm lưu save tran tên_điểm_lưu Hủy những gì sau điểm lưu nếu rollback. 4 ĐIỂM LƯU (SAVE POINT) begin tran t1 lệnh | khối_lệnh save tran s1 lệnh | khối_lệnh rollback tran s1 => chưa chấm dứt t1 lệnh | khối_lệnh commit tran t1 => Rollback tran s1 chỉ hủy bỏ kết quả sau lệnh save tran s1 và tiếp tục làm tiếp (giao tác t1 vẫn còn). 5 GT KHÔNG TƯỜNG MINH (IMPLICIT) Bắt đầu giao tác với các lệnh ALTER TABLE, DROP, TRUNCATE TABLE, CREATE, OPEN, FETCH, REVOKE, GRANT DELETE, INSERT, SELECT, UPDATE Kết thúc bằng lệnh : commit | rollback tran Khi kết thúc cũng là lúc bắt đầu một giao tác mới. Thiết lập thông số chấp nhận SET IMPLICIT_TRANSACTIONS ON|OFF 6 GIAO TÁC TỰ ĐỘNG (AUTOCOMMIT) Cơ chế tự động xác nhận được thực thi khi trong giao tác xuất hiện lỗi lúc chạy hay lỗi cú pháp. Lỗi cú pháp == giao tác bị hủy (rollback) Lỗi lúc chạy (khóa chính, sai dữ liệu,…) == giao tác được chấp nhận đến thời điểm đó. 7 GIAO TÁC LỒNG NHAU Cho phép các giao tác lồng với nhau. Lệnh commit chỉ có tác dụng cho giao tác cấp ‘con’ gần nhất. Lệnh rollback tran có tác dụng hủy tất cả và trở về điểm ban đầu của giao tác cấp ‘cha’ nhất. Biến @@trancount chỉ xem vào thời điểm hiện tại có bao nhiêu giao tác đang tồn tại. 8 GIAO TÁC LỒNG NHAU Begin tran t1 …… begin tran t2 ………… print @@trancount => kết quả là 2 commit tran t2 …….. print @@trancount => kết quả là 1 commit tran t1 9 TRẠNG THÁI KHI ĐỌC Dirty read Đọc dữ liệu mà giao tác khác chưa commit. Non repeatable read (Non Rep | Lost Update) Giao tác đọc lần đầu thấy dữ liệu là A, nhưng sau đó đọc lại thì thấy là B (do giao tác khác thay đổi) Phantom read Khi giao tác 1 đọc dữ liệu, bên ngoài hay giao tác khác thêm dòng mới vào hay xóa đi, làm cho các dòng đang đọc trở thành dòng ảo (phantom). 10 MỨC ĐỘ CÔ LẬP (ISOLATION) ISOLATION LEVEL DIRTY NON PHANTOM READ REPEATED READ Read uncommitted √ √ √ Read committed √ √ Repeatable read √ Serializable 11 MỨC ĐỘ CÔ LẬP (ISOLATION) Thiết lập mức độ SET TRANSACTION ISOLATION LEVEL { read uncommitted | read committed | repeatable read | serializable } BEGIN TRAN …… 12
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Giao tác trong SQL server - Phan Hiền GIAO TÁC TRONG SQL SERVER Phan Hiền 1 GIAO TÁC (TRANSACTION) Khái niệm Giao tác được hiểu như khái niệm chỉ tập các lệnh được thực hiện nhưng có sự gắn kết với nhau và được coi như là 1 đơn vị hoạt động, chúng chỉ thành công nếu như tất cả thành công và thất bại nếu có 1 phần tử thất bại. 2 TÍNH CHẤT CỦA GIAO TÁC Tính nguyên tử (Atomicty) Thành công nếu tất cả thành công. Tính nhất quán (Consistency) Vẫn đảm bảo các ràng buộc. Tính cô lập (Isolation) Thể hiện mức độ riêng tư của từng giao tác. (Một giao tác đang thay đổi có thể bên ngoài thấy hay không thấy) Tính bền vững (Durability) Khi hệ thống có lỗi, nhưng thành công của giao tác vẫn được ghi vào dữ liệu. 3 GIAO TÁC TƯỜNG MINH (EXPLICIT) Giao tác Begin tran [tên_giao_tác] lệnh | khối_lệnh { Commit tran | Rollback tran } [tên_giao_tác] Tạo điểm lưu save tran tên_điểm_lưu Hủy những gì sau điểm lưu nếu rollback. 4 ĐIỂM LƯU (SAVE POINT) begin tran t1 lệnh | khối_lệnh save tran s1 lệnh | khối_lệnh rollback tran s1 => chưa chấm dứt t1 lệnh | khối_lệnh commit tran t1 => Rollback tran s1 chỉ hủy bỏ kết quả sau lệnh save tran s1 và tiếp tục làm tiếp (giao tác t1 vẫn còn). 5 GT KHÔNG TƯỜNG MINH (IMPLICIT) Bắt đầu giao tác với các lệnh ALTER TABLE, DROP, TRUNCATE TABLE, CREATE, OPEN, FETCH, REVOKE, GRANT DELETE, INSERT, SELECT, UPDATE Kết thúc bằng lệnh : commit | rollback tran Khi kết thúc cũng là lúc bắt đầu một giao tác mới. Thiết lập thông số chấp nhận SET IMPLICIT_TRANSACTIONS ON|OFF 6 GIAO TÁC TỰ ĐỘNG (AUTOCOMMIT) Cơ chế tự động xác nhận được thực thi khi trong giao tác xuất hiện lỗi lúc chạy hay lỗi cú pháp. Lỗi cú pháp == giao tác bị hủy (rollback) Lỗi lúc chạy (khóa chính, sai dữ liệu,…) == giao tác được chấp nhận đến thời điểm đó. 7 GIAO TÁC LỒNG NHAU Cho phép các giao tác lồng với nhau. Lệnh commit chỉ có tác dụng cho giao tác cấp ‘con’ gần nhất. Lệnh rollback tran có tác dụng hủy tất cả và trở về điểm ban đầu của giao tác cấp ‘cha’ nhất. Biến @@trancount chỉ xem vào thời điểm hiện tại có bao nhiêu giao tác đang tồn tại. 8 GIAO TÁC LỒNG NHAU Begin tran t1 …… begin tran t2 ………… print @@trancount => kết quả là 2 commit tran t2 …….. print @@trancount => kết quả là 1 commit tran t1 9 TRẠNG THÁI KHI ĐỌC Dirty read Đọc dữ liệu mà giao tác khác chưa commit. Non repeatable read (Non Rep | Lost Update) Giao tác đọc lần đầu thấy dữ liệu là A, nhưng sau đó đọc lại thì thấy là B (do giao tác khác thay đổi) Phantom read Khi giao tác 1 đọc dữ liệu, bên ngoài hay giao tác khác thêm dòng mới vào hay xóa đi, làm cho các dòng đang đọc trở thành dòng ảo (phantom). 10 MỨC ĐỘ CÔ LẬP (ISOLATION) ISOLATION LEVEL DIRTY NON PHANTOM READ REPEATED READ Read uncommitted √ √ √ Read committed √ √ Repeatable read √ Serializable 11 MỨC ĐỘ CÔ LẬP (ISOLATION) Thiết lập mức độ SET TRANSACTION ISOLATION LEVEL { read uncommitted | read committed | repeatable read | serializable } BEGIN TRAN …… 12
Tìm kiếm theo từ khóa liên quan:
Hệ quản trị cơ sở dữ liệu SQL server 2005 Hệ quản trị SQL Server 2005 Giao tác trong SQL Server Giao tác tường minh Giao tác lồng nhauGợi ý tài liệu liên quan:
-
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 269 0 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 250 0 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 246 0 0 -
69 trang 144 0 0
-
57 trang 89 0 0
-
34 trang 84 0 0
-
Bài giảng Khái niệm về hệ cơ sở dữ liệu: Bài 2 - Hệ quản trị cơ sở dữ liệu
13 trang 78 0 0 -
Giáo trình Hệ quản trị cơ sở dữ liệu - Trần Thiên Thành
130 trang 75 0 0 -
Phát triển Java 2.0: Phân tích dữ liệu lớn bằng MapReduce của Hadoop
12 trang 73 0 0 -
Lý thuyết, bài tập và bài giải hệ thống thông tin kế toán: Phần 1
198 trang 70 0 0