Giá trị phải thỏa quy tắc đã định
**Tính toàn vẹn** xét các ràng buộc mà dữ liệu phải thỏa. Trong thư viện giả định, cột `số bản` chỉ nhận số nguyên không âm. Giá trị `-2` vi phạm quy tắc này. Một lượt mượn phải chỉ tới mã sách đang có trong danh mục; mã `S99` không tồn tại cũng cần được kiểm.
Quy tắc cụ thể tùy việc quản lí. Số bản không âm là quy ước hợp lí cho ví dụ này; không lấy một ràng buộc của ví dụ rồi áp cho mọi CSDL. Kiểm ràng buộc không tự biết số nhập đã đúng với số sách trên kệ hay chưa, nên còn cần đối chiếu thực tế.
Các phần dữ liệu phải khớp sau cập nhật
**Tính nhất quán** đòi hỏi dữ liệu không mâu thuẫn và vẫn ở trạng thái hợp lệ sau thao tác cập nhật, kể cả khi một bước gặp sự cố. Giả sử thư viện quản lí hai bản sách S07, đang có một bản được mượn. Khi nhận thêm một lượt mượn, hệ thống cần ghi lượt mới và cập nhật tình trạng còn có thể cho mượn **cùng một cách nhất quán**. Nếu chỉ ghi một phía rồi dừng, số liệu hiển thị có thể trái với các lượt mượn.
Trong phương án đơn giản, số bản còn có thể được tính từ số bản sở hữu và các lượt chưa trả, tránh lưu thêm một bản dễ lệch. Nếu hệ thống chủ ý lưu số còn, phải giữ nó khớp với các lượt. Đây là quan hệ giữa nhiều dữ liệu, khác với việc một ô riêng lẻ có giá trị `-2`.
Bài luyện
Bộ dữ liệu thư viện quy định “số bản” là số nguyên không âm. Giá trị nào vi phạm tính toàn vẹn?
0 vẫn không âm.
2 là số nguyên không âm.
-2 là số âm, trái ràng buộc.
12 là số nguyên không âm.
Lời giải
Ràng buộc đã cho là số nguyên không âm. -2 nhỏ hơn 0 nên không hợp lệ; 0, 2 và 12 đều thỏa điều kiện ấy.
Bài luyện
Danh mục có S07 và S08, nhưng một lượt mượn ghi mã sách S99 chưa có trong danh mục. Vấn đề trực tiếp là gì?
Mã tham chiếu không tồn tại nên vi phạm quy tắc liên kết.
Không có thao tác đổi tên.
S99 không làm tăng lượt S08.
Mã M dùng cho lượt mượn trong ví dụ.
Lời giải
Lượt mượn cần tham chiếu một mã sách có trong danh mục. S99 chưa tồn tại nên bản ghi không thỏa quy tắc liên kết của bộ dữ liệu giả.
Bài luyện
Hệ thống vừa ghi một lượt mượn mới của S07 nhưng số bản còn hiển thị không đổi, trái với các lượt chưa trả. Thuộc tính nào bị ảnh hưởng rõ nhất?
Các tên cột có thể vẫn đúng.
Giao diện có thể vẫn giữ nguyên.
Tình huống không nói quyền xem.
Hai thông tin về tình trạng S07 đang mâu thuẫn.
Lời giải
Lượt mượn mới và số bản còn phải phản ánh cùng một tình trạng. Nếu một phía đổi mà phía kia không đổi, dữ liệu mâu thuẫn, tức không nhất quán.
Đang học