Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Nguyễn Thị Uyên Nhi

88 38 0
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Nguyễn Thị Uyên Nhi

Đ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

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 Giao dịch (transaction) cung cấp cho người học những kiến thức như: Giới thiệu về Giao dịch (Transaction); Lịch trình; Giao dịch trong SQL. Mời các bạn cùng tham khảo!

CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG GIAO DỊCH (TRANSACTION) Giảng viên: Đỗ Ngọc Như Loan Biên soạn: Nguyễn Thị Uyên Nhi KHOA CÔNG NGHỆ THÔNG TIN NỘI DUNG  Giới thiệu Giao dịch (Transaction) Các tính chất giao dịch  Các thành phần xử lý giao dịch HQT CSDL  Các trạng thái giao dịch  Lịch trình:        SGU - Khoa CNTT - NTUN - HQT CSDL  Khái niệm Lịch trình Tính khả Khả xung đột Một số tập Khả view Giao dịch SQL GIỚI THIỆU VỀ GIAO DỊCH Ví dụ: SGU - Khoa CNTT - NTUN - HQT CSDL GIỚI THIỆU VỀ GIAO DỊCH Ví dụ: SGU - Khoa CNTT - NTUN - HQT CSDL GIỚI THIỆU VỀ GIAO DỊCH Nhiều người dùng truy cập CSDL thời điểm SGU - Khoa CNTT - NTUN - HQT CSDL Môi truờng multi-user CSDL lớn Tập trung TRANH CHẤP TÀI NGUYÊN Phân tán GIỚI THIỆU VỀ GIAO DỊCH  Có thể phân loại HQT CSDL dựa số lượng người sử dụng đồng thời: SGU - Khoa CNTT - NTUN - HQT CSDL Single-user  Multi-user: hầu hết HQT CSDL  Xử lý xen kẽ (Interleaved processing)  Xử lý song song (Parallel processing)  GIỚI THIỆU VỀ GIAO DỊCH  Từ đặt vấn đề: Mất liệu cập nhật (Lost Update Problem)  Số liệu tổng hợp khơng xác (Incorrect Summary Problem)  Khai thác liệu ‘giả’ (Dirty Read Problem) SGU - Khoa CNTT - NTUN - HQT CSDL  GIỚI THIỆU VỀ GIAO DỊCH  Trường hợp 1: Mất liệu cập nhật (Số chỗ D=80) SGU - Khoa CNTT - NTUN - HQT CSDL GIỚI THIỆU VỀ GIAO DỊCH  Trường hợp 2: Khai thác liệu giả (Số chỗ D=80) SGU - Khoa CNTT - NTUN - HQT CSDL GIỚI THIỆU VỀ GIAO DỊCH  Trường hợp 3: Số liệu tổng hợp không xác W1, W2,…, Wn số chỗ đặt trạm 1, trạm 2, …, trạm n  Tính tổng số vé đặt tất trạm Zn= W1+W2+…+Wn  Tính tới trạm 4: Z4= W1+W2+W3+W4 Khi đó, trạm đặt thêm chỗ trạm trả lại chỗ  Tại trạm n: Zn= Z4 +W5+…+Wn  SGU - Khoa CNTT - NTUN - HQT CSDL Zn khơng cịn xác Trong ba trường hợp, đặt yêu cầu DBMS hỗ trợ chức giải tranh chấp có tính đắn, ổn định, an tồn, có thời gian đáp ứng  GIAO DỊCH  10 KHẢ TUẦN TỰ VIEW  T1 T2 T3 Read(Q) Write(Q) Write(Q) Write(Q) SGU - Khoa CNTT - NTUN - HQT CSDL Khả view (view serializable): lịch trình gọi khả view tương đương view với lịch trình Lịch trình S 74 KHẢ TUẦN TỰ VIEW Lịch trình khả xung đột khả view  Lịch trình khả view không khả xung đột  Do write mù (blind write)  Write mù: thực hoạt động write mà không thực read VD: Sg: R1(X); W2(X); W1(X); W3(X);  SGU - Khoa CNTT - NTUN - HQT CSDL 75 GIAO DỊCH TRONG SQL Chuẩn SQL đặc tả bắt đầu giao dịch cách không tường minh  Giao dịch kết thúc lệnh:  Commit tran  Rollback tran  Cho phép định nghĩa giao dịch thực không khả  SGU - Khoa CNTT - NTUN - HQT CSDL 76 CÚ PHÁP SQL BEGIN TRANSACTION: Bắt đầu transaction  SAVE TRANSACTION: Đánh dấu vị trí transaction(điểm đánh dấu)  ROLLBACK TRANSACTION: Quay lui lại đầu transaction điểm đánh dấu trước transaction  COMMIT TRANSACTION: Đánh dấu điểm kết thúc transaction, câu lệnh thực thi có nghĩa transaction thực thành công  ROLLBACK WORK: Quay lui lại đầu transaction  COMMIT WORK: Đánh dấu kết thúc transaction  SGU - Khoa CNTT - NTUN - HQT CSDL 77 CÚ PHÁP SQL VD: BEGIN TRAN T1 SELECT * FROM NHANVIEN COMMIT TRAN T1 SGU - Khoa CNTT - NTUN - HQT CSDL BEGIN { TRAN | TRANSACTION } { transaction_name | @tran_name_variable } 78 CÁC DẠNG READ TRONG SQL Dirty read: Giao dịch T1 phép đọc thay đổi T2 chưa committed Nếu T2 bị hủy bỏ, giá trị đọc T1 không tồn khơng xác  Non-repeatable read: Giao dịch T1 đọc giá trị từ bảng, có giao dịch T2 thay đổi giá trị T1 đọc lại, T1 thấy giá trị cập nhật SGU - Khoa CNTT - NTUN - HQT CSDL  79 CÁC DẠNG READ TRONG SQL  SGU - Khoa CNTT - NTUN - HQT CSDL Phantoms: Giao dịch T1 đọc số dòng bảng dựa số điều kiện Where Khi giao dịch T2 khác thêm dòng thỏa mãn điều kiện Where T1 vào bảng Nếu T1 đọc lại giá trị bảng thấy bóng ma (phantom) – dịng thêm vào, trước chưa xuất 80 CÁC MỨC NHẤT QUÁN TRONG SQL  Serializable: với nghĩa không cho phép: Dirty read  Non-repeatable read  Phantoms  Lệnh xem thông tin thiết lập SQL: DBCC USEROPTIONS SGU - Khoa CNTT - NTUN - HQT CSDL Repeatable read: cho phép Phantoms  Read committed: mặc định, không cho phép Dirty read  Read uncommitted: cho phép tất  81 CÁC MỨC NHẤT QUÁN TRONG SQL Dirty Reads Yes Non-repeatable reads Yes Phantom reads Yes No Yes Yes REPEATABLE READ No No Yes SERIALIZABLE No No No READ UNCOMMITTED READ COMMITTED SGU - Khoa CNTT - NTUN - HQT CSDL Isolation level 82 READ UNCOMMITED Cho phép đọc liệu xử lý giao tác chưa hoàn tất khác (uncommited)  Đây mức thấp nhất, cho phép kiểu đọc liệu  Cú pháp SQL: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  SGU - Khoa CNTT - NTUN - HQT CSDL 83 READ UNCOMMITED BEGIN TRAN T2 SELECT * FROM NHANVIEN COMMIT TRAN T2 SGU - Khoa CNTT - NTUN - HQT CSDL BEGIN TRAN T1 INSERT INTO NHANVIEN VALUES ('NV10','A','B','C','1999-122','SU VAN HANH','NAM',88888,'P1') WAITFOR DELAY '00:00:10' ROLLBACK TRAN T1 84 READ COMMITED Mặc định SQL Server  Chỉ đọc liệu xử lý hoàn tất (commited)  Do chế lock SQL Server  Cú pháp SQL: SET TRANSACTION ISOLATION LEVEL READ COMMITTED  SGU - Khoa CNTT - NTUN - HQT CSDL 85 REPEATABLE READ Tình truy xuất liệu lại có cập nhật liệu giao tác khác dẫn đến không quán liệu  Do cần đến REPEATABLE READ  Cú pháp: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ  SGU - Khoa CNTT - NTUN - HQT CSDL 86 REPEATABLE READ BEGIN TRAN REPEATREAD COMMIT TRAN REPEATREAD SGU - Khoa CNTT - NTUN - HQT CSDL SELECT * FROM NHANVIEN WAITFOR DELAY '00:00:05' SELECT * FROM NHANVIEN BEGIN TRAN SHORTUPDATE UPDATE NHANVIEN SET HONV='A' WHERE MANV='NV10' COMMIT TRAN SHORTUPDATE 87 HẾT! Tham khảo: Chương 21 Fundamentals of Database Systems ... PHẦN QUẢN TRỊ CẠNH TRANH SGU - Khoa CNTT - NTUN - HQT CSDL TIME Item X có giá trị khơng xác cập nhật T1 bị (ghi đè) 29 SỰ CẦN THIẾT CỦA THÀNH PHẦN QUẢN TRỊ CẠNH TRANH SGU - Khoa CNTT - NTUN - HQT... lập: thành phần quản trị cạnh tranh (concurrency control component)  SGU - Khoa CNTT - NTUN - HQT CSDL 27 TÌNH HUỐNG XEM XÉT  giao dịch T1 T2 sau SGU - Khoa CNTT - NTUN - HQT CSDL 28 SỰ CẦN THIẾT... đầu 12 KHÁI NIỆM GIAO DỊCH SGU - Khoa CNTT - NTUN - HQT CSDL 13 KHÁI NIỆM GIAO DỊCH SGU - Khoa CNTT - NTUN - HQT CSDL 14 KHÁI NIỆM GIAO DỊCH  Thực giao tác lồng SGU - Khoa CNTT - NTUN - HQT

Ngày đăng: 19/08/2021, 17:30

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

Tài liệu liên quan