RÀNG BUỘC TOÀN VẸN, PHỤ THUỘC HÀM VÀ KHÓA
4.1.4. Tầm ảnh hƣởng của ràng buộc toàn vẹn
Một RBTV có thể liên quan đến một số quan hệ, và chỉ khi có thao tác cập nhật (Thêm, Sửa, Xóa) mới có nguy cơ dẫn đến vi phạm RBTV, đo đó cần xác định rõ thao tác nào dẫn đến việc cần phải kiểm tra RBTV.
Trong q trình phân tích, thiết kế một CSDL, người phân tích cần lập bảng xác định tầm ảnh hưởng cho mỗi ràng buộc toàn vẹn nhằm xác định khi nào thì phải tiến hành kiểm tra các ràng buộc tồn vẹn đó. Bảng này gồm 4 cột: cột 1 là cột chủ từ chứa tên các quan hệ liên quan tới RBTV; 3 cột tiếp theo là thao tác Thêm / Sửa / Xóa bộ giá trị của quan hệ. Nếu RBTV cần được kiểm tra nguy cơ dẫn tới vi phạm thì tại ơ (giao điểm dịng và cột) đó người ta đánh dấu bằng dấu gạch chéo (x) hoặc dấu cộng (+), và có thể chỉ rõ thêm các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu (x) hoặc dấu (+). Nếu RBTV khơng có nguy cơ bị vi phạm khi cập nhật CSDL thì đánh dấu trừ (-) vào ơ tương ứng. Nếu khơng bị vi phạm vì khơng được phép sửa đổi thì ký hiệu là trừ với dấu sao ( -(*) ).
Ví dụ 4.3:
Bảng tầm ảnh hưởng của ràng buộc toàn vẹn R1
Quan hệ Thêm Sửa Xóa
HOADON + (Sohoadon) - (*) +
Bảng tầm ảnh hưởng của ràng buộc toàn vẹn R2
Quan hệ Thêm Sửa Xóa
HOADON - + (Soloaihang) +
CHITIETHD + - +
Bảng tầm ảnh hưởng của ràng buộc toàn vẹn R3
Quan hệ Thêm Sửa Xóa
HOADON - + (Tongtrigia) +
CHITIETHD + + (Trigia) +
Bảng tầm ảnh hưởng của ràng buộc toàn vẹn R4
Quan hệ Thêm Sửa Xóa
CHITIETHD + (Mahang) - (*) +
DMHANG - - (*) +
Trong thực tế, ràng buộc toàn vẹn R1 là không cần thiết, bởi thuộc tính Sohoadon là khóa của quan hệ HOADON, do vậy nó ln ln phải là duy nhất và không được phép chứa giá trị rỗng; đồng thời không được phép sửa đổi.
Sau khi xây dựng các bảng tầm ảnh hưởng của từng RBTV trên các quan hệ liên quan, cần phải tổng hợp lại bằng cách xây dựng một bảng tầm ảnh hưởng tổng hợp các RBTV nhằm xác định tất cả các RBTV cần phải kiểm tra trên từng quan hệ. Bảng này gồm cột chủ từ là các RBTV, các cột còn lại là các thao tác Thêm (T), Sửa (S) và Xóa (X) của từng quan hệ nằm trong bối cảnh của các RBTV trong CSDL.
Ví dụ 4.4:
Lập bảng tầm ảnh hưởng tổng hợp của các RBTV trong CSDL quản lý hóa đơn bán hàng nêu trên:
Q.Hệ HOADON CHITIETHD DMHANG
RBTV T S X T S X T S X
R1 + (Sohd) - (*) +
R2 - + (Soloaihang) + + - (*) +
R3 - + (Tongtrigia) + + + (Trigia) +
Nhìn vào bảng tổng hợp trên chúng ta có thể thấy quan hệ HOADON khi thêm và xóa một bộ giá trị, phải kiểm tra ràng buộc toàn vẹn R1, R2 và R3; khi sửa giá trị thuộc tính Soloaihang thì phải kiểm tra ràng buộc toàn vẹn R2 và khi sửa giá trị thuộc tính tổng trị giá thì phải kiểm tra ràng buộc toàn vẹn R3. Quan hệ CHITIETHD khi được cập nhật cần kiểm tra 2 RBTV: R2 và R3; Quan hệ DMHANG cần kiểm tra ràng buộc tồn vẹn R4 khi xóa một bộ giá trị.