5.3. Phân loại RBTV

Các ràng buộc toàn vẹn gắn kết với một mô hình quan hệ thường được chia thành hai nhóm chính: ràng buộc trên một quan hệràng buộc trên nhiều quan hệ.

* Ràng buộc trên một quan hệ là ràng buộc chỉ tác động trên một quan hệ, thường gồm các trường hợp sau:

– Ràng buộc miền giá trị

– Ràng buộc liên bộ

– Ràng buộc liên thuộc tính

– Ràng buộc giá trị theo thời gian

* Ràng buộc nhiều quan hệ là ràng buộc tác động trên nhiều quan hệ khác nhau, thường bao gồm các trường hợp sau:

– Ràng buộc tham chiếu

– Ràng buộc liên bộ, liên quan hệ

– Ràng buộc liên thuộc tính, liên quan hệ

– Ràng buộc thuộc tính hỗn hợp

  1. Ràng buộc miền giá trị

Là quy tắc về các kiểu dữ liệu và những giá trị giới hạn mà một thuộc tính có thể nhận được.

Thông thường việc xác định miền giá trị của các thuộc tính bao gồm một số các yêu cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ liệu, Khuôn dạng của dữ liệu, Các giá trị giới hạn cho phép, Ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng hay không.

Ví dụ: Cho lược đồ DIEM THI (MSV, MaMon, DiemThi)

Ràng buộc: “Thuộc tính Điểm có kiểu là nguyên dương, độ dài 2, chỉ nhận các giá trị trong khoảng từ 0 đến 10”.

Bối cảnh: DIEM THI

Nội dung:

Tự nhiên: Điểm là số nguyên dương chỉ nhận giá trị trong khoảng 0 đến 10.

Hình thức: ” xÎ DIEM THI:  x.Diem > 0 and x.Diem < 10

– Bảng tầm ảnh hưởng

  Thêm Xóa Sửa
DIEM THI +(Diem) +(Diem)

Ví dụ: Cho lược đồ LAM VIEC ( MNV, MDA, SoGio )

Ràng buộc: “Thời gian tham gia dự án của một nhân viên không quá 60 giờ”

– Bối cảnh: NHAN VIEN, DE AN, LAM VIEC

– Nội dung:

Tự nhiên: Thời gian tham gia dự án của nhân viên không quá 60 giờ

Hình thức: ” xÎ LAM VIEC:  x.Sogio < 60

– Bảng tầm ảnh hưởng

  Thêm Xóa Sửa
LAMVIEC +(SoGio) +(SoGio)
  1. Ràng buộc liên bộ

Là ràng buộc giữa các bộ giá trị trong một quan hệ thể hiện sự tồn tại của một hay nhiều bộ phụ thuộc vào sự tồn tại của một hay nhiều bộ khác trong cùng một quan hệ. Ràng buộc liên bộ thường là các ràng buộc về khóa chính. Ràng buộc này thường được hệ quản trị CSDL tự động kiểm tra khi thực hiện thao tác cập nhật trên bảng quan hệ đó.

Ví dụ: cho lược đồ PHONGBAN( MaP, TenP, NgayNC)

Ràng buộc: “Mỗi phòng ban có một mã phòng duy nhất”

Bối cảnh: PHONGBAN

Nội dung:

+ Tự nhiên: Mỗi phòng ban có một mã duy nhất

+ Hình thức: ” p1, p2 Î PHONGBAN: p1 ¹ p2  Þ p1.MAP ¹ p2.MAP

Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
PHONGBAN +(MaP) -*(MaP)

Ví dụ: Cho lược đồ NHANVIEN( MaNV, HoTen, HeSo, MucLuong)

Ràng buộc: “Các nhân viên có cùng hệ số lương thì cùng mức lương”

Bối cảnh: NHANVIEN

Nội dung:

+ Tự nhiên: Các nhân viên có cùng hệ số lương thì cùng mức lương

+ Hình thức: “n, n2 Î NHANVIEN:  nếu n1.HeSo = n2.HeSo  thì

(n1.MucLuong = n2.MucLuong)

Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
NHANVIEN +(HeSo, MucLuong) +(HeSo, MucLuong)

c Ràng buộc liên thuộc tính

Là ràng buộc giữa các thuộc tính trong cùng một quan hệ

Ví dụ: Cho DUAN (MADA, TDA, DD, MAP, NGBD, NGKT)

Ràng buộc: “Mỗi một dự án thì ngày bắt dầu dự kiến phải trước ngày kết thúc dự kiến”

– Nội dung:

Tự nhiên: Với mỗi dự án, ngày bắt đầu dự kiến (NGBD) phải trước ngày kết thúc dự kiến (NGKT)

Hình thức: “d Î DUAN, d.NGBD < d.NGKT

– Bối cảnh: DUAN

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
DUAN +(NgBD, NgKT) +(NgBD, NgKT)

d Ràng buộc giá trị thuộc tính theo thời gian

Là ràng buộc mô tả giá trị thuộc tính thay đổi theo thời gian do thao tác cập nhật gây ra, ràng buộc này cho biết mối quan hệ giữa giá trị cũ và giá trị mới của một thuộc tính.

Ví dụ: Cho lược đồ NHANVIEN(MANV, TENNV, LUONG, PHONG)

Ràng buộc: “Lương của nhân viên chỉ tăng chứ không giảm”

– Nội dung:

  • Tự nhiên: Lươngcủa nhân viên chỉ tăng chứ không được giảm
  • Hình thức: “nvÎNHANVIEN, nv.LUONG(Cũ) <= nv.LUONG(Mới)

– Bối cảnh: NHANVIEN

Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
NHANVIEN +(Luong)
  1. Ràng buộc tham chiếu

Ràng buộc toàn vẹn tham chiếu là một bộ giá trị trong một quan hệ có liên kết đến một quan hệ khác thì phải liên kết đến một bộ giá trị tồn tại trong quan hệ đó.

Ràng buộc toàn vẹn tham chiếu phải xác định trên 2 quan hệ khác nhau: quan hệ tham chiếu và quan hệ được tham chiếu. Ràng buộc toàn vẹn tham chiếu còn gọi là ràng buộc khóa ngoại.

Chúng ta có thể biểu diễn các ràng buộc tham chiếu bằng sơ đồ. Để làm điều đó ta vẽ một cạnh có hướng từ mỗi khoá ngoài đến quan hệ mà nó tham chiếu đến.

Ví dụ: Thuộc tính DNo của quan hệ EMPLOYEE tham chiếu tới thuộc tính DNumber của quan hệ DEPARTMENT.

Ví dụ: Xét các lược đồ quan hệ PHONGBAN (MAP, TENP, TRP, NGNC) và NHANVIEN (MANV, HT, NS, GT, LUONG)

Ràng buộc: “Mỗi trưởng phòng là một nhân viên trong công ty”

– Nội dung:

*Tự nhiên: Mỗi trưởng phòng phải là một nhân viên trong công ty.

* Hình thức: “p Î PHONGBAN, $n Î NHANVIEN: n.MANV = p.TRP

– Bối cảnh: NHANVIEN, PHONGBAN

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
PHONGBAN +(TRP) +(TRP)
NHANVIEN +(MaNV) -(*)
  1. Ràng buộc liên bộ – liên quan hệ

Là ràng buộc xảy ra giữa các bộ khác nhau trên nhiều quan hệ khác nhau.

Ví dụ: Xét các lược đồ quan hệ PHONGBAN(MAPHG, TENPHG, TRPHG, NGNC) và DIADIEM_PHG(MAPHG, DIADIEM)

Ràng buộc: “Mỗi phòng ban phải có ít nhất một địa điểm phòng”

– Bối cảnh: PHONGBAN, DIADIEM_PHG

– Nội dung:

Hình thức: “dÎDIADIEM_PHG,  $pÎPHONGBAN: d.MAPHG = p.MAPHG

Tự nhiên: Mỗi phòng ban phải có ít nhất một địa điểm phòng

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
PHONGBAN + +(MaPHG)
DIADIEM_PHG + +(MaPHG)

Ví dụ: Xét các lược đồ quan hệ SV (SV#, HT, NS, GT, Que) và BTL (SV#, Mamon,  Diem )

Ràng buộc: “Mỗi sinh viên phải có ít nhất một bài tập lớn

– Nội dung:

  • Tự nhiên: Mỗi sinh viên phải có ít nhất một bài tập lớn
  • Hình thức: “s Î SV, $b Î BTL: SV# = b.SV#

– Bối cảnh: SV, BTL

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
SV + -(*)(SV#)
BTL + +(SV#)
  1. Ràng buộc liên thuộc tính – liên quan hệ

Là ràng buộc thể hiện điều kiện liên quan giữa các thuộc tính khác nhau trên nhiều quan hệ khác nhau.

Ví dụ: Xét các lược đồ quan hệ DATHANG(MADH, MAKH, NGAYDH) và GIAOHANG(MAGH, MADH, NGAYGH)

Ràng buộc: “Với mỗi một đơn hàng, phải có ngày đặt hàng trước ngày giao hàng”

– Bối cảnh: DATHANG, GIAOHANG

– Nội dung:

Tự nhiên: Với  mỗi một  đơn hàng, phải có ngày đặt hàng trước ngày giao hàng

Hình thức: “gÎGIAO_HANG, $dÎDAT_HANG: d[MADH] =g[MADH] Ù d[NGAYDH] < g[NGAYGH]

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
DATHANG + +(NgayDH)
GIAOHANG + +(NgayGH)
  1. Ràng buộc thuộc tính tổng hợp

Là ràng buộc xảy ra khi có một thuộc tính tổng hợp được tính toán từ các thuộc tính khác.

Ví dụ: Cho lược đồ quan hệ PXUAT(SOPHIEU, NGAY, TT) và CTIET_PX(SOPHIEU, MAHANG, SL, DG)

Ràng buộc: Tổng trị giá của 1 phiếu xuất phải bằng tổng trị giá của  các chi tiết xuất

– Bối cảnh:  PXUAT, CTIET_PX

– Nội dung:

Tự nhiên: Tổng trị giá của 1 phiếu xuất phải bằng tổng trị giá của  các chi tiết xuất

Hình thức:

“pxÎPXUAT, px.TT = S(ct Î CTIET_PX Ù ct.SOPHIEU = px.SOPHIEU) ct.SL * ct.DG

– Bảng tầm ảnh hưởng:

  Thêm Xóa Sửa
PXUAT -(*) +(TT)
CTIET_PX + + +(SL,DG)
  1. Ràng buộc phụ thuộc hàm

Cho quan hệ R(U), U = {A1, A2,…, An} là tập thuộc tính. Cho X,Y ⊆ U, nếu tồn tại ánh xạ  X → Y thì ta nói rằng  X xác định Y hay Y phụ thuộc hàm vào X. Chi tiết về khái niệm ràng buộc phụ thuộc hàm sẽ trình bày trong chương sau.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *