RÀNG BUỘC TRÊN CSDL QUAN HỆ

1. Các loại ràng buộc

Ràng buộc ngầm định: Là các ràng buộc liên quan đến tính chất của một quan hệ như:

  • Giá trị những thuộc tính phải là nguyên tố
  • Thứ tự những bộ trong một quan hệ là không quan trọng, …

Ràng buộc dựa trên ứng dụng: Là ràng buộc liên quan đến ngữ nghĩa và hành vi (behavior) của các thuộc tính. Loại ràng buộc này khó mô tả trong mô hình dữ liệu và chỉ được kiểm tra trong quá trình cập nhật dữ liệu dựa trên nền tảng ứng dụng đã được lập trình.

Ràng buộc dựa trên lược đồ: Là ràng buộc có thể mô tả trực tiếp trong lược đồ của mô hình dữ liệu. Loại ràng buộc này được mô tả bằng ngôn ngữ DDL bao gồm các ràng buộc về:

  • Miền giá trị ( domain constraint )
  • Khóa ( key constraint )
  • Các giá trị NULL
  • Toàn vẹn thực thể ( entity integrity constraint )
  • Toàn vẹn tham chiếu ( referential integrity constraint )

Ràng buộc dựa trên lược đồ hoàn toàn có thể tương quan đến nhiều quan hệ hoặc trong khoanh vùng phạm vi chỉ một quan hệ. Nếu khoanh vùng phạm vi chỉ là một quan hệ :

  • Khóa ( key constraint )
  • Các giá trị NULL
  • Toàn vẹn thực thể ( entity integrity constraint )

Phạm vi tương quan đến nhiều quan hệ :

  • Toàn vẹn tham chiếu ( referential integrity constraint )
  • Các ràng buộc khác

Ràng buộc miền giá trị: Là loại ràng buộc về giá trị của một thuộc tính xác định nào đó trong một quan hệ cụ thể. Ràng buộc này có thể áp dụng lên một thuộc tính hoặc một nhóm các thuộc tính tự ràng buộc lẫn nhau về giá trị.

Ví dụ: 0 <= điểm <= 10 hoặc 1 <= tháng <= 12
Hay một quan hệ TRASACH có thuộc tính ngayMuonngayTra: ngayMuon <= ngayTra

Ràng buộc về khoá: Thường được biểu diễn bằng các phụ thuộc hàm, là một loại ràng buộc liên bộ phổ biến xác lập sự tồn tại duy nhất của các bộ trong một quan hệ.

Ví dụ: Hai bộ phân biệt của cùng quan hệ không thể có thuộc tính khoá trùng nhau.  Mỗi sinh viên có mã số duy nhất, …

Ràng buộc về giá trị NULL: Ràng buộc này cho biết một thuộc tính có thể nhận giá trị NULL hay không.
Ví dụ:

 - Nếu mỗi bộ của quan hệ SINH VIÊN bắt buộc phải hợp lệ thì thuộc tính tên sinh viên không được phép NULL. Vì vậy tên sinh viên được ràng buộc là NOT NULL.

- Nhưng nếu xét quan hệ KHÁCH HÀNG(id, hoten, dienthoai, tuoi, diachi, luong) thì thuộc tính tuổi và luong có thể ràng buộc là NULL.

Ràng buộc toàn vẹn thực thể: Kiểm tra rằng khoá chính không thể mang giá trị NULL hay nói cách khác – các khoá chính được sử dụng để xác định các bộ trong một quan hệ. Nếu có bất cứ khoá chính nào mang giá trị NULL thì các bộ tương ứng đó sẽ không thể xác định được.

Ví dụ: Nếu có hai hoặc nhiều bộ có khoá chính mang giá trị NULL => thể không thể phân biệt chúng nếu tham khảo chúng từ các quan hệ khác.

Ràng buộc toàn vẹn tham chiếu: Được quy định giữa hai quan hệ và dựa trên ràng buộc thực thể, được sử dụng để duy trì sự thống nhất / nhất quán giữa các bộ trong hai quan hệ. Ràng buộc này được thể hiện qua khái niệm khoá ngoại hay còn gọi là ràng buộc toàn vẹn về khoá ngoại.

Ví dụ: Xét 2 quan hệ bên dưới

Ví dụ ràng buộc của 2 quan hệ

Một số ràng buộc khác :

  • RBTV liên bộ giữa những bộ trong những quan hệ
  • RBTV về thuộc tính tổng hợp

LẬP TRÌNH WEB VỚI JAVALẬP TRÌNH WEB VỚI PHP> Trong những khóa họccũng như những khóa học khác tại NIIT - ICT TP. Hà Nội, bạn sẽ được hướng dẫn rõ hơn về những ràng buộc này khi làm đồ án ( Thường là làm 2 đồ án lớn ) .