Giao tác– transaction + thực hành kèm SOURCE

20 813 2
Giao tác– transaction + thực hành kèm SOURCE

Đ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

Giao tác – Transaction 1 N i dung:ộ  Các khái niệm giao tác và khóa:  Các thuộc tính của giao tác  Các loại giao tác  Các mức giao tác  Một số vấn đề liên quan giao tác  Giao dịch và khóa  Bài tập thực hành giao tác 2 Giao tác - transaction  Một transaction hay một giao tác là một loạt các hoạt động xảy ra được xem như một công việc đơn. Nghĩa là hoặc thành công toàn bộ hoặc không làm gì cả.  Ví dụ: chúng ta muốn chuyển $500 từ account A sang account B. Như vậy công việc này cần các bước sau:  Trừ $500 từ account A.  Cộng $500 từ account B. 3 Giao tác - transaction  Khi nào giao tác được xem là hoàn tất (commited)?  Nếu vì lý do nào đó chỉ thực hiện được bước 1? 4 Giao tác – transaction (tt) 5 Mô hình giao tác trong SQL  Giao tác SQL được định nghĩa dựa trên các câu lệnh sau:  BEGIN TRANSACTION: Bắt đầu một giao tác.  SAVE TRANSACTION: Quay lui trở lại đầu giao tác hoặc một điểm đánh dấu trước đó trong giao tác.  COMMIT TRANSACTION: Đánh dấu điểm kết thúc một giao tác (khi thành công).  ROLLBACK [WORK]: Quay lui trở lại đầu giao tác.  COMMIT [WORK]: Đánh dấu kết thúc giao tác. 6 Giao tác (tt)  Ví dụ: Lệnh ROLLBACK TRANSACTION. BEGIN TRANSACTION Test_trans UPDATE Employees SET LastName=‘Phuc” WHERE EmployeeID=1 ROLLBACK TRANSACTION Test_trans 7 Giao tác (tt)  Câu lệnh: SAVE TRANSACTION tên  Đánh dấu một vị trí trong giao tác.  Trạng thái hiện tại được ghi lại trong giao tác.  Câu lệnh: ROLLBACK TRANSACTION tên  Hủy bỏ những thay đổi từ điểm đánh dấu đến trước câu lệnh này. 8 Giao tác (tt) 9 Giao tác (tt)  Ví dụ: dùng điểm đánh dấu để quay lại. BEGIN TRANSACTION Test_trans SAVE TRANSACTION save_tras UPDATE Employees SET LastName=‘Phuc” WHERE EmployeeID=1 ROLLBACK TRANSACTION save_tras 10 [...].. .Giao tác (tt)  Giao tác lồng nhau: các giao tác có thể được lồng nhau theo từng cấp Ví dụ: Ta có bảng SINHVIEN(MSSV,TENSV)  Ta xét giao tác sau: BEGIN TRANSACTION  INSERT INTO SV VALUES('01','DONG') INSERT INTO SV VALUES('02','TAY') SAVE TRANSACTION S1 INSERT INTO SV VALUES('03','NAM') ROLLBACK TRANSACTION S1 INSERT INTO SV VALUES('04','BAC') COMMIT TRANSACTION Các thuộc tính của giao dịch... Time TRANSACTION 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 BEGIN TRAN S-LOCK READ_ITEM(X) UNLOCK X-LOCK X=X-5 WRITE_ITEM(X) TRANSACTION 2 X=50 X=45 X=45 BEGIN TRAN S-LOCK WAIT ROLLBACK X=50 S-LOCK READ_ITEM(X) UNLOCK X-LOCK X=X+10 WRITE_ITEM(X) X=50 X=60 X=60 19 Bài thực hành 01  Lần lượt thực hiện các thao tác ứng với các bài 1, 2 …và 7 trên 2 file Transaction1 và Transaction2 ” (xem 2 file gửi kèm) ... khi giao dịch được xác nhận Các loại giao dịch  Giao dịch tường minh  Giao dịch ngầm định  Giao dịch xác định tự động Các mức giao dịch  Read Uncommited: Không đưa ra các khóa dùng chung    và do đó có thể đọc dữ liệu khi chưa xác nhận Read commited: Đây là mức mặc định riêng trong SQL SQL Server sử dung khóa dùng chung trong quá trình đọc dữ liệu Giao dịch khác đọc được dữ liệu chỉ khi giao. .. (Atomicity): Giao dịch phải là một    thao tác trọn vẹn Các thành phần của một giao dịch là không thể phân chia được Tính nhất quán (Consistency): Khi giao dịch hoàn thành thì dữ liệu của CSDL phải luôn luôn ở trạng thái nhất quán Tính riêng biệt (Isolation): Tất cả các giao dịch đều phải thể hiện được tính riêng biệt khi có sự thay đổi dữ liệu trong csdl Tính bền vững (Durability): Giao dịch chỉ... vấn Do đó, giao dịch khác sẽ không thể cập nhật dữ liệu đã bị khóa Serializable: Đây là mức an toàn dữ liệu cao nhất Ở mức này, nó ngăn chặn người dùng khác trong lúc cập nhật dữ liệu đến khi giao dịch tương ứng hoàn thành Một số vấn đề: MỨC UNCOMMITTED Time TRANSACTION 1 TRANSACTION 2 1 2 3 4 5 6 7 8 9 10 BEGIN TRAN READ_ITEM(X) X=50 X=X-5 X=45 WRITE_ITEM(X) X=45 BEGIN TRAN READ_ITEM(X) X=X+10 ROLLBACK... với các xử lý như insert, update và delete Các giao dịch khác không được phép đọc hay thay đổi các mục dữ liệu mà nó đang được xlock Share lock (S-lock): được dùng với các xử lý để đọc thông tin Các giao dịch khác được phép đọc các mục dữ liệu nhưng nó không được phép thay đổi Một S-lock chỉ được yêu cầu khi không có X-Lock Một X-lock chỉ được yêu cầu khi giao dịch khác không có S-lock trên mục dữ liệu... khi lệnh Update chưa thực thi, thực thi rồi ở chế độ Exclusive locks Khóa - Lock Schema locks: khi định nghĩa bảng bị thay đổi, ví dụ: khi thêm cột mới vào bảng,…  Bulk update locks: đây là khóa đặc biệt  Ví dụ: nếu bạn muốn chắc rằng không ai đang thay đổi dữ liệu, dùng từ khóa NOLOCK SELECT * FROM EMPLOYEES WITH (NOLOCK)  Giao dịch và khóa  Bên trong các mục dữ liệu giao dịch luôn được khóa  ... các hành động trên đối tượng có thể gây ra xung đột Có nghĩa là bạn không thể làm gì trên đối tượng đó nếu có người khác đang truy cập Chế độ Lock:    Shared locks: người dùng có thể đọc dữ liệu nhưng không thể sửa Exclusive locks: ngăn ngừa 2 người sử dụng cùng cập nhật mẩu tin cùng lúc Update locks: là kết hợp giữa Shared locks và Exclusive locks, ở chế độ Shared locks khi lệnh Update chưa thực . Giao tác – Transaction 1 N i dung:ộ  Các khái niệm giao tác và khóa:  Các thuộc tính của giao tác  Các loại giao tác  Các mức giao tác  Một số vấn đề liên quan giao tác  Giao dịch. khóa  Bài tập thực hành giao tác 2 Giao tác - transaction  Một transaction hay một giao tác là một loạt các hoạt động xảy ra được xem như một công việc đơn. Nghĩa là hoặc thành công toàn. B. 3 Giao tác - transaction  Khi nào giao tác được xem là hoàn tất (commited)?  Nếu vì lý do nào đó chỉ thực hiện được bước 1? 4 Giao tác – transaction (tt) 5 Mô hình giao tác trong SQL  Giao

Ngày đăng: 23/10/2014, 13:33

Mục lục

  • Slide 1

  • Nội dung:

  • Giao tác - transaction

  • Giao tác - transaction

  • Giao tác – transaction (tt)

  • Mô hình giao tác trong SQL

  • Giao tác (tt)

  • Giao tác (tt)

  • Giao tác (tt)

  • Giao tác (tt)

  • Giao tác (tt)

  • Các thuộc tính của giao dịch

  • Các loại giao dịch

  • Các mức giao dịch

  • Một số vấn đề:

  • Khóa - Lock

  • Khóa - Lock

  • Giao dịch và khóa

  • Giải quyết vấn đề đọc dữ liệu rác:

  • Bài thực hành 01

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

Tài liệu liên quan