Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012

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.

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.

 

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 1

Trang 1

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 2

Trang 2

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 3

Trang 3

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 4

Trang 4

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 5

Trang 5

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 6

Trang 6

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 7

Trang 7

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 8

Trang 8

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 9

Trang 9

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012 trang 10

Trang 10

Tải về để xem bản đầy đủ

pptx 12 trang xuanhieu 8940
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012

Bài giảng Cơ sở dữ liệu - Bài: Giao tác trong hệ quản trị cơ sở dữ liệu SQL Server 2012
GIAO TÁC TRONGHỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUSQL SERVER 2012 
Giao tác  (Transaction) 
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. 
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. 
Giao tác  (Transaction) 
Vấn đề đặt ra cho việc dùng giao tác 
Khi nào sử dụng giao tác ? 
Sử dụng giao tác ở mức độ cô lập nào là phù hợp ? 
Phạm vi ảnh hưởng của giao tác là đâu ? 
Khả năng các ngôn ngữ lập trình kết nối với hệ quản trị có sử dụng cơ chế giao tác như thế nào ? 
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 
Giao tác – Đ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ả từ sau lệnh save tran s1 đến chổ rollback tran s1 và sau đó là tiếp tục làm tiếp (giao tác t1 vẫn còn). 
Hành vi đọc dữ liệu với giao tá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). 
Mức độ cô lập trong giao tác(Isolation level) 
ISOLATION LEVEL 
DIRTY 
READ 
NON REPEATED 
PHANTOM READ 
Read uncommitted 
√ 
√ 
√ 
Read committed 
√ 
√ 
Repeatable read 
√ 
Serializable 
Mức độ cô lập trong giao tác(Isolation level) 
Thiết lập mức độ 
	 SET TRANSACTION ISOLATION LEVEL 	 
	 	{ 	 read uncommitted | 
	 read committed 	 | 
	 repeatable read | 
	 serializable 	 } 
	 BEGIN TRAN  
Giao tác 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 
Giao tác tự động 
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 bị lỗi. 
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. 
Giao tác lồng nhau 
Begin tran t1 
	begin tran t2 
	print @@trancount -- @@trancount là 2 
	commit tran t2 
	 	print @@trancount -- @@trancount là 1 
commit tran t1 

File đính kèm:

  • pptxbai_giang_giao_tac_trong_he_quan_tri_co_so_du_lieu_sql_serve.pptx