Transaction và ACID
Transactions là một khái niệm cơ bản dùng nhiều trong database system
1. Thế nào là transaction ?
Theo như từ điển Anh-Việt thì transaction được dịch ra là "giao dịch".
Lấy một ví dụ dễ hiểu như sau: B là bồ nhí của A và đòi A tiền mua xe, nên A đã quyết định chuyển cho B 500 triệu. Việc chuyển tiền từ A sang B thì được gọi là một transaction (một giao dịch). Cụ thể thì trong giao dịch này sẽ cơ bản có 2 thao tác: + Thứ nhất, trừ tài khoản A 500tr (tạm gọi là Trừ tiền) + Thứ hai là cộng vào tài khoản B 500tr (tạm gọi là Cộng tiền) Ngoài ra có thể phát sinh thêm các thao tác khác tùy thuộc vào từng nghiệp vụ.

2. ACID
ACID la viết tắt của Atomicity, Consistency, Isolation, Durability . ACID là các tính chất quan trọng của Transaction.

Trong đó:
Atomicity (Toàn vẹn): Một giao dịch có nhiều thao tác khác biệt thì hoặc là toàn bộ các thao tác hoặc là không một thao tác nào được hoàn thành. Ví dụ như transaction chuyển tiền ở trên: như đã nói ở trên để chuyển tiền phải hoàn tất cả 2 thao tác trừ và cộng tiền, giả sử khi giao dịch xảy ra một lỗi ở thao tác trừ tiền dẫn đến việc trừ tiền không hoàn thành được, còn việc cộng tiền vẫn diễn ra bình thường. Như vậy người dùng sẽ được lợi. Còn ngược lại lỗi diễn ra ở thao tác cộng tiền, thì người dùng sẽ mất tiền oan. Do vậy cần phải đảm bảo, là tất cả thao tác hoàn thành hoặc không thao tác nào được hoàn thành.
Consistency (Nhất quán): Một giao dịch hoặc là sẽ tạo ra một trạng thái mới và hợp lệ cho dữ liệu, hoặc trong trường hợp có lỗi sẽ chuyển toàn bộ dữ liệu về trạng thái trước khi thực thi giao dịch
Isolation (Độc lập): Một giao dịch đang thực thi và chưa được xác nhận phải tách biệt với các thao tác khác. Ở trên ví dụ transaction kia, nếu ta chưa xác định được số tiền trong tài khoản A mà tiến hành thực hiện thao tác cộng tiền thì sẽ rất nguy hiểm.
Durability (Bền vững): Dữ liệu phải được sao back up lại trong trường hợp gặp hư hỏng hoặc nguy hiểm.
Last updated
Was this helpful?