Các Thuộc Tính ACID (SQL)

ACID là viết tắt của cụm từ Atomicity (nguyên tử), Consitency (nhất quán), Isolation (Cô lập), và Durability (Lâu bền). Đây là các thuộc tính mà mọi transaction đều được đảm bảo bởi SQL Server.

ACID
Atomicity: Thuộc tính này đảm bảo mỗi transaction là một khối duy nhất, được thực hiện trọn vẹn hoặc hoàn toàn không được thực hiện. Nếu có một lỗi nào đó xảy ra trong transaction, nó sẽ được quay trở lại (rollback) trạng thái ban đầu. Khi bạn gom nhiều lệnh vào một transaction (bao giữa BEGIN TRAN và END), sẽ chỉ có hai khả năng được phép xảy ra là, tất cả các lệnh này sẽ được thực hiện hoặc không có lệnh nào được thực hiện. Ở mức từng lệnh, SQL Server cũng đảm bảo tính atomicity, ví dụ một lệnh INSERT cho 10 bản ghi, nếu đang thêm được 5 bản ghi thì gặp lỗi, hệ thống sẽ hủy bỏ và không bản ghi nào được thêm. Nếu lệnh có kèm theo trigger, lỗi ở trigger cũng kéo theo lệnh bị hủy bỏ.
Khi bạn phát ra lệnh ROLLBACK, tất cả các lệnh đã thực hiện cũng bị quay lui và transaction trở lại trạng thái như trước khi thực hiện.
Consistency: SQL Server đảm bảo ở mọi thời điểm dữ liệu luôn luôn phải nhất quán, tức là tuân theo các ràng buộc đã được định nghĩa (ví dụ trường kiểu ngày phải chứa dữ liệu kiểu ngày, bản ghi bán hàng phải có mã sản phẩm hợp lệ…). Khi transaction được thực hiện, dữ liệu sau khi cập nhật cũng phải ở trạng thái nhất quán. Nếu transaction gây ra những vi phạm về ràng buộc dữ liệu, hệ thống sẽ không cho phép thực hiện tiếp và hủy bỏ toàn bộ transaction.
Isolation: Cũng như các hệ thống server khác, SQL Server có thể đáp ứng nhiều yêu cầu xảy ra đồng thời. Nhưng mỗi transaction được đảm bảo thực hiện trong một ngữ cảnh riêng biệt của nó và không bị ảnh hưởng bởi các transaction khác. Khi hai transaction cùng cập nhật một dữ liệu, SQL Server đảm bảo chúng được thực hiện tuần tự không dẫm lên chân của nhau.
Durability: Khi transaction thực hiện xong (đã commit), những cập nhật trở nên cố định và dữ liệu sẽ luôn luôn là như vậy. Khi hệ thống gặp sự cố bất ngờ, trong quá trình khôi phục lại nó sẽ đảm bảo khôi phục lại dữ liệu cho những transaction đã được commit.
(Sưu tầm)