ACID bảo vệ dữ liệu của cơ sở dữ liệu của bạn
Mô hình ACID của thiết kế cơ sở dữ liệu là một trong những khái niệm lâu đời nhất và quan trọng nhất của lý thuyết cơ sở dữ liệu. Nó đặt ra bốn mục tiêu mà mỗi hệ thống quản lý cơ sở dữ liệu phải cố gắng đạt được: nguyên tử, tính thống nhất, cách ly và độ bền. Một cơ sở dữ liệu quan hệ không đáp ứng được bất kỳ một trong bốn mục tiêu này không thể được coi là đáng tin cậy. Một cơ sở dữ liệu sở hữu các đặc tính này được coi là tuân thủ ACID.
Đã xác định ACID
Hãy dành một chút thời gian để kiểm tra từng đặc điểm cụ thể:
- Atomicity nói rằng các sửa đổi cơ sở dữ liệu phải tuân theo quy tắc "tất cả hoặc không có gì". Mỗi giao dịch được gọi là “nguyên tử”. Nếu một phần của giao dịch thất bại, toàn bộ giao dịch sẽ thất bại. Điều quan trọng là hệ thống quản lý cơ sở dữ liệu duy trì bản chất nguyên tử của các giao dịch bất chấp bất kỳ DBMS, hệ điều hành hoặc lỗi phần cứng nào.
- Nhất quán nói rằng chỉ có dữ liệu hợp lệ sẽ được ghi vào cơ sở dữ liệu. Nếu vì một lý do nào đó, một giao dịch được thực thi vi phạm các quy tắc nhất quán của cơ sở dữ liệu, toàn bộ giao dịch sẽ được khôi phục và cơ sở dữ liệu sẽ được khôi phục về trạng thái phù hợp với các quy tắc đó. Mặt khác, nếu một giao dịch thực hiện thành công, nó sẽ lấy cơ sở dữ liệu từ một trạng thái phù hợp với các quy tắc cho một trạng thái khác cũng phù hợp với các quy tắc.
- Cách ly yêu cầu nhiều giao dịch xảy ra cùng một lúc không ảnh hưởng đến việc thực hiện của nhau. Ví dụ, nếu Joe phát hành một giao dịch đối với một cơ sở dữ liệu cùng lúc mà Mary phát sinh một giao dịch khác, cả hai giao dịch sẽ hoạt động trên cơ sở dữ liệu theo cách riêng biệt. Cơ sở dữ liệu nên thực hiện toàn bộ giao dịch của Joe trước khi thực hiện Mary, hoặc ngược lại. Điều này ngăn cản giao dịch của Joe đọc dữ liệu trung gian được tạo ra như là một tác dụng phụ của một phần giao dịch của Mary mà cuối cùng sẽ không được cam kết với cơ sở dữ liệu. Lưu ý rằng thuộc tính cách ly không đảm bảo giao dịch nào sẽ thực hiện trước tiên - chỉ đơn thuần là các giao dịch đó sẽ không can thiệp lẫn nhau
- Độ bền đảm bảo rằng mọi giao dịch cam kết với cơ sở dữ liệu sẽ không bị mất. Độ bền được đảm bảo thông qua việc sử dụng các bản sao lưu cơ sở dữ liệu và nhật ký giao dịch tạo thuận lợi cho việc khôi phục các giao dịch đã cam kết bất chấp mọi lỗi phần mềm hoặc phần cứng tiếp theo.
Cách hoạt động của ACID trong thực tiễn
Quản trị viên cơ sở dữ liệu sử dụng một số chiến lược để thực thi ACID.
Một được sử dụng để thực thi nguyên tử và độ bền là ghi nhật ký ghi (WAL), trong đó bất kỳ chi tiết giao dịch nào được ghi vào nhật ký bao gồm cả thông tin làm lại và hoàn tác.Điều này đảm bảo rằng, do lỗi cơ sở dữ liệu của bất kỳ loại nào, cơ sở dữ liệu có thể kiểm tra nhật ký và so sánh nội dung của nó với trạng thái của cơ sở dữ liệu.
Một phương pháp khác được sử dụng để giải quyết nguyên tử và độ bền là phân trang bóng mà trong đó một trang bóng được tạo ra khi dữ liệu được sửa đổi. Các cập nhật của truy vấn được ghi vào trang bóng tối hơn là dữ liệu thực trong cơ sở dữ liệu. Bản thân cơ sở dữ liệu chỉ được sửa đổi khi chỉnh sửa hoàn tất.
Một chiến lược khác được gọi là giao thức cam kết hai pha , đặc biệt hữu ích trong các hệ thống cơ sở dữ liệu phân tán. Giao thức này tách một yêu cầu để sửa đổi dữ liệu thành hai giai đoạn: một pha yêu cầu cam kết và một pha cam kết. Trong pha yêu cầu, tất cả các DBMS trên mạng bị ảnh hưởng bởi giao dịch phải xác nhận rằng chúng đã nhận được và có khả năng thực hiện giao dịch. Sau khi nhận được xác nhận từ tất cả các DBMS có liên quan, giai đoạn cam kết hoàn thành trong đó dữ liệu thực sự được sửa đổi.