15
1 1 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/

Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

Embed Size (px)

DESCRIPTION

Giao tác là gì? Xử lý đối với Local Transaction Xử lý đối với Distributed Transaction Các cấp độ cô lập (Isolation Level)

Citation preview

Page 1: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

11

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Page 2: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

22

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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)

Page 3: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

33

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 4: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

44

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 5: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

55

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 6: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

66

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Các Transaction trong .NET

•System.Data.SqlClient.SqlTransaction

•System.Data.OleDbClient.OleDbTransaction

•System.Data.Odbc.OdbcTransaction

•System.Data.OracleClient.OracleTransaction

Page 7: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

77

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 8: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

88

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 9: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

99

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 10: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1010

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 11: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1111

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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

Page 12: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1212

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

IsolationLevel của Transaction

•ReadUncommited

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

•RepeatableRead

•Serializable

Page 13: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1313

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Isolation Levels

Page 14: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1414

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa Isolation Level

•Cấp độ ReadUnCommited

Page 15: Bài 4 : Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction)

1515

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

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

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