-
Chương 1: CÁC KHÁI NIỆM CƠ BẢN
Các khái niệm cơ bản
-
Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT
Mô hình thực thể liên kết
-
Chương 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Mô hình cơ sở dữ liệu quan hệ
-
Chương 4: ĐẠI SỐ QUAN HỆ
Các phép toán trên dữ liệu
-
Chương 5: RÀNG BUỘC TOÀN VẸN
-
Chương 6: PHỤ THUỘC HÀM
-
Chương 7: CHUẨN HÓA CƠ SỞ DỮ LIỆU
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ệ và 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
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) |
- 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) |
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) | -(*) |
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#) |
- 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) |
- 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) |
- 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.