Bài giảng cơ sở dữ liệu chương 4 ràng buộc toàn vẹn

37 521 0
Bài giảng cơ sở dữ liệu   chương 4  ràng buộc toàn vẹn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CƠ SỞ DỮ LIỆU ( Databases ) Chương 4: Ràng buộc toàn vẹn (RBTV) bangtqh@utc2.edu.vn Nội dung Các vấn đề liên quan đến RBTV Các loại RBTV Phụ thuộc hàm Khóa Bài tập bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.1 Định nghĩa RBTV Ràng buộc toàn vẹn (RBTV) điều kiện không vi phạm CSDL RBTV gọi quy tắc quản lý (Rules) áp đặt lên đối tượng giới thực Trong CSDL, RBTV xem công cụ để diễn đạt ngữ nghĩa CSDL Trong trình khai thác CSDL, RBTV phải thỏa mãn nhằm đảm bảo cho CSDL trạng thái an toàn quán bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.1 Định nghĩa RBTV (tt) Định nghĩa: – RBTV quy tắc định nghĩa nhiều quan hệ môi trường ứng dụng quy định Đó quy tắc để đảm bảo tính quán liệu – Mỗi RBTV định nghĩa thuật toán CSDL Ví dụ: – R1: Mỗi Nhân viên có mã số để phân biệt với nhân viên khác – R2: Mỗi đề án phải Phòng/Ban chủ trì – R3: Mỗi nhân viên tham gia nhiều đề án khác – R4: Mỗi nhân viên có nhiều thân nhân bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.1 Định nghĩa RBTV (tt) Khóa nội, Khóa ngoại, NOT NULL RBTV miền giá trị thuộc tính quan hệ Hệ quản trị CSDL có chế tự động kiểm tra RBTV miền trị Khóa nội, Khóa ngoại, NOT NULL qua khai báo cấu trúc bảng Các RBTV kiểm tra thực thao tác cập nhật CSDL (Thêm, Sửa, Xóa) Thao tác cập nhật CSDL xem hợp lệ không vi phạm RBTV Nếu vi phạm RBTV, hệ thống hủy bỏ thao tác cập nhật (hoặc hệ thống có xử lý thích hợp đó) bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.1 Định nghĩa RBTV (tt) Như vậy: Phương pháp kiểm tra RBTV – Kiểm tra tự động (qua khai báo cấu trúc bảng) – Thông qua thủ tục kiểm tra xử lý vi phạm RBTV (do người phân tích thiết kế cài đặt) Thời điểm kiểm tra RBTV – Ngay sau thực thao tác cập nhật CSDL – Kiểm tra định kỳ đột xuất bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.2 Điều kiện RBTV Là mô tả biểu diễn hình thức nội dung Có thể biểu diễn bằng: – Ngôn ngữ tự nhiên – Thuật giải (bằng mã giả - Pseudo Code, ngôn ngữ tựa Pascal) – Ngôn ngữ đại số tập hợp, đại số quan hệ – Các phụ thuộc hàm bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.2 Điều kiện RBTV (tt) Ví dụ: Cho CSDL quản lý hóa đơn bán hàng gồm bảng: HOADON(SoHD, SoMatHang, Tongtien) DMHANG(MaH, TenH, DvTinh) CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien) R1: Mỗi hóa đơn có số hóa đơn riêng biệt, không trùng với hóa đơn khác R2: Số mặt hàng số của chi tiết hóa đơn có số hóa đơn R3:Tổng thành tiền mặt hàng CHITIETHD có số hóa đơn phảibằng Tổng tiền ghi HOADON R4: Mỗi chi tiết hóa đơn phải có Mã Hàng thuộc Danh mục hàng bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.2 Điều kiện RBTV (tt) Ví dụ - Biểu diễn đại số tập hợp R1: ∀ hđ1, hđ2 ∈ HOADON, hđ1 ≠ hđ2 ⇒ hđ1.SoHD ≠ hđ2.SoHD R2: ∀ hđ ∈ HOADON thì: ⇒ hđ.SoMatHang = COUNT(cthđ ∈ CHITIETHD, cthđ.SoHD = hđ.SoHD) R3: ∀ hđ ∈ HOADON thì: hđ.Tongtien = SUM(cthđ.Thanhtien) cthđ ∈ CHITIETHD cho: cthđ.SoHD= hđ.SoHD bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 4.1.2 Điều kiện RBTV (tt) Ví dụ - Biểu diễn đại số tập hợp (tt) R4: CHITIETHD[MaH]∈ DMHANG[MaH] biểu diễn cách khác ∀ cthđ ∈ CHITIETHD, ∃ hh ∈ DMHANG cho: cthđ.MaH=hh.MaH bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 10 4.1.3 Bối cảnh RBTV Bối cảnh định nghĩa quan hệ sở hay nhiều quan hệ sở Đó quan hệ mà RBTV áp dụng Ví dụ: – R1: có bối cảnh quan hệ HOADON – R2, R3: có bối cảnh quan hệ HOADON CHITIEHD – R4: có bối cảnh quan hệ CHITIETHD DMHANG bangtqh@utc2.edu.vn 11 Chương - Ràng buộc toàn vẹn (RBTV) 4.1.4 Tầm ảnh hưởng RBTV Một RBTV liên quan đến số quan hệ, chi có thao tác cập nhật (Thêm, Sửa, Xóa) xuất nguy vi phạm RBTV Cần phải xác định rõ dẫn đến việc kiểm tra RBTV Trong trình phân tích, thiết kế CSDL, người phân tích phải lập bảng xác định tầm ảnh hưởng cho RBTV nhằm xác định phải tiến hành kiểm tra RBTV bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 12 4.1.4 Tầm ảnh hưởng RBTV (tt) Bảng xác định tầm ảnh hưởng – Gồm cột: • Cột 1: Tên bảng (quan hệ) có liên quan đến RBTV • Cột 2, 3, 4: Ứng với thao tác Thêm/Sửa/Xóa – Đánh dấu (+) ô mà RBTV có nguy bị vi phạm Có thể ghi thêm thuộc tính cập nhật dẫn đến vi phạm RBTV cách liệt kê chúng dấu (+) – Đánh dấu (-) ô nguy bị vi phạm – Đánh dấu (- (*) ) không bị vi phạm không phép sửa đổi bangtqh@utc2.edu.vn 13 Chương - Ràng buộc toàn vẹn (RBTV) 4.1.4 Tầm ảnh hưởng RBTV (tt) Ví dụ – Bảng tầm ảnh hưởng R1 Quan hệ HOADON Thêm Sửa Xóa + (SoHD) - (*) - – Bảng tầm ảnh hưởng R2 Quan hệ Thêm Sửa Xóa HOADON + + (SoMatHang) - CHITIETHD + - + Thêm Sửa Xóa HOADON + + (Tongtien) - CHITIETHD + + (Thanhtien) + – Bảng tầm ảnh hưởng R3 Quan hệ bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 14 4.1.4 Tầm ảnh hưởng RBTV (tt) Ví dụ (tt) – Bảng tầm ảnh hưởng R4 Quan hệ Thêm Sửa Xóa CHITIETHD + (MaH) - (*) - - - (*) + DMHANG bangtqh@utc2.edu.vn 15 Chương - Ràng buộc toàn vẹn (RBTV) 4.1.4 Tầm ảnh hưởng RBTV (tt) Bảng tầm ảnh hưởng tổng hợp R1, R2, R3, R4 Q.Hệ HOADON CHITIETHD RBTV Thêm Sửa Xóa R1 + (SoHD) - (*) - R2 + + (SoMatHang) R3 + + (Tongtien) R4 bangtqh@utc2.edu.vn DMHANG Thêm Sửa Xóa - + - + - + + (Thanhtien) + + (MaH) - (*) - Chương - Ràng buộc toàn vẹn (RBTV) Thêm - Sửa Xóa - (*) + 16 4.1.5 Hành động RBTV bị vi phạm Khi RBTV bị vi phạm, cần có hành động thích hợp (gồm phần): – Thông báo: báo cho người dùng biết liệu bị vi phạm RBTV cần sửa lại – Xử lý: Đưa phương án xử lý RBTV bị vi phạm Có thể từ chối tiếp tục cho hiệu chỉnh liệu Thông thường có giải pháp: – (1) Đưa thông báo yêu cầu sửa chữa liệu cho phù hợp với RBTV TB phải đầy đủ dễ hiểu với người dùng giải pháp phù hợp cho việc xử lý thời gian thực – (2) Từ chối thao tác cập nhật giải pháp phù hợp với việc xử lý theo lô bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 17 4.2 Các loại RBTV RBTV có bối cảnh bảng – RBTV miền trị thuộc tính – RBTV liên thuộc tính – RBTV liên RBTV có bối cảnh nhiều bảng – – – – RBTV phụ thuộc tồn RBTV liên thuộc tính – liên quan hệ RBTV liên - liên quan hệ RBTV có tính chu trình bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 18 4.2.1 RBTV miền trị Rất phổ biến CSDL quan hệ Mỗi thuộc tính không đặc trưng kiểu giá trị mà bị giới hạn miền giá trị kiểu liệu Khi cập nhật (thêm/sửa/xóa) giá trị cho quan hệ, phải kiểm tra RBTV Ví dụ: DIEMTHI(MaSV, Lanthi, Diemthi) – R1: ∀kq ∈ DIEMTHI ≤ kq.Diemthi ≤ 10 – R2: ∀kq ∈ DIEMTHI ≤ kq.Lanthi ≤ bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 19 4.2.2 RBTV Liên thuộc tính Là loại RBTV liên quan đến nhiều thuộc tính quan hệ Thông thường thuộc tính suy diễn từ nhiều thuộc tính giá trị Ví dụ: – Trong quan hệ: CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien) – Có RBTV liên thuộc tính: ∀ cthđ ∈ CHITIETHD cthđ.Thanhtien = cthđ.SL* cthđ.Đơn-giá bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 20 4.3.4 Phủ tương đương (tt) Giải: a) – Tính A+ dựa G • AG+=ABCDE ⇒ G+ có A→BC A→D ⇒ F ⊆ G+ ⇒ F+ ⊆ G+ (1) – Tính A+ dựa tập F • AF+=ABCDE ⇒ F+ có A→BCE A→ABD ⇒ F+ ⊇ G ⇒ F+ ⊇ G+ (2) • (1) (2) ⇒ F+ = G+ ⇒ F ≡ G b) – AG’+ = ABCE ⇒ A → D ∉ G’+ Vậy F G’ không tương đương bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 45 Phụ thuộc hàm có vế trái dư thừa F tập phụ thuộc hàm lược đồ quan hệ Q Z→Y ∈ F Phụ thuộc hàm Z → Y có vế trái dư thừa có A ∈ Z cho: F ≡ F- {Z → Y} ∪ { (Z-A) → Y} Ví dụ 1: Q (A, B, C), F= {AB→C; B→C} F ≡ F- {AB→C} ∪ { (AB-A)→C}={B→C} bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 46 Phụ thuộc hàm có vế trái dư thừa Ví dụ 2: Cho tập phụ thuộc hàm F = { A→BC , B → C, AB → D} Phụ thuộc hàm AB → D có vế trái dư thừa B PTH AB D suy diễn từ {A BC, B C, A D} Cụ thể: A BC, A D ⇒ A BCD (luật hợp) A BCD ⇒ A D (luật phân rã) Nói cách khác: F = F – {AB → D} ∪ {A → D} = {A → BC, B → C, A → D} bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 47 Loại bỏ PTH có vế trái dư thừa Thuật toán – Xét PTH có dạng X → Y (vế trái có nhiều thuộc tính) – ∀ X’ ⊂ X X’ ≠ ∅, Nếu X’ → Y ∈ F+ thay X→Y X’ → Y Ví dụ: F = {A →BC, B → C, AB → D}, Xét Phụ thuộc hàm AB → D + Tính B+ = BC (không chứa A) nên A không dư thừa + Tính A+ = ABC (chứa B) nên B dư thừa Vậy: F = {A→BC, B→C, A→D} bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 48 Phụ thuộc hàm dư thừa F tập phụ thuộc hàm không dư thừa không tồn F’⊂ F cho F’≡ F Ngược lại F tập phụ thuộc hàm dư thừa Ví dụ: Cho F = {A → BC, B → D, AB → D} F dư thừa F ≡ F’= {A→BC, B→D} Chứng minh: B → D ⇒ AB → AD (luật tăng trưởng) AB → AD ⇒ AB → D (luật phân rã) Như AB → D suy diễn từ B→D nên dư thừa bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 49 Phủ tối thiểu (Minimal cover) Tập F gọi tập phụ thuộc hàm tối thiểu (hay phủ tối thiểu) thỏa mãn đồng thời điều kiện – F tập phụ thuộc hàm có vế trái không dư thừa – Các PTH F có vế phải gồm thuộc tính – F tập phụ thuộc hàm không dư thừa bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 50 Phủ tối thiểu (tt) Thuật toán tìm phủ tối thiểu tập phụ thuộc hàm – Bước 1: Loại bỏ phụ thuộc hàm có vế trái dư thừa – Bước 2: Tách phụ thuộc hàm có vế phải nhiều thuộc tính thành phụ thuộc hàm có vế phải thuộc tính – Bước 3: Loại bỏ phụ thuộc hàm dư thừa bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 51 Phủ tối thiểu (Minimal cover) Ví dụ1: Cho lược đồ quan hệ Q(A, B, C, D) tập phụ thuộc hàm F = {AB →CD, B→C, C→D} Hãy tìm phủ tối thiểu F Giải: – Bước 1: Loại bỏ phụ thuộc hàm có vế trái dư thừa • Xét phụ thuộc hàm AB → CD Tính B+ = BCD B→ CD ∈ F+ • Vậy ta thay AB→CD B→CD tức F = {B →CD, B→C, C→D} – Bước 2: Tách phụ thuộc hàm có vế phải nhiều thuộc tính thành PTH có vế phải thuộc tính • F = {B→C, B→D, C→D} = F1tt – Bước 3: Loại bỏ PTH dư thừa bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 52 Phủ tối thiểu (tt) – Bước 3: Loại bỏ PTH dư thừa • Kiểm tra B→C có dư thừa không? – Đặt G = F1tt – {B→C} = {B→D, C→D} – Tính BG+ = BD ⇒ B→C ∉ G+ ⇒ B→C không dư thừa • Kiểm tra B→D có dư thừa không? – Đặt G = F1tt - {B→D} = {B→C, C→D} – Tính BG+ = BCD ⇒ B→D ∈ G + ⇒ B→D dư thừa • Kiểm tra C→D có dư thừa không? – Đặt G = F1tt - {C→D} = {B→C, B→D} – Tính CG+ = C ⇒ C→D ∉ G + ⇒ C→D Không dư thừa – Kết quả: Phủ tối thiểu tập phụ thuộc hàm Fc = {B→C, C→D} bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 53 Phủ tối thiểu (tt) Ví dụ 2: – Cho lược đồ quan hệ Q(A,B,C,D) tập phụ thuộc F sau: F = {A →C; C → A; CB → D; AD → B; CD → B; AB → D} – Hãy tìm phủ tối thiểu F bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 54 4.4 Khóa lược đồ quan hệ Định nghĩa: – Cho lược đồ quan hệ R (A1,A2,…,An) • Q+ tập thuộc tính R • F tập phụ thuộc hàm Q • K tập Q+ K khóa Q nếu: • K+ = Q+ (Bao đóng tập thuộc tính K = Q+) • Không tồn K' ⊂ K cho K’+= Q+ bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 55 4.4 Khóa (tt) Tập thuộc tính S gọi siêu khóa S ⊇ K Thuộc tính A gọi thuộc tính khóa A∈K với K khóa Q Ngược lại A gọi thuộc tính không khóa Một lược đồ quan hệ có nhiều khóa tập thuộc tính không khóa rỗng bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 56 4.4.2 Thuật toán tìm khóa Bước 1: – gán K = Q+ Bước 2: – A thuộc tính K, đặt K’ = K - A Nếu K’+= Q+ gán K = K' thực lại bước • Nếu muốn tìm khóa khác (nếu có) lược đồ quan hệ, ta thay đổi thứ tự loại bỏ phần tử K bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 57 4.4.2 Thuật toán tìm khóa (tt) Ví dụ 1: cho lược đồ quan hệ Q tập phụ thuộc hàm F sau: – Q (A,B,C,D,E) – F={AB→C, AC → B, BC → DE} – Tìm khóa K Giải: B1: K=Q+ ⇒ K=ABCDE B2:(K\A)+ ⇒(BCDE)+=BCDE ≠ Q+ ⇒ K=ABCDE B3:(K\B)+ ⇒(ACDE)+= ABCDE = Q+ ⇒ K=ACDE B4: (K\C)+ ⇒(ADE)+ = ADE ≠ Q+ ⇒ K=ACDE B5: (K\D)+ ⇒ (ACE)+ = ACEBD=Q+ ⇒ K=ACE B6: (K\E)+ ⇒(AC)+ = ACBDE =Q+ ⇒ K=AC bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 58 4.4.2 Thuật toán tìm khóa (tt) Ví dụ 2: cho lược đồ quan hệ Q(ABCDEGHI) tập phụ thuộc hàm – F={ AC→ B; BI → AC; ABC → D; H → I; ACE → BCG; CG → AE} – Tìm Khóa K bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 59 4.4.2 Thuật toán tìm khóa (tt) Thuật toán 2: Biểu diễn lược đồ quan hệ đồ thị có hướng sau: – Mỗi đỉnh đồ thị thuộc tính lược đồ quan hệ – Mỗi phụ thuộc hàm A→B biểu diễn cung có hướng từ đỉnh A đến đỉnh B • Đỉnh (thuộc tính) có mũi tên gọi nút gốc • Đỉnh (thuộc tính) có mũi tên vào gọi nút – Khóa lược đồ quan hệ phai bao phủ tập nút gốc đồng thời không chứa nút – Thuật toán: • Bước 1: Xuất phát từ tập nút gốc (X) • Bước 2: Tính bao đóng tập thuộc tính X (X+) • Bước 3: Nếu X+ = U thi X khóa Ngược lại, bổ sung thuộc tính không thuộc nút vào X lặp lại Bước bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 60 4.4.2 Thuật toán tìm khóa (tt) Ví dụ: – Cho R(U) với U = {A,B,C,D,E,H} với tập phụ thuộc hàm F = {AB→C, CD→E, EC→A, CD →H, H→B} – Hãy tìm khóa R H f5 B f4 C f1 f2 D A f3 E Nút gốc bangtqh@utc2.edu.vn 61 Chương - Ràng buộc toàn vẹn (RBTV) 4.4.2 Thuật toán tìm khóa (tt) Tính D+ = ∅ Do CD có mặt vế trái phụ thuộc hàm (CD→H, CD→E) nên ta ghép C vào tập nút gốc tính bao đóng CD+ = CDEHBA Vậy CD khóa R H f5 B f4 C f1 A f2 D f3 E bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 62 4.4.3 Thuật toán tìm khóa Bước 1: – Xác định tất tập khác rỗng Q+={X1, X2, …,X2n-1 } Bước 2: – Tìm bao đóng Xi Bước 3: – Siêu khóa Xi có Xi+= Q+ – Giả sử ta có siêu khóa S = {S1,S2,…,Sm} Bước 4: – xét Si, Sj S (i ≠ j), Si ⊂ Sj loại Sj (i,j=1 n), kết lại S tập tất khóa cần tìm bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 63 4.4.3 Thuật toán tìm khóa (tt) Ví dụ: – Tìm tất khóa lược đồ quan hệ tập phụ thuộc hàm sau: bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 64 4.4.3 Thuật toán tìm khóa (tt) Thuật toán cải tiến – Bước1: tạo tập thuộc tính nguồn TN, tập thuộc tính trung gian TG – Bước2: • Nếu TG = ∅ lược đồ quan hệ có khóa K = TN kết thúc • Ngược lại Qua bước – Bước3: tìm tất tập Xi tập trung gian TG bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 65 4.4.3 Thuật toán tìm khóa (tt) – Bước 4: tìm siêu khóa Si cách ∀Xi • if (TN ∪ Xi)+ = Q+ then • Si = TN ∪Xi – Bước 5: Loại bỏ siêu khóa không tối thiểu • ∀ Si, Sj ∈ S • if Si ⊂ Sj then – Loại Sj khỏi Tập siêu khóa S • S lại tập khóa cần tìm bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 66 4.4.3 Thuật toán tìm khóa (tt) Ví dụ 1: – Cho lược đồ quan hệ Q(CSZ) tập phụ thuộc hàm F={CS →Z; Z → C} Áp dụng thuật toán cải tiến, tìm khóa Q Giải: – TN = {S}; TG = {C,Z} – Gọi Xi tập tập TG: bangtqh@utc2.edu.vn 67 Chương - Ràng buộc toàn vẹn (RBTV) 4.4.3 Thuật toán tìm khóa (tt) Ví dụ 2: – Cho quan hệ R (U), U = {A,B,C,D,G} phụ thuộc hàm F = {B→C, C→B, A→GD} tìm tất khóa R Giải: – Tập nguồn TN = {A}; Tập trung gian: TG = {B, C} Xi TN ∪ Xi (TN ∪ Xi)+ ∅ A AGD B C BC AB AC ABC ABCGD ACGDB ABCGD bangtqh@utc2.edu.vn Siêu khóa Si AB AC ABC Chương - Ràng buộc toàn vẹn (RBTV) Khóa AB AC 68 bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 69 Tổng kết chương Hệ luật dẫn Amstrong hệ Thuật toán tìm bao đóng tập thuộc tính Thuật toán tìm phủ tối thiểu tập phụ thuộc hàm Thuật toán tìm khóa quan hệ Thuật toán tìm tất khóa quan hệ Cho phụ thuộc hàm X→Y tập Phụ thuộc hàm F, làm cách xác định X→Y ∈ F+ hay không ? Cho tập phụ thuộc F G, làm xác định F G tương đương? bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 70 4.5 Bài tập bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 71 4.5 Bài tập (tt) bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 72 4.5 Bài tập (tt) bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 73 4.5 Bài tập (tt) bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 74 [...]... ∈ F+ hay không ? Cho 2 tập phụ thuộc F và G, làm thế nào xác định được F và G là tương đương? bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 70 4. 5 Bài tập bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 71 4. 5 Bài tập (tt) bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 72 ... trên đều đúng thì F ≡ G bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 43 4. 3 .4 Phủ và tương đương (tt) Ví dụ: Cho lược đồ quan hệ Q(ABCE) hai tập phụ thuộc hàm: F = {A→BC, A→D, C→E} G = {A→BCE, A→ABD, C→E} a) F có tương đương với G không? b) F có tương đương với G’={A→BCE} không? bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 44 4. 3 .4 Phủ và tương đương (tt) Giải: a) – Tính A+... Sj (i,j=1 n), kết quả còn lại của S chính là tập tất cả các khóa cần tìm bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 63 4. 4.3 Thuật toán tìm mọi khóa (tt) Ví dụ: – Tìm tất cả các khóa của lược đồ quan hệ và tập phụ thuộc hàm như sau: bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 64 4 .4. 3 Thuật toán tìm mọi khóa (tt) Thuật toán cải tiến – Bước1: tạo tập thuộc tính nguồn TN, tập... bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 65 4. 4.3 Thuật toán tìm mọi khóa (tt) – Bước 4: tìm các siêu khóa Si bằng cách ∀Xi • if (TN ∪ Xi)+ = Q+ then • Si = TN ∪Xi – Bước 5: Loại bỏ các siêu khóa không tối thiểu • ∀ Si, Sj ∈ S • if Si ⊂ Sj then – Loại Sj ra khỏi Tập siêu khóa S • S còn lại chính là tập khóa cần tìm bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 66 4. 4.3 Thuật toán... thuộc nút lá vào X rồi lặp lại Bước 2 bangtqh@utc2.edu.vn Chương 4 - Ràng buộc toàn vẹn (RBTV) 60 4. 4.2 Thuật toán tìm 1 khóa (tt) Ví dụ: – Cho R(U) với U = {A,B,C,D,E,H} với tập phụ thuộc hàm F = {AB→C, CD→E, EC→A, CD →H, H→B} – Hãy tìm khóa của R H f5 B f4 C f1 f2 D A f3 E Nút gốc bangtqh@utc2.edu.vn 61 Chương 4 - Ràng buộc toàn vẹn (RBTV) 4. 4.2 Thuật toán tìm 1 khóa (tt) Tính D+ = ∅ Do CD có mặt trong... thể hiện bởi thuật toán sau: Q4[MaNV, MaDean] ⊆ Q1 |> ... bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 70 4.5 Bài tập bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 71 4.5 Bài tập (tt) bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 72 4.5 Bài. .. bangtqh@utc2.edu.vn Siêu khóa Si AB AC ABC Chương - Ràng buộc toàn vẹn (RBTV) Khóa AB AC 68 bangtqh@utc2.edu.vn Chương - Ràng buộc toàn vẹn (RBTV) 69 Tổng kết chương Hệ luật dẫn Amstrong hệ Thuật toán... (Tongtien) R4 bangtqh@utc2.edu.vn DMHANG Thêm Sửa Xóa - + - + - + + (Thanhtien) + + (MaH) - (*) - Chương - Ràng buộc toàn vẹn (RBTV) Thêm - Sửa Xóa - (*) + 16 4.1.5 Hành động RBTV bị vi phạm Khi RBTV

Ngày đăng: 01/04/2016, 09:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan