Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

83 51 0
Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

Đ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

(NB) Giáo trình Cơ sở dữ liệu cung cấp cho người học những kiến thức như: Tổng quan về cơ sở dữ liệu; Các mô hình dữ liệu; Mô hình cơ sở dữ liệu quan hệ; Ngôn ngữ thao tác dữ liệu; Ngôn ngữ truy vấn dữ liệu SQL;...Mời các bạn cùng tham khảo nội dung giáo trình phần 2 dưới đây.

Chƣơng Ngôn ngữ thao tác liệu 4.1 Đại số quan hệ Đại số quan hệ ngôn ngữ hình thức cho mơ hình quan hệ đƣợc phát triển trƣớc SQL Đại số quan hệ cịn hiểu tập thao tác mơ hình quan hệ, đƣợc sử dụng nhƣ sở cho việc cài đặt tối ƣu câu lệnh truy vấn Một số khái niệm đại số quan hệ đƣợc tích hợp vào câu lệnh truy vấn SQL, việc tìm hiểu đại số quan hệ bệ phóng để xây dựng thực thi câu lệnh SQL cách có hiệu Đại số quan hệ đƣợc định nghĩa công thức: α = (R, O) Trong đó: R: Là quan hệ CSDL kết hợp với phép toán quan hệ O: Là tập phép toán quan hệ với đầu vào nhiều quan hệ để đƣợc đầu quan hệ – quan hệ kết Các phép tốn - Phép tốn ngơi: Là phép toán thao tác quan hệ Đầu vào quan hệ trả kết quan hệ Phép tốn ngơi bao gồm phép toán bản: Phép chọn (Selection): Đƣợc sử dụng để chọn tập hợp từ quan hệ thoả mãn điều kiện chọn Kí hiệu: ϭ Cho quan hệ R(U) E – biểu thức logic gồm (=, ^, ≠, ⌐, v) Phép chọn ϭ quan hệ R theo điều kiện E, kí hiệu ϭE(R) có kết tập hợp R, gồm t thuộc R thoã điều kiện E ϬE(R) = {t / t R ^ t(E) } Ví dụ: Tìm sinh viên sinh năm 2000 quan hệ sinh viên ta làm nhƣ sau: Ϭsinhvien=2000(SINHVIEN) Phép chiếu (Projection): Đƣợc sử dụng để chọn vài cột hay thuộc tính từ bảng, ký hiệu π Cho quan hệ R(U), X tập U, X khác rỗng Phép chiếu π quan hệ R theo tập thuộc tính X, kí hiệu πX(R) có kết tập hợp t thuộc R nhƣng lấy giá trị X πX(R) = { t / t R ^ t[X] } πX(R) gồm phân biệt – trùng kết giữ lại 40 Ví dụ: a) Liệt kê mã số tên tất sinh viên: πMSSV, hoten(SINHVIEN) b) Liệt kê mã tên sinh viên sinh năm 2000: π MSSV, hoten(ϭnamsinh=2000(SINHVIEN)) Phép đặt lại tên: Là phép dùng để đặt lại tên cho thuộc tính quan hệ Trong đó: ᵽS(A1, A2,…An)(R): Đặt lại tên quan hệ thuộc tính ᵽS(R) : Đặt lại tên quan hệ giữ nguyên thuộc tính Ví dụ: ᵽS(πMSSV, hoten(SINHVIEN) ) ᵽS(ma, ten) (πMSSV, hoten(SINHVIEN) ) MSSV, hoten đƣợc đặt lại ma, ten Thêm nữa, có phép tốn tập hợp Các phép toán tập hợp: Bao gồm giao, hợp, trừ - sử dụng đƣợc quan hệ tƣơng thích (hai quan hệ bậc thuộc tính thƣ j có miền giá trị) Phép hợp: Hợp hai quan hệ tƣơng thích R S gồm thuộc hai quan hệ cho Ví dụ: Khi dùng phép hợp để liệt kê danh sách tên sinh viên giáo viên: πhoten(SINHVIEN) ᴗ πhoten(GIAOVIEN) Phép giao: Giao hai quan hệ S R gồm thuộc hai quan hệ cho Ví dụ: Tìm MSSV vừa học CSDL, vừa học JAVA πmssv(ϭmonhoc=‟CSDL‟(SINHVIEN)) ᴖ πmssv(ϭmonhoc=‟JAVA‟(SINHVIEN)) Phép trừ (Hiệu): Của hai quan hệ tƣơng thích R S, kí hiệu R \ S gồm thuộc R khơng thuộc S 4.2 Các phép tốn tập hợp Hai quan hệ khả hợp quan hệ có bậc (Có số thuộc tính thuộc tính thứ i quan hệ có miền trị với thuộc tính thứ i quan hệ 41 - Phép hợp (Union): Cho quan hệ khả hợp r(U) s(U) Hợp quan hệ r s cho ta quan hệ với tập thuộc tính U thuộc quan hệ r s r  s= {t | tr ts} Ví dụ cho quan hệ r s nhƣ sau: SBD HoTen K1301 Lê Lan SBD HoTen K1302 Trần Lê K1305 Thi Hồng K1303 Nguyễn An K1304 Mai Ca K1303 Nguyễn An r  s= SBD HoTen K1301 Lê Lan K1302 Trần Lê K1303 Nguyễn An K1305 Thi Hồng K1304 Mai Ca VD2: r (A B C) s(A B C) a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b2 c1 r  s = (A B C) a1 b1 c1 a2 b1 c2 a2 b2 c1 a2 b2 c2 - Phép giao (Intersect): Giao quan hệ khả hợp r(U) S(U) cho ta quan hệ với tập thuộc tính U, đồng thời thuộc quan hệ r  s= {t | tr ts} 42 Ví dụ có quan hệ r s nhƣ sau: SBD HoTen K1301 Lê Lan K1302 Trần Lê K1303 Nguyễn An SBD K1305 K1304 K1303 HoTen Thi Hồng Mai Ca Nguyễn An r  s= SBD K1303 HoTen Nguyễn An VD2: r (A B C) s(A B C) a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b2 c1 r  s = (A B C) a1 b1 c1 - Phép trừ (Substraction): Phép trừ quan hệ r(U) cho quan hệ khả hợp s(U) cho ta quan hệ với tập thuộc tính U thuộc r nhƣng không thuộc s r- s={t | tr ts} Ví dụ có quan hệ r s nhƣ sau: SBD HoTen K1301 Lê Lan K1302 Trần Lê K1303 Nguyễn An SBD K1305 K1304 K1303 HoTen Thi Hồng Mai Ca Nguyễn An r- s = SBD HoTen K1301 Lê Lan K1302 Trần Lê VD2: Cũng với quan hệ r s VD2 ta có r- s (A B a2 b c2 a2 b c1 C) 43 - Phép tích Đề (Catersion Product): Cho quan hệ r(U) s(V) Tích đề r s cho ta quan hệ với tập thuộc tính U V với r x s = {tq | t  r q  s} Nếu r có t1 bộ, s có t2 kết phép tích đề có bộ? (t1.t2 bộ) Ví dụ có quan hệ r s nhƣ sau: SBD K1301 K1302 HoDem Lê Lan Trần Lê Ten Anh Mai NgaySinh 10/10/91 5/9/90 rxs= SBD K1301 K1301 K1302 K1302 HoDem Lê Lan Lê Lan Trần Lê Trần Lê Ten Anh Mai Anh Mai NgaySinh 10/10/91 5/9/90 10/10/91 5/9/90 VD2: r(A B C) s(D E) a1 b1 1 e1 a2 b2 2 e2 e3 r x s = p(A B C D E) a1 b1 1 e1 a1 b1 e2 a1 b1 e3 a2 b2 e1 a2 b2 2 e2 a2 b2 e3 - Phép chia (Division): Cho quan hệ r(U) s(V), V U, s, đặt X=UV Phép chia quan hệ r cho quan hệ s cho ta quan hệ với tập thuộc tính X có dạng {t[X] | t r, q  s t[X],q r } r s={t[X] | t r, q  s t[X],q r } Ví dụ: cho quan hệ r Quan hệ s 44 SBD HoDem Ten K1301 Lê Lan Anh K1302 Trần Phƣơng Mai K1303 Hoàng Vân Anh K1301 Trần Lê Mai K1302 Lê Lan Anh r s= HoDem Lê Lan Trần Lê Ten Anh Mai SBD K1301 VD2: r(A B C D) s(C D) a b c d c d a b e f e f b c e f e d c d e d e f a b d e rs= (A B) a b e d 4.3 Các phép toán đặc biệt quan hệ - Phép chọn (SELECTION) Cho quan hệ r(U) tập thuộc tính U={A1,A2,…,An} E biểu thức logic phát biểu U Phép chọn E cho ta quan hệ có tập thuộc tính U thoả biểu thức E Khi E gọi biểu thức chọn (hay điều kiện chọn) quan hệ r tập thuộc tính U + Các phép tốn E , =, ≥, ≤, ≠, , ,  + Ký hiệu: E(r)={t | tr E(t) đúng} VD1: với quan hệ r: 45 MaSV K1301 K1302 K1303 HoDem Nguyễn An Trần Lê Lê Lan Ten Anh Mai Ninh NgaySinh 10/10/91 5/9/90 15/3/89 DiaChi Hoa Lƣ Hoa Lƣ Kim Sơn MaNganh TT LK VS DiaChi Hoa Lƣ Hoa Lƣ MaNganh TT LK E : “DiaChi = Hoa Lƣ” phép chọn E(r) cho ta quan hệ sau: MaSV K1301 K1302 HoDem Nguyễn An Trần Lê Ten Anh Mai NgaySinh 10/10/91 5/9/90 ? E: “NgaySinh >1/1/1990” VD2: Cho E: (A=a1)  (B=b2)và quan hệ r (A B C D) E(r)= (A B C D) a1 b1 c1 d1 a1 b2 c2 d1 a1 b2 c2 d1 a1 b2 c2 d2 a1 b2 c2 d2 a2 b1 c2 d1 a2 b2 c1 d1 - Phép chiếu (Project) Cho quan hệ r(U), X tập U, giả sử t thuộc quan hệ r, phép chiếu t[X] cho ta quan hệ với thuộc quan hệ r thuộc tính tập X Ký hiệu: X(r)={t[X] | t r} VD3: Với quan hệ cho ví dụ phép chọn ta thực phép chiếu với tập X: Mã SV, mã ngành mã SV, mã ngành (r)= MaSV K1301 K1302 K1303 MaNganh TT LK VS VD4: Cho X=AB quan hệ r (A a1 B b1 C c1 D) X(r)= d1 (A a1 46 B) b1 a1 b2 c2 d1 a1 b2 a1 b2 c2 d2 a2 b1 a2 b1 c2 d1 a2 b2 a2 b2 c1 d1 - Phép kết nối (join) Cho quan hệ r(U) s(V), giả sử AiU BjV cho dom(Ai)=dom(Bj) Gọi  phép toán so sánh {, =, ≥, ≤, ≠} Phép kết nối quan hệ r với thuộc tính Ai quan hệ s với thuộc tính Bj cho ta quan hệ với tập thuộc tính U  V đƣợc đƣợc xác định r  s ={tq | tr, q s t[A]  q[B] đúng} AB Nếu  phép tốn “=” phép kết nối gọi phép kết nối Nếu  phép toán “=” AiBjA gọi phép kết nối tự nhiên, ký hiệu * Ta có r * s = {tq | tr, q s t[A] = q[A], AUV} VD1: Cho quan hệ r1={SBD, Họ đệm, Tên, Ngày sinh, quê quán} SBD K1301 K1302 K1303 HoDem Lê Lan Trần Lê Nguyễn An Ten Anh Mai Ninh NgaySinh 10/10/91 5/9/90 15/3/89 QueQuan Hoa Lƣ Hoa Lƣ Kim Sơn Cho quan hệ r2={SBD, Đmôn1, Đmôn2, Đmôn3} SBD Dmon1 Dmon Dmon K1301 K1302 K1303 9 r1 * r2 = SBD HoDem Ten NgaySinh QueQuan K1301 Lê Lan Anh 10/10/91 K1302 Trần Lê Mai 5/9/90 K1303 Nguyễn An Ninh 15/3/89 VD2: Cho r1 (A B) Hoa Lƣ Hoa Lƣ Kim Sơn r2 (B C) Dmon1 Dmon Dmon 9 r3(A D) a1 b b c1 a2 d1 a1 b b c2 a2 d2 47 a2 b b c1 a2 b b c2 a3 d3 r1*r3 (A B D) a3 b r1*r2 (A B C) a1 b1 c1 a2 b1 d1 a1 b1 c2 a2 b1 d2 a1 b2 c1 a2 b3 d1 a1 b2 c2 a2 b3 d2 a2 b1 c1 a3 b3 d3 a2 b1 c2 - Phép kết nối trái (Left Outer Join) Kết nối trái r s bao gồm kết việc xếp cạnh t,u kết nối tự nhiên đƣợc với nhau, mà cịn bao gồm có phần bên trái t không kết nối đƣợc với s, phần bên phải giá trị null r < s ={(t,u)| (t,u)r*s ((t, null, null ) (us:t[A]≠u[A]))} A thuộc tính xuất lƣợc đồ quan hệ r s Ví dụ: Cho quan hệ NCC MaCty TenCty Dia_Chi S1 Hồng Hồng Hà nội S2 Thái học Ninh Bình S3 Minh Hƣơng Nam định S4 Trần Anh Hà Nội S5 Mai Linh Tp HCM CUNG_UNG Ma_Cty S1 S2 S1 S2 S3 S4 Ma_SP P1 P1 P2 P3 P3 P5 So_luong 5000 1000 2000 1500 500 3000 48 NCC MaCty S1 S1 S2 S2 S3 S4 S5   CUNG_UNG TenCty Hoàng Hồng Hoàng Hồng Thái học Thái học Minh Hƣơng Trần Anh Mai Linh Dia_Chi Hà nội Hà nội Ninh Bình Ninh Bình Nam định Hà Nội Tp HCM Ma_SP P1 P2 P1 P1 P3 P5 Null So_luong 5000 2000 1000 1000 1500 3000 null - Phép kết nối phải (Right Outer Join) Tƣơng tự kết nối trái r s bao gồm kết việc xếp cạnh t,u kết nối tự nhiên đƣợc với nhau, mà cịn bao gồm có phần bên phải u không kết nối đƣợc với r, phần bên trái giá trị null r  s ={(t,u)| (t,u)r*s (( null,… null, u) (tr:t[A]≠u[A]))} - Đặt lại tên cho quan hệ Để đạt đƣợc quan hệ kết quả, phải áp dụng nhiều phép toán quan hệ liên tiếp trƣờng hợp đó, viết biểu thức đại số quan hệ mà phép tốn xếp lồng với Có thể làm cho việc trở nên đơn giản cách áp dụng phép toán thời điểm tạo quan hệ kết trung gian, quan hệ trung gian nhƣ cần phải đặt tên Ví dụ: KQTG  NCC*CUNG_UNG KQ  Ma_Sp=‟P2‟(KQTG) Cũng đặt lại tên thuộc tính quan hệ trung gian kết cuối cùng, ta liệt kê tên thuộc tính dấu ngoặc kèm theo tên quan hệ kết Ví dụ: CUNG_UNG_P2(CTY, SOLUONG) Ma_Cty, so_luong(KQ) 4.4 Các phép toán quan hệ bổ sung Các hàm tính tốn Chúng ta hay gặp dạng câu hỏi kiểu nhƣ phịng có nhân viên, trung bình lƣơng nhân viên cơng ty bao nhiêu…Sau số hàm thƣờng dùng SUM, AVERAGE, MAX, MIN, COUNT Các hàm gộp nhóm 49 Bƣớc 2:Ta chứng minh dòng Q5 bảng chứa toàn giá trị a Thật vậy: Ta lần lƣợt đồng giá trị bảng theo phụ thuộc hàm đƣợc phát theo thuật toán tìm bao đóng X={HSR}  K; F={CT,HRC,THR,CSG,HSR} X0=HSR X1=HSRC HRC Đồng giá trị theo phụ thuộc hàm Trên dòng Q2 cột C chứa giá trị a nên dịng Q5 có thêm giá trị a cột C X2=HSRCT CT đồng giá trị theo phụ thuộc hàm X3=HSRCTG CSG đồng giá trị theo phụ thuộc hàm C T H R S G Q1(CT) a1 a2 Q2(HRC) a1 a2 a3 a4 Q3(THR) a1 a2 a3 a4 Q4(CSG) a1 a2 Q5(HSR) a1 a2 a3 a4 a5 a a5 a Do X+=Q+ nên dòng Q5 chứa tồn giá trị a Ví dụ 21: Cho Q(ABCDEGH), F={ABD; EHG; GC; DC} phân rã Q thành lƣợc đồ dạng chuẩn vừa bảo tồn thơng tin vừa bảo tồn phụ thuộc Giải: Tìm phủ tối thiểu Ftt F Ftt=F={ABD; EHG; GC; DC} Áp dụng thuật toán, Q đƣợc phân rã thành lƣợc đồ CSDL sau: Q1{ABD), Q2(EHG), Q3(GC), Q4(DC) Tìm khóa Q TN={ABEH} TG={GD} Siêu khóa Xi TN Xi (TN Xi)+  ABEH ABCDEGH ABEH G ABEHG ABCDEGH ABEHG D ABEHD ABCDEGH ABEHD GD ABEHGD ABCDEGH ABEHGD 108 Khóa ABEH Q1,Q2,Q3,Q4 khơng chứa khóa  để bảo tồn thơng tin ta cần có Q5(A,B,E,H).Vậy kết phân rã Q1,Q2,Q3,Q4,Q5 6.3 Các dạng chuẩn Trong thực tế, ứng dụng cụ thể đƣợc thiết kế thành nhiều lƣợc đồ sở liệu khác nhau, tất nhiên chất lƣợng thiết kế lƣợc đồ CSDL khác Chất lƣợng thiết kế lƣợc đồ CSDL đƣợc đánh giá dựa nhiều tiêu chuẩn trùng lắp thơng tin chi phí kiểm tra ràng buộc toàn vẹn hai tiêu chuẩn quan trọng Sau số tiêu chuẩn để đánh giá độ tốt/xấu lƣợc đồ quan hệ Trƣớc tiên ta tìm hiểu số khái niệm liên quan: 6.3.1 Dạng chuẩn Một lƣợc đồ quan hệ Q dạng chuẩn toàn thuộc tính mang giá trị đơn Ví dụ 1: Xét quan hệ MA HOVATEN KHOA TENMONHOC SV DIEM THI 99023 99030 NGUYEN THI THU LE VAN THANH CONG NGHE THONG TIN DIEN TU KY THUAT LAP TRINH TOAN ROI RAC CO SO DU LIEU VI XULY Quan hệ không đạt chuẩn thuộc tính TENMONHOC, DIEMTHI thứ không mang giá trị đơn (chẳng hạn sinh viên NGUYEN THI THU có thuộc tính TENMONHOC KY THUAT LAP TRINH, TOAN ROI RAC, CO SO DU LIEU) Ta hồn tồn đƣa quan hệ dạng chuẩn nhƣ sau: MASV HOVATEN KHOA TENMONHOC 99023 NGUYENTHITHU CONG NGHE KY THUAT LAP THONG TIN TRINH 99023 NGUYENTHITHU CONG NGHE TOAN ROI RAC THONG TIN 109 DIEM THI 99023 NGUYENTHITHU CONG NGHE CO SO DU LIEU THONG TIN 99030 LE VAN THANH DIEN TU VI XULY Chú ý ràng xét dạng chuẩn, ta khơng nói thêm, ta hiểu dạng chuẩn xét đạt dạng chuẩn 6.3.2 Dạng chuẩn hai Một lược đồ quan hệ Q dạng chuẩn Q đạt chuẩn thuộc tính khơng khóa Q phụ thuộc đầy đủ vào khóa Thuật tốn kiểm tra dạng chuẩn Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F Ra: khẳng định Q đạt chuẩn hay không đạt chuẩn ước 1: Tìm tất c khóa Q ước 2: Với khóa K, tìm bao đóng tất c tập thật S K ước 3:Nếu có bao đóng S+ chứa thuộc tính khơng khóa Q khơng đạt chuẩn Ngược lại Q đạt chuẩn Ví dụ 2: Cho lƣợc đồ quan hệ Q(A,B,C,D) tập phụ thuộc hàm F={ABC; BD; BCA} Hỏi Q có đạt chuẩn khơng? Giải: TN={B}, TG={AC} Xi (TN  Xi) (TN Xi)+  B BD A AB C AC Siêu khóa khóa ABCD AB AB BC ABCD BC BC ABC ABCD ABC Khóa K1=AB K2=BC Ta thấy BK1, BD,D thuộc tính khơng khóa thuộc tính khơng khóa khơng phụ thuộc đầy đủ vào khóa  Q khơng đạt chuẩn Ví dụ 3:Quan hệ sau đạt chuẩn Q(G,M,V,N,H,P) F={GM; GN; GH; GP; MV; NHPM} 110 Giải: TN={G} TG={M,N,H,P} Xi (TN  Xi) (TN Xi)+ Siêu khóa khóa  G Q+ G G M GM Q+ GM N GN Q+ GN MN GMN Q+ GMN H GH Q+ GH MH GMH Q+ GMH NH GNH Q+ GNH MNH GMNH Q+ GMNH P GP Q+ GP MP GMP Q+ GMP NP GNP Q+ GNP MNP GMNP Q+ GMNP HP GHP Q+ GHP MHP GMHP Q+ GMHP NHP GNHP Q+ GNHP MNHP GMNHP Q+ GMNHP Lƣợc đồ quan hệ Q có khóa khóa có thuộc tính nên thuộc tính phụ thuộc đầy đủ vào khóa  Q đạt chuẩn Hệ quả: + Nếu Q đạt chuẩn tập thuộc tính khơng khóa Q rỗng Q đạt chuẩn + Nếu tất khóa quan hệ gồm thuộc tính quan hệ đạt chuẩn Ví dụ 4: Q(A,B,C,D,E,H) F={A  E; C  D; E  DH} Giải: TN={ACB} TG={E} Xi (TN  Xi) (TN Xi)+ Siêu khóa khóa  ACB ABCDEH ACB ACB E ACBE ABCDEH ACBE 111  khóa Q K = {ABC}.CK, CD, D thuộc tính khơng khóa D phụ thuộc khơng đầy đủ vào khóa nên Q khơng đạt chuẩn 6.3.3 Dạng chuẩn ba Thuộc tính phụ thuộc bắc cầu Q lƣợc đồ quan hệ, X,Y hai tập Q+, A thuộc tính Nói A phụ thuộc bắc cầu vào X ba điều sau thỏa: + X  Y,Y  A +Y X + A  XY Định nghĩa 1: Lược đồ quan hệ Q dạng chuẩn phụ thuộc hàm X  A  F+ với A  X có: + Hoặc X siêu khóa + Hoặc A thuộc tính khóa Định nghĩa 2: Lược đồ quan hệ Q dạng chuẩn thuộc tính khơng khóa Q khơng phụ thuộc bắc cầu vào khóa Q Hai định nghĩa tƣơng đƣơng, nhiên việc cài đặt thuật toán kiểm tra dạng chuẩn theo định nghĩa hiệu nhiều khơng phải kiểm tra tính phụ thuộc bắc cầu Ta chứng minh hai định nghĩa tƣơng đƣơng cách: Từ định nghĩa  khơng có phụ thuộc bắc cầu vào khóa Q Thật vậy: Giả sử có phụ thuộc bắc cầu vào khóa nghĩa có K  Y,Y  A,Y K A  KY Y  A phụ thuộc hàm nên theo định nghĩa có hai trƣờng hợp xảy cho Y: + Y siêu khóa  YK điều mâu thuẫn với Y K + Y không siêu khóa  A thuộc tính khóa  điều trái với giả thiết A  KY Từ định nghĩa  XAF+ với AX X siêu khóa A thuộc tính khóa 112 Nếu XAF+ với AX có X khơng siêu khóa A khơng thuộc tính khóa dẫn đến số điều sau: A khơng thuộc tính khóa  A  K X khơng siêu khóa  X K Tóm lại ta có KX, XA,X K A  KX  A phụ thuộc bắc cầu vào K điều mâu thuẫn với định nghĩa Hệ 1:Nếu Q đạt chuẩn Q đạt chuẩn Hệ 2:Nếu Q khơng có thuộc tính khơng khóa Q đạt chuẩn Chứng minh: Hệ 1: Giả sử Q đạt dạng chuẩn có thuộc tính khơng khóa A khơng phụ thuộc hàm đầy đủ vào khóa K  K‟ K cho K‟A nhƣ ta có KK‟,K‟A,K‟ K, A  KK‟ Q có phụ thuộc bắc cầu Hệ 2: phụ thuộc hàm Q có vế phải thuộc tính khóa  Q đạt dạng chuẩn Định lý: Q lược đồ quan hệ F tập phụ thuộc hàm có vế ph i thuộc tính Q đạt chuẩn phụ thuộc hàm XAF với AX có X siêu khóa hay A thuộc tính khóa Chứng minh: Q đạt dạng chuẩn theo định nghĩa ta suy phụ thuộc hàm XAF với AX có X siêu khóa A thuộc tính khóa Ngƣợc lại ta phải chứng minh phụ thuộc hàm XAF với AX có X siêu khóa A thuộc tính khóa phụ thuộc hàm XAF+ với AX có X siêu khóa A thuộc tính khóa Giả sử có phụ thuộc hàm XAF+ với AX cho X khơng siêu khóa A khơng thuộc tính khóa dẫn đến A  X+ X  {các thuộc tính khóa} điều mâu thuẫn với A  K.Trƣớc chứng minh A  X+ X  {các thuộc tính khóa} ta có nhận xét sau: 113 X khơng siêu khóa  X+ khơng siêu khóa Theo thuật tốn tìm bao đóng, X+ đƣợc hình thành từ Xi bƣớc Xi khơng siêu khóa Bƣớc sở: X0 = X  X0 X  {các thuộc tính khóa} Bƣớc qui nạp: giả sử có Xi- 1 X  {các thuộc tính khóa} Bao đóng Xi đƣợc hình thành có fj = Xj  Yj để Xi- 1 Xj Xi= Xi- 1 Yj  fj = Xj  Yj phụ thuộc hàm có Xj khơng siêu khóa  fj = Xj  Yj phụ thuộc hàm có Yj thuộc tính khóa  Xi= Xi- 1 Yj  X  {các thuộc tính khóa} Qua chứng minh  AX+  X  {các thuộc tính khóa} A X{các thuộc tính khóa}  A{các thuộc tính khóa} điều nghịch lý với điều A  K Thuật toán kiểm tra dạng chuẩn Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F Ra: khẳng định Q đạt chuẩn hay không đạt chuẩn ước 1: Tìm tất c khóa Q ước 2: Từ F tạo tập phụ thuộc hàm tương đương F1tt có vế ph i thuộc tính ước 3: Nếu phụ thuộc hàm X  A F1tt với AX có X siêu khóa hay A thuộc tính khố Q đạt chuẩn ngược lại Q khơng đạt chuẩn Ví dụ 5: Cho lƣợc đồ quan hệ Q(A,B,C,D) F={ABC; DB; CABD} Hỏi Q có đạt chuẩn khơng? Giải: TN= TG={ABCD} Xi (TN  Xi) (TN Xi)+    A A A B B B AB AB C Siêu khóa khóa ABCD AB AB C ABCD C C AC AC ABCD AC BC BC ABCD BC 114 ABC ABC ABCD ABC D D BD AD AD ABCD BD BD BD ABD ABD ABCD ABD CD CD ABCD CD ACD ACD ABCD ACD BCD BCD ABCD BCD ABCD ABCD ABCD ABCD AD AD K1 = {AB}; K2 = {AD}; K3={C} khóa  phụ thuộc hàm XAF có A thuộc tính khóa Vậy Q đạt chuẩn Ví dụ 6:Quan hệ sau đạt chuẩn Q(N,G,P,M) F = {NGPM,MP} 6.3.4 Dạng chuẩn Boyce – Codd Một quan hệ Q dạng chuẩn C phụ thuộc hàm XA  F+ với AX có X siêu khóa Hệ 1: Nếu Q đạt chuẩn BC Q đạt chuẩn (hiển nhiên định nghĩa) Hệ 2: Mỗi lƣợc đồ có hai thuộc tính đạt chuẩn BC (xét phụ thuộc hàm có Q ) Định lý: Q lược đồ quan hệ F tập phụ thuộc hàm có vế ph i thuộc tính Q đạt chuẩn C phụ thuộc hàm XAF với AX có X siêu khóa Chứng minh: Q đạt dạng chuẩn BC theo định nghĩa ta suy phụ thuộc hàm XAF với AX có X siêu khóa Ngƣợc lại ta phải chứng minh phụ thuộc hàm XAF với AX có X siêu khóa phụ thuộc hàm ZBF+ với BZ có Z siêu khóa Thật vậy, ZB khơng phụ thuộc hàm hiển nhiên nên theo thuật tốn tìm bao đóng phải có XAF cho ZX (X siêu khóa) Z siêu khóa 115 Thuật tốn kiểm tra dạng chuẩn C Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F Ra: khẳng định Q đạt chuẩn C hay khơng đạt chuẩn C ước 1: Tìm tất c khóa Q ước 2:Từ F tạo tập phụ thuộc hàm tương đương F1tt có vế ph i thuộc tính ước 3:Nếu phụ thuộc hàm X  A  F1tt với AX có X siêu khóa Q đạt chuẩn C ngược lại Q khơng đạt chuẩn C Ví dụ 7:Q(A,B,C,D,E,I) F={ACDEBI;CEAD} Hỏi Q có đạt chuẩn BC khơng? Giải: TN={C} TG={ADE} Xi (TN  Xi) (TN Xi)+  C C A AC AC D CD CD AD ACD E Siêu khóa khóa ABCDEI ACD ACD CE ABCDEI CE CE AE ACE ABCDEI ACE DE CDE ABCDEI CDE ADE ACDE ABCDEI ACDE F  F1tt={ACDE,ACDB,ACDI,CEA,CED} Mọi phụ thuộc hàm F1tt có vế trái siêu khóa  Q đạt dạng chuẩn BC Ví dụ 8: Q(SV,MH,THAY)F = {SV,MH  THAY;THAY  MH} Quan hệ đạt chuẩn nhƣng không đạt chuẩn BC Ví dụ 9: Chẳng hạn cho Q(A,B,C,D) F={AB  C; D  B; C  ABD} Q 3NF nhƣng không BCNF Nếu F={B  D,A  C,C  ABD} NF nhƣng không NF Thuật toán kiểm tra dạng chuẩn lược đồ quan hệ Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F Ra: khẳng định Q đạt chuẩn gì? 116 ước 1: Tìm tất c khóa Q ước 2: Kiểm tra chuẩn C Q đạt chuẩn C, kết thúc thuật toán ngược lại qua bước ước 3: Kiểm tra chuẩn Q đạt chuẩn 3, kết thúc thuật tốn ngược lại qua bước ước 4: Kiểm tra chuẩn Q đạt chuẩn 2, kết thúc thuật toán ngược lại Q đạt chuẩn Định nghĩa:Dạng chuẩn lược đồ sở liệu dạng chuẩn thấp dạng chuẩn lược đồ quan hệ 6.4 Chuẩn hóa qua phép tách Q trình chuẩn hóa lƣợc đồ CSDL nhằm mục đích nâng cao chất lƣợng thiết kế hay cụ thể đƣa lƣợc đồ quan hệ từ dạng chuẩn thấp lên dạng chuẩn cao mà tối thiểu phải dạng chuẩn Phƣơng pháp tách phƣơng pháp dùng để chuẩn hóa lƣợc đồ CSDL Sự bảo tồn thơng tin: Việc chuẩn hóa lƣợc đồ quan hệ hay lƣợc đồ CSDL phải bảo đảm u cầu: bảo tồn thơng tin Phép phân rã Q thành Q1, Q2, … đƣợc gọi bảo tồn thơng tin nếu: TQ: TQ = TQ [Q1] ►◄ TQ [Q2] … ►◄ … Định lý Delobel: Cho lƣợc đồ quan hệ Q(XYZ) tập phụ thuộc hàm F Nếu X  Y F+ phép phân rã Q thành lƣợc đồ quan hệ con: Q1(XY) Q2(XZ) bảo tồn thơng tin Phƣơng pháp phân rã: Begin F+ = F \ { f F+ / VT(f) VP(f) Q+ } IF (F+ ) Then Begin F+ B2.Tạo lƣợc đồ quan hệ Q1 Q2: Q1=X Y F1 ={ f F+ / VT(f) VP(f) Q1+ } 117 Q2=Q+\Y F2 = { f F+ / VT(f) VP(f) Q2+ } B3.Phân rã đệ quy Q1 Q2 End; End; Ví dụ: Cho lƣợc đồ quan hệ Q(ABCDEG) tập pth F = { AE  C (f1), CG  A (f2), BD  G (f3), GA  E (f4) } Khóa Q {BDA}, {BDC} BD  G: Không đạt dạng chuẩn BÀI TẬP CHƢƠNG Bài 1: Cho quan hệ sau: R( A B C D E) a1 b1 c1 d1 e1 a1 b2 c2 d2 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1 Phụ thuộc hàm sau thỏa R:AD,ABD,CBDE,EA,AE Bài 2: Cho Q+={ABCD} a.Tìm tất các tập Q b Tìm tất phụ thuộc hàm có Q (không liệt kê phụ thuộc hàm hiển nhiên) Bài 3: Tìm bao đóng F+ quan hệ phanCong(PHICONG,MAYBAY,NGAYKH,GIOKH) Bài 4: Cho F = {ABC,BD,CDE,CEGH,GA} a Hãy chứng tỏ phụ thuộc hàm ABE,ABG đƣợc suy diễn từ F nhờ luật dẫn Armstrong b Tìm bao đóng AB(với tốn khơng nói lƣợc đồ quan hệ Q ta ngầm hiểu Q+ tập thuộc tính có F nghĩa Q+={ABCDEGH}) Bài 5: Cho F = {AD,ABDE,CEG,EH} Hãy tìm bao đóng AB 118 Bài 6: Cho F={ABE,AGI,BEI,EG,GIH} a Hãy chứng tỏ phụ thuộc hàm ABGH đƣợc suy diễn từ F nhờ luật dẫn Armstrong b Tìm bao đóng {AB} Bài 7: Cho F={AD,ABE,BIE,CDI,EC} tìm bao đóng {AE}+={ACDEI} Bài 8: Chứng minh tính chất sau: a Tính cộng đầy đủ X  Y Z  W  XZ  YW b Tính tích lũy X  Y Y  ZW  X  YZW Bài 9: Cho G={ABC,AB,BC,AC} F={ABC,AB,BC} có tƣơng đƣơng với G không? Bài 10: Cho lƣợc đồ CSDL Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN) F={NGAY,GIO,PHONG  MONHOC; MONHOC,NGAY  GIAOVIEN; NGAY,GIO,PHONG GIAOVIEN; MONHOC GIAOVIEN} a.Tính {NGAY,GIO,PHONG}+ ;{MONHOC}+ b.Tìm phủ tối thiểu F c.Tìm tất khóa Kehoach Bài 11: Cho lƣợc đồ CSDL Q(TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG,NGAY) F={TENTAU LOAITAU MACHUYEN TENTAU, LUONGHANG TENTAU,NGAY BENCANG, MACHUYEN} a Hãy tìm tập phủ tối thiểu F b.Tìm tất khóa Q Bài 12: Q(A,B,C,D,E,G) 119 Cho ={ABC;CA;BCD;ACDB;DEG;BEC;CGBD;CE  AG} F X={B,D}, X+=? Y={C,G}, Y+=? Bài 13: Cho lƣợc đồ quan hệ Q tập phụ thuộc hàm F a F={ABE;AGI;BEI;EG;GI H} chứng minh AB  GH b F={ABC;BD;CDE;CEGH;GA}chứng minh rằngAB  E;AB G Bài 14: Cho quan hệ r A B C D x u x Y y x z x z y y y y z w z Trong phụ thuộc hàm sau đây, PTH không thỏa A  B; A  C; B  A; C  D; D  C; D  A Bài 15: Hãy tìm tất khóa cho lƣợc đồ quan hệ sau: Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT) F={STOCK  DIVIDENT INVESTOR  BROKER INVESTOR,STOCK  QUANTITY BROKER OFFICE } Bài 16: Xét lƣợc đồ quan hệ tập phụ thuộc liệu: Q(C,T,H,R,S,G) f={f1: C T; f2: HR C;f3: HT R; f4: CS G; f5: HS R} Tìm phủ tối thiểu F Bài 17: Cho lƣợc đồ quan hệ tập phụ thuộc liệu Q(A,B,C,D,E,H) F={A  E; C  D; E  DH} 120 Chứng minh K={A,B,C} khóa Q Bài 18: Cho lƣợc đồ quan hệ tập phụ thuộc liệu Q(A,B,C,D) F={ABC; DB; CABD} Hãy tìm tất khóa Q Bài 19: Cho lƣợc đồ quan hệ tập phụ thuộc liệu Q(A,B,C,D,E,G) F={ABC;C A;BCD;ACDB;DEG;BEC;CGBD;CEG} Hãy tìm tất khóa Q Bài 20: Xác định phủ tối thiểu tập phụ thuộc hàm sau: a Q(A,B,C,D,E,G), F={ABC;CA;BCD;ACDB;DEG;BEC;CGBD;CEAG} b Q(A,B,C) F={AB,AC,BA,CA,BC} Bài 21: Xác định phủ tối thiểu tập phụ thuộc hàm sau: a Q1(BCDEGH) F1={A H,ABC,BCD;GB} b Q2(ABCSXYZ) F2={SA;AXB;SB;BYC;CZX} c Q3(ABCDEGHIJ) F3={BGD;GJ;AIC;CEH;BDG;JHA; DI } d Q4(ABCDEGHIJ) F4={BHI;GCA;IJ;AEG;DB;IH} 121 TÀI LIỆU THAM KHẢO Nguyễn Tuệ Giáo trình nhập mơn hệ sở liệu Nhà xuất giáo dục, năm 2007 Phạm Đức Nhiệm Giáo trình sở liệu quan hệ Nhà xuất Hà Nội, năm 2012 Tô Văn Nam Giáo trình sở liệu Nhà xuất giáo dục, năm 2009 Đỗ Trung Tuấn Cơ sở liệu Nhà xuất giáo dục, năm 2009 Nguyễn Xuân Huy, Lê Hoài Bắc Bài tập sở liệu Nhà xuất thống kê, năm 2009 Trần Đức Quang, Hồ Thuần, Cơ sở liệu sở tri thức tâp1, tập 2, NXB Thống kê, 2003 122 ... c1 a2 d1 a1 b b c2 a2 d2 47 a2 b b c1 a2 b b c2 a3 d3 r1*r3 (A B D) a3 b r1*r2 (A B C) a1 b1 c1 a2 b1 d1 a1 b1 c2 a2 b1 d2 a1 b2 c1 a2 b3 d1 a1 b2 c2 a2 b3 d2 a2 b1 c1 a3 b3 d3 a2 b1 c2 - Phép... AC Sửa bảng giá trị để thỏa BC Sửa b4,b13 thành b2 Sửa b8 thành b2 A B C D E A B C D E Q1(AD) a1 b1 b2 a4 b3 Q1(AD) a1 b1 b2 a4 b3 Q2(AB) a1 a2 b2 b5 b6 Q2(AB) a1 a2 b2 b5 b6 Q3(BE) b7 a2 b8... Yj (1) Sự hình thành Xi ln kéo theo hình thành (X- A)i vì: 75 Xi- = (X - A)i- 1 A  Xj Xj không chứa A nên: (X - A)i- 1 Xj (X - A)i= (X - A)i- 1 Yj (2) (1) (2) cho: Xi= (X - A)i A điều phải

Ngày đăng: 23/03/2022, 09:34

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

Tài liệu liên quan