Ràng buộc toàn vẹn

Ràng buộc toàn vẹn (Integrity Constraint – RBTV) là những quy định trong CSDL xuất phát từ thực tiễn hay từ các mô hình dữ liệu, RBTV được đưa ra nhằm loại bỏ các bất thường trong CSDL.

Tổng quan về ràng buộc toàn vẹn

Để hiểu về RBTV chúng ta cùng xét qua một vài ví dụ:

  • Trong 1 CSDL lưu trữ thông tin về sinh viên, khách hàng …vv có 1 trường ’email’. Trong thế giới thực, không thể tồn tại 2 email giống nhau, do đó thuộc tính email cần phải đảm bảo được tính duy nhất (unique).
  • Một ví dụ khác, ở trường đại học, cao đẳng muốn lưu trữ thông tin về sinh viên nhập học, các trường dữ liệu như: số điện thoại, email, ngày tháng năm sinh…vv có thể cập nhật sau, tuy nhiên trường “họ tên” của sinh viên chắc chắn không thể bỏ trống được.

Trong thực tiễn, khi phân tích, thiết kế và triển khai một CSDL, chúng ta sẽ gặp rất nhiều trường hợp tương tự. RBTV cho phép người thiết kế, quản trị và sử dụng luôn đảm bảo được tính đúng đắn và logic của dữ liệu.

Phân loại ràng buộc toàn vẹn

Dựa vào tính chất, người ta chia ràng buộc toàn vẹn ra làm 2 loại.

Các ràng buộc ở mức cột (column constraint)

  • NOT NULL: Không được chứa giá trị NULL
  • UNIQUE: Giá trị duy nhất (không được trùng)
  • PRIMARY KEY: Khóa chính
  • REFERENCES: ràng buộc tham chiếu
  • CHECK: ràng buộc kiểm tra

Các ràng buộc ở mức bảng (table constraint)

  • UNIQUE: Giá trị duy nhất
  • PRIMARY KEY: Khóa chính
  • FOREIGN KEY: Khóa ngoại
  • CHECK: Ràng buộc kiểm tra