TRANSACTIONAL LÀ GÌ

  -  

Hey, kính chào mọi tín đồ, bây giờ bất ngờ mình nhận dc một câu hỏi của một anh cùng team "chụ bao gồm biết transaction là gì không?". Một câu hỏi tưởng như là không khó nhưng sẽ có tác dụng khó khăn bản thân :v vày ngơi nghỉ ngôi trường mình cũng chưa từng nghe qua quan niệm về transaction. Và cũng chủ yếu câu hỏi này đã khiến cho bản thân dành riêng thời hạn khám phá về nó

*
.

Bạn đang xem: Transactional là gì

Transaction là gì?

Transaction là 1 trong quy trình cách xử trí có các định điểm đầu với điểm cuối, được phân chia nhỏ tuổi thành những operation, các bước được thực thi một cách tuần từ và hiểu lập các operation kia theo cách thức toàn bộ gần như thành công xuất sắc hoặc một operation không thắng cuộc thì toàn cục quá trình đang thất bại. Nếu câu hỏi thực hiện một operation làm sao đó bị lỗi đồng nghĩa cùng với việc tài liệu phải trở lại tinh thần lúc đầu.

Nghe dường như cạnh tranh hiểu quá nhỉ

*
rước một vài ví dụ nhằm chúng ta dễ tưởng tượng nha:

lấy ví dụ 1: Một ví dụ đơn giản và dễ dàng nhất là Việc thực hiện thiết lập ứng dụng hoặc gỡ vứt ứng dụng. lấy một ví dụ này rất có thể được xem là một transaction vì chưng việc setup tuyệt gỡ vứt sẽ tiến hành tạo thành quá trình, triển khai một giải pháp tuần từ từ bỏ những bước đầu mang đến bước cuối, trường hợp toàn bộ quá trình xúc tiến thành công đồng nghĩa với Việc cài đặt hay gỡ vứt thành công xuất sắc với ngược trở lại, trường hợp một bước như thế nào kia không thắng cuộc thì quy trình cài đặt hoặc gỡ vứt này vẫn rollback trở lại cùng không tồn tại ngẫu nhiên biến đổi nào bên trên máy tính xách tay.

Ví dụ 2: Đây là 1 trong ví dụ rất rõ ràng về transaction, ví dụ này đó là bài toán triển khai giao dịch chuyển khoản. Tài khoản A giao dịch chuyển tiền mang đến tài khoản B thì bọn họ đề xuất thực hiện ít nhất 2 thao tác là trừ tiền sống tài khoản A và cùng chi phí vào thông tin tài khoản B. Nếu 1 trong các 2 thao tác làm việc bị không thắng cuộc thì Việc chuyển tiền sẽ bị thua cuộc với dữ liệu sẽ tiến hành trả lại nlỗi thời điểm thuở đầu.

Vậy để xác minh đâu là một transaction thì làm cho cầm cố nào? Để làm cho được điều đó họ đề xuất chăm chú đến các nguyên tố sau:

Trong các bước xử trí nên xác minh điểm đầu với điểm cuối, Tức là lúc nào quy trình ban đầu cùng lúc nào quy trình được xem như là xong.Tiến trình đề nghị được chia nhỏ tuổi thành các operationThực thi một biện pháp tuần từ các operationsTất cả những operation đầy đủ triển khai thành công xuất sắc thì các bước bắt đầu được xem như là thành công xuất sắc. Nếu duy nhất operation thực thi thất bại thì coi nlỗi tổng thể transaction là thất bại.Nếu transaction thất bại thì toàn thể dữ liệu yêu cầu quay trở về tinh thần ban đầu

Các vẻ bên ngoài của transaction

Transaction bao gồm những giao diện không giống nhau chúng được phân biện bởi Việc chia những operations ra sao. Có 2 vẻ bên ngoài transaction:

Flat Transaction: Việc chia các operation là ngang sản phẩm nhau. Thực thi những operation là tuần tự từ trái thanh lịch bắt buộc hoặc từ trên xuống bên dưới.Nested Transaction: Các operation lồng nhau, bài toán thực hiện những operation dựa vào chế độ từ trong ra bên ngoài. do đó khi chú ý vào hình mẫu vẽ chúng ta thấy các operation nghỉ ngơi dạng này có vẻ dựa vào vào với nhau cơ mà khi thực hiện chính vậy tự do theo chính sách operation vào thực hiện dứt thì mới mang đến operation ko kể.

Các nằm trong tính của Transaction

Atomicity: Một transaction xác định trẻ ranh giới của chính nó rất ví dụ, tức xác minh điểm bắt đầu với xong của quy trình. Như vậy rất có thể coi nó như một đơn vị chức năng tiến hành cùng đơn vị chức năng triển khai này thực hiện theo hình thức “all or nothing”. Nghĩa là giả dụ một yếu tố như thế nào kia trong transaction xúc tiến lỗi thì đồng nghĩa cùng với bài toán không có gì xẩy ra tức không có gì biến đổi về khía cạnh tài liệu.Consistency: Dữ liệu đồng bộ cùng với transaction ở thời gian bắt đầu cùng ngừng tuyệt bảo đảm rằng Database thay đổi một biện pháp đúng chuẩn tâm lý theo một transaction đã có được commit thành công.Isolation: Các transaction có công dụng chuyển động một cách tự do và ko tương quan mang đến nhau.Durability: Dữ liệu của transaction sau thời điểm triển khai kết thúc được cố định và thắt chặt, đồng ý và bền bỉ. Nghĩa là các thay đổi đã làm được cố định và thắt chặt, không tồn tại cthị trấn rất có thể đưa lại tâm trạng dữ liệu dịp trước khi tiến hành transaction.

Xem thêm: Industrial Design Là Gì - Kiểu Dáng Công Nghiệp (Industrial Design) Là Gì

Tìm phát âm về các Isolation Levels trong Transaction

Nhỏng sẽ kể ở trên Isolation là những transaction có chức năng hoạt động một phương pháp chủ quyền và không liên quan mang đến nhau. Các Isolation Levels được khẳng định thông qua các hiện tượng kỳ lạ sau:

Dirty Reads điều đó xảy ra khi 1 transaction tiến hành hiểu tài liệu nhưng chưa được commited. Ví dụ: transaction A cập nhập 1 dữ liệu, transaction B gọi tài liệu sau thời điểm A cập nhật xong. Nhưng bởi lý do làm sao kia A không commit thành công xuất sắc, dự liệu trở lại trạng thái lúc đầu, lúc ấy tài liệu của B đổi thay Dirty.Nonrepeatable reads xẩy ra lúc một transaction hiểu thuộc 1 tài liệu gấp đôi dẫu vậy lại nhấn giá tốt trị khác biệt. Ví dụ: transaction A gọi 1 tài liệu, transaction B cập nhật xóa dữ liệu đó. Nếu A hiểu lại dữ liệu đó nó đã mang những giá trị là khác biệt.Phantom reads là khủng hoảng rủi ro xảy ra cùng với lệnh read có điều kiện. Ví dụ: mang sử transaction A phát âm một tập hòa hợp những dữ liệu đáp ứng nhu cầu một trong những ĐK tra cứu tìm, transaction B tạo nên một tài liệu mới khớp với ĐK được tra cứu kiếm mang lại transaction A. Nếu A tiến hành lại cùng với điều kiện điều này thì nó đã nhấn dc một tập phù hợp những dữ liệu là không nhất quán.

bởi vậy, nhằm tránh khỏi những trường phù hợp nói trên chúng ta rất cần phải khóa tài liệu, cấm đoán gần như tiến trình cách xử lý không giống thực hiện các operations trên tài liệu Khi transaction hiện vẫn đang thao tác làm việc với việc khóa này sẽ tiến hành giải pngóng sống cuối transaction. Có 3 các loại khóa tài liệu là: write locks, read locks, rang locks. Isolation Levels chỉ ra rằng hầu hết cường độ khóa khác biệt. Dưới đấy là những Isolation Levels:

*

Read uncommitted lúc transaction tiến hành ở tầm mức này, các truy nã vấn vẫn hoàn toàn có thể truy hỏi nhập lệ những phiên bản ghi đang được update do một transaction không giống với nhận ra tài liệu trên thời đặc điểm này tuy vậy tài liệu đó không được commit. Nếu bởi vì nguyên do như thế nào đó transaction lúc đầu rollbaông chồng lại những cập nhật, tài liệu đang quay trở lại giá trị cũ. khi kia transaction lắp thêm hai cảm nhận tài liệu sai.

Read committed Transaction sẽ không còn phát âm được tài liệu đang rất được cập nhật nhưng mà phải hóng cho đến lúc vấn đề cập nhật tiến hành ngừng. Vì cố gắng nó tránh được dirty read như ở tại mức bên trên.

Repeatable read Mức isolation này vận động nhứ đọng mức read commit tuy nhiên nâng thêm 1 mức nữa bằng phương pháp ngăn quán triệt transaction ghi vào tài liệu đang rất được phát âm bởi một transaction khác cho đến Khi transaction không giống đó hoàn toàn.

Serializable Đây là nấc cao nhất của isolation levels, đảm bảo an toàn read cùng write locks. Trong trường đúng theo phxay read có mệnh đề ĐK, Serializable cũng cần đòi hỏi range loông xã để rời phantom reads.

Xem thêm: Là Gì? Nghĩa Của Từ Nl Là Gì ? Viết Tắt Của Nước Nào? Chị Ơi, Em Nghe Người Ta Hay Gọi Chụy Là Ngọc Nl

Kết luận:

Nói tóm lại transaction giúp chúng ta cũng có thể toàn diện dữ liệu. "Toàn vẹn dữ liệu" đặc điểm này quen nè ngơi nghỉ trường các thầy cũng xuất xắc bảo bọn họ là bắt buộc toàn diện dữ liệu thì ra nó đó là transaction. Hóa ra bản thân cũng rất được học kia chỉ là phiên phiên bản tiếng việt nhưng thôi :v. Bài viết này còn có sự tham khảo từ:

https://www.tutorialspoint.com/sql/sql-transactions.htm

https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-2017

Cảm ơn chúng ta sẽ quan sát và theo dõi. Chúc các bạn học tập tác dụng. Bài viết có nhiều thiếu hụt sót mong muốn chúng ta thông cảm.