
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ề RBTV
Để 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.
RBTV trong SQL Server
Sau khi có cái nhìn tổng quan về RBTV trong CSDL, chúng ta sẽ bắt đầu sử dụng chúng trên SQL Server. Ở mức cơ bản, chúng ta có một số các ràng buộc sau:
- Primary Key
- Foreign Key
- NOT NULL
- UNIQUE
- CHECK
Dưới đây là một ví dụ về RBTV trong SQL Server, chúng ta sẽ tạo 1 CSDL “Trường học”, trong CSDL này, bao gồm 1 bảng Sinh_Vien(MSSV, Ho_ten, gioi_tinh, email)
1 2 3 4 5 6 |
CREATE TABLE Sinh_Vien( MSSV VARCHAR(8) PRIMARY KEY, Ho_ten VARCHAR(191) NOT NULL, Gioi_tinh VARCHAR(3) NOT NULL CHECK (Gioi_tinh IN ('Nam', 'Nữ')), Email VARCHAR(191) NOT NULL UNIQUE, ); |