Giáo trình thiết kế cơ sở dữ liệu phần 1 trịnh minh tuấn

59 344 0
Giáo trình thiết kế cơ sở dữ liệu  phần 1   trịnh minh tuấ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

Chương I: MÔ HÌNH QUAN HỆ I MÔ HÌNH QUAN HỆ I.1 Các khái niệm Khái niệm toán học mô hình quan hệ quan hệ hiểu theo nghĩa lý thuyết tập hợp : tập của tích Đề - Các miền; miền (domain) tập giá trị Ví dụ tập số nguyên miền; tập xâu ký tự tạo thành tên người tiếng Anh có độ dài không 30 ký tự miền; tập hai số {0,1} miền v.v… Gọi D1, D2 ,…, Dn n miền Tích Đề - Các n miền ký hiệu : D1xD2x…xDn tập tất n -bộ (n- tuples) (v1, v2,…vn ) cho vi  Di , với i = 1…n Thí dụ: Với n= 2, D1 = {0,1}, D2 = {a,b,c}, D1 x D2 = {( 0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} Quan hệ : Quan hệ tập tích Đề - Các nhiều miền Như quan hệ vô hạn Ở luôn giả thiết rằng, quan hệ tập hữu hạn Mỗi hàng quan hệ gọi (tuples), quan hệ tập tích Đề - Các D1 x D2 x…x Dn gọi quan hệ n Khi của quan hệ có n thành phần (n cột) Các cột quan hệ gọi thuộc tính (attributes) Định nghĩa quan hệ cách hình thức sau: Trang I.1.1 Định nghĩa I.1 Gọi R = {A1, A2, …, An } tập hữu hạn thuộc tính, thuộc tính Ai với i = 1,2,…, n có miền giá trị tương ứng dom(Ai) Quan hệ r định nghĩa tập thuộc tính R tập tích Đề - Các miền r  dom (A1) x dom(A2) x…x dom(An) Khi ký hiệu r(R) r (A1,…An ) Thí dụ: Hình I.1 cho thấy quan hệ NHANVIEN bao gồm thuộc tính HOTEN, NAMSINH, NOILAMVIEC quan hệ NHANVIEN (HoTen, NamSinh, NoiLamViec ) t1 Lê Văn A 1960 Trường ĐHVL t2 Hoàng Thị B 1970 Trường ĐHBK - Hình I.1 - quan hệ NHANVIEN - t1=(Lê Văn A ,1960, Trường DHVL) quan hệ NHANVIEN Lược đồ quan hệ trừu tượng hóa quan hệ, trừu tượng hóa mức độ cấu trúc bảng chiều Khi nói đến lược đồ quan hệ tức đề cập đến cấu trúc tổng quát quan hệ, thuộc tính mối liên hệ ngữ nghĩa chúng Ký hiệu : lược đồ quan hệ R Trang Thể (còn gọi tình trạng) quan hệ tập hợp giá trị quan hệ vào thời điểm Tại thời điểm khác quan hệ có thể khác Ký hiệu : thể r Lưu ý: Khi cho quan hệ r, ta muốn nói đến thể cụ thể quan hệ Nghĩa r tập hợp gồm cụ thể Thí dụ: Cho lược đồ quan hệ R = {A1, A2, …, An }, với Ai thuộc tính, gọi r quan hệ (thể hiện) lược đồ quan hệ R Quan hệ r gồm có sau : t1=(a11,a21, ,an1) t2=(a12,a22, ,an2) Ta có: quan hệ r  lược đồ quan hệ R; t1  quan hệ r I.2 Khoá I.2.1 Định nghĩa I.2 Cho lược đồ quan hệ R định nghĩa tập thuộc tính U={A1,…An } K  U khoá (key) lược đồ quan hệ R thoả điều kiện sau : (i) K xác định đươc giá trị Aj , với j=1, 2, , n (ii) Không tồn K’  K (K’ K ) mà K’ thỏa (i) Điều kiện (i) nghĩa là: với quan hệ r  lược đồ R, với hai t1, t2  quan hệ r tồn thuộc tính A  K cho t1[A]  t2[A] Nói cách khác, không tồn hai mà có giá trị thuộc tính K Điều kiện viết t1[K]  t2[K] Do giá trị K xác định Trang Giả sử K khóa tập K”  U mà K”  K K” thoả (i) Các tập K” thoả điều kiện (i) gọi siêu khoá (super key) gọi khoá bao hàm Điều kiện (ii) xác định khoá tập nhỏ họ siêu khoá Trong lược đồ quan hệ có nhiều khoá Khi cài đặt hệ quản trị sở liệu ta phải chọn để làm khóa (primary key) HANGHOA (MSMH TENHANG 10101 sắt phi 10102 sắt phi 20001 xi măng SOLUONG) 1000 2000 1000 - Hình I.2 - quan hệ HANGHOA - Trong hình I.2 biểu diễn quan hệ HANGHOA mã số mặt hàng (MSMH) khoá Mỗi giá trị MSMH xác định loại mặt hàng quan hệ HANGHOA I.3 Các phép tính CSDL quan hệ Các phép tính mà nhờ sở liệu thay đổi chèn (INSERT) loại bỏ (DELETE) cập nhật (UPDATE) Trong mô hình CSDL quan hệ nêu trên, phép tính áp dụng cho phận quan hệ lưu trữ máy - việc tổ chức quan hệ xem biểu diễn tương ứng - qua tệp (file) ghi (record) I.3.1 Phép chèn (INSERT) Phép chèn thêm t vào quan hệ r lược đồ R= {A1,…,An } có dạng r= r  {t} INSERT (r ; A1=d1, A2=d2,…., An=dn) Trang Trong Ai với i= 1,…, n tên thuộc tính di  dom (Ai) giá trị thuộc miền trị tương ứng thuộc tính Ai Thí dụ: Thêm t3 = (Vũ Văn Tần, 1960, trường ĐHBK) vào quan hệ NHANVIEN hình I.1: INSERT (NHANVIEN ; HOTEN = Vũ Văn Tần, NAMSINH = 1960, NOILAMVIEC = trường ĐHBK) Nếu xem thứ tự trường cố định, biểu diễn phép chèn dạng không tường minh sau: INSERT (r ; d1, d2,…., dn) Mục đích phép chèn thêm vào quan hệ định Kết phép tính gây số sai sót với lý sau đây: Bộ thêm vào không phù hợp với lược đồ quan hệ cho trước; Một số giá trị số thuộc tính nằm miền giá trị thuộc tính đó; Giá trị khoá giá trị có quan hệ lưu trữ Do vậy, tuỳ trường hợp cụ thể có cách khắc phục riêng I.3.2 Phép loại bỏ (DELETE) Phép loại bỏ phép xoá khỏi quan hệ cho trước Giống phép chèn, phép loại bỏ có dạng: r = r – {t} DELETE (r ; A1=d1, A2=d2,…., An=dn) DELETE (r ; d1, d2,…., dn) Trang Thí dụ: Cần loại bỏ t1 từ quan hệ NHANVIEN hình I.1: DELETE (NHANVIEN ; Lê Văn A, 1960, Trường DHVL) Tất nhiên lúc phép loại bỏ cần đầy đủ thông tin Nếu có giá trị thuộc tính khoá K = {B1 ,…Bi } phép loại bỏ cần viết: DELETE ( r; B1 =e1, B2 =e2, …Bi = ei ) Thí dụ: Cần loại bỏ sắt phi sáu khỏi quan hệ HANGHOA hình I.2, cần viết: DELETE (HANGHOA; MSMH = 10101) I.3.3 Phép cập nhật (UPDATE) Trong thực tế lúc dùng phép chèn loại bỏ mà nhiều cần sửa đổi số giá trị số thuộc tính, lúc cần thiết phải sử dụng phép cập nhật Gọi tập {C1,…, Cp}  {A1,…, An} tập thuộc tính mà giá trị cần thay đổi, phép cập nhật có dạng : r = (r \ {t})  {t’} UPDATE (r; A1=d1, A2=d2,…, An=dn ;C1=e1 , C2=e2 ,…, Cp=ep) Nếu K= {B1,…, Bm} khoá quan hệ, cần viết: UPDATE (r; B1=d1, B2=d2,…, Bm=dm ;C1=e1 , C2=e2 ,…, Cp=ep) Thí dụ: Cần thay đổi số lượng sắt phi quan hệ HANGHOA hình I.2, 150 UPDATE (HANGHOA; MSMH=10102; SOLUONG =150) Trang Phép cập nhật phép tính thuận lợi, hay dùng Cũng không dùng phép cập nhật mà dùng tổ hợp phép loại bỏ phép chèn Do sai sót phép cập nhật xảy tương tự phép chèn phép loại bỏ II ĐẠI SỐ QUAN HỆ Trong chương trình bày nguyên tắc tiếp cận để thiết kế ngôn ngữ biểu diễn câu hỏi quan hệ Đối tượng ngôn ngữ thao tác liệu quan hệ hay gọi “ngôn ngữ hỏi” (query language), thường liên quan chặt chẽ với phép tính chèn , loại bỏ, cập nhật quan hệ Mặt khác câu hỏi xem trường hợp tổng quát hàm số áp dụng lên quan hệ Ngôn ngữ hỏi cho mô hình quan hệ chia hai lớp : - Ngôn ngữ đại số, câu hỏi biểu diễn nhờ áp dụng phép tính đặc bịêt quan hệ - Ngôn ngữ tính toán tân từ, câu hỏi biểu diễn tập hợp thoả mãn tân từ xác định Dưới trình bày chi tiết ngôn ngữ đại số quan hệ sở ngôn ngữ bậc cao để thao tác quan hệ Gọi r quan hệ tập thuộc tính R = {A1,…, An} Ở giả thiết quan hệ r tập hữu hạn Đối với phép hợp, giao trừ, hai quan hệ tham gia phải khả hợp Hai quan hệ gọi khả hợp chúng giống đôi thuộc tính Các thuộc tính khác tên gọi phải miền giá trị Trang II.1 Phép hợp Hợp hai quan hệ r s khả hợp, ký hiệu r  s tập t thuộc quan hệ r hay thuộc quan hệ s Biểu diến hình thức phép hợp có dạng: r  s = { t / t  r hay t  s} Thí dụ: r(ABC) a1 b1 c1 a2 b1 c2 a2 b2 c1 s(ABC) a1 b1 c1 a2 b2 c2 rs=(ABC) a1 b1 c1 a2 b1 c2 a2 b2 c1 a2 b2 c2 II.2 Phép giao Giao hai quan hệ r s khả hợp, ký hiệu r  s tập hợp t thuộc quan hệ r s Biểu diễn hình thức phép giao có dạng: r  s = {t / t  r t  s } Thí dụ: Với r s hai quan hệ ví dụ trên, giao chúng là: r  s = (A B C ) a1 b1 c1 II.3 Phép trừ Hiệu hai quan hệ r s khả hợp, ký hiệu r-s, tập t thuộc r không thuộc s Biểu diễn hình thức phép có dạng: r - s = {t / t  r t  s } Trang Thí dụ: Cũng với r, s ví dụ trên: r - s = (A B C ) a2 b1 c2 a2 b2 c1 Chú ý: Phép giao quan hệ r  s biểu diễn qua phép trừ: r  s = r-(r - s ) II.4 Tích Đề-Các Gọi r quan hệ xác định tập thuộc tính {A1,A2, ,An} s quan hệ xác định tập thuộc tính {B1,B2, ,Bm} Tích Đề-Các quan hệ r s, ký hiệu r x s, tập (n+m) –bộ với n thành phần đầu có dạng thuộc r n thành phần sau có dạng thuộc s Biểu diễn hình thức có dạng r x s = {t / t có dạng (a1,a2, ,an,b1,b2, ,bm), (a1,a2, ,an)  r (b1,b2, ,bm)  s } Thí dụ: r(ABC) a1 b1 c1 a2 b2 c2 s(DEF) d e f d’ e’ f’ rxs=(A B C D E F) a1 b1 c1 d e f a1 b1 c1 d’ e’ f’ a2 b2 c2 d e f a2 b2 c2 d’ e’ f’ Trang II.5 Phép chiếu Phép chiếu quan hệ thực chất loại bỏ số thuộc tính giữ lại thuộc tính khác quan hệ Giả sử r quan hệ n (gồm n thuộc tính): R = {A1,…, An }, Viết  Ai1Ai2…Aim ( r), {Ai1,…, Aim } R Khi hiểu phép chiếu thuộc tính Ai1,…, Aim quan hệ r tập có dạng ai1 …aim Để thuận tiện cho việc biểu diễn hình thức phép chiếu, từ quy định số ký hiệu sau: Gọi t thuộc r, A  R t[A] giá trị t thuộc tính A X  R Với X={B1,…, Bm}thì t[X] = (t[B1], t[B2], …, t[Bn]) Gọi X tập thuộc tính R Phép chiếu tập X quan hệ r, ký hiệu X(r) (hoặc ký hiệu r[X]) định nghĩa sau: X(r) ={t[X] / t  r} Thí dụ: R = {A, B, C, D} , X= {A, B} ; Y = {A, C} r (A, B, C, D) X(r) = (A, B) ; Y(r) = (A, C) a1 b1 c1 d1 a1 b1 a1 c1 a1 b1 c1 d2 a2 b2 a2 c2 a2 b2 c2 d2 a2 c3 a2 b2 c3 d3 Trang 10 II.15.3 Thuật toán tìm khoá dựa đồ thị Vấn đề thuật toán kết bước tập lớn tập R Nếu R có n thuộc tính số lượng tập khác rỗng R 2n Do cần giới hạn số tập cần khảo sát dựa vào tính chất sau: a) Mỗi nút đồ thị tên thuộc tính R b) Mỗi phụ thuộc hàm thể cung có hướng đồ thị c) Nút lá: B nút (thuộc tính) nếu: - tồn phụ thuộc hàm thuộc F cho B xuất bên vế phải phụ thuộc hàm nầy - không tồn phụ thuộc hàm thuộc F cho B xuất bên vế trái phụ thuộc hàm nầy Trên đồ thị phụ thuộc hàm, nút thuộc tính có cung vào mà cung Nhận xét: Thuộc tính không xuất khóa a) Nút gốc: A nút (thuộc tính) gốc nếu: - không tồn phụ thuộc hàm thuộc F cho A xuất bên vế phải phụ thuộc hàm nầy Trên đồ thị phụ thuộc hàm, nút thuộc tính gốc cung vào (và không bắt buộc phải có cung ra) Nhận xét: thuộc tính gốc phải xuất khóa Như khóa lược đồ quan hệ phải bao phủ tập nút gốc, đồng thời không chứa nút đồ thị Trang 45 CÁC BƯỚC: Vẽ đồ thị phụ thuộc hàm xác định tập: - GOC: tập gồm nút gốc - LA : tập gồm nút - TG = R - (GOC  LA) : tập gồm nút trung gian Xuất phát từ tập X=GOC, ta tính bao đóng X+ dựa vào phụ thuộc hàm F Nếu X+ = R Thì : (R,F) có khóa GOC Ngược lại :bổ sung tập klhác rỗng tập TG vào X (theo thứ tự từ tập gồm phần tử, phần tử, ) Tính X+ tìm X cho X+ = R Cuối Trang 46 III PHỤ THUỘC ĐA TRỊ III.1 Phụ thuộc đa trị Trong phần trước giả thiết có loại phụ thuộc phụ thuộc hàm Thật có nhiều loại phụ thuộc, có loại phụ thuộc thường gặp giới thực phụ thuộc đa trị (multivalued dependency) III.1.1 Định nghĩa Giả sử có lược đồ quan hệ R , X, Y tập R Về trực quan, ta nói XY, đọc “X đa xác định Y” “có phụ thuộc đa trị Y vào X” , với giá trị biết cho thuộc tính X, tồn tập gồm zero nhiều giá trị cho thuộc tính Y, tập giá trị Y không liên hệ với giá trị thuộc tính R - X - Y Về hình thức, ta nói X Y phụ thuộc đa trị định nghĩa R với r quan hệ R, q1 q2 hai r, với q1[X] = q2[X] (nghĩa q1 q2 giống thuộc tính X) r chứa q3 q4 , : q3[X] = q4[X] = q1[X] = q2[X] q3[Y] = q1[Y] q3[Z] = q2[Z] ; với Z=R - X - Y q4[Y] = q2[Y] q4[Z] = q1[Z] Trang 47 Nghĩa trao đổi giá trị Y q1 q2, thu hai q3 q4 thuộc r Chú ý không giả thiết X Y tách biệt định nghĩa Lưu ý: ta loại bỏ mệnh đề (3) Tồn q4 suy từ q3 đảo vị trí q1 q2 định nghĩa Thí dụ II.6: Chúng ta xét lược đồ gồm thuộc tính CTHRSG Hình II.5 trình bày quan hệ lược đồ Ở trường hợp đơn giản có khóa học hai sinh viên, có nhiều đặc điểm mà hy vọng quan hệ lược đồ Một khoá học (lớp học, Course) học nhiều buổi (giờ học, Hours), buổi phòng (Room) khác Mỗi sinh viên (Student) có cho lớp (khóa học) buổi học lớp Điểm (Grade) lập lại C CS101 CS101 CS101 CS101 CS101 CS101 T Minh Minh Minh Minh Minh Minh H T.hai T.tu T.sau T.hai T.tu T.sau R P.222 P.333 P.222 P.222 P.333 P.222 S Dung Dung Dung Lan Lan Lan G B+ B+ B+ C C C -Hình II.5 Một quan hệ mẫu cho lược đồ CTHRSG- Vì trường hợp tổng quát, hy vọng phụ thuộc đa trị C  HR đúng: nghĩa có tập cặp học-phòng kèm với khoá học liên quan với thuộc tính khác Chẳng hạn định Trang 48 nghĩa hình thức phụ thuộc đa trị, xem X Y C HR chọn q1 = CS101, Minh, T.hai 9, P.222, Dung, B+ q2 = CS101, Minh, T.tu 9, P.333, Lan , C nghĩa q1 đầu tiên, q2 thứ năm Hình II.5 Thế hy vọng trao đổi q1[HR] = (M9, 222) với q2[HR] = (W9, 333) để thu hai q3 = CS101, Minh, T.hai 9, P.222, Lan , C q4 = CS101, Minh, T.tu 9, P.333, Dung, B+ Nhìn thoáng qua, Hình II.5 cho thấy q3 q4 thực thuộc r , tương ứng thứ tư thứ hai Cần phải nhấn mạnh C  HR quan hệ Hình II.5 Nó khoá học c bất kỳ, dạy vào h1 phòng 1 với giảng viên t1 sinh viên s1 có điểm g1, dạy vào h2 phòng 2 với giảng viên t2 sinh viên s2 có điểm g2, dạy vào h1 phòng 1 với giảng viên t2 sinh viên s2 có điểm g2 Cũng ý C H không đúng, C  R Thật vậy, xét quan hệ r Hình II.5 với q1 q2 Nếu C H đúng, hy vọng tìm CS101, Minh , T.tu 9, P.333, Lan , C r, mà không tìm thấy Cũng nhận xét tương tự cho C R Trang 49 Tuy nhiên có số phụ thuộc đa trị khác như: CSG HR  SG Ngoài có phụ thuộc đa trị tầm thường HR R Bạn tự kiểm chứng III.2 Các tiên đề cho phụ thuộc hàm, phụ thuộc đa trị Bây trình bày tập tiên đề đắn đầy đủ dùng để suy diễn tập phụ thuộc hàm tập phụ thuộc đa trị tập thuộc tính U Ba tiên đề tiên đề Armstrong cho phụ thuộc hàm lập lại A1: Tính phản xạ phụ thuộc hàm Nếu Y  X  U X Y A2: Tính tăng trưởng phụ thuộc hàm Nếu X  Y Z  U XZ YZ A3: Tính bắc cầu phụ thuộc hàm Nếu X Y Y  Z XZ Ba tiên đề sau áp dụng cho phụ thuộc đa trị A4: Tính bù phụ thuộc đa trị Nếu XY} X (U - X – Y) A5: Tính tăng trưởng phụ thuộc đa trị Nếu X Y V  W WX VY A6: Tính bắc cầu phụ thuộc đa trị: Nếu X Y YZ X (Z – Y) Cũng nên so sánh A4-A6 với A1-A3 Tiên đề A4, qui tắc bù, đối tác phụ thuộc hàm Tiên đề A1, tính phản xạ, dường đối tác tương ứng phụ thuộc đa trị, suy X Y YX từ A1 tiên đề A7 (bên dưới) có phụ thuộc XY có phụ thuộc XY A6 bị hạn chế nhiều so với đối tác A3 Khẳng định tổng quát hơn, XY YZ suy YZ Chẳng hạn Thí dụ II.6, CHR đúng, Trang 50 chắn HR  H đúng, C  H sai Bù lại, A5 mạnh so với tiên đề tăng trưởng tương ứng A2 Chúng ta thay A2 bằng: XY VW suy WXVY, phụ thuộc hàm, qui tắc dễ dàng chứng minh tiên đề A1, A2 A3 Hai tiên đề cuối liên quan đến phụ thuộc hàm phụ thuộc đa trị A7: Nếu XY X Y A8: Nếu XY Z  Y, tập W tách biệt với Y mà có WZ XZ III.3 Tính đắn đầy đủ tiên đề Chúng ta không chứng minh tiên đề A1-A8 đắn đầy đủ Thực ra, chứng minh số tiên đề đắn, nghĩa chúng suy từ định nghĩa phụ thuộc hàm phụ thuộc đa trị, dành cho bạn đọc chứng minh tính đắn tiên đề lại, chứng minh suy diễn có giá trị thực cách sử dụng tiên đề (Tính đầy đủ tiên đề) Chúng ta chứng minh tiên đề A6, tính bắc cầu phụ thuộc đa trị Giả sử quan hệ  tập thuộc tính U thoả XY Y Z, không thoả phụ thuộc X(Z-Y) Thế tồn µ   với µ[X] = [X],  với [X] = µ[X] , [Z-Y] = µ[Z-Y], [U-X-(Z-Y)] = [U-X-(Z-Y)] không thuộc  Bởi XY đúng, suy , [X] = µ[X], [Y] =  [Y] [U-Y-Z] =  [U-Y-Z] Trang 51 thuộc  Bây   giống Y, nên YZ, suy  có , [Y] = [Y], [Z] = [Z],  [U-Y-Z] =  [U-Y-Z] Chúng ta khẳng định [X] = µ[X], bởI thuộc tính ZX,  gống với , mà  lại giống với µ Ở thuộc tính X-Z,  giống với ,  giống với µ X Chúng ta khẳng định [Z-Y] = µ[Z-Y],  giống với  Z-Y, mà  giống với µ Z-Y Cuối cùng, khẳng định [V] = [V], với V=U-X-(Zx-Y) Thật vậy, chắcchắn  giống với  V-Z, nhờ phép biến đổi tập hợp, chứng minh VZ=(YZ)-X Nhưng  giống với  Z, mà  giống với  Y,  giống với  VZ V-Z Do  giống với  V Nếu xem lại định nghĩa , thấy  =  Nhưng khẳng định  thuộc ,  thuộc , mâu thuẫn với giả thiết Vì cuối XZ-Y đúng, khẳng định A6 Bây chứng minh A8 Giả sử điều ngược lại có quan hệ  thoả XY WZ, với Z Y WY tập trống, XZ không Thế tồn  µ  cho [X] = µ[X], [Z] µ[Z] Áp dụng XY cho  µ, phải có   cho [X] = µ[X]=  [X], [Y] = µ[Y], [U-X-Y] =  [U-X-Y] Bởi WY trống, nên   giống W Vì ZY,  µ giống Z Bởi  µ không giống Z, suy   không giống Z Chúng ta kết luận XZ không đúng, khẳng định qui tắc A8 Phần chứng minh lại định lý sau dành cho bạn đọc Trang 52 Lưu ý: nên nhớ định nghĩa phụ thuộc đa trị thực cần tồn q3, không thiết phải có q4 mệnh đề thứ định nghĩa Vì vi phạm phụ thuộc đa trị xác định vắng mặt q3 (không cần phải q3 q4 ) quan hệ r III.3.1 Định lý II.4 (been, ragin, floward 1997) Các tiên đề A1-A8 đắn đầy đủ cho phụ thuộc hàm phụ thuộc đa trị Nghĩa D tập phụ thuộc hàm phụ thuộc đa trị tập thuộc tính U, D’ tập phụ thuộc hàm đa trị hệ D (nghĩa quan hệ U thỏa D thỏa phụ thuộc D’) D’ tập phụ thuộc suy từ D tiên đề A1-A8 III.4 Các qui tắc suy diễn bổ sung cho phụ thuộc đa trị Một số qui tắc khác có ích suy diễn phụ thuộc hàm đa trị Dĩ nhiên qui tắc hợp, phân rã giả bắc cầu đề cập Bổ đề II.2 áp dụng cho phụ thuộc hàm Một số qui tắc khác là: Qui tắc hợp phụ thuộc đa trị Nếu X Y X Z X YZ Qui tắc giả bắc cầu phụ thuộc đa trị Nếu X Y WYZ WX (Z-WY) Qui tắc giả bắc cầu pha trộn Nếu X Y XY Z X (Z-Y) Qui tắc phân rã phụ thuộc đa trị Nếu XY, X Z X (YZ) X (Y-Z) X (Y-Z) Trang 53 Chúng để phần chứng minh cho bạn đọc; phương pháp chứng minh tương tự phương pháp dùng để chứng minh quy tắc A6 A8 trên, chứng minh từ tiên đề A1-A8 Chúng ta cần ý qui tắc phân rã phụ thuộc đa trị không mạnh qui tắc tương ứng phụ thuộc hàm Quy tắc phụ thuộc hàm cho phép suy trực tiếp từ XY XA với thuộc tính A Y Qui tắc phụ thuộc đa trị cho phép kết luận X A từ X Y tìm Z cho X Z, Z Y=A Y – Z = A III.5 Bao đóng phụ thuộc hàm phụ thuộc đa trị Cho trước tập phụ thuộc hàm phụ thuộc đa trị D, muốn tìm bao đóng D, ký hiệu D+, tập chứa tất phụ thuộc hàm phụ thuộc đa trị suy từ D Chúng ta tính D+ cách khởi đầu với D áp dụng tiên đề A1-A8 đến không suy phụ thuộc Tuy nhiên trình có chi phí thời gian hàm mũ theo kích thước D Thông thường muốn biết xem phụ thuộc hàm XY phụ thuộc đa trị X Y có suy từ D hay không III.5.1 Cơ sở phụ thuộc Như trình bày nói phụ thuộc hàm, để kiểm tra phụ thuộc hàm XY có thuộc D+ hay không, ta tính X+ bao đóng tập thuộc tính X tập phụ thuộc hàm D, sau xem Y có phải tập X+ hay không, nghĩa Y = A1A2 …Ak ,với Ai thuộc tính thuộc X+ Trang 54 Tương tự, để kiểm tra xem phụ thuộc đa trị XY có hay không (thuộc D+ hay không), cần xác định sở phụ thuộc X xem Y –X có phải hợp số tập sở hay không Nhận xét: - Bao đóng X = A1A2 …Ak ,với Ai thuộc tính - Cơ sở phụ thuộc X = Y1Y2 …Yk ,với Yi tập thuộc tính Với qui tắc phân rã phụ thuộc đa trị, với quy tắc hợp, dẫn đến khẳng định sau tập Y cho X Y với tập X cho III.5.2 Định lý II.4 : Nếu U tập chứa tất thuộc tính phân hoạch U-X thành tập thuộc tính Y1 , ,Yk cho Z  U-X X Z Z hợp số Yi Nhận xét: - Mỗi Yi không rỗng, với i=1, 2, …, k - Mỗi cặp Yi, Yj phân biệt (có giao rỗng), với i,j=1, 2, …, k - U-X hợp tập Y1 , Y2 , ,Yk - Z U-X Trang 55 Chứng minh: Khởi đầu phân hoạch toàn U-X thành khối (W1=U-X) Ta phân họach tiên đề A1 (tính phản xạ phụ thuộc hàm) ta có phụ thuộc hàm hiển nhiên XX, tiên đề A7 (liên hệ phụ thuộc hàm phụ thuộc đa trị) ta có X X Áp dụng tiên đề A4 (tính bù phụ thuộc đa trị) ta có X(U-X-X) tức X(U-X) Giả sử điểm có phân hoạch W1,……,Wn X Wi với i = 1,2,….n Nếu XZ Z hợp số Wi, thay Wi có Wi  Z Wi - Z không trống Wi  Z Wi - Z Áp dụng qui tắc phân rã cho X  Wi X  Z, ta có X  (Wi  Z) X(Wi - Z) Bởi phân hoạch vô hạn tập thuộc tính hữu hạn, cuối thấy Z có X Z hợp số phân hoạch Nhờ qui tắc hợp, X đa xác định hợp tập phân hoạch bất kỳ. Chúng ta gọi tập Y1 …… Yk xây dựng cho X từ tập phụ thuộc hàm đa trị D sở phụ thuộc (dependency basis) X (ứng với D) Trang 56 Thí dụ II.7.: Trong Thí dụ II.6 nhận xét C HR Vì theo qui tắc bù, C TSG Chúng ta biết C T Vì nhờ tiên đề A7, C T Theo quy tắc phân rã, C SG Cũng kiểm chứng thuộc tính đơn trừ T C xác định đa trị C Vì sở phụ thuộc cho C {T, HR, SG} Về trực quan thấy rằng, kèm với khoá học tập giảng viên (chỉ có tập), cặp học – phòng cho biết thời gian địa điểm khoá học, cặp sinh viên điểm, danh sách sinh viên khoá học. Nhận xét: Trong trường hợp tổng quát với X Z mà Z  U-X, tức Z  X không rỗng Áp dụng qui tắc phân rã cho XZ X X ta có phụ thuộc đa trị X (Z-X) X (Z  X) Với X (Z - X), (Z - X)  (U - X) nên định lý (U - X) hợp số Yi sở phụ thuộc X Với X (Z  X), (Z  X)  X nên tiên đề A1 tiên đề A7 ta có X Ai với (Z  X) = A1 A2… Am Trang 57 III.5.3 Thuật toán II.2: Tính Cơ sở phụ thuộc Để tính sở phụ thuộc X D ta cần tính sở phụ thuộc X tập phụ thuộc đa trị M D đủ Khi đòi hỏi M phải bao gồm: Tất phụ thuộc đa trị thuộc D Với phụ thuộc hàm XY thuộc D thay tập phụ thuộc đa trị X A1, X A2, … X An, Y= A1A2…An, tức Ai thuộc Y Ai thuộc tính đơn Một định lý khác Beeri [1980] cho cách lấy phụ thuộc hàm không tầm thường từ sở phụ thuộc tính ứng với tập phụ thuộc đa trị M Beeri chứng minh X không chứa A X  A nếu: A tập độc sở phụ thuộc cho X ứng với tập phụ thuộc đa trị M, Có tập thuộc tính Y không chứa A, cho Y  Z phụ thuộc D A thuộc Z Ta có thuật tóan tính sở phụ thuộc sau: NHẬP: Tập phụ thuộc đa trị M tập thuộc tính U tâp X  U XUẤT: Cơ sở phụ thuộc cho X ứng với M Trang 58 PHƯƠNG PHÁP: Chúng ta khởi đầu với tập tập hợp S mà cuối trở thành sở phụ thuộc Lúc ban đầu, S chứa tập U-X; nghĩa S = {U-X} Chúng ta tìm lập lập lại phụ thuộc V W M tập Y S cho Y có giao với W không giao với V không thay đổi S Sau thay Y Y  W Y-W S Tập tập hợp S cuối sở phụ thuộc cho X. Bởi thuật toán II.2 tách tập S, kết thúc tách tập nên dễ thấy có chi phí thời gian hàm đa thức theo kích thước M U Thực tế cài đặt cẩn thận, Thuật toán chạy thời gian tỉ lệ với số lượng phụ thuộc M nhân với luỹ thừa ba số lượng thuộc tính U Phép chứng minh khẳng định chứng minh tính đắn Thuật toán 7.6 tham khảo Beeri [1890] Trang 59 [...]... chiếu, thì phép kết nối được gọi là “kết nối tự nhiên” và sử dụng ký hiệu “*” Khi đó phép kết nối tự nhiên của hai quan hệ r(ABC) và s(CDE) biểu diễn qua: r(ABC)*s(CDE)={t[ABCDE]/t[ABC]  r và t[CDE] s} Thí dụ: r(A B C) s(C D E) r >< s = (A B C C D E) BC a1 1 1 a1 2 1 a1 2 2 Trang 12 1 d1 e1 2 d2 e2 3 d3 e3 a1 1 1 1 a2 2 1 1 a2 2 1 2 a1 2 2 1 a1 2 2 2 d1 e1 d1 e1 d2 e2 d1 e1 d2 e2 Kết quả nối tự nhiên:... B, C, a1 b1 c1 a1 b1 c1 a2 b2 c2 a2 b2 c3 D) d1 d2 d2 d3 = (A a1 a1 B b1 b1 C c1 c1 D) d1 d2 A = a1  D=d2 (r ) = (A a1 B b1 C c1 D) d2 A = a1 (r ) Trang 11 II.7 Phép kết nối Để định nghĩa phép kết nối của các quan hệ, trước hết làm quen với khái niệm xếp cạnh nhau Giả sử cho bộ t = (t1, t2, …., tn) và bộ u= (u1, u2, ….um), phép xếp cạnh nhau của d và e định nghĩa qua (t,u)= (t1, t2, …., tn, u1, u2,... cấp Trang 13 - Tìm số hiệu của những hãng đã cung ứng mặt hàng P2 S (P = ’P2’ (SP)) - Tìm số hiệu của những hãng cung ứng ít nhất là một mặt hàng màu đỏ S (COLOR = ’RED’ (P*SP)) hoặc S (COLOR = ’RED’ (P))*SP) Trang 14 CÁC PHỤ THUỘC DỮ LIỆU TRONG MÔ HÌNH QUAN HỆ Chương II: I MỞ ĐẦU I .1 Thế nào là một thiết kế cơ sở dữ liệu kém Trước khi bàn về cách thiết kế một lược đồ cơ sở dữ liệu tốt, chúng... Nhưng nếu vậy thì theo định nghĩa của bao đóng A thuộc X+, mâu thuẩn với giả thiết Do vậy có thể kết luận rằng r thoả mọi phụ thuộc V  W trong F Trang 30 Các thuộc tính của X+ 1 1 1 1 1 1 1… 1 Các thuộc tính khác 1 1 1 1 0 0 0 … 0 - Hình II.3 - một quan hệ chứng minh F không khẳng định logic X  Y - Bây giờ chúng ta chứng minh rằng X  Y không được thoả bởi r Giả sử rằng nó được thoả Hiển nhiên là... ABCDEG  Bây giờ chúng ta phải chứng minh tính đúng đắn của Thuật toán II .1 Chúng ta có thể dễ dàng chứng minh được rằng mỗi thuộc tính được đặt vào một tập X(j) đều thuộc X+ , nhưng chứng minh rằng mỗi thuộc tính trong X+ đều được đặt trong một X(j) nào đó thì khó hơn Trang 34 II .11 .2 Định lý II.2: Thuật toán II .1 tính đúng X+ Chứng minh: Trước tiên chúng ta chứng minh bằng qui nạp trên j rằng nếu A... D E) BC a1 1 1 a1 2 1 a1 2 2 Trang 12 1 d1 e1 2 d2 e2 3 d3 e3 a1 1 1 1 a2 2 1 1 a2 2 1 2 a1 2 2 1 a1 2 2 2 d1 e1 d1 e1 d2 e2 d1 e1 d2 e2 Kết quả nối tự nhiên: r(ABC) *s(CDE) = (A B C D E) a1 1 1 d1 e1 a2 2 1 d1 e1 a2 2 2 d2 e2 II.8 Phép chia Gọi r là quan hệ n – ngôi và s quan hệ m – ngôi (n>m, s   ) Phép chia r  s là tập của tất cả (n-m) bộ t sao cho với mọi bộ u  s thì bộ (t,u)  r Thí dụ: r(A... “chạy” thuật toán II .1 thì A thuộc X+; nghĩa là nếu A thuộc tập X(j ) được trả về bởi thuật toán II .1 thì A thuộc X+ Bước cơ sở: j = 0 Thế thì A thuộc X, vì vậy do tính phản xạ, X  A Qui nạp: Với j > 0 và giả sử rằng X(j -1 ) chỉ chứa các thuộc tính X+ Giả sử A được đặt trong X(j ) do A thuộc Z, Y  Z thuộc F, và Y  X(j -1 ) Bởi vì Y  X(j -1 ) chúng ta biết rằng Y  X+ theo giả thiết qui nạp Vì vậy... phản xạ, Z  A nên X  A lại do tính bắc cầu Vì vậy A thuộc X+ Bây giờ chúng ta chứng minh phần đảo: nếu A thuộc X+ thì A là phần tử của tập được trả về bởi thuật toán II .1 Giả sử A thuộc X+ nhưng A không thuộc tập X(j ) được trả về bởi Thuật toán II .1 Chú ý rằng X(i ) = X(i +1 ) bởi vì đó là điều kiện để Thuật toán II .1 kết thúc Xét quan hệ r tương tự như Hình II.3: r có hai bộ giống nhau ở các thuộc tính... Y II .10 .1 Định lý II .1 : hệ tiên đề Arsmtrong là đúng đắn và đầy đủ Chứng minh: Tính đúng đắn đã được chứng minh qua Bổ đề II .1, vì vậy chúng ta chỉ còn phải chứng minh tính đầy đủ Gọi F là tập các tập các phụ thuộc trên tập thuộc tính U và giả sử X  Y không thể suy ra được từ hệ tiên đề này Xét một quan hệ r có hai bộ được trình bày trong Hình II.3 Trước tiên chúng ta chứng minh rằng tất cả các phụ... và v giống nhau ở phần X nhưng không giống nhau ở phần Y nên mâu thuẫn với giả thiết rằng X  Y đúng đối với r A3, tiên đề về tính bắc cầu, là sự mở rộng của lập luận trước đây về A  B và B  C suy ra A  C Chúng tôi để phần này lại cho bạn đọc tự chứng minh Trang 27 II.8 Các qui tắc suy dẫn bổ sung Có nhiều qui tắc được suy ra từ hệ tiên đề Arsmtrong Trong bổ đề kế tiếp, chúng ta trình bày ba trong ... B C C D E) BC a1 1 a1 a1 2 Trang 12 d1 e1 d2 e2 d3 e3 a1 1 a2 1 a2 2 a1 2 a1 2 d1 e1 d1 e1 d2 e2 d1 e1 d2 e2 Kết nối tự nhiên: r(ABC) *s(CDE) = (A B C D E) a1 1 d1 e1 a2 d1 e1 a2 2 d2 e2 II.8... a1 b1 c1 a1 b1 c1 a2 b2 c2 a2 b2 c3 D) d1 d2 d2 d3 = (A a1 a1 B b1 b1 C c1 c1 D) d1 d2 A = a1  D=d2 (r ) = (A a1 B b1 C c1 D) d2 A = a1 (r ) Trang 11 II.7 Phép kết nối Để định nghĩa phép kết... CS1 01 CS1 01 CS1 01 CS1 01 CS1 01 CS1 01 T Minh Minh Minh Minh Minh Minh H T.hai T.tu T.sau T.hai T.tu T.sau R P.222 P.333 P.222 P.222 P.333 P.222 S Dung Dung Dung Lan Lan Lan G B+ B+ B+ C C C -Hình

Ngày đăng: 03/12/2015, 01:08

Từ khóa liên quan

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

Tài liệu liên quan