Bài giảng Cơ sở dữ liệu: Chương 7 - ThS. Lương Thị Ngọc Khánh
lượt xem 9
download
Bài giảng Cơ sở dữ liệu - Chương 7: Chuyển tác và khóa (transactions and locks) trình bày khái niệm về chuyển tác; chuyển tác không tường minh; chuyển tác tường minh; chuyển tác begin tran; chuyển tác commit tran;...Đây là bài giảng do ThS. Lương Thị Ngọc Khánh thực hiện. Mời bạn đọc cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cơ sở dữ liệu: Chương 7 - ThS. Lương Thị Ngọc Khánh
- CHƯƠNG 7: CHUYểN TÁC VÀ KHÓA (TRANSACTIONS AND LOCKS) 1 ThS. Lương Thị Ngọc Khánh Khoa CNTT – ĐH Tôn Đức Thắng
- KHÁI NIệM Về CHUYểN TÁC chuyển tác dùng để chỉ một công việc 10/31/12 Gồm nhiều bước Các bước được thi hành lần lượt ThS. Lương Thị Ngọc Khánh – K. CNTT Cả công việc sẽ thất bại nếu một trong các bước thực hiện bị thất bại 2
- KHÁI NIệM Về CHUYểN TÁC (TT) Tính ACID 10/31/12 Atomic: Tất cả các bước được gói trong chuyển tác như một hành động duy nhất ThS. Lương Thị Ngọc Khánh – K. CNTT Consistency: Dữ liệu được đảm bảo toàn vẹn cho dù transaction có thành công hay không Isolation: Khi hai transaction thực hiện đồng thời, chúng được giữ độc lập để các kết quả không ảnh hưởng lẫn nhau Durability: Sau khi transaction thực hiện thành công, dữ liệu được đảm bảo kể cả khi hệ thống bị sự cố 3
- CHUYểN TÁC KHÔNG TƯờNG MINH SQL Server chia các câu lệnh thực hiện làm 10/31/12 hai loại chuyển tác tường minh ThS. Lương Thị Ngọc Khánh – K. CNTT chuyển tác không tường minh Mặc định, SQL Server thực hiện các lệnh ở chế độ chuyển tác không tường minh Mỗi câu lệnh coi như một transaction: INSERT, UPDATE, DELETE,… Sau khi thực hiện lệnh, các thay đổi dữ liệu sẽ được cập nhật ngay vào CSDL 4
- CHUYểN TÁC TƯờNG MINH chuyển tác tường minh là chuyển tác phải khai 10/31/12 báo trước Sử dụng từ khoá Begin Tran ThS. Lương Thị Ngọc Khánh – K. CNTT Các lệnh theo sau thuộc vào chuyển tác đã khai báo Tác dụng thay đổi dữ liệu được cập nhật ngay vào CSDL nhưng Các chuyển tác khác không thấy được thay đổi này Sẽ bị hủy bỏ khi phiên làm việc giữa client – server chấm dứt Kết thúc chuyển tác Quá trình thực hiện lệnh, nếu bị lỗi có thể hủy bỏ chuyển tác bằng lệnh Rollback Tran Toàn bộ dữ liệu thay đổi đều bị hủy bỏ Khi các lệnh đã hoàn tất, kết thúc chuyển tác bằng Commit Tran 5 Dữ liệu thay đổi được lưu lại
- CHUYểN TÁC BEGIN TRAN Là chuyển tác đơn giản nhất của quá trình 10/31/12 xử lý chuyển tác, chỉ ra rằng đây là điểm bắt đầu của một khối chuyển tác. ThS. Lương Thị Ngọc Khánh – K. CNTT Cú pháp: Begin tran[saction] [ten_giaodich | ] 6
- CHUYểN TÁC COMMIT TRAN Commit xác định kết thúc hay hoàn thành 10/31/12 chuyển tác. Tại thời điểm commit được gọi, chuyển tác được xem như là đã thực hiện ThS. Lương Thị Ngọc Khánh – K. CNTT thành công. Cú pháp: Commit tran[saction] [ten_giaodich | ] 7
- Ví dụ: 10/31/12 Begin tran ThS. Lương Thị Ngọc Khánh – K. CNTT Update bang1 set cot1 = ‘AB’ where cot2 = ‘BB’ Insert bang2 values(‘gtri1’,’gtri2’) Select * from bang2 Commit tran 8
- CHUYểN TÁC ROLLBACK TRAN Khi gặp chuyển tác này tất cả những phát 10/31/12 biểu được thực hiện từ khi gặp chuyển tác Begin sẽ bị hủy bỏ. Ngoại trừ chúng ta định ThS. Lương Thị Ngọc Khánh – K. CNTT nghĩa thêm điểm dừng cho thao tác Rollback. Cú pháp: Rollback tran[saction] [
- Ví dụ: 10/31/12 Begin tran ThS. Lương Thị Ngọc Khánh – K. CNTT Delete bang1 where cot1 = ‘AB’ If @@error > 0 rollback tran Else commit tran 10
- CHUYểN TÁC SAVE TRAN Để lưu lại vị trí của một chuyển tác, có thể 10/31/12 dùng kỹ thuật đánh dấu Có thể đặt tên cho vị trí đánh dấu dùng để ThS. Lương Thị Ngọc Khánh – K. CNTT tham chiếu khi Rollback. Một chuyển tác có thể có nhiều vị trí đánh dấu. Cú pháp: SAVE TRAN[SACTION] [| 11
- VÍ Dụ SET ANSI_WARNINGS OFF 10/31/12 GO SELECT COUNT(*) AS 'Tổng vật tư trước khi thêm' FROM VATTU BEGIN TRAN ThS. Lương Thị Ngọc Khánh – K. CNTT INSERT INTO VATTU (Mavtu, Tenvtu, Dvtinh, Phantram) VALUES ('BU01', 'Bàn ủi PhiLip', 'Cái', 17) SELECT COUNT(*) AS 'Tổng vật tư sau khi thêm trong chuyển tác' FROM VATTU ROLLBACK TRAN SELECT COUNT(*) AS 'Tổng vật tư hiện tại' FROM VATTU SET ANSI_WARNINGS ON Kết quả trả về Tổng vật tư trước khi thêm 11 Tổng vật tư sau khi thêm trong chuyển tác 12 Tổng vật tư hiện tại 11 12
- 10/31/12 ThS. Lương Thị Ngọc Khánh – K. CNTT 13 VÍ Dụ TRANSACTION
- KHÓA (LOCK) Khóa (Lock) được sinh ra để giới hạn quyền 10/31/12 truy nhập trên môi trường đa người dùng Microsoft SQL Server sử dụng lock để đảm ThS. Lương Thị Ngọc Khánh – K. CNTT bảo tính toàn vẹn của transaction và tính thống nhất của database Nếu lock không được sử dụng, dữ liệu bên trong CSDL có thể bị sai về logíc, và các query chạy trên đó sẽ đưa ra các kết quả không mong đợi Bản chất của lock là việc một người muốn truy nhập riêng vào một bảng, vì vậy server sẽ lock bảng đó lại cho riêng người đó 14
- CÁC VấN Đề CÓ THể NGĂN NGừA BằNG LOCK Lock có thể giải quyết 4 vấn đề sau: 10/31/12 Dirty reads (đọc dữ liệu sai) ThS. Lương Thị Ngọc Khánh – K. CNTT Unrepeatable reads (đọc hai lần bản ghi) Phantoms (đọc các bản ghi nháp, không có) Lost updates (cập nhật, mất dữ liệu) 15
- ĐọC Dữ LIệU SAI (DIRTY READS) Đọc dữ liệu sai xảy ra khi chuyển tác đọc 10/31/12 một bản ghi mà một phần chuyển tác khác chưa hoàn thành ThS. Lương Thị Ngọc Khánh – K. CNTT Nếu chuyển tác trước đó hoàn thành thì sẽ không xảy ra các vấn đề này, nhưng nếu chuyển tác trước đó chưa hoàn thành hay đang thực hiện chế độ rollback chúng ta sẽ phải đọc dữ liệu cũ, dữ liệu sai. 16
- ĐọC BảN GHI 2 LầN Khiđọc mẫu tin 2 lần trong một chuyển tác 10/31/12 trong khi chuyển tác khác chỉ thông báo về tình trạng dữ liệu trong một khoảng thời ThS. Lương Thị Ngọc Khánh – K. CNTT gian quy định. 17
- ĐọC CÁC BảN GHI KHÔNG CÓ (PHANTOMS) Nghĩa là chúng ta đọc được những bản ghi 10/31/12 không có. Vì những bản ghi đó xuất hiện không bị tác động bởi các lệnh update hoặc ThS. Lương Thị Ngọc Khánh – K. CNTT delete. Khác với 2 vấn đề trên phantoms là vấn đề liên quan đến hệ điều hành, nó không yêu cầu bất kỳ sơ đồ nào để mô tả. 18
- CậP NHậT MấT Dữ LIệU (LOST UPDATE) Xảy ra khi một chuyển tác cập nhật dữ liệu 10/31/12 vào cơ sở dữ liệu thành công, nhưng lại ghi đè lên dữ liệu của chuyển tác khác. ThS. Lương Thị Ngọc Khánh – K. CNTT Xảy ra khi 2 chuyển tác đang đọc mẫu tin dữ liệu, sau đó chuyển tác 1 ghi dữ liệu của bản ghi, chuyển tác 2 cũng ghi kết quả chỉ có chuyển tác 2 được cập nhật. 19
- CHế Độ LOCK Khóa chia sẻ (Share locks) 10/31/12 Đây là loại căn bản nhất, lock chia sẻ tài nguyen cho phép đọc dữ liệu, không cho phép thay đổi ThS. Lương Thị Ngọc Khánh – K. CNTT bất kỳ thuộc tính nào của tài nguyên. Khóa độc quyền (exclusive locks) Không tương thích với các loại khóa khác, khóa này ngăn ngừa 2 người sử dụng cùng cập nhật, xóa, thêm dữ liệu 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở dữ liệu đất đai
49 p | 647 | 80
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Tổng quan về cơ sở dữ liệu
21 p | 183 | 31
-
Bài giảng Cơ sở dữ liệu: Bài 1 - ĐH CNTT
15 p | 610 | 30
-
Bài giảng Cơ sở dữ liệu - Bài 2: Mô hình cơ sở dữ liệu quan hệ
43 p | 228 | 18
-
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 p | 107 | 13
-
Bài giảng Cơ sở dữ liệu: Chương 2 - ThS. Hoàng Mạnh Hà
68 p | 152 | 12
-
Bài giảng Cơ sở dữ liệu: Chương 1 - ThS. Hoàng Mạnh Hà
26 p | 190 | 10
-
Bài giảng Cơ sở dữ liệu - Chương 4: Chuẩn hóa cơ sở dữ liệu
30 p | 136 | 9
-
Bài giảng Cơ sở dữ liệu: Chương II - Bảng dữ liệu
108 p | 102 | 8
-
Bài giảng Cơ sở dữ liệu (Database): Chương 4 - TS. Đặng Thị Thu Hiền
82 p | 40 | 8
-
Bài giảng Cơ sở dữ liệu (Database): Chương 1 - TS. Đặng Thị Thu Hiền
53 p | 51 | 7
-
Bài giảng Cơ sở dữ liệu: Mở đầu - ThS. Lương Thị Ngọc Khánh
11 p | 178 | 6
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 2 - PGS.TS. Đỗ Phúc
55 p | 68 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 1 - GV. Đỗ Thị Kim Thành
21 p | 104 | 4
-
Bài giảng Cơ sở dữ liệu - Bài 1: Tổng quan
40 p | 112 | 4
-
Bài giảng Cơ sở dữ liệu (Database) - Chương 3: Thiết kế cơ sở dữ liệu logic
207 p | 35 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 2 - Trần Thị Dung
39 p | 8 | 4
-
Bài giảng Cơ sở dữ liệu (Database) - Chương 1: Các khái niệm cơ bản về hệ cơ sở dữ liệu
34 p | 70 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn