Có nhiều định nghĩa khác nhau về giao dịch, vui lòng cho phép một định nghĩa bên dưới.
Giao dịch là một điểm bắt đầu và kết thúc xác định của quá trình xử lý, được phân tách thành các hoạt động, được thực hiện tuần tự và độc lập với các hoạt động đó, nguyên tắc là Tất cả đã thành công hoặc Một thao tác không thành công, toàn bộ quá trình không thành công. Nếu thao tác không thành công, điều đó có nghĩa là dữ liệu phải được khôi phục về trạng thái ban đầu. Vì vậy, nói rộng ra, một giao dịch không phải là bất kỳ thuật ngữ kinh doanh cụ thể nào, cũng không phải là thuật ngữ bị ràng buộc với kho lưu trữ dữ liệu (bao gồm cả rdbms – cơ sở dữ liệu quan hệ). Giao dịch là một thuật ngữ chung được thiết kế cho một quy trình trong phần mềm có các yêu cầu được liệt kê trong định nghĩa của nó. Ví dụ: quy trình cài đặt hoặc gỡ bỏ phần mềm đơn giản nhất có thể được coi là một giao dịch. Quá trình cài đặt được chia thành nhiều bước, được thực hiện tuần tự từ đầu đến cuối và nếu tất cả các bước được thực hiện thành công có nghĩa là phần mềm đã được cài đặt hoặc gỡ bỏ thành công hoặc ngược lại, thì quy trình phải được khôi phục, tức là sẽ không có gì thay đổi trên máy tính (ghi file, chỉnh sửa registry,…) chúng ta cần lưu ý 5 yếu tố chính để xác định xem nó có bị sao không? 1 . Quá trình xử lý cần xác định chính xác nơi nó bắt đầu và kết thúc, tức là khi nào nó bắt đầu và khi nào nó kết thúc, không có sự mơ hồ về ranh giới. 2. Quá trình phải được phân tách thành các hoạt động – các thực thi đến mức chúng không thể được chia nhỏ hơn nữa. 3. Thực hiện các thao tác theo trình tự. Có hai nguyên tắc cơ bản: từ trên xuống dưới (từ trái sang phải hoặc từ trên xuống dưới) và từ trong ra ngoài. Việc thực hiện thao tác là độc lập, không có trường hợp thực hiện thao tác a rồi quay lại thực hiện thao tác b rồi quay lại thực hiện thao tác a. 4. Một quy trình được coi là thành công nếu nó tuân theo nguyên tắc “tất cả hoặc không có gì” hoặc nếu tất cả các hành động được thực hiện thành công. Chỉ cần một thao tác không thành công thì toàn bộ giao dịch coi như thất bại. 5. Nếu giao dịch không thành công, tất cả dữ liệu (dữ liệu chung, có thể là dữ liệu trong bộ nhớ, tệp trên đĩa cứng, dữ liệu trên thiết bị ngoại vi, dữ liệu trong cơ sở dữ liệu quan hệ,…) phải được trả lại (rolled back) về trạng thái ban đầu. Tức là dữ liệu mới tạo phải bị xóa, dữ liệu đã sửa phải đổi thành dữ liệu đúng trước khi sửa, dữ liệu đã xóa phải khôi phục lại,…
Xem thêm: Transactions là gì
Các loại giao dịch Cách phân biệt các loại giao dịch thông qua việc phân chia nghiệp vụ. Có hai loại (mô hình) giao dịch – mô hình giao dịch là: 1. Giao dịch phẳng – point-to-point: việc phân chia thao tác là point-to-point, và thứ tự thao tác là từ trái sang phải hoặc từ trên xuống dưới. 2. giao dịch lồng nhau – nested: thao tác lồng nhau Việc thực hiện thao tác dựa trên nguyên tắc từ trong ra ngoài. Như vậy khi nhìn vào hình ta có thể thấy các thao tác ở dạng này tưởng như phụ thuộc vào nhau nhưng khi thực thi lại độc lập theo nguyên tắc trong ngoài tác động trước sau.
Đang xem: Vị từ và lượng vị từ
Tính axit trong giao dịch. Các mô hình axit được liên kết chặt chẽ với cơ sở dữ liệu quan hệ. Tuy nhiên, chúng ta cũng có thể áp dụng các tính chất này trong các giao dịch chung. Hãy xem xét các tính chất của axit một cách chi tiết dưới đây. Tính nguyên tử – Tính đồng nhất: Một giao dịch xác định rất rõ ràng ranh giới của nó, điểm bắt đầu và điểm kết thúc của quá trình. nộp. Như vậy, nó có thể được coi là một đơn vị thực thi tuân theo nguyên tắc “tất cả hoặc không có gì”. Điều này có nghĩa là nếu một thành phần của giao dịch không thành công thì sẽ không có gì xảy ra, tức là không có dữ liệu nào thay đổi. Tính nhất quán – Tính nhất quán: Dữ liệu dữ liệu nhất quán với các giao dịch ở đầu và cuối. Tính nhất quán của giao dịch là tính nhất quán cao. Để có cái nhìn sâu hơn về tính nhất quán, hãy đọc bài viết nosql. Cô lập – Độc lập: Nếu hai giao dịch được thực hiện đồng thời thì nguyên tắc thực hiện là độc lập. Điều này có nghĩa là một giao dịch không thể “nhìn thấy” một giao dịch khác. “Unseen” ở đây có nghĩa là không có sự tương tác với nhau, chủ yếu là dữ liệu. Persistence – Tính lâu dài: Dữ liệu sau khi thực hiện giao dịch là cố định, chính thức và lâu dài. Có nghĩa là các thay đổi đã được sửa và không thể hoàn nguyên về trạng thái của dữ liệu trước khi giao dịch. Rủi ro khi thực hiện giao dịch Có ba rủi ro chính khiến một giao dịch được thực hiện có thể thất bại. 1. Thực hiện thao tác bị gián đoạn: Rõ ràng điều này sẽ dẫn đến các giao dịch bị hỏng. Điều này được quy định trong định nghĩa của giao dịch.2. Sự cố về phần cứng và mạng: Sự cố về phần cứng hoặc mạng trong quá trình thực hiện giao dịch có thể khiến quá trình xử lý không thành công. 3. Vấn đề chia sẻ dữ liệu: Đây là vấn đề khó nhất. Rõ ràng dữ liệu là một tài nguyên được chia sẻ, vì vậy các giao dịch sẽ gặp rủi ro khi xử lý dữ liệu được chia sẻ này. Chúng ta hãy xem xét kỹ hơn bên dưới Như chúng ta đã biết, phần mềm được viết để xử lý dữ liệu, hai thao tác cơ bản của phần mềm trên dữ liệu là đọc và ghi (read and write) trong đó. Thao tác viết lại được phân tách thành ba thao tác nhỏ hơn là chèn (thêm mới), cập nhật (sửa) và xóa (xóa). Dữ liệu là tài nguyên dùng chung, nếu có nhiều tiến trình xử lý thực hiện đồng thời các hoạt động khác. Rủi ro đối với dữ liệu được cho phép: ghi-ghi, ghi-đọc, v.v.. Dữ liệu được ghi đồng thời gây hỏng dữ liệu hoặc dữ liệu đọc không nhất quán với dữ liệu mới ghi, v.v., sẽ được mô tả chi tiết dưới đây .
Mức cô lập giao dịch Như đã đề cập ở trên, mức cô lập là một thuộc tính giao dịch giúp tránh rủi ro phải chia sẻ dữ liệu với các quy trình khác. Khi có 2 tiến trình xử lý trở lên cùng lúc, chúng ta có khả năng gặp phải Database exception – ngoại lệ cơ sở dữ liệu (còn gọi là hiện tượng đọc – read problem hay sự cố cô lập) Chủ yếu có 3 loại Loại: Đọc bẩn xảy ra khi giao dịch a ghi dữ liệu và giao dịch b tiếp tục đọc dữ liệu sau khi ghi. Tuy nhiên, vì một lý do nào đó, giao dịch a không thể được cam kết, do đó các thay đổi bằng văn bản không được chấp nhận và dữ liệu được khôi phục về trạng thái ban đầu, khi đó dữ liệu của b sẽ bị bẩn. Đọc không thể lặp lại xảy ra khi giao dịch a đọc dữ liệu, sau đó giao dịch b thực hiện thao tác ghi để thay đổi dữ liệu và lần tiếp theo a tự đọc dữ liệu. Vì vậy, 2 lần đọc tìm thấy dữ liệu không nhất quán (consistency) trên cùng một bản ghi. Đọc ảo là rủi ro của các lệnh đọc có điều kiện (chẳng hạn như mệnh đề where trong SQL). Giao dịch a đọc một lượng dữ liệu x nhất định thỏa mãn điều kiện 1 và giao dịch b thực hiện thao tác ghi để tạo ra một lượng dữ liệu y nhất định đáp ứng điều kiện. A tính toán lại với điều kiện 1 và tìm thấy một lượng dữ liệu y bổ sung. Tổng dữ liệu nằm trong khoảng từ 2 trở lên Số lần không đồng nhất. Vì vậy, để tránh những trường hợp cơ sở dữ liệu gặp bất thường, chúng ta cần khóa dữ liệu – lock data để ngăn chặn các tiến trình xử lý khác thực hiện các thao tác trên dữ liệu. Khi giao dịch hiện đang hoạt động, khóa này sẽ được giải phóng (giải phóng) khi kết thúc giao dịch. Có 3 loại khóa khác nhau bao gồm khóa ghi, khóa đọc, khóa rang và mức cô lập, biểu thị các mức khóa khác nhau trên dữ liệu, hay nói cách khác là các mức độ “che giấu” khác nhau của một giao dịch với các giao dịch đang diễn ra khác. đồng thời. Sau đây là danh sách các mức cô lập: có thể tuần tự hóa: Đây là mức cô lập cao nhất, đảm bảo khóa đọc-ghi. Trong trường hợp đọc với các mệnh đề có điều kiện, tuần tự hóa cũng yêu cầu khóa phạm vi để tránh đọc ảo. số lần đọc lặp lại: Đây là một tuần tự hóa cấp thấp hơn có khóa đọc-ghi nhưng không yêu cầu khóa phạm vi. Trong trường hợp này, đọc ảo có thể xảy ra. đã cam kết đọc: Chỉ bao gồm các khóa ghi, do đó, việc đọc đã cam kết chỉ đảm bảo rằng các lần đọc bẩn sẽ không xảy ra. không cam kết đọc: Mức cô lập thấp nhất. Có thể xảy ra cả ba lần đọc bẩn, đọc không lặp lại và đọc ảo. Tài nguyênibm: http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2frzaha %2ftransiso.htmaptech Sách: ejb 2wikipedia: http://vi .wikipedia.org/wiki/transaction_processinghttp://en.wikipedia.org/wiki/database_transactionhttp://en.wikipedia.org/wiki/atomic_transaction
Tham khảo: Tác dụng đá thạch anh xanh dương trong ý nghĩa phong thuỷ