Bài giảng Cơ sở dữ liệu - Bài 6: Ràng buộc toàn vẹn - Vũ Văn Định
1. Tổng quan
• Ràng buộc toàn vẹn sử dụng các luật
để định nghĩa các điều kiện đảm bảo
cho CSDL ở trạng thái an toàn.
• Ràng buộc toàn vẹn được dùng để
ngăn ngừa việc đưa dữ liệu không hợp
lệ vào CSDL.
Định nghĩa : Ràng buộc toàn vẹn là
các điều kiện bất biến không được vi
phạm trong một CSDL.
Bài 6. RÀNG BUỘC TOÀN VẸN 1. Tổng quan • Ràng buộc toàn vẹn sử dụng các luật để định nghĩa các điều kiện đảm bảo cho CSDL ở trạng thái an toàn. • Ràng buộc toàn vẹn được dùng để ngăn ngừa việc đưa dữ liệu không hợp lệ vào CSDL. Định nghĩa : Ràng buộc toàn vẹn là các điều kiện bất biến không được vi phạm trong một CSDL. TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí RBTV còn được gọi là các quy tắc quản lý được áp đặt lên các đối tượng của thế giới thực . VD : - Mỗi sinh viên có một mã sinh viên duy nhất để phân biệt với các sinh viên khác - Điểm HL của mỗi sv không được nhỏ hơn0 và lớn hơn 10. - Mỗi SV phải thuộc một lớp nào đó. TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Các hệ quản trị CSDL thường có các cơ chế tự động kiểm tra RBTV này. Việc kiểm tra RBTV có thể được tiến hành vào một trong các thời điểm sau : - Kiểm tra ngay khi thực hiện một thao tác cập nhật ( thêm, sửa , xoá ,) - Kiểm tra định kỳ hay đột xuất TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 2. Các yếu tố của RBTV Khi xác định một RBTV cần chỉ rõ: Điều kiện ( tức là nội dung) của RBTV, từ đó, xác định cách biểu diễn. Bối cảnh xảy ra RBTV: trên một hay nhiều quan hệ và cụ thể là trên những quan hệ nào. Mức độ ảnh hưởng của RBTV. Hành động cần phải có khi phát hiện ra có RBTV bị vi phạm. TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 3. Điều kiện của RBTV Điều kiện của RBTV là sự mô tả và biểu diễn hình thức và nội dung của nó. Được biểu diễn bằng ngôn ngữ tự nhiên, thuật giải, ngôn ngữ quan hệ hoặc bằng các phụ thuộc hàm ,v.v.. VD: TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí R1: Mỗi sinh viên có một mã sinh viên duy nhất không trùng với các sinh viên khác: sv1, sv2 SV, sv1 ≠ sv2 sv1. SV# ≠ sv2. SV# R2: Mọi sv được làm đề tài đều phải đạt loại giỏi: sd SD, sv SV : ( sv. HL >=8.0) (sd. SV# = sv. SV# ) TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 4. Bối cảnh của RBTV Bối cảnh của một RBTV là tập các quan hệ mà khi thao tác trên các quan hệ đó có khả năng làm cho ràng buộc toàn vẹn bị vi phạm. Có thể chia RBTV thành hai loại chính theo bối cảnh RBTV : TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí RBTV có bối cảnh trên 1 quan hệ RBTV có bối cảnh trên nhiều quan hệ TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 4.1. RBTV có bối cảnh 1 quan hệ RBTV miền giá trị. RBTV liên bộ RBTV liên thuộc tính TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí RBTV miền giá trị qui định tập giá trị mà một thuộc tính có thể nhận. VD: DOM(PHAI) = {‘Nam’, ‘Nữ’} a. RBTV miền giá trị TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Ví dụ 3: Xét lược đồ quan hệ • NHANVIEN (MANV, HT, NS, GT, DC, LUONG) Xét RBTV R2: • Nội dung: • GT của nhân viên chỉ có thể là ‘Nam’ hoặc ‘Nữ’ • n NHANVIEN: n.GT IN {‘Nam’,’Nữ’} • Bối cảnh: quan hệ NHANVIEN TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bảng tầm ảnh hưởng (TAH) gồm 4 cột: Cột 1 chứa tên các quan hệ liên quan tới RBTV. 3 cột tiếp theo là tên các thao tác : Thêm / Sửa / Xoá Nếu RBTV cần được kiểm tra nguy cơ dẫn tới vi phạm dấu gạch chéo (x) hoặc dấu cộng (+) ; Có thể chỉ rõ các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm bằng cách liệt kê chúng dưới dấu (x) hoặc dấu (+) Nếu không có nguy cơ bị vi phạm thì đánh dấu trừ (-) 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 * : (- (*)) TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bảng TAH của R2: +(GT)-+NHANVIEN SửaXóaThêmR2 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí b. RBTV liên bộ RBTV liên bộ là điều kiện ràng buộc giữa các bộ trên cùng một quan hệ Ví dụ 5: Xét lược đồ quan hệ: • PHONGBAN(MAP, TENP, TP,NGNC) Xét RBTV R4: • Nội dung: • Hai phòng khác nhau sẽ có mã phòng khác nhau • p1, p2 PHONGBAN: p1 p2 p1.MAP p2.MAP • Bối cảnh: quan hệ PHONGBAN TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bảng tầm ảnh hưởng: -(*)-+PHONGBAN SửaXóaThêmR4 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí c. RBTV liên thuộc tính RBTV 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ụ 7: Xét lược đồ quan hệ DEAN (MADA, TDA, DD, PHONG, NGBD_DK, NGKT_DK) • Xét RBTV R6: • Nội dung: • Với mọi đề án, ngày bắt đầu dự kiến (NGBD_DK) phải trước ngày kết thúc dự kiến (NGKT_DK) • d DEAN, d[NGBD_DK] <= d[NGKT_DK] TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bối cảnh: quan hệ DEAN • Bảng tầm ảnh hưởng: +(NGBD_DK, NGKT_DK) -+ DEAN SửaXóaThêmR6 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 4.2. RBTV có bối cảnh trên nhiều quan hệ RBTV tham chiếu RBTV liên bộ, liên quan hệ RBTV liên thuộc tính, liên quan hệ RBTV do thuộc tính tổng hợp RBTV do chu trình trong lược đồ biểu diễn quan hệ TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí a. RBTV tham chiếu RBTV tham chiếu là ràng buộc quy định giá trị của thuộc tính trong một bộ của quan hệ R phải thuộc tập giá trị của thuộc tính khóa trong quan hệ S khác. RBTV tham chiếu còn gọi là ràng buộc phụ thuộc tồn tại hay ràng buộc khóa ngoại TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Ví dụ 10 : Xét các lược đồ quan hệ PHONGBAN (MAP, TENP, TRP, NGNC) NHANVIEN (MANV, HT, NS, GT, LUONG) • Xét RBTV R9: • Nội dung: Mỗi trưởng phòng phải là một nhân viên trong công ty. p PHONGBAN, n NHANVIEN: n[MANV] = p[TRP] Hay: PHONGBAN[TRP] NHANVIEN[MANV]) TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bối cảnh: NHANVIEN, PHONGBAN • Bảng tầm ảnh hưởng: - (*)+-NHANVIEN +(TRP)-+PHONGBA N SửaXóaThêmR9 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí b. RBTV liên bộ, liên quan hệ RBTV liên bộ, liên quan hệ là điều kiện giữa các bộ trên nhiều quan hệ khác nhau. Ví dụ 11 : Xét các lược đồ quan hệ PHONGBAN (MAP, TENP, TRP, NGNC) DIADIEMPHG (MAP, DIADIEM) Xét RBTV R10: Nội dung: •Mỗi phòng ban phải có ít nhất một địa điểm phòng p PHONGBAN, d DIADIEMPHG: p.MAP = d.MAP TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bối cảnh: PHONGBAN, DIADIEM_PHG • Bảng tầm ảnh hưởng: + (MAP)+-DIADIEM_PHG ---PHONGBAN SửaXóaThêmR10 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí c. RBTV liên thuộc tính, liên quan hệ RBTV liên thuộc tính, liên quan hệ là điều kiện giữa các thuộc tính trên nhiều quan hệ khác nhau. Ví dụ 12 :Xét các lược đồ quan hệ DATHANG(MADH, MAKH, NGAYDH) GIAOHANG(MAGH, MADH, NGAYGH) - Xét RBTV R11: • Nội dung:Ngày giao hàng không được trước ngày đặt hàng gGIAO_HANG, dDAT_HANG:d[MADH]g[MADH] d[NGAYDH] g[NGAYGH] TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bối cảnh: DATHANG, GIAOHANG • Bảng tầm ảnh hưởng: + (NGAYGH)-+GIAOHANG + (MGAYDH)--DATHANG SửaXóaThêmR11 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí d. RBTV do thuộc tính tổng hợp Thuộc tính tổng hợp là thuộc tính được tính toán từ giá trị của các thuộc tính khác hoặc trạng thái của CSDL. Khi có thuộc tính tổng hợp, cần phải có RBTV để đảm bảo mối quan hệ giữa nó và nguồn mà nó được tính toán từ đó. Ví dụ 13 :Xét các lược đồ quan hệ • PXUAT(SOPHIEU, NGAY, TT) • CTIET_PX(SOPHIEU, MAHANG, SL, DG) TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Xét RBTV R12: • Nội dung: •Tổng trị giá của 1 phiếu xuất phải bằng tổng trị giá các chi tiết xuất. pxPXUAT, px.TT = (ct CTIET_PX ct.SOPHIEU = px.SOPHIEU) ct.SL * ct.DG • Bối cảnh: PXUAT,CTIET_PX TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí • Bảng tầm ảnh hưởng: • (*): Ở thời điểm thêm một bộ vào PXUAT, giá trị bộ đó tại TT là trống. + (SL,DG)++CTIET_P X + (TT)+-(*)PXUAT SửaXóaThê m R12 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí e. RBTV do có chu trình Ví dụ 15 :Xét các lược đồ quan hệ • NHANVIEN (MANV, HT,NS ,GT, PHONG, LUONG) • DEAN (MADA, TENDA, DD, PHONG) • PHANCONG (NV#, SODA, THOIGIAN) • Xét RBTV R14: • Nội dung: Nhân viên chỉ được phân công vào các đề án do phòng mình phụ trách. TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí pc PHANCONG, nvda (NHANVIEN ⋈ PHG=PHONG DEAN): (nvda.MANV = pc.NV# nvda.MADA = pc.SODA) Hay: PHANCONG[MA_NVIEN,SODA] (NHANVIEN DEAN) [MANV,MADA] Bối cảnh: NHANVIEN, DEAN, PHANCONG TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bảng tầm ảnh hưởng -(*)+ -DEAN -(*)+ -NHANVIEN + (NV#, SODA) -+ PHANCONG SửaXóaThêmR14 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí
File đính kèm:
- bai_giang_co_so_du_lieu_bai_6_rang_buoc_toan_ven_vu_van_dinh.pdf