Tải bản đầy đủ (.ppt) (15 trang)

công nghệ ado.net cới c# - thực thi các hoạt động xử lý theo quan điểm giao tác (transaction)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (133.38 KB, 15 trang )

11
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>22
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Thực thi các hoạt động xử lý theo
quan điểm giao tác (Transaction)
1.Giao tác là gì?
2.Xử lý đối với Local Transaction
3.Xử lý đối với Distributed Transaction
4.Các cấp độ cô lập (Isolation Level)
33
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>1. Giao tác là gì?

Giao tác được xem như một công việc (không
thể phân chia thêm nữa)

Giao tác được xem là thành công khi tất cả
các thao tác thực hiện thành công

Giao tác được xem là thất bại khi chỉ cần một
thao tác thất bại

.NET Framework hỗ trợ các loại giao tác

Local Transaction

Distributed Transaction


44
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>1. Giao tác là gì?

Các tính chất ACID của giao tác

Atomicity: tính không thể phân chia

Consistency: tính nhất quán

Isolation: tính cô lập

Durability: tính bền vững
55
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>2. Xử lý đối với Local Transaction

B1: Mở Connection

B2: Bắt đầu một Transaction

B3: Tạo Command hoạt động trong
Transaction

B4: Thực hiện Command

B5: Chấm dứt Transaction với
Commit/Rollback

66
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Các Transaction trong .NET

System.Data.SqlClient.SqlTransaction

System.Data.OleDbClient.OleDbTransaction

System.Data.Odbc.OdbcTransaction

System.Data.OracleClient.OracleTransaction
77
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>3. Xử lý với Distributed Transaction

B1: Tạo đối tượng TransactionScope

B2: Mở các Connection

B3: Tạo và thực hiện các Command

B4: Nếu thực hiện thành công các Command
thì đánh dấu Transaction là Complete

B5: Giải phóng đối tượng TransactionScope
88
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM

/>4. Các cấp độ cô lập

Khi tạo Transaction có thể xác định cấp độ cô
lập để xác lập ảnh hưởng giữa các Transaction

Các Transaction cùng truy xuất dữ liệu giống
nhau tại cùng thời điểm có thể gây ra các lỗi

Dirty read: đọc dữ liệu chưa được Commit

Non-repeatable read: đọc không nhất quán

Phantom read: đọc không bình thường
99
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Lỗi Dirty read

Transaction thứ nhất (T1) đang cập nhật
nhưng chưa Commit

T2 có thể đọc thấy dữ liệu chưa được Commit
của T1
1010
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Lỗi Non-repeatable read

T1 đang đọc dữ liệu đã được Commit


T2 có thể cập nhật dữ liệu này

T1 đọc lại và thấy có sự thay đổi
1111
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Lỗi Phantom read

T1 đang đọc dữ liệu đã được Commit và dữ
liệu được đọc theo các điều kiện

T2 có thể cập nhật dữ liệu liên quan đến các
điều kiện

T1 đọc lại và thấy có sự thay đổi
1212
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>IsolationLevel của Transaction

ReadUncommited

ReadCommited (cấp độ mặc định)

RepeatableRead

Serializable
1313
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM

/>Isolation Levels
1414
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Minh họa Isolation Level

Cấp độ ReadUnCommited
1515
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
/>Thực hành

Thực hiện các thao tác cập nhật trong cùng
một giao tác

×