1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuong vi transaction

53 0 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 2,16 MB

Nội dung

CHƯƠNG VI: GIAO TÁC GV: TUẤN NGUYÊN HOÀI ĐỨC Email: tnhduc@fit.hcmus.edu.vn Nội dung trình bày • Giao tác (Transac.on) • Xử lý đồng thời (Concurrency) • Chế độ khóa • Khai báo tường minh giao tác • Mức lập • Các cấp độ khóa • Dead-lock Chương VI : Giao tác Giao tác (transac7on) • Khái niệm • Chúng ta xây dựng CSDL để lưu trữ thông :n khai thác thông :n Công việc gọi chung xử lý thơng :n • Thực tế tồn bước xử lý thông :n tạo nên đơn nguyên (atom) : bước xử lý thực hết, không thực bước • Những đơn nguyên gọi giao tác (transac:on) Chương VI : Giao tác Giao tác (transaction) • Ví dụ : chuyển khoản 100$ từ tài khoản A sang tài khoản B (50$) tài khoản C (50$) Các bước thực gồm : • Trừ 100$ khỏi tài khoản A • Nếu số dư A < khơi phục số dư cũ ngưng • Nếu số dư A >=0 • Cộng 50$ vào tài khoản B • Cộng 50$ vào tài khoản C • Nếu số dư A = tất tốn tài khoản A Chương VI : Giao tác Giao tác (transac7on) • Ví dụ : • Giả sử vừa trừ :ền khỏi tài khoản A cố kỹ thuật sảy bước :ếp theo không thực 100$ Khơng chấp nhận • Các bước xử lý nêu làm phải làm cho hết, ngược lại khơng làm bước chúng tạo thành transac:on, nói cách khác đơn vị công việc nguyên tố Chương VI : Giao tác Giao tác (transaction) • Các anh chất : • Tính nguyên tố (Atomic) : Một giao tác đơn nguyên (atom), nghĩa công việc khơng tách rời • Tính qn (Consistent) : Một giao tác làm thay đổi wnh trạng CSDL, không làm xnh quán vốn có CSDL Chương VI : Giao tác Giao tác (transac7on) • Các anh chất : • Tính lập (Isolated) : Cơng việc giao tác bị chi phối phá hoại giao tác khác • Tính vững bền (Durable) : Kết làm việc giao tác phải lưu trữ bền vững vào CSDL Chương VI : Giao tác Giao tác (transaction) • Các $nh chất : • Atomic • Consistent • Isolated • Durable ACID Chương VI : Giao tác Giao tác (transac7on) • Các kiện giao tác • Begin tran : Giao tác bắt đầu • Commit tran : Giao tác hồn tất thành cơng • Rollback tran : Giao tác thất bại bị chấm dứt, thay đổi thực liệu bị hủy bỏ, liệu khơi phục trạng thái cũ Khơng có tác dụng biến cục • Save tran (khơng quy) : Ghi nhận bền vững phần kết giao tác xnh đến thời điểm save tran Chương VI : Giao tác Nội dung trình bày • Giao tác (Transac.on) • Xử lý đồng thời (Concurrency) • Chế độ khóa • Khai báo tường minh giao tác • Mức lập • Các cấp độ khóa • Dead-lock Chương VI : Giao tác 10 Mức cô lập cho giao tác Chương VI : Giao tác 39 Nội dung trình bày • Giao tác (Transac.on) • Xử lý đồng thời (Concurrency) • Chế độ khóa • Khai báo tường minh giao tác • Mức lập • Các cấp độ khóa • Dead-lock Chương VI : Giao tác 40 Các cấp độ khóa • Đặt vấn đề : Mức lập chưa đủ • Mức lập định cách phát giữ khóa S transac:on có hiệu lực tất thao tác đọc transac:on • Thực tế, ta cần phát giữ khóa S theo cách khác cho thao tác đọc khác transac:on • Ngồi ra, ta cần dùng nhiều dạng khóa linh động khóa S đơn giản Chương VI : Giao tác 41 Các cấp độ khóa • Khái niệm • Cấp độ khóa loại khóa khác (khơng khóa S) gắn vào table mệnh đề from thao tác select • Ngồi lệnh select, cấp độ khóa cịn gắn vào câu lệnh cập nhật, nhiên ta quan tâm câu select Chương VI : Giao tác 42 Các cấp độ khóa • Các cấp độ khóa • Read Uncommited / No lock • Read Commited (mặc định) • Repeatable • Serializable / Hold lock • Updlock • Tablock • TablockX • ReadPast…… Chương VI : Giao tác 43 Các cấp độ khóa • Cách thiết lập Select … From {Tab1 Alias1 with Lock_mode [,…n]} [,…n] Where … • Ví dụ : Select SV.HoVaTen, K.TenKhoa From SinhVien SV with ReadCommited, Khoa K with Updlock Where SV.Khoa = K.Ma And Year(SV.NgaySinh) >= 1983 Chương VI : Giao tác 44 Các cấp độ khóa • Phối hợp với Isola.on Level • Trong transac:on ln có thao tác yêu cầu bảo vệ nghiêm ngặt thao tác yêu cầu bảo vệ nghiêm ngặt • Dùng Isola:on level ứng với yêu cầu bảo vệ nghiêm ngặt • Bổ sung lock mode vào thao tác yêu cầu bảo vệ nghiêm ngặt mức mà Isola:on level cung cấp Chương VI : Giao tác 45 Các cấp độ khóa • Khóa với liệu cursor • Nếu cursor loại —nh (sta:c) đơn vị liệu đọc lock vừa Open cursor • Nếu cursor loại động (Dynamic) fetch đến đâu khóa đến • Cách phát khóa giữ khóa mức lập connec:on lock mode câu select định nghĩa cursor định Chương VI : Giao tác 46 Nội dung trình bày • Giao tác (Transac.on) • Xử lý đồng thời (Concurrency) • Chế độ khóa • Khai báo tường minh giao tác • Mức lập • Các cấp độ khóa • Dead-lock Chương VI : Giao tác 47 Dead lock • Khái niệm • Khi xử lý đồng thời, không tránh khỏi việc transac:on phải chờ đợi transac:on khác • Nếu lý mà hai transac:on lại chờ lẫn vĩnh viễn, khơng hai hồn thành ta gọi tượng Dead Lock Chương VI : Giao tác 48 Dead lock • Phân loại • Cyclic Deadlock • Conversion Deadlock Chương VI : Giao tác 49 Dead lock • Phân loại • Cyclic Deadlock T1 Giữ X lock Trên đơn vị DL Đơn vị DL T2 DEAD LOCK Đơn vị DL Đơn vị DL Giữ X lock Trên đơn vị DL Đơn vị DL Đòi phát lock Trên đơn vị DL Đòi phát lock Trên đơn vị DL Chương VI : Giao tác 50 Dead lock • Phân loại • Conversion Deadlock T1 T2 Giữ S-Lock Giữ S-Lock Nâng cấp thành X-Lock Đơn vị liệu A DEAD LOCk Chương VI : Giao tác Nâng cấp thành X-Lock 51 51 Dead lock • Khi dead lock sảy • SQL Server chọn transac:on gây dead lock để hủy bỏ, transac:on lại :ếp tục thực hồn tất • Transac:on bị chọn hùy bỏ transac:on mà SQL ước xnh chi phí cho phần việc làm transac:on cịn lại Chương VI : Giao tác 52 Hết chương VI Chương VI : Giao tác 53

Ngày đăng: 06/04/2023, 09:30

w