intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu: Chương 7 - ThS. Lương Thị Ngọc Khánh

Chia sẻ: Minh Minh | Ngày: | Loại File: PDF | Số trang:26

82
lượt xem
9
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu: Chương 7 - ThS. Lương Thị Ngọc Khánh

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8.  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
  9. 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] [
  10.  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
  11. 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
  12. 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
  13. 10/31/12 ThS. Lương Thị Ngọc Khánh – K. CNTT 13 VÍ Dụ TRANSACTION
  14. 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
  15. 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
  16. Đọ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
  17. Đọ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
  18. Đọ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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2