Tính nhất quán (hệ cơ sở dữ liệu)

Tính nhất quán (tiếng Anh: consistency) trong hệ thống cơ sở dữ liệu là yêu cầu rằng giao dịch cơ sở dữ liệu đã cho bất kỳ chỉ có thể thay đổi dữ liệu theo những cách được cho phép. Bất kỳ dữ liệu nào được ghi vào cơ sở dữ liệu cũng đều phải tuân theo theo tất cả các quy tắc định sẵn, bao gồm ràng buộc, cascade, trigger, và bất kỳ cách phối trộn nào của các quy tắc trong đó. Điều này không có nghĩa là để đảm bảo giao dịch sẽ hoạt động đúng như mong muốn của lập trình viên, mà chỉ là để lỗi lập trình bất kì nào đó không gây ra vi phạm ràng buộc cơ sở dữ liệu đã định.[1]

Tính nhất quán cũng có thể hiểu sau khi ghi, sửa hoặc xóa bản ghi thành công, yêu cầu đọc bất kỳ sẽ ngay lập tức nhận được giá trị mới đây nhất của bản ghi đấy.

Như là bảo đảm ACID

[sửa | sửa mã nguồn]

Tính nhất quán là một trong bốn bảo đảm làm nên giao dịch ACID; tuy nhiên, bảo đảm ở đây bản chất là như thế nào thì lại có mơ hồ đáng kể. Có nhiều định nghĩa khác nhau về nó như là:

  • Sự bảo đảm rằng bất kỳ giao dịch nào đã bắt đầu trong tương lai thì đều tất yếu sẽ nhìn thấy hiệu quả của các giao dịch khác mà đã commit trong quá khứ;[2][3]
  • Sự bảo đảm rằng ràng buộc cơ sở dữ liệu không bị vi phạm, đặc biệt là khi giao dịch nào đó commit;[4][5][6][7]
  • Sự bảo đảm rằng các thao tác trong giao dịch đều được thực thi một cách chuẩn xác, đúng đắn và hợp lệ, làm đúng theo ngữ nghĩa của ứng dụng.[8]

Vì các định nghĩa khác nhau này không loại trừ lẫn nhau, nên hoàn toàn có thể thiết kế ra hệ thống có "tính nhất quán" mang tất cả các ý về sự bảo đảm nêu ở trên đây, như hầu hết các hệ quản trị cơ sở dữ liệu quan hệ đang thông dụng ngày nay đều làm.

Như là sự đánh đổi CAP

[sửa | sửa mã nguồn]

Định lý CAP dựa trên ba sự đánh đổi, một trong số này là "tính nhất quán nguyên tử", về sự đánh đổi này thì có nhóm tác giả chú rằng "Bàn luận về tính nhất quán nguyên tử thì có phần khác với bàn về cơ sở dữ liệu ACID, vì tính nhất quán cơ sở dữ liệu là nói về giao dịch, còn tính nhất quán nguyên tử thì chỉ nói đến tính chất của thao tác 'yêu cầu' / 'hồi đáp' đơn mà thôi. Và nó cũng có nghĩa khác với tính nguyên tử trong ACID, vì nó gộp ý niệm cơ dữ liệu của cả tính nguyên lẫn tính nhất quán luôn."[9] Trong định lý CAP, ta chỉ có thể có được hai trong ba tính chất sau: tính nhất quán, tính sẵn có, hoặc tính dung sai phân vùng. Do đó, tính nhất quán có thể phải bị đánh đổi đi trong một số hệ cơ sở dữ liệu.

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ C. J. Date, "SQL and Relational Theory: How to Write Accurate SQL Code 2nd edition", O'reilly Media, Inc., 2012, pg. 180.
  2. ^ "Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services" (PDF). Bản gốc (PDF) lưu trữ ngày 29 tháng 6 năm 2019.
  3. ^ Ports, D.R.K.; Clements, A.T.; Zhang, I.; Madden, S.; Liskov, B. "Transactional Consistency and Automatic Management in an Application Data Cache" (PDF). Mit Csail.
  4. ^ Haerder, T; Reuter, A. (tháng 12 năm 1983). "Principles of Transaction-Oriented Database Recovery" (PDF). Computing Surveys. Quyển 15 số 4. tr. 287–317. doi:10.1145/289.291.
  5. ^ Mike Chapple. "The ACID Model". About. Bản gốc lưu trữ ngày 29 tháng 12 năm 2016. Truy cập ngày 31 tháng 7 năm 2022.
  6. ^ "ACID properties".
  7. ^ Cory Janssen. "What is ACID in Databases? - Definition from Techopedia". Techopedia.com.
  8. ^ "ISO/IEC 10026-1:1998 - Information technology -- Open Systems Interconnection -- Distributed Transaction Processing -- Part 1: OSI TP Model".
  9. ^ "Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services" (PDF). Bản gốc (PDF) lưu trữ ngày 29 tháng 6 năm 2019. Discussing atomic consistency is somewhat different than talking about an ACID database, as database consistency refers to transactions, while atomic consistency refers only to a property of a single request/response operation sequence. And it has a different meaning than the Atomic in ACID, as it subsumes the database notions of both Atomic and Consistent.
Chúng tôi bán
Bài viết liên quan
Giới thiệu AG Meredith - The nigh unkillable Octopus
Giới thiệu AG Meredith - The nigh unkillable Octopus
Meredith gần như bất tử trên chiến trường nhờ Bubble Form và rất khó bị hạ nếu không có những hero chuyên dụng
Hướng dẫn build Varesa trong Genshin Impact
Hướng dẫn build Varesa trong Genshin Impact
Dù là nhân vật pháp khí nhưng Varesa có chỉ số HP và Def khá ổn (khá thicc 🐧), sẽ hỗ trợ cô với khả năng sustain của bản thân, nhất là với lối chơi có phần khó né của cô.
Phân tích: có nên build Xiangling hay không?
Phân tích: có nên build Xiangling hay không?
Ai cũng biết rằng những ngày đầu ghi game ra mắt, banner đầu tiên là banner Venti có rate up nhân vật Xiangling
Cách quản lý thời gian để học tập sao cho tốt
Cách quản lý thời gian để học tập sao cho tốt
Cùng tìm hiểu cách quản lý thời gian tối ưu cho việc học tập của một học bá Đại học Bắc Kinh