Ràng buộc toàn vẹn tổng hợp (liên bộ liên quan hệ)

Một phần của tài liệu GIÁO TRÌNH CƠ SỞ DỮ LIỆU.TS. Đặng Thị Thu Hiền (Trang 70 - 71)

RÀNG BUỘC TOÀN VẸN, PHỤ THUỘC HÀM VÀ KHÓA

4.2.5. Ràng buộc toàn vẹn tổng hợp (liên bộ liên quan hệ)

Khi có sự hiện diện của 1 thuộc tính mang tính chất tổng hợp (tức là giá trị của thuộc tính có thể được tính toán từ giá trị của các thuộc tính khác trên một hay nhiều bộ giá trị của các quan hệ trong CSDL), hay phụ thuộc tồn tại lồng khóa thì có RBTV liên quan hệ - liên bộ.

Ví dụ 4.13:

Xét CSDL về quản lý học viên nêu trong ví dụ trên, RBTV liên quan hệ - liên bộ có thể được xác định: “Với mọi bộ giá trị của LOPHOC, nếu Số lượng học viên lớn hơn 0 thì số lượng này phải lớn hơn hay bằng tổng số bộ giá trị đếm được của các học viên có cùng Mã lớp”. Đây chính là RBTV R6 đã nêu trong ví dụ tại mục 1.1.

Biểu diễn hình thức của RBTV này như sau:

 lh  LOPHOC thì: nếu lh.Sohocvien > 0 thì:

h.Sohocvien = COUNT (hv  HOCVIEN, hv.Malop = lh.Malop).

Ví dụ 4.14:

Xét CSDL quản lý hóa đơn bán hàng đã cho trong ví dụ trước với 3 quan hệ: 1) HOADON (Sohoadon, Soloaihang, Tongtrigia).

2) CHITIETHD (Sohoadon, Mahang, Soluongdat, Dongia, Trigia). 3) DMHANG (Mahang, Tenhang, Donvitinh).

RBTV1 : “Soloaihang = số bộ của CHITIETHD có cùng Sohoadon” : hđ  HOADON thì:

hđ.Soloaihang = COUNT (cthđ  CHITIETHD, cthđ.Sohoadon = hđ.Sohoadon)

RBTV2 : “Tổng tất cả các Trigia của các mặt hàng trong CHITIETHD có cùng Sohoadon phải bằng Tongtrigia của hóa đơn đó trong HOADON”:

hđ  HOADON thì hđ.Tongtrigia = SUM (cthđ.Trigia)

đối với các cthđ  CHITIETHD sao cho : cthđ. Sohoadon= hđ. Sohoadon. Chúng ta có thể nhận thấy trong CSDL này có sự dư thừa thông tin một cách cố ý. Đó là thuộc tính tính toán Trigia của các mặt hàng trong chi tiết hoá đơn bán hàng. Một trong những phương pháp kiểm định tính đúng đắn của dữ liệu được nhập vào là tổ chức nhập “thừa” dữ liệu tính toán được (Computable Value) rồi so sánh với công thức tính toán. Nếu có sự sai sót nào trong các thành phần có liên quan trong công thức thì lôgíc biểu thức sẽ không còn phù hợp nữa.

Bây giờ để đạt được dạng chuẩn (Normal Form) tốt hơn cho quan hệ CHITIETHD, chúng ta có thể loại bỏ thuộc tính Trigia. Khi đó RBTV2 được viết lại là: hđ  HOADON thì hđ.Tongtrigia = SUM (cthđ.Soluongdat * cthđ.Dongia) đối với các cthđ  CHITIETHD sao cho : cthđ. Sohoadon= hđ. Sohoadon.

Một phần của tài liệu GIÁO TRÌNH CƠ SỞ DỮ LIỆU.TS. Đặng Thị Thu Hiền (Trang 70 - 71)

Tải bản đầy đủ (PDF)

(116 trang)