Acid Là Gì

     

Transaction và Thuộc Tính ACID là hai trong những những khái niệm quan trọng đặc biệt khi khám phá và thao tác làm việc với các đại lý dữ liệu. Transaction với thuộc tính ACID có tương quan mật thiết cùng với nhau và trong bài viết này chúng ta sẽ tra cứu hiểu chi tiết về từng khái niệm trải qua những ví dụ đối kháng giản.

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

Điều đầu tiên và cũng vô cùng quan trọng đặc biệt khi tìm hiểu về cơ sở dữ liệu đó là các bạn cần nắm vững về định nghĩa database transaction.

Database Transaction Là Gì

Một database transaction là 1 trong chuỗi bao hàm nhiều hành động khác nhau triển khai trên các đại lý dữ liệu, các hành động này có quan hệ mật thiết lẫn nhau và được xem như là 1 trong đơn vị duy nhất.

Ví dụ: công ty AAA mở tài khoản tại ngân hàng Vietcomank cùng với số tiền nạp vào bạn đầu là 500 triệu đồng. Một ngày đẹp mắt trời, chị Alice là nhân viên phòng kết toán rút 20 triệu đ để thưởng cho anh Bob vì thành tích xuất sắc trong tháng. Anh Bob cũng mở tài khoản ở bank Vietcombank với chị Alice chuyển khoản thưởng này vào thông tin tài khoản của anh Bob Vietcombank.

Nếu phân tích hành vi chuyển chi phí thưởng từ góc độ cơ sở dữ liệu thì hành động chuyển chi phí được tách biệt thành hai hành vi khác nhau:

Trừ 10 triệu đ từ thông tin tài khoản tiền gửi của công ty AAA.Cộng thêm 10 triệu đồng vào thông tin tài khoản tiền gửi của anh ý Bob.

Mặc cho dù được tách bóc thành hai hành động riêng lẻ trên tuy thế cả nhì được gộp lại thành một transaction vì chưng chúng tất cả mỗi quan hệ tình dục mật thiết lẫn nhau và bọn họ cần đảm bảo cả hai hành động này những được thực hiện thành công hoặc sẽ không còn có hành động nào được tiến hành nếu như xảy ra lỗi trên database khiến một trong hai hành động không triển khai được (ví dụ như ngay sau khi hành động trước tiên diễn ra thì phòng server bị mất điện).

Đặc điểm của một transaction sẽ là các hành động trong transaction được xem là một đơn vị chức năng duy nhất và cấm đoán phép bất kể một hành động nào có thể được triển khai thành công ví như như có một hoặc một vài hành động khác không được thực hiện. Trong lấy ví dụ trên nếu như như hành vi đầu tiên gặp lỗi mà hành vi thứ nhị vẫn diễn ra thành công thì vấn đề này sẽ dẫn tới câu hỏi anh Bob được trao thêm 10 triệu nữa khi kế tiếp chị Alice triển khai lại vấn đề chuyển số tiền 10 triệu đến anh ta. Tất nhiên anh Bob sẽ cảm thấy vui vẻ về điều này nhưng chủ ngân hàng thì không hẳn có xúc cảm như vậy.

Cũng cần để ý đó là chưa hẳn các hành vi nào ra mắt theo một chuỗi liên tục nhau cũng được coi là một transaction. Lấy ví dụ như sau không phải là 1 trong những transaction:

Bob đưa 3 triệu từ thông tin tài khoản Vietcombank sang thiết lập khoản tiết kiệm ngân sách của anh ta trên Sacombank.Bob gửi 5 triệu từ thông tin tài khoản Vietcombank quý phái tài khoản đầu tư chi tiêu chứng khoán của anh ý ta sống ACB.Bob rút 2 triệu từ thông tin tài khoản Vietcombank để đi nhậu với bạn bè.

Với lấy ví dụ trên thì ngay cả khi thời hạn chúng diễn ra gần nhau thì cũng không được coi là một transaction do các hành động này rất có thể diễn ra bóc biệt. Ví dụ hành động thứ 3 bị lỗi không khiến hành vi thứ nhị hoặc trước tiên phải bị huỷ bỏ.

Phần tiếp theo sau đây bọn họ sẽ tò mò về đặc thù ACID của transaction.

Xem thêm: Tóc Duỗi Rồi Có Uốn Được Không, Uốn Và Duỗi Tóc Bao Lâu Thì Gội Đầu Được

ACID Transaction Là Gì

ACID là đặc thù trong đó bao gồm tập hòa hợp của 4 quánh tính khác biệt áp dụng cho 1 database transaction. Tư đặc tính này gồm: atomicity (nguyên tử), consistency (nhất quán), isolation (độc lập), cùng durability (bễn vững). Từ bỏ ACID là trường đoản cú viết tắt được ghép bởi những chữ cái thứ nhất của 4 từ trên.

Đặc Tính Nguyên Tử (Atomicity)

Đặc tính nguyên tử (atomicity hay còn được gọi ngắn hơn là atomic) luật pháp rằng vớ các hành động của một transaction nên được tiến hành thành công hoặc ngược lại nếu gồm một hành động không được triển khai thì sẽ không có bất cứ hành đụng nào không giống được tiến hành thành công.

*

Gọi là công dụng nguyên tử bởi vì từng hành vi riêng rẽ này y như các electron cù xung quyanh một phân tử nhân với khi phân tử nhân dịch rời thì tất cả các electron này sẽ dịch rời cùng nhau nhưng không cho phép một electron nào rời ra khỏi quỹ đạo.

Đặc Tính độc nhất vô nhị Quán

Đặc tính nhất quán (consitency hay ngắn lại hơn nữa là consistent) mức sử dụng tại ngẫu nhiên thời điểm nào, trước hoặc sau đó 1 transaction được thực hiện dù lỗi hay là không lỗi, thì database vẫn nên được giữ ở trạng thái phù hợp lệ (ví dụ dữ liệu phải cân xứng với những quy định được định nghĩa mang đến database).

Ở ví dụ chuyển khoản thưởng như nói ở đầu bài viết thì giả dụ như hành vi chuyển tiền trước tiên của transaction gặp phải lỗi thì hành động thứ hai sẽ cần cần được được huỷ (hay rollback lại).

Đặc Tính Độc Lập

Đặc tính độc lập (isolation hoặc isolate) hiện tượng từng transaction không giống nhau cần buộc phải được thực hiện trong một môi trường thiên nhiên độc lập, nếu có 2 transaction diễn ra tại cùng 1 thời điểm thì cần một cơ chế bảo đảm an toàn transaction này không tác động tới transaction khác.

Ví dụ nếu như trong ngôi trường hợp gồm một quý khách hàng chuyển 10 triệu đ vào tài khoản của doanh nghiệp AAA tại Vietcombank ngay lập tức tại thời khắc chị Alice thực hiện việc rút 10 triệu đồng. Điều gì đang diễn ra? từ bây giờ database sẽ phải thực hiện hai hành động sau cuối một thời điểm:

Thực hiện tại cập nhật số tiền trong tài khoản của khách hàng ACB bằng phương pháp trừ đi 10 triệu tự số dư bây giờ (= 500 triệu = 10 triệu)Thực hiện tại cập nhật số chi phí trong tài khoản của khách hàng ACB bằng phương pháp cộng thêm 10 triệu từ số dư hiện tại (= 500 triệu + 10 triệu)

Tài khoản của người tiêu dùng AAA ngân hàng Vietcombank sau hai hành động này sau cùng sẽ là từng nào 500 triệu (= 500 triệu - 10 triệu + 10 triệu) giỏi 510 triệu (500 triệu + 10 triệu) hay sẽ chỉ từ 490 triệu (500 triệu - 10 triệu)?

Với quánh tính tự do của transaction được chỉ dẫn để đảm bảo khi transaction diễn ra thì dữ liệu liên quan trên database có khả năng sẽ bị khoá lại. Vì thế các hành động khác (hay transaction khác) hay là sẽ đề nghị đợi cho tới khi transaction ban sơ được hoàn tất hoặc là có khả năng sẽ bị báo gặp mặt phải lỗi.

Đặc Tính Bền Vững

Đặc tính chắc chắn (consistency hay consistent) phép tắc rằng khi transaction được diễn ra (thành công hoặc rollback lại khi gồm lỗi) thì kế tiếp dù có bất cứ sự cố nào diễn ra với database (mất điện, hệ thống tràn cỗ nhớ...) thì khi được khôi phục lại thì dữ liệu được phục sinh sẽ không thay đổi trạng thái trước lúc có sự chũm (đảm bảo không có bất kể transaction trước đó không biến thành mất).

Ví dụ như sau khoản thời gian transaction chuyển tiền thưởng sinh hoạt ví dụ thứ nhất được diễn ra thành công với 3 giờ kế tiếp phòng hệ thống bị mất điện thì khi phục sinh lại dữ liệu cho database (sử dụng tài liệu được tự động sao lưu giữ trước kia 1 phút) thì transaction này (cũng như toàn bộ các transaction diễn ra trước thời gian server triển khai việc tự động hóa sao lưu) rất cần được khôi phục lại và thể hiện ở đại lý dữ liệu sau khoản thời gian khôi phục.

Xem thêm: Nghĩa Của Từ Billion Là Gì, Billion Là Gì, Nghĩa Của Từ Billion

Kết Luận

Hai quan niệm transaction và ACID trong cơ sở dữ liệu thường được nhắc khá thường xuyên xuyên trong các buổi chất vấn và tuy nhiên không buộc phải là quá nặng nề để có thể tiếp, tuy nhiên vẫn còn rất đa số chúng ta khá lơ mơ về chúng. Mong muốn khi hiểu xong bài viết này bạn đã sở hữu cái nhìn tổng quát về hai tư tưởng này tương tự như mối tương tác giữa chúng. Trong các bài viết theo chúng ta sẽ mày mò các tạo nên một transaction vào MySQL database.