Techmaster Việt Nam – Học là có việc

Giao dịch có nhiều định nghĩa khác nhau, hãy cho phép tôi đưa ra một định nghĩa bên dưới.

Giao dịch là một quá trình xác định điểm bắt đầu và điểm kết thúc, được chia nhỏ thành các hoạt động , được thực hiện tuần tự. Và các hoạt động này được thực hiện độc lập theo nguyên tắc tất cả đều thành công hoặc nếu một hoạt động không thành công, toàn bộ quá trình thất bại . Nếu một 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 (quay lại) về trạng thái ban đầu . Vì vậy, nói chung, giao dịch không phải là bất kỳ thuật ngữ kinh doanh cụ thể nào, không phải là một thuật ngữ ràng buộc với các kho lưu trữ dữ liệu (bao gồm rdbms – cơ sở dữ liệu quan hệ). Giao dịch là một thuật ngữ chung được đặt ra 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. Ví dụ, quá trình cài đặt hoặc gỡ cài đặt phần mềm đơn giản nhất có thể được coi là một giao dịch. Việc cài đặt được chia thành nhiều bước, được thực hiện tuần tự từ đầu đến cuối. Nếu tất cả các bước thực hiện thành công có nghĩa là cài đặt hoặc gỡ cài đặt phần mềm thành công và ngược lại, nếu không thành công, chương trình phải được khôi phục lại, nghĩa là , sẽ không có bất kỳ thay đổi nào trên máy tính (ghi file)., chỉnh sửa registry,…) Chúng ta cần chú ý đến 5 yếu tố chính để xác định đó có phải là giao dịch hay không? 1. Quá trình cần xác định chính xác điểm bắt đầu và điểm kết thúc, tức là khi nào nó được coi là bắt đầu và khi nào nó được coi là kết thúc, không làm mờ ranh giới. 2. Quy trình phải được chia nhỏ thành các hoạt động – được thực hiện đến mức không thể chia nhỏ hơn nữa. 3. Thực hiện các hành động theo trình tự. Có hai nguyên tắc cơ bản: top-to-bottom (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. Quá trình được coi là thành công theo nguyên tắc “tất cả hoặc không có gì” hoặc khi tất cả các hoạt động được thực hiện thành công. Nếu chỉ một thao tác không thành công, toàn bộ giao dịch được coi là thất bại. 5. Nếu một giao dịch không thành công, tất cả dữ liệu (dữ liệu chung, có thể 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 (khôi phục) về trạng thái ban đầu. Có nghĩa là, dữ liệu mới tạo phải bị xóa, dữ liệu đã sửa phải được thay đổi thành dữ liệu đúng trước khi chỉnh sửa, dữ liệu đã xóa phải được khôi phục, v.v.

Loại giao dịch Cách phân biệt giữa các loại giao dịch khác nhau theo bộ phận kinh doanh. Có hai loại (mô hình) giao dịch – các mô hình giao dịch là: 1. giao dịch ngang hàng phẳng: Sự phân chia các hoạt động là ngang hàng và thứ tự của các hoạt động là từ trái sang phải hoặc từ trên xuống dưới. 2. Giao dịch lồng nhau – Nested: Các hoạt động hoạt động lồng nhau Các hoạt động được thực hiện trên cơ sở từ trong ra ngoài. Vì vậy, khi nhìn vào sơ đồ, chúng ta thấy các phép toán ở dạng này có vẻ phụ thuộc lẫn nhau, nhưng khi thực hiện thì độc lập theo nguyên tắc hoạt động trong thực thi, sau đó mới đến các phép toán bên ngoài.

Tính chất axit trong giao dịch . Mô hình axit được kết hợp chặt chẽ với cơ sở dữ liệu quan hệ. Tuy nhiên, đối với các giao dịch chung, chúng ta cũng có thể áp dụng các thuộc tính này. 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 duy 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 quy trình. Gửi đi. Do đó, 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 trong các thành phần trong giao dịch không thành công, điều đó có nghĩa là không có gì xảy ra, tức là không có gì thay đổi về mặt dữ liệu. Nhất quán – Nhất quán: Dữ liệu dữ liệu nhất quán với giao dịch ở đầu và cuối. Tính nhất quán trong giao dịch là tính nhất quán mạnh . Để biết thêm thông tin về tính nhất quán, hãy đọc bài báo nosql. cô lập – Độc lập: Nếu hai giao dịch thực hiện đồng thời, các 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 tương tác với nhau, chủ yếu là trên dữ liệu. Độ bền —— Độ bền: Dữ liệu sau khi giao dịch được thực hiện là cố định, chính thức và lâu bền. Có nghĩa là các thay đổi được cố định 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 loại rủi ro chính mà việc thực hiện giao dịch có thể không thành công. 1. Thực hiện hoạt động bị hỏng: Rõ ràng điều này sẽ dẫn đến một giao dịch bị hỏng. Điều này được quy định trong định nghĩa của giao dịch. Sự cố phần cứng và mạng: Các sự cố 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à 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 phần bên dưới Như chúng ta đã biết, phần mềm được sử dụng để xử lý dữ liệu. Hai thao tác cơ bản của dữ liệu trong phần mềm là đọc và ghi. Thao tác viết lại được phân tách thành ba thao tác nhỏ hơn là insert (thêm mới), update ( sửa), xóa (xóa). Dữ liệu là tài nguyên được chia sẻ nếu có nhiều quá trình xử lý làm những việc khác cùng một lúc. Dữ liệu được phép có rủi ro: ghi-ghi, ghi-đọc,… Dữ liệu ghi cùng lúc sẽ gây hỏng dữ liệu hoặc dữ liệu đọc ra không phù hợp với dữ liệu mới ghi và các vấn đề khác sẽ được đề cập sau. Thông tin chi tiết có trong phần tiếp theo.

Mức cô lập giao dịch Như đã mô tả ở trên, cô lập là một thuộc tính giao dịch để tránh rủi ro chia sẻ dữ liệu với các quy trình khác. Khi có 2 hoặc nhiều quá trình xử lý cùng lúc, chúng ta có thể nhận được database anomalies – dị thường cơ sở dữ liệu (hay còn gọi là hiện tượng đọc – sự cố đọc hoặc sự cố cô lập), chủ yếu có 3 dạng: Lần đọ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 a hoàn thành việc ghi. Tuy nhiên, vì một số lý do, giao dịch a không thể cam kết, do đó, các thay đổi được viết không được chấp nhận, dữ liệu được khôi phục lại trạng thái ban đầu và dữ liệu của b trở nên bẩn. Đọc không lặp lại Xảy ra khi giao dịch a thực hiện thao tác đọc trên dữ liệu, sau đó giao dịch b thực hiện thao tác ghi để thay đổi dữ liệu, lần tiếp theo a sẽ tự đọc dữ liệu. Vì vậy, 2 lần đọc tìm kiếm dữ liệu không nhất quán (nhất quán) 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 số dữ liệu x thỏa mãn điều kiện 1, giao dịch b thực hiện thao tác ghi để tạo dữ liệu y thỏa mãn điều kiện, a sử dụng điều kiện 1 để tính toán lại nhằm tìm thêm lượng dữ liệu y và tổng dữ liệu nằm trong khoảng từ 2 trở lên lần. thống nhất. Vì vậy, để tránh các trường hợp ngoại lệ của cơ sở dữ liệu, chúng ta cần khóa dữ liệu – khóa dữ liệu, ngăn không cho các quá trình xử lý khác thực hiện các thao tác trên dữ liệu đó. Trong khi giao dịch hiện đang hoạt động, khóa này sẽ được phát hành (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 phạm vi và mức cách ly, thể hiện các mức khóa khác nhau trên dữ liệu, hay nói cách khác, một giao dịch có mức độ “ẩn” khác 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ách ly: có thể nối tiếp hóa : Đây là mức cách ly cao nhất và đảm bảo khóa đọc-ghi. Trong trường hợp đọc có mệnh đề điều kiện, có thể nối tiếp hóa cũng cần yêu cầu khóa phạm vi để tránh đọc ảo. Đọc lặp lại : là cấp thấp hơn có thể tuần tự hóa với khóa đọc-ghi nhưng không có khóa phạm vi. Trong trường hợp này, một phép đọc ảo có thể xảy ra. Đã cam kết đọc : Chỉ bao gồm các khóa ghi, do đó, chỉ cam kết đọc đảm bảo rằng không có lần đọc bẩn nào có thể xảy ra. Đọc không được chấp nhận : Mức cách ly thấp nhất mà cả ba lần đọc bẩn, đọc không lặp lại và đọc ảo có thể xảy ra. Tài nguyên ibm: 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

Related Articles

Back to top button