Giáo trình thiết kế cơ sở dữ liệu phần 2 trịnh minh tuấn (biên soạn)

133 404 0
Giáo trình thiết kế cơ sở dữ liệu  phần 2   trịnh minh tuấn (biên soạ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 V NGÔN NGỮ ĐẠI SỐ QUAN HỆ 5.1 Dẫn nhập Ngôn ngữ đại số quan hệ ngôn ngữ biểu diễn câu hỏi quan hệ Do cách biểu diễn khác nên tài liệu này, ngôn ngữ đại số quan hệ chia làm nhóm: Các phép toán tập hợp phép toán biểu diễn phép toán tập hợp, phép toán quan hệ phép toán khác liên quan chủ yếu đến phép kết nối 5.2 Các phép toán tập hợp quan hệ Sáu phép toán tập hợp áp dụng tập giá trò quan hệ, là: Hợp (Union), Hiệu (Minus), Giao (Intersection), Tích Đề-các (Cartesian), phép chia (Division) phép bù (Complement) Giả thiết: U =  A1, A2, A3, An  tập thuộc tính R S quan hệ đònh nghóa U có thứ tự thuộc tính Và luôn giả thiết R S có số lượng hữu hạn giá trò 5.2.1 Phép hợp quan hệ (Union) Hợp hai quan hệ R S - ký hiệu R  S - quan hệ Q xác đònh tập thuộc tính U, có thứ tự thuộc tính quan hệ R S, đònh nghóa sau: 94 Q = R  S =  t / t  R t  S  Nói cách nôm na, hợp quan hệ R S quan hệ có với quan hệ R S với giá trò gộp giá trò R S; giá trò trùng giữ lại Ví dụ 5.2.1: Quan hệ ĐơnvòA có giá trò sau: MãSố 100 101 103 105 Họ-tên Nguyễn Văn Nam Hoàng Thò Xuân Đặng Ngọc Chiến Phan Kỳ Nhân Phái Nam Nữ Nữ Nam Chức-danh Giám đốc Kế toán trưởng Thư ký Lái xe Lương 2.500.000 1.700.000 1.000.000 700.000 MãĐV 10 10 10 10 Lương 1.200.000 1.700.000 1.000.000 1.000.000 MãĐV 30 10 30 30 Quan hệ ĐơnvòB có giá trò sau: MãSố 210 101 221 233 Họ-tên Nguyễn Thò Cao Hoàng Thò Xuân Đỗ Hữu Ngọc Hoàng Thao Phái Nữ Nữ Nam Nam Chức-danh Trưởng phòng Kế toán trưởng Phó phòng Chuyên viên Hợp hai quan hệ cho kết quan hệ NV-CTy có giá trò sau: MãSố 100 101 103 105 210 221 233 Họ-tên Nguyễn Văn Nam Hoàng Thò Xuân Đặng Ngọc Chiến Phan Kỳ Nhân Nguyễn Thò Cao Đỗ Hữu Ngọc Hoàng Thao Phái Nam Nữ Nữ Nam Nữ Nam Nam Chức-danh Giám đốc Kế toán trưởng Thư ký Lái xe Trưởng phòng Phó phòng Chuyên viên 95 Lương 2.500.000 1.700.000 1.000.000 700.000 1.200.000 1.000.000 1.000.000 MãĐV 10 10 10 10 30 30 30 Bộ giá trò có mã số nhân viên 101 xuất lần quan hệ ĐơnvòA ĐơnvòB, quan hệ NV-Cty giữ lại lần, giá trò 5.2.2 Phép trừ hai quan hệ (Minus) Hiệu hai quan hệ R S, ký hiệu R - S, quan hệ Q xác đònh tập thuộc tính U, có thứ tự thuộc tính quan hệ R S, đònh nghóa sau: Q = R - S =  t / t  R t  S  Nói cách nôm na, hiệu quan hệ R S quan hệ có với quan hệ R S với giá trò giá trò R sau loại bỏ có mặt quan hệ S Ví dụ 5.2.2: Với hai quan hệ trên, hiệu ĐơnvòA ĐơnvòB quan hệ NV-CtyA với sau: MãSố 100 103 105 Họ-tên Nguyễn Văn Nam Đặng Ngọc Chiến Phan Kỳ Nhân Phái Chức-danh Nam Giám đốc Nữ Thư ký Nam Lái xe Lương 2.500.000 1.000.000 700.000 MãĐV 10 10 10 5.2.3 Giao quan hệ (Intersection) Giao hai quan hệ R S, ký hiệu R  S, quan hệ Q xác đònh tập thuộc tính U, có thứ tự thuộc tính quan hệ R S, đònh nghóa sau: Q = R  S =  t / t  R t  S  96 Nói cách nôm na, giao quan hệ R S quan hệ có với quan hệ R S với giá trò giống hai quan hệ R S Ví dụ 5.2.3: Với hai quan hệ trên, hiệu ĐơnvòA ĐơnvòB quan hệ NV-CtyA với sau: MãSố 101 Họ-tên Phái Hoàng Thò Xuân Nữ Chức-danh Kế toán trưởng Lương 1700.000 MãĐV 10 5.2.4 Tích Đề-các quan hệ (Cartesian) R (A1, A2, , An) S (B1, B2, , Bm) hai quan hệ có số giá trò hữu hạn Tích Đề-các hai quan hệ R S, ký hiệu R x S, quan hệ Q xác đònh tập thuộc tính R S (với n + m thuộc tính) đònh nghóa sau: Q = R x S =  t / t có dạng (a1, a2, , an, b1, b2, , bm) (a1, a2, , an)  R (b1, b2, , bm)  S  Nói cách nôm na, tích Đề-các quan hệ R S quan hệ Q có số tổng số R S, với giá trò gồm phần: phần bên trái giá trò R phần bên phải giá trò S Như vậy, R có n1 giá trò S có n2 giá trò, Q có n1 x n2 giá trò Ví dụ 5.2.4: R (A B a1 b1 a2 b2 a3 b3 C) c1 c2 c3 S (D E d1 e1 d2 e2 97 F) f1 f2 R x S = Q (A a1 a1 a2 a2 a3 a3 B b1 b1 b2 b2 b3 b3 C c1 c1 c2 c2 c3 c3 D d1 d2 d1 d2 d1 d2 E e1 e2 e1 e2 e1 e2 F) f1 f2 f1 f2 f1 f2 5.2.5 Phép chia hai quan hệ (Division) R quan hệ n S quan hệ m (n > m S  ), có m thuộc tính chung (giống mặt ngữ nghóa, thuộc tính so sánh được) R S Phép chia quan hệ R S, ký hiệu RS, quan hệ Q có n - m đònh nghóa sau: Q = RS = { t / sc: uS, (t,u)  R } Sử dụng đònh nghóa phép tích Đề-các, đònh nghóa phép chia hình thức sau: RS = Q cho Q x S  R (với giả thiết thêm thứ tự thuộc tính R, S, Q không quan trọng) Ví dụ 5.2.5: R (A, a a b c c a B, b b c d d b C, c e e c e d D) d f f d f e S (C, D) c d e f 98 RS= (A, B) a b c d Ví dụ 5.2.6: (TS Đồng Thò Bích Thủy) công: Cho quan hệ khả lái loại máy bay phi KHẢ-NĂNG (Số-hiệu-phi-công, Số-hiệu-máy-bay) Số-hiệu-phi-công Số-hiệu-máy-bay 32 30 30 32 33 30 31 30 31 102 101 103 103 100 102 102 100 100 Câu hỏi: Cho biết phi công có khả lái loại máy bay 100, 101, 103 ? Trả lời: Đó thương phép chia quan hệ KHẢ-NĂNG cho quan hệ MÁY-BAY (Số-hiệu-máy-bay): 100 101 103 Và kết quan hệ PHI-CÔNG (Số-hiệu-phi-công) có giá trò (30) 5.2.6 Phép bù quan hệ (Complement) Cho quan hệ R (A1, A2, , An) với miền giá trò thuộc tính Ai MGT(Ai) Phép bù quan hệ R quan hệ Q xác đònh tập thuộc tính R+, ký hiệu R, đònh nghóa sau: Q = R =  t (a1, a2, , an)  MGT(Ai) i=1 n / t  R  99 Nghóa tập tất giá trò có tích Đề-các miền giá trò MGT(Ai) chưa có mặt thể quan hệ R Quan hệ bù quan hệ có số lượng giá trò lớn, thực tế hệ quản trò CSDL cài đặt phép toán Ví dụ 5.2.7: Quan hệ CUNG-CẤP (Mã-NCC, Hàng-hóa) với Mã-NCC =  S1, S2, S3  Hàng-hóa cung cấp  Đinh, Ốc, Vít  Mã-NCC S1 S1 S2 S2 S3 Hàng-hóa Đinh Vít Ốc Đinh Vít Quan hệ bù quan hệ CUNG-CẤP có giá trò sau: Mã-NCC S1 S2 S3 S3 Hàng-hóa Ốc Vít Ốc Đinh 5.3 Các thao tác sở quan hệ Ở mục trình bày cách tiếp cận việc hình thành ngôn ngữ truy vấn liệu (Data Query Language) qua phép toán tập hợp giá trò quan hệ Các phép toán đặc biệt quan hệ sau cách tiếp cận khác việc biểu diễn câu hỏi ngôn ngữ đại số quan hệ, chúng có 100 liên quan chặt chẽ tới thao tác Thêm (Insert), Sửa (Update) Xóa (Delete) giá trò quan hệ 5.3.1 Phép chiếu (Projection) Giả sử R quan hệ xác đònh tập thuộc tính U =  A1, A2, , An  X  U Phép chiếu quan hệ R tập thuộc tính X quan hệ Q xác đònh tập thuộc tính X, ký hiệu R [X], đònh nghóa sau: Q = R [X]  q / t  R: q = t.X  Đôi người ta ký hiệu phép chiếu quan hệ R tập thuộc tính X X(R) Nếu X = Ai1, Ai2, Aim  viết cụ thể Ai1Ai2 Aim(R) [3] Ngữ nghóa: Trích từ R số thuộc tính để tạo thành quan hệ Số quan hệ số thuộc tính tập X Các giá trò cột trích giống loại bỏ để giữ lại (trong thể quan hệ giống nhau) Phép chiếu biểu diễn sơ đồ sau: Q X R Hình 5.3.1 Sơ đồ biểu diễn phép chiếu 101 Ví dụ 5.3.1: Cho quan hệ nhân viên làm việc Công ty (EMPLOYEE) sau: Empno 100 101 103 105 109 110 200 210 213 214 215 220 Name Wilson Smith Reed Watson Allen Turner Chen Ramirez McDonnel Simpson Di Salvo Schwartz Job Clrk Slsm Anlt Mngr Mngr Clrk Mngr Mngr Clrk Drvr Spvr Slsm Salary 1.700 2.500 3.500 4.500 3.800 1.800 2.900 3.600 1.625 825 2.700 4.200 Comm 1.300 8.000 5.300 Deptno 10 40 30 30 40 50 10 50 60 60 60 40 Sex M F M M F M F M M M M F Câu hỏi: Hãy cho biết loại công việc mà nhân viên Cty làm? Câu trả lời: Chiếu quan hệ EMPLOYEE lên thuộc tính Job, giữ lại giá trò khác Kết quan hệ JOBEMPLOYEE = EMPLOYEE [JOB] gồm cột dòng với giá trò  Clrk, Slsm, Anlt, Mngr, Drvr, Spvr  5.3.2 Phép chọn (Selection) Phép chọn cho phép chọn lựa ghi thỏa mãn điều kiện Đ để đưa vào quan hệ kết Điều kiện Đ biểu thức lôgíc cho kết (True) sai (False) đánh giá giá trò quan hệ nguồn; tổ hợp biểu thức lôgic sở Mỗi biểu thức sở chứa phép so sánh: nhỏ (=), (=) khác ( ) có dạng: 102 - Thuộc tính so sánh với thuộc tính - Thuộc tính so sánh với (literal) Các biểu thức lôgic sở tổ hợp với phép toán lôgic: phép “và” lôgic - hay gọi phép nối liền ( conjunction), phép “hoặc” lôgic - hay gọi phép nối rời ( disjunction) phép phủ đònh ( - not) Giả sử R (A1, A2, An) quan hệ, Đ điều kiện (hoặc gọi phát biểu) dựa tập thuộc tính R+ Đánh giá điều kiện Đ giá trò t  R ký hiệu E (tĐ) để đơn giản, ta viết Đ(t) Phép chọn ghi R thỏa mãn điều kiện Đ quan hệ Q có với R, ký hiệu R:Đ, đònh nghóa hình thức sau: Q =  t  R / Đ (t) =  Phép chọn ký hiệu theo C.J.Date [3] dấu sigma (): F(R) Phép chọn biểu diễn sơ đồ sau: Q Đ R Hình 5.3.2 Sơ đồ biểu diễn phép chọn 103 Nhóm phép tính đường mũi tên gián đoạn Mỗi tích Đề-các tổ hợp với phép chọn để tạo thành phép kết nối (Equi Join) có hiệu Đặc biệt phép chọn quan hệ MƯN-SÁCH phép chiếu ĐỘC-GIẢ để lấy thuộc tính Số-thẻ phía đủ để tổ hợp với tích Đề-các Thứ tự thực biểu thức hình 8.3, 8.2 8.3 từ lên: Nhóm phép toán nằm phía thực trước phép toán phiá [ Tên-sách ]   : ( SÁCH.Mã_sách = MƯN-SÁCH.Mã-sách )   x [ MƯN-SÁCH.Mã-sách ]   x [MƯN-SÁCH.Mã-Sách, MƯN-SÁCH.Số-thẻ]   : (Ngày-mượn < 27/03/1999)   [SÁCH.Mã-sách, Tên-sách]   SÁCH [ĐỘC-GIẢ.Số-thẻ]   ĐỘC-GIẢ MƯN-SÁCH Hình 8.3 Cây kết biểu diễn việc phân nhóm biểu thức 212 8.3 Một thuật toán để tối ưu hóa câu hỏi ngôn ngữ ĐSQH Ví dụ cho ta minh họa việc chuyển đổi câu hỏi ngôn ngữ Đại số quan hệ dạng tương đương tốt (hay tối ưu hơn) Phương pháp tập trung chủ yếu vào phép chiếu, phép chọn tích Đề-các, với mục đích “đẩy” phép chọn phép chiếu xuống mức thấp nhất, tức thi hành phép toán sớm tốt, Tiếp theo, kết hợp phép chọn với tích Đề-các thành phép kết tự nhiên để làm giảm kết trung gian Cốt lõi vấn đề tối ưu hóa việc làm giảm thiểu lưu trữ trung gian từ làm tăng nhanh tốc độ xử lý câu hỏi Tuy nhiên, để thực trình tối ưu hóa trên, cần lưu ý tới thứ tự thực phép toán để “đẩy” phép toán xuống mức hợp lý cần thiết Bảng cho phép cách thực phép biến đổi tương đương phép Hội (Union), Trừ (Minus), Giao (Intersect), Tích Đề-các (Cartesian), Chia (Division), Chiếu (Projection) Chọn (Selection) (B1) Kết tự nhiên tương đương vớ dãy phép tích Đề-các, phép chọn phép chiếu: Q1 (A,B) * Q2 (B,C)  (Q1 x Q2 : (Q1[B]=Q2[B])) [A,B,C] (B2) Phép theta kết tương đương với dãy phép tích Đề-các phép chọn với điều kiện theta: Q1(A,B) BD Q2(C,D)  (Q1 x Q2) : (BD) (B3) Phép giao (Intersect) tương đương với phần bù (Complement) hội hai phần bù quan hệ: Q1  Q2   (( Q1)  ( Q2)) (B4) 213 (B4) Phép bù quan hệ tương đương với tích Đề-các phép chiếu thuộc tính quan hệ trừ giá trò có thể quan hệ:  Q(X1, X2,Xn)  (Q[X1] x Q[X2] x  x Q[Xn]) - Q(X1,Xn) (B5) Thương quan hệ tương đương với hiệu quan hệ trung gian sau: Q1(A,B)  Q2(A) = Q1[B] - ((Q1[B] x Q2[A] - Q1(A,B)) [B] Áp dụng cách biến đổi tương đương trên, kết hợp với quy tắc “đẩy” kết hợp trình bày mục 8.2, đưa thuật toán tổng quát để tối ưu hóa câu hỏi ngôn ngữ đại số quan hệ Thuật toán: Đầu vào (Input): Sơ đồ cú pháp câu hỏi ngôn ngữ đại số quan hệ Đầu (Output): Sơ đồ cú pháp tối ưu Bước Áp dụng phép biến đổi tương đương nêu bảng (B1) đến (B5) Bước Áp dụng luật  biến đổi dãy phép chọn tương đương: tách phép chọn thành phép chọn Bước Đối với phép chọn, áp dụng luật ,,  nhằm đẩy phép toán chọn xuống sâu tốt Bước Đối với phép chiếu, áp dụng quy tắc ,  nhằm đẩy phép toán chiếu xuống sâu tốt Bước + Tập trung phép chọn nhằm áp dụng luật  + Áp dụng luật  để loại bỏ bớt phép chiếu vô ích + Tập trung phép chọn với tích Đề-các, được, để chuyển thành pheép kết tự nhiên hay theta kết cách áp dụng luật   214 Nhận xét: Thuật giải nêu chủ yếu nhằm giảm khối lượng liệu trung gian không thứ tự thực phép kết Ví dụ: (Q1 (A,B) * Q2 (B,C)) * Q3(A,C)  (Q1 (A,B) * Q3 (A,C)) * Q2(B,C) Thuật giải không cho kết tối ưu mà đưa giải pháp tôét Các phép biến đổi dựa phép toán Hội (Union), Trừ (Minus), Giao (Intersect), Tích Đề-các (Cartesian), Chia (Division), Chiếu (Projection) Chọn (Selection) mà thực phép biến đổi dựa phép toán khác 8.4 Một số kỹ thuật tối ưu cấp thấp Trong mục 8.2 trình bày tư tưởng để thực tối ưu biểu thức quan hệ Trong phần trình bày lớp câu truy vấn phổ dụng nhiều hệ thống cài đặt có hiệu Vấn đề đặt câu hỏi biến đổi tối ưu có tương đương với câu hỏi ban đầu hay không? Lớp câu hỏi quan sát bao gồm phép chiếu (Projection), phép chọn (Selection) phép kết tự nhiên (Natural Join) có nghóa biểu thức truy vấn bao gồm ba phép tính Kết cài đặt nhiều hệ thống (như System R) hiệu tổng quát cho tất Như phần trình bày, phép toán quan hệ phép tích Đề các, phép kết (Join) làm nhiều thời gian xử lý tốn nhiều nhớ Vì vậy, nguyên tắc phần làm để biểu thức tối ưu cuối (tương đương với biểu thức ban đầu) có số phép kết tối thiểu Do vậy, trình biến đỗi 215 tương đương, điều quan trọng loại bỏ phép kết không cần thiết Để tiện lợi cho trình biến đổi, cần làm quen với khái niệm “quan hệ vũ trụ” (universal relation), hiểu cách đơn giản phép kết tự nhiên tất quan hệ CSDL thành quan hệ chung Câu hỏi hội bảng Một câu hỏi hội (conjunctive query) câu hỏi có dạng: a1 an ( b1) (bm) ( p1   pk)  pi, i =1, , k dạng: R(c1, c2, , cr), nghóa c1, c2, , cr thuộc quan hệ R; cj giá trò a, giá trò b trực (literal); c  d c d giá trò a b trực hằng;  phép so sánh ,  Chú ý phép =  không tính danh sách Thông thường, câu hỏi biểu diễn đưới dạng bảng (tableau) Để mô tả khối lượng bảng, trước hết cần giả thiết tập thuộc tính quan hệ quan sát Các thuộc tính có tên quan hệ khác có ý nghóa thuộc tính có ý nghóa khác phải mang tên khác Đònh nghóa bảng Bảng xem mảng hai chiều thêm số điều kiện ràng buộc Hàng thứ bảng danh sách tất thuộc tính Mỗi thuộc tính tương ứng với cột bảng Hàng thứ hai gọi hàng đích (summary) bao gồm giá trò rỗng (blank), ký hiệu phân biệt (distinguished symbols) Ký hiệu phân biệt thường ký hiệu chữ a (thường) biểu diễn câu hỏi hội Các hàng lại nhận ký hiệu a trống b, với b 216 biến không phân biệt (nondistinguished variable) ký hiệu không phân biệt (nondisguished symbols) Các hàng biểu diễn hạng thức câu hỏi hội dạng R(c1, c2, , ck) tức xác đònh quan hệ Tại vò trí ci cột tương ứng với thuộc tính thứ i quan hệ, giá trò trống cột bảng không tương ứng với thuộc tính lược đồ quan hệ R Các tân từ c  d câu hỏi hội xem ràng buộc bảng Chú ý bảng đòi hỏi biến không phép xuất đồng thời hai cột khác bảng, biến phân biệt không xuất hàng đích cột Như bảng diễn giải câu hỏi hội, tức ánh xạ từ giá trò biến quan hệ lên quan hệ Quan hệ kết quan hệ tập thuộc tính với ký hiệu phân biệt hàng đích Gọi T bảng S tập tất ký hiệu xuất T (tức biến hằng) Một đánh giá  cho T liên quan với ký hiệu S hằng, cho c  S  (c) = c. hàng đích hàng khác T mở rộng sau: Gọi w0 hàng đích T, w1 wn hàng lại  (wi) nhận nhờ thay  (v) cho biến v xuất wi Bảng đònh nghóa ánh xạ từ trạng thái vào quan hệ tập thuộc tính Vậy, T bảng, I trạng thái T(I) quan hệ tập thuộc tính mà thuộc tính cột có giá trò khác trống hàng đích, cho T(I) =  (w0) với đánh giá  (wi)  I,  i  n  Chú ý: Quy đònh  bảng rỗng Bảng biểu diễn ánh xạ trạng thái vào quan hệ rỗng Tính tương đương bảng 217 Hai bảng T1 T2 tương đương, ký hiệu T1  T2 với tình trạng I, T1(I) = T2(I) Nói T1 chứa T2, viết tắt T1  T2 với I, T1(I)  T2(I) Lưu ý điều kiện cần không đủ T1  T2 T1  T2 quan hệ xác đònh T1 T2 phải có lược đồ đích (lược đồ đích tập hợp thuộc tính biễu diễn hàng bảng) 8.4.1 Biểu diễn biểu thức nhờ bảng Trong phần trình bày cách thức cấu trúc bảng để biểu diễn biểu thức quan hệ phép Chiếu, Chọn Kết tự nhiên Việc cấu trúc bảng trước hết tiến hành cho hạng thức biểu thức, sau tổ hợp bảng lại thành bảng chung Các quy tắc thiết lập bảng T cho biểu thức E thể đệ quy sau: (1) Nếu E lược đồ quan hệ R bảng T E có hàng hàng đích, đó: (i) Nếu A  R cột cho thuộc tính A T có giá trò biến phân biệt cho hàng đích hàng đó: (ii) Nếu A  R giá trò cột hàng đích trống hàng biến không phân biệt (2a) Giả sử biểu thức chọn E có dạng E1 : (A = C) cấu trúc bảng T1 cho biểu thức E1 (i) Nếu hàng đích T1 có ký hiệu trống cột A thò T =  (ii) Nếu có c  c’ A hàng đích, T =  nế c = c’ T = T1 (iii) Nếu T1 có biến phân biệt a cột A hàng đích thò bảng T E cấu trúc nhờ việc thay a c chỗ mà a xuất T1 (tức giá trò a xuất cột a bảng T1) (2b) Giả sử E phép chiếu có dạng E1 [X] T1 bảng E1 Cấu trúc bảng T cho E cách xóa tất ký hiệu xuất 218 hàng đích tất cột không xuất T Các biến phân biệt cột thay biến không phân biệt (2c) Giả sử E biểu thức đại số quan hệ chứa phép kết tự nhiên có dạng E1 * E2 T1, T2 bảng tương ứng E1 E2 Gọi S1 S2 ký hiệu T1 T2 S1 S2 có tập hợp biến không phân biệt rời biến phân biệt trùng cột tương ứng phép kết nối (i) Nếu T1 T2 có số cột trùng giá trò chúng hàng đích số khác T =  (ii) Nếu vò trí tương ứng hàng đích phân biệt hàng bảng T cho E bao gồm từ hợp hàng thuộc bảng T1 T2 Hàng đích T có cột hai bảng, cột chung nhận giá trò: (a) c hai bảng T1, T2 có c cột tương ứng hàng đích Trong trường hợp thay giá trò biến phân biệt cột giá trò c (b) biến phân biệt a không áp dụng quy tắc (a) hai giá trò T1 T2 cột tương ứng có giá trò a hàng đích (c) ký hiệu trống trường hợp lại Chú ý: Trong trường hợp biểu thức E chứa phép chọn có dạng E1 : (A = B) với A B tên hai thuộc tính, đồng giá trò biến phân biệt hàng đích T cho hai cột A B Trong tài liệu trình bày trường hợp phép chọn E1 : (A = c) với c số Xét ví dụ: Cho A, B C thuộc tính giả sử có biểu thức quan hệ: ( ( R(AB) * S(BC) ) : (B = 0) ) [AC] 219 Theo quy tắc (1) thiết bò lập bảng cho lược đồ R(AB) lược đồ S(BC) sau: R A a1 a1 B a2 a2 S Và B a2 a2 C a3 a3 Theo quy tắc (2c) bảng cho phép kết tự nhiên R(AB) * S(BC) từ hai bảng trên: A B C a1 a2 a3 a1 a2 b1 b2 a2 a3 Và cuối cùng, theo quy tắc (2b), bảng cho phép chọn chiếu ((R(AB) * S(BC)) : (B=0)) [AC] là: A B C a1 a3 a1 b1 b2 a3 8.4.2 Kiểm tra tính tương đương bảng Vấn đề đặt làm để tối thiểu hóa số hàng bảng mà vẩn tương đương với bảng xuất phát Như nêu, cần thiết phải ánh xạ hàng bảng xuất phát lên bảng khác có số hàng (ví dụ T1  T2) cho T2  T1 với điều kiện: - Các bảng phải có lược đồ đích (xác đònh tập thuộc tính) có biến phânbiệt vò trí bảng 220 - Với phép gán quan hệ cho biến quan hệ hàng bảng, quan hệ sinh nhờ T1 phải tập quan hệ sinh nhờ T2 Để kiểm tra bảng trình biến đổi liệu có tương đương với không, trước hết cần thêm khái niệm ánh xạ hàng hàng (Row - Row Mapping) gọi ánh xạ (Contaiment Mapping) Gọi T1 T2 hai bảng với tập ký hiệu tương ứng S1 S2 Một đồng cấu (Homomorphism) ánh xạ  : S1  S2 cho: (i) Nếu c hàng số  (c) = c (ii) Nếu a biến phân biệt  (a) biến phânbiệt số xuất cột tương ứng hàng đích T2 (iii) Nếu w hàng T1  (W) hàng T2 Như ánh xạ hàng T2 lên phần tử trạng thái I đồng cấu  cho ánh xạ từ hàng T1 lên I Do T2 (I)  T1(I) với I, từ có T2  T1 Ngược lại hoàn toàn đúng, T2  T1 suy được: T2(I)  T1(I) Có thể hình thức hóa đònh lý sau đây: Đònh lý 8.1: Gọi T1 T2 hai bảng với tập ký hiệu tương ứng S1 S2 T2  T1 chúng có lược đồ đích có đồng cấu  : S1  S2 221 Ánh xạ Ánh xạ ánh xạ từ hàng bảng lên hàng bảng khác mà bảo toàn biến phân biệt số không ánh xạ ký hiệu lên hai ký hiệu phân biệt Một cách hình thức nói rằng, T1, T2 hai bảng,  ánh xạ từ hàng T1 lên hàng T2,  gọi ánh xạ nếu: (a) Với hàng i T1, hàng i có biến phân biệt cột A hàng  (i) T2 có biến phân biệt số cột A (b) Nếu hàng i T1 có số c cột A hàng  (i) có c cột A (c) Nếu hàng i j T1 có biến không phân biệt cột A hàng  (i)  (j) có ký hiệu cột Ký hiệu số, biến phân biệt biến không phân biệt ( Chú ý rằng,  (i) = (j)) Từ có đònh lý sau: Đònh lý 8.2: T2  T1 chúng xác đònh lược đồ đích tồn ánh xạ  từ T1 lên T2 Chứng minh: (Nếu) Gọi  : S1  S2 ánh xạ ký hiệu - ký hiệu cho ký hiệu d xuất cột A hàng r T1 ký hiệu d’ xuất cột A hàng (r) hàng T2  (d) = d’ Ánh xạ  phù hợp nhờ điều kiện (c) Điều kiện (i) - (iii) cho  dễ dàng suy trực tiếp Thật vậy, (a) kéo theo (ii), (b) kéo theo (i) (iii) suy từ đònh nghóa   Do  đồng cấu Theo đònh lý 8.1 T2  T1 (Chỉ nếu): Từ đònh lý 8.1, có đồng cấu  : S1  S2 thỏa (i) - (iii) Tồn ánh xạ từ hàng T2 thỏa (c) suy từ (iii), (i) (ii) Từ kéo theo (a) (b) 222 Ví dụ: Cho biểu thức (AB * BC) [AB], có bảng: T1 = w1 w2 A a1 a1 b2 B a2 a2 a2 C b1 a3 Biểu thức AB thuộc tính A, B C có bảng: T2= w3 A a1 a1 B a2 a2 C b1 Theo chiều xuôi, ánh xạ hai hàng w1 w2 lên w3 ánh xạ Đồng cấu là: Trong T1 a1 a2 b1 b2 b3 Trong T2 a1 a2 b1 a1 b1 Theo chiều ngược lại, ánh xạ w3 lên w1 chúnh ta nhận thấy rõ ràng ánh xạ Do AB (AB*AB) [ AB ] tương đương Ví dụ: E1 = AB * BC E2 = (ABC) * ((BC) : (C=0 )) Bảng tương ứng E1, E2 là: 223 T1 = w1 w2 w3 A a1 a1 a1 b3 B a2 a2 b2 a2 C a3 b1 a3 a3 T2 = w4 W5 A B C a1 a2 a1 a2 b1 a2 Do T2  T1 tạo ánh xạ chuyển w1, w2 w3 lên w4 Có thể chọn ánh xạ w3 lên w5 muốn Chiều ngược lại không tồn ánh xạ số ánh xạ lên biến Do T1  T2 Từ có đònh lý sau Đònh lý 8.3: Nếu T1 T2 hai bảng tương đương không bảng hai bảng tương đương với bảng khác có số dòng tồn tương ứng 1-1 hàng thuộc T1 hàng thuộc T2 Đó ánh xạ hai chiều Tối thiểu hóa bảng Cho T0 bảng xuất phát Tm bảng tương đương với số hàng tối thiểu Các hàng bảng tương đương Tm phải tập hàng thuộc T0 (kể việc đặt tên lại ký hiệu) Có đònh lý sau đây: Đònh lý 8.4: Nếu T0 bảng, thiết lập bảng khác tương đương có số hàng tối thiểu biến đổi từ T0 nhờ xóa không số hàng 224 Hệ quả: Mọi bảng với số hàng tối thiểu tương đương với bảng cho trước (kể việc đặt tên lại ký hiệu) Từ đònh lý 8.4 gợi ý thủ tục tổng quát để tìm bảng tối thiểu Trước hết tìm ánh xạ để ánh xạ tất hàng lên tập hàng Cần ý xác đònh ánh xạ hàng đích lên hàng đích (tức đồng biến phân biệt) bảo toàn ràng buộc Vấn đề tìm ánh xạ để có số hàng toán NP đầy đủ số lượng hàng bảng thực tế nhỏ cho nến luôn vấn đề thật khó khăn 225 TÀI LIỆU THAM KHẢO M Adiba, C.Delobel Systèms Relationnels de Bases de Données Paris, Dunod, 1982 E.F.Codd, A relational model for large shared data banks, Comm.ACM 13:6 pp.337-387 C.J.Date An Introduction to DataBase Systems Addison Wesley - 2nd edition 1982 D Maier The Theory of Relational DataBases Computer Science Press, Rockville, 1983 J Ullman DataBase and Knowledge Base Systems Vol.1,2,3 Computer Science Press, 1983 (Bản dòch tiếng Việt Trần Đức Quang NXB Thống kê Hà nội 1999) Introdution to Oracle SQL and PL/SQL Using Procedure Builder Vol 1,2,3,4 ORACLE V7.3 1996 Introdution to Oracle: SQL, SQL*PLUS and PL/SQL Education Services Vol 1,2,3,4,5,6,7 ORACLE 1992 Nguyễn An Tế Giáo trình Nhập môn sở liệu Khoa Công nghệ Thông tin, Đại học KHTN, Đại học quốc gia TP.HCM 1996 Trần Thành Trai, Nhập môn Cơ sở liệu NXB Giáo dục, TP.Hồ Chí Minh 1996 10 Đỗ Trung Tuấn, Cơ sở liệu (DataBase), NXB Giáo dục Hà nội, 1998 11 Lê Tiến Vương Nhập môn sở liệu NXB Thống kê Hà nội, 2000 Tái lần 226 [...]... 01010 01010 01010 01 02 03 05 07 08 07 08 10 11 04 05 06 11 08 11 13 3.35 3.63 3.91 2. 82 3.31 3.56 2. 18 2. 30 2. 55 2. 68 2. 06 2. 18 2. 30 2. 12 2.47 2. 80 3. 02 107 5 Quan hệ danh sách CBVC với các bộ giá trò sau: Mã-ĐV 100 02 100 02 100 02 100 02 100 02 10003 10003 10003 10003 10 022 10 022 10 022 Mã-CC 1000 028 1000040 10000 42 1000043 1000065 1000156 1000134 1000159 1000160 100 021 8 100 021 9 100 022 0 Họ-lót Trần Tứ Trần... 101 101 101 109 109 109 109 109 22 0 22 0 22 0 22 0 22 0 1 2 3 4 1 2 3 4 5 1 2 3 4 5 01/03/81 01/07/81 01/07/ 82 01/07/84 01/04/80 01/10/80 01/07/ 82 01/04/83 01/07/85 01/05/ 82 01/09/ 82 01/07/83 01/01/84 01/07/84 30/06/81 30/06/ 82 30/06/84 30/09/80 30/06/ 82 31/03/83 30/06/85 31/08/ 82 30/06/83 31/ 12/ 83 30/06/84 800 1 125 1900 25 00 725 1500 26 00 320 0 3800 1900 1600 22 00 3400 425 0 FrJob Newh Slsa Slsa Slsm Newh... phép kết nối 105 Ví dụ 5.3.3: Cho 2 quan hệ R và S với các bộ giá trò cho trong bảng ở cột lớn thứ nhất và thứ hai bên trái Kết quả phép kết nối theta (-Join) của 2 quan hệ trên được cho trong bảng ở cột lớn thứ ba dưới đây: R.B  S.C R (A a1 a2 a3 B 1 2 2 C) 1 1 2 S (C 1 2 3 D d1 d2 d3 E) e1 e2 e3 R S =Q (A a1 a2 a2 a3 a3 B 1 2 2 2 2 C 1 1 1 2 2 C 1 1 2 1 2 D d1 d1 d2 d1 d2 E) e1 e1 e2 e1 e2 Kết quả... thì kết quả phép kết nối vẫn giữ lại 2 tên thuộc tính đó Ví dụ 5.4.1.1: Cho 2 quan hệ R (A, B, C) và S (A, D, E, F) với các bộ giá trò như dưới đây Kết quả của phép kết nối nội được cho trong bảng phía bên phải R (A a1 a2 a3 a5 a7 B b1 b2 b3 b5 b7 R.A = S.A C) S (A D E F) R c1 a1 d1 e1 f1 c2 a2 d2 e2 f 2 c3 a4 d4 e4 f 4 c5 a6 d6 e6 f 6 c7 a7 d7 e7 f 7 S =Q (A a1 a2 a7 B b1 b2 b7 C 1 c2 c7 A a1 a2 a7... công ty: SELECT EmpNo AS [Mã số], Name AS [Tên], Salary * 12 AS [Lương năm] FROM EMPLOYEE; Kết quả là bảng: Mã số 100 101 103 105 109 110 20 0 21 0 21 3 21 4 21 5 22 0 Tên Wilson Smith Reed Watson Allen Turner Chen Ramirez McDonnel Simpson Di Salvo Schwartz Lương năm 20 .400 30.000 42. 000 54.000 45.600 21 .600 34.800 43 .20 0 19.500 9.900 32. 400 50.400 124 Khi thực hiện phép chiếu tên một quan hệ, các bộ giá trò... 04/08/57 20 /04/61 04/10/44 06/04/61 28 /10/54 08/09/ 42 15/06/50 18/11/66 19/11/47 15/05/55 22 /07/55 Ngạch 01003 01003 01004 01004 01004 01005 01010 01008 01010 01010 01003 01004 Bậc 08 05 10 10 07 06 13 11 08 11 05 12 Ngày-xếp 01/ 12/ 96 01/ 12/ 97 01/01/97 01/01/97 01/01/97 01/09/97 01/ 12/ 97 01/03/96 01/ 02/ 96 01/10/96 01/ 12/ 95 01/ 12/ 95 (Các quan hệ 4 và 5 đã được nêu trong các ví dụ 4 .2. 3 và 4 .2. 5 trong... b2 b7 C 1 c2 c7 A a1 a2 a7 D d1 d2 d7 E e1 e2 e7 F) f1 f2 f7 Ví dụ 5.4.1 .2: Phép kết nối nội 2 quan hệ ĐƠN-VỊ và LOẠI-ĐV cho kết quả là một bảng sau: Mã-ĐV 100 02 10003 10 022 10070 10071 Tên-đơn-vò Trường K.thuật nghiệp vụ máy tính Phòng quản lý hành chánh Văn phònh đại diện Thanh niên Ban quản lý vốn sinh viên Lực lượng quản lý thò trường 109 Loại 3 2 2 5 5 Loại 3 2 2 5 5 Tên-loại-hình SN hoàn toàn... 1 1 2 2 C 1 1 2 1 2 D d1 d1 d2 d1 d2 E) e1 e1 e2 e1 e2 Kết quả phép kết nối tự nhiên của 2 quan hệ R và S là quan hệ Q’ với các bộ giá trò như sau: R S = Q (A a1 a2 a3 B 1 2 2 C 1 1 2 D d1 d1 d2 E) e1 e1 e2 Ví dụ 5.3.4: Cho CSDL về cán bộ - viên chức Nhà nước (CBVC) với các quan hệ sau đây: 1 Quan hệ ĐƠN-VỊ: Mã-ĐV 100 02 10003 10 022 10070 10071 Tên-đơn-vò Trường Kỹ thuật nghiệp vụ máy tính Phòng quản... trên 2 thuộc tính kết nối; và các bộ v có được nhờ cách đặt bộ của R với các bộ NULL của S, nếu không tìm được giá trò tương ứng của thuộc tính kết nối trên quan hệ S Ví dụ 5.4 .2. 1: Với hai quan hệ R và S cùng các bộ giá trò của chúng đã được cho trong ví dụ 5.4.1, kết quả của phép kết nối trái của R và S là: 110 R.A = S.A R S = Q (A a1 a2 a3 a5 a7 B b1 b2 b3 b5 b7 C 1 c2 c3 c5 c7 A a1 a2 a7 D d1 d2 d7... nhau trên 2 thuộc tính kết 1 12 nối, và các bộ NULL của R với các bộ của S, nếu không tìm được giá trò tương ứng của thuộc tính kết nối trên quan hệ R Ví dụ 5.4.3.1: Giả sử với các quan hệ R và S cùng các bộ giá trò của chúng được xác đònh như trong ví dụ 5.4 .2 nêu trên Kết quả của phép kết nối phải R với S là quan hệ với các bộ giá trò sau: R.A = S.A R S = Q (A, a1 a2 - B, b1 b2 - C, 1 c2 - - - - a7 ... 2. 82 3.31 3.56 2. 18 2. 30 2. 55 2. 68 2. 06 2. 18 2. 30 2. 12 2.47 2. 80 3. 02 107 Quan hệ danh sách CBVC với giá trò sau: M - V 100 02 100 02 100 02 100 02 100 02 10003 10003 10003 10003 10 022 10 022 10 022 ... hệ khả lái loại máy bay phi KHẢ-NĂNG (Số-hiệu-phi-công, Số-hiệu-máy-bay) Số-hiệu-phi-công Số-hiệu-máy-bay 32 30 30 32 33 30 31 30 31 1 02 101 103 103 100 1 02 1 02 100 100 Câu hỏi: Cho biết phi... a1 a2 a7 B b1 b2 b7 C c2 c7 A a1 a2 a7 D d1 d2 d7 E e1 e2 e7 F) f1 f2 f7 Ví dụ 5.4.1 .2: Phép kết nối nội quan hệ ĐƠN-VỊ LOẠI-ĐV cho kết bảng sau: M - V 100 02 10003 10 022 10070 10071 Tên-đơn-vò

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

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan