(Tiểu luận) báo cáo bài tập lớn môn cơsở dữ liệu phân tán xử lý truy vấn và tối ưuhoá truy vấn

35 6 0
(Tiểu luận) báo cáo bài tập lớn môn cơsở dữ liệu phân tán xử lý truy vấn và tối ưuhoá truy 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

Phương pháp này quan tâm đến kích thước dữ liệu và phải tính toán chi phí thời gian thực hiện mỗi phép toán.1.Quy trình thực hiện câu truy vấn Bộ xử lý truy vấn Query processor cung cấp

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIẾN THƠNG KHOA CƠNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP SỞ DỮ LIỆU PHÂN LỚN MƠN CƠ TÁN XỬ LÝ TRUY VẤN HỐ TRUY VẤN VÀ TỐI ƯU Giảng viên hướng dẫn: Phan Thu Hà Nhóm : 01 Thành viên nhóm : Hà nội -2023 MỤC LỤC 1.Quy trình thực câu truy vấn Tiền sử lý câu truy vấn (Preprocessor) 3.Chuyển đổi từ SQL sang ĐSQH Tối ưu hóa câu truy vấn 4.1 Giải thuật heuristic 4.2 Xử lý môi trường tập trung 10 4.2.1.a So sánh xử lý truy vấn tập trung phân tán .10 4.2.1.b Chiến lược tối ưu hóa CSDL tập trung .12 4.2.2 Hàm chi phí cho join .16 4.3 Xử lí truy vấn môi trường phân tán .17 4.3.1 Phân rã truy vấn 17 4.3.1.1 Chuẩn hóa 17 4.3.1.2 Phân tích 18 4.3.1.3 Loại bỏ dư thừa liệu .20 4.3.1.4 Viết lại .21 4.3.2 Định vị liệu phân tán-Tối ưu hóa cục .23 4.3.2.1 Rút gọn theo phân mảnh ngang nguyên thuỷ 24 4.3.2.2 Rút gọn phân mảnh dọc .26 4.3.2.3 Rút gọn theo phân mảnh gián tiếp .27 4.3.2.4 Rút gọn theo phân mảnh hỗn hợp 29 4.4 TỐI ƯU HÓA TRUY VẤN .30 4.4.1.Mơ hình chi phí tối ưu hóa truy vấn .30 Khái niệm 30 4.4.2.Các thống kê liệu 32 4.4.3 Lực lượng kết trung gian .33 TÀI LIỆU THAM KHẢO 34 Mục đích xử lý truy vấn : • Giảm thiểu thời gian xử lý • Giảm vùng nhớ trung gian • Giảm chi phí truyền thơng trạm • Sử dụng tài nguyên Chức xử lý truy vấn: • Biến đổi truy vấn phức tạp thành truy vấn tương đương đơn giản • Phép biến đổi phải đạt tính đắn hiệu • Mỗi cách biến đổi dẫn đến việc sử dụng tài nguyên máy tính khác nhau, nên vấn đề đặt lựa chọn phương án dùng tài nguyên Các phương pháp xử lý truy vấn bản: • Phương pháp biến đổi đại số: Đơn giản hóa câu truy vấn nhờ phép biến đổi đại số tương đương nhằm giảm thiểu thời gian thực phép tốn Phương pháp khơng quan tâm đến kích thước cấu trúc liệu • Phương pháp ước lượng chi phí: Xác định kích thước liệu, thời gian thực phép toán câu truy vấn Phương pháp quan tâm đến kích thước liệu phải tính tốn chi phí thời gian thực phép tốn 1.Quy trình thực câu truy vấn Bộ xử lý truy vấn (Query processor) cung cấp phương tiện cho người sử dụng xây dựng câu truy vấn thực tối ưu hoá truy vấn hệ quản trị sở liệu phân tán (DBMS) Đầu tiên câu truy vấn biểu diễn = ngôn ngữ cấp cao ->tiền xử lý (Preprocessor ) -> Hình thức trung gian câu truy vấn (tree graph) -> Query Optimizer(tối ưu hoá truy vấn) -> Cách thực -> Query code Generator(tạo mã truy vấn) -> Code -> Runtime Database Processor(xử lý sở liêu thời gian chạy) -> Kết Preprocessor c Quy trình thực câu truy vấn Parsing Validating Tiền sử lý câu truy vấn (Preprocessor) Hình sau minh họa tổng quát trình tiền xử lý, phần tương ứng với phần câu truy vấn SQL VD:Vẽ phân tích cú pháp (query expression tree) cho đề sau : NHANVIEN (manv, tenv, ngaysinh, phai, luong) THAMGIA (mada, manv, ngaybatdau, ngayketthuc) Liệt kê mã đề án mà nhân viên tham gia có lương > 2.000.000 SELECT mada FROM THAMGIA WHERE manv IN ( SELECT manv FROM NHANVIEN WHERE luong > ‘2.000.000’) 3.Chuyển đổi từ SQL sang ĐSQH Query block: khối truy vấn đơn vị SELECT-FROM-WHERE-GROUPBY-HAVING dùng để chuyển sang ĐSQH Truy vấn lồng: tách thành khối lệnh ghép thành khối truy vấn đơn vị (query blocks) VD: Document continues below Discover more from: Cơ Sở Dữ Liệu Học viện Công ng… 117 documents Go to course Ngân-hàng - Ngân 27 hàng sở liệu… Tối ưu hóa câu truy vấn Cơ Sở Dữ 100% (2) Liệu 4.1 Giải thuật heuristic Tối ưu hóa truy vấn qui tắc heurictis sử dụng biểu thức tương đương để chuyển truy vấn ban đầu thành truy vấn cuối tối ưu NHOM02 Thuật tốn tối ưu hóa Heurictis thực sau: Thitracnghiem - Thi 27chọn có điều kiện hội - Bước 1: Sử dụng qui tắc 1, Phân rã phép Cơcác Sởnhánh Dữ khác thành dãy phép chọn, chuyển phép chọn xuống 100% (1) Liệu - Bước 2: Sử dụng QT 2,4,6 10 tức tính giao hoán phép chọn với phép khác,chuyển phép chọn xuống phía sâu CSDL Trắc nhiệm truy vấn 350 ngân hàng - Bước 3: Sử dụng QT để tái tổ chức cú pháp chocâu phép-chọn 44 thực có lợi (chọn nhất) —>Heurictis Cơ Sở Dữ 100% (1) - Bước 4: Kết hợp phép tích đề với phépLiệu chọn thành phép nối, điều kiện phép chọn tương ứng với phép nối - Bước 5: Sử dụng qui tắc 3,4,7, 11 dãy phép chiếu Unitrã1 Mychuyển new school tính giao hoán phép chiếu với phép khác Phân danh sách thuộc tính chiếu xuống phía truy vấn đến mức tạo Lesson Getting… phép chiếu cần thiết 61 Cơ Sở Dữ - Bước 6: Tập trung phép chọn None Liệu - Bước 7: Sử dụng QT để loại phép chiếu vơ ích VD: Liệt kê họ tên NHANVIEN sinh sau năm 1960 làm dự án ‘ABC’ Đề cương Cơ sở 11 liệu- sau nghiệm… Cơ Sở Dữ Liệu None Chức đăng nhập - Chức năng… Cơ Sở Dữ Liệu None Các bước chuyển đổi truy vấn suốt q trình tối ưu hóa cách sử dụng giải thuật heurictis: Đồ thị truy vấn sau: Đồ thị kết nối tương ứng: Đồ thị truy vấn sử dụng nhằm xác định tính đắn mặt ngữ nghĩa truy vấn hội đa biến phủ định () Một câu truy vấn khơng mặt ngữ nghĩa đồ thị truy vấn khơng liên thơng Nghĩa có đồ thị con, tương ứng câu với truy vấn con, tách khỏi đồ thị truy vấn có chứa quan hệ kết Thường có vị từ kết nối bị thiếu, câu truy vấn cần loại bỏ 4.3.1.3 Loại bỏ dư thừa liệu Điều kiện truy vấn có chứa vị từ dư thừa • Một đánh giá sơ sài điều kiện dư thừa dẫn đến lặp lại số cơng việc • Sự dư thừa vị từ dư thừa cơng việc loại bỏ cách làm đơn giản hoá điều kiện thông qua luật luỹ đẳng sau: p  p p p  true  true p  p p p   p  false p  true  p p  false  p p  false  false p   p  true p1  (p1  p2 )  p1 10.p1  (p1  p2 )  p1 Ví dụ: Đơn giản hố câu truy vấn sau: 20 SELECT E.CHUCVU FROM E WHERE (NOT(E.CHUCVU=”Lập trình”) AND (E.CHUCVU=”Lập trình” OR E.CHUCVU=”Kỹ sư điện”) AND NOT(E.CHUCVU=”Kỹ sư điện”) OR E.TENNV=”Dũng” Đặt p1:, p2:, p3: Các vị từ sau mệnh đề WHERE mô tả lại: p: ( p1  (p1  p2)   p2)  p3  (( p1  p1   p2)  ( p1  p2   p2))  p3 (áp dụng luật 7)  ((false   p2)  ( p1  false) ) p3 (áp dụng luật 5)  (false  false )  p3 (áp dụng luật 4)  P3 Vậy câu truy vấn biến đổi thành: SELECT E.CHUCVU FROM E WHERE E.TENNV=”Dũng” 4.3.1.4 Viết lại Bước chia làm hai bước sau: • Biến đổi trực tiếp truy vấn phép tính sang đại số quan hệ • Cấu trúc lại truy vấn đại số quan hệ để cải thiện hiệu thực hiện.ại số quan hệ mà nút biểu diễn quan hệ CSDL, nút không quan hệ trung gian sinh phép toán đại số quan hệ Cách chuyển truy vấn phép tính quan hệ thành đại số quan hệ: • Các nút khác tạo cho biến khác (tương ứng quan hệ) Trong SQL nút quan hệ mệnh đề FROM • Nút gốc tạo phép chiếu lên thuộc tính kết Trong SQL nút gốc xác định qua mệnh đề SELECT • Điều kiện (mệnh đề WHERE SQL) biến đổi thành dãy phép tốn đại số thích hợp (phép chọn, nối, phép hợp, v.v ) từ đến gốc, thực theo thứ tự xuất vị từ phép tốn 21 Ví dụ: Truy vấn “Tìm tên nhân viên “Dũng”, làm việc cho dự án CSDL với thời gian hai năm” Biểu diễn truy vấn SQL là: SELECT E.TENNV FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND E.TENNV “Dũng” AND J.TENDA= “CSDL” AND (THOIGIAN=12 OR THOIGIAN=24) Cây đại số quan hệ thuật biến đổi phép tốn ĐSQH Mục đích: dùng để biến đổi đại số quan hệ thành tương đương (trong có tối ưu) Giả sử R, S, T quan hệ, R định nghĩa tồn thuộc tính A={A1 , , An }, S định nghĩa tồn thuộc tính B={B1 , , Bn } 1.Tính giao hốn phép tốn hai ngơi: Phép tích Decartes phép nối hai quan hệ có tính giao hốn     RSSR R⋈SS⋈R Hợp hai quan hệ: R  S  S  R Qui tác không áp dụng cho hiệu kết nối nửa Tính kết hợp phép tốn hai ngơi: Phép tích Decartes phép nối hai quan hệ có tính kết hợp 22  (RS)  T  R  (ST)  R ⋈ (S ⋈ T)  (R ⋈ R) ⋈ T Tính luỹ đẳng phép tốn Dãy phép chiếu khác quan hệ tổ hợp thành phép chiếu ngược lại: Nếu A’, A’’ R A’  A’’ , A’(A’’(R))  A’(R) Dãy phép chọn khác pi(Ai) quan hệ, với pi vị từ gán vào thuộc tính Ai , tổ hợp thành phép chọn p1(A1)( p2(A2)(R))  p1(A1)  p2(A2)(R) Phép chọn giao hoán với phép chiếu Phép chọn chiếu quan hệ giao hoán sau: A1, ,An(p(Ap)(R)) = A1, ,An(p(Ap)(A1, ,An,Ap (R))) Nếu Ap thành viên {A1, , An}, biểu thức trở thành A1, ,An(p(Ap)(R)) = p(Ap)(A1, ,An,Ap (R)) Phép chọn giao hoán với phép tốn hai ngơi Phép chọn tích đề các: p(Ai)(R x S)  (p(Ai)(R)) x S Phép chọn kết nối: p(Ai)(R ⋈ p(Aj, Bk)S)  p(Ai)(R) ⋈ p(Aj, Bk)S Phép chọn hợp: p(Ai)(R  T)  p(Ai)(R)  p(Ai)(T) Phép chiếu giao hoán với phép tốn hai ngơi Phép chiếu tích Decartes: Nếu C=A’B’ với A’ A, B’ B, A, B tập thuộc tính quan hệ R, S ta có: Phép chiếu phép nối: C (R ⋈ ,Bk)S)  A’(R) ⋈ Aj, Bk) B’(S) Phép chiếu phép hợp: C (R  S)  C(R)  C(S) 4.3.2 Định vị liệu phân tán-Tối ưu hóa cục Là chuyển đổi truy vấn đại số quan hệ toàn cục thành truy vấn đại số mảnh vật lý dựa thông tin lưu trữ lược đồ phân mảnh với bước: + Ánh xạ truy vấn phân tán sang truy vấn mảnh + Đơn giản hoá xây dựng lại truy vấn mảnh để tạo truy vấn tốt 23 4.3.2.1 Rút gọn theo phân mảnh ngang nguyên thuỷ Xét quan hệ E(MANV,TENNV,CHUCVU) Tách quan hệ thành ba mảnh ngang E1, E2 E3 sau: E1=MANV  “E3”(E) E2=“E3”< MANV  “E6”(E) E3=MANV > “E6”(E) - Chương trình định vị cho quan hệ E: E = E1  E2  E3 - Mục đích: Xác định câu truy vấn, sau cấu trúc lại Điều sinh số quan hệ rỗng, loại bỏ chúng - Phân mảnh ngang đựơc khai thác để làm đơn giản phép chọn phép nối a Rút gọn với phép chọn: cho quan hệ R phân mảnh ngang thành R1 , R2 , , Rn với xR : (pi (x)  pj (x)) Quy tắc 1: Trong đó, pi , pj vị từ chọn, x liệu, p(x) vị từ p chiếm giữ x Ví dụ: Rút gọn truy vấn SELECT * FROM E WHERE MANV = “E5” KQ: SELECT * FROM E2 WHERE MANV = “E5” Giải: MANV = “E5”(E) = MANV = “E5” (E1  E2  E3) = MANV = “E5” (E1)  MANV = “E5” (E2) MANV = “E5” (E3) = MANV = “E5” (E2) 24 Rút gọn cách sử dụng tính chất giao hoán phép chọn với phép hợp, thấy vị từ chọn đối lập với vị từ E1 E3 nên sinh quan hệ rỗng b Rút gọn với phép nối • Việc rút gọn thực dựa tính phân phối phép nối phép hợp loại bỏ phép nối vơ ích • Với tính chất (R1  R2) ⋈ R3 = (R1 ⋈ R3)  (R2 ⋈ R3), Ri phân mảnh Chúng ta xác định phép nối vơ ích mảnh điều kiện nối mâu thuẫn Sau đó, dùng quy tắc để loại bỏ phép nối vô ích Quy tắc 2: Ri ⋈ Rj =  xRi , y Rj :  (pi (x) pj (y)) Trong Ri, Rj xác định theo vị từ pi , pj thuộc tính Ví dụ: Quan hệ G phân làm hai mảnh: G1=MANV “E3”(G) G2=MANV > “E3”(G) Xét truy vấn Giải SELECT * FROM E, G E⋈G WHERE E.MANV=G.MANV = (E1E2E3) ⋈ (G1G2) = (E1⋈G1)  (E1⋈G2)  (E2⋈G1)  (E2⋈G2)  (E3⋈G1)  (E3⋈G2) = (E1⋈G1)  (E2⋈G2)  (E3⋈G2) KQ: SELECT * 25 FROM E JOIN G ON E.MANV=G.MANV WHERE (E1.MANV=G1.MANV) OR (E2.MANV=G2.MANV) OR (E3.MANV=G2.MANV) ⋈MANV ⋈MANV⋈MANV ⋈MANV E1 E2 E3 G1 Trước rút gọn G2 E1 G1 E2 G2 E3 G2 Sau rút gọn 4.3.2.2 Rút gọn phân mảnh dọc - Các truy vấn phân mảnh dọc rút gọn cách xác định quan hệ trung gian vơ ích loại bỏ chứa chúng - Các phép chiếu phân mảnh dọc khơng có thuộc tính chung với thuộc tính chiếu (ngoại trừ khóa quan hệ) vơ ích, quan hệ khác rỗng D,K(Ri ) vơ ích DA’=  Quy tắc 3: Trong đó, quan hệ R xác định A={A1 , ,An }; R = A’(R), A’ A , K khoá quan hệ, K A, D tập thuộc tính chiếu, D  A Ví dụ: Với quan hệ E phân mảnh dọc sau: E1 =  MANV,TENNV(E) E2 = MANV,CHUCVU(E) Xét truy vấn SQL: Nhận xét: Phép chiếu E2 vô SELECT TENNV ích TENNV khơng có E2 , FROM E nên phép chiếu cần gán vào E1 KQ: SELECT TENNV FROM E1 26 4.3.2.3 Rút gọn theo phân mảnh gián tiếp - Nếu vị từ phân mảnh mâu thuẫn phép nối đưa quan hệ rỗng - Thay phân tách bảng trực tiếp thành bảng con, bảng trung gian sử dụng để kết nối bảng lại với - Quy tắc: o Phân phối phép nối qua phép hợp o Áp dụng kỹ thuật giảm phép nối cho phân mảnh ngang Ví dụ: Cho mối quan hệ nhiều từ E đến G, quan hệ G (MANV, MADA, NHIEMVU, THOIGIAN) phân mảnh gián luật sau: G=G1G2 với G1 = G ⋈MANV E1 G2 = G ⋈MANV E2 Trong E phân mảnh ngang sau: E1=  CHUCVU = “Lập trình” (E) E2= CHUCVU “Lập trình” (E) - Để rút gọn truy vấn phân mảnh gián tiếp này, phép nối đưa quan hệ rỗng vị từ phân mảnh mâu thuẫn => Vị từ G1 E2 mâu thuẫn nhau, nên G1⋈E2 = Ví dụ: Xét truy vấn SELECT * FROM E, G WHERE G.MANV=E.MANV AND CHUCVU=”KS khí” (a) Truy vấn ban đầu 27 Thực phép chọn mảnh E1, E2 , vị từ chọn mâu thuẫn mảnh E1, nên kết câu truy vấn rút gọn hình bên (b) Truy vấn đẩy phép chọn xuống Phân phối phép nối với phép hợp (G1  G2)CHUCVU = “ks khí”(E2) = (G1 CHUCVU=”ks khí”(E2))  (G2 CHUCVU= “ks khí”(E2)) (c) Truy vấn sau đẩy phép hợp lên G1⋈E2 = (d) Truy vấn rút gọn 4.3.2.4 Rút gọn theo phân mảnh hỗn hợp - Sự phân mảnh hỗn hợp kết hợp phân dọc phân mảnh ngang - Mục đích: hỗ trợ truy vấn liên quan đến phép chiếu, phép chọn phép nối - Chương trình định vị cho quan hệ phân mảnh hỗn hợp phép hợp phép nối mảnh - Quy tắc: Loại bỏ quan hệ rỗng sinh mâu thuẫn phép chọn phân mảnh ngang 28 Loại bỏ quan hệ vơ ích sinh phép chiếu phân mảnh dọc Phân phối phép nối với phép hợp để tách loại bỏ phép nối vơ ích Ví dụ: Xét quan hệ E phân mảnh hỗn hợp sau: E1 = MANV  “E4” (MANV,TENNV(E)), E2 = MANV > “E4” ( MANV,TENNV(E)) E3 = MANV,CHUCVU (E) Chương trình định vị là: E = (E1  E2) ⋈MANV E3 Nhận xét: Trong hệ phân tán, truy vấn thu từ giai đoạn phân rã định vị liệu thực cách đơn giản việc thêm vào thao tác truyền thơng Việc hốn vị thứ tự phép tốn câu truy vấn cung cấp nhiều chiến lược tương đương khác Bài toán xác định truy vấn tối ưu NP-khó Thơng thường tối ưu tìm tìm chiến lược gần tối ưu tránh chiến lược “tồi” Đầu tối ưu lịch trình tối ưu bao gồm truy vấn đại số xác định mảnh phép tốn truyền thơng hỗ trợ việc thực truy vấn trạm 29 Để chọn lựa chiến lược tối ưu nói chung, tối ưu cịn phải xác định chi phí thực câu truy vấn Chi phí thực tổ hợp có trọng số chi phí truyền thơng, chi phí I/O chi phí CPU 4.4 Tối ưu hố truy vấn 4.4.1.Mơ hình chi phí tối ưu hóa truy vấn Khái niệm Chi phí chiến lược thực phân tán biểu diễn theo tổng chi phí theo thời gian trả lời • Tổng chi phí tổng tất thành phần chi phí bao gồm chi phí truyền thơng, chi phí I/O chi phí CPU Trong đó, chi phí truyền thơng quan trọng • Thời gian trả lời truy vấn thời gian tính từ bắt đầu xử lý đến hoàn thành truy vấn Công thức chung - CT chung cho xác định tổng chi phí: Tổng chi phí: tổng tất chi phí CCPU, CI/O, CMSG Total_cost= CCPU * #instr + CI/O * #I/OS + CMSG * #msgs + CTR * #bytes Trong đó: Total_cost: tổng chi phí CCPU: chi phí lệnh CPU CI/O: chi phí xuất/nhập đĩa CMSG: chi phí việc khởi đầu nhận thơng báo CTR: chi phí truyền đơn vị liệu từ trạm đến trạm khác, ta xem CTR số #instr: tổng tất lệnh CPU trạm #I/OS: số lần xuất/nhập đĩa #msgs: số thơng báo #bytes: tổng kích thước thơng báo Chú ý: • Hai thành phần chi phí đầu (CCPU,CI/O) chi phí địa phương • Hai thành phần chi phí sau (CMSG, CTR) chi phí truyền thơng 30 • Chi phí truyền thơng để chuyển #byte liệu từ trạm đến trạm khác giả thiết hàm tuyến tính theo số #bytes truyền đi, xác định công thức CC(#byte)= CMSG + CTR * #bytes - CT chung cho xác định thời gian trả lời: Response_time = CCPU * seq_#instr + CI/O * seq_#I/OS + CMSG * seq_#msgs + CTR* seq_#bytes Trong đó: seq_#x (x số lệnh CPU, I/O, số thông báo,số byte) số lớn x thực Trong đó: Response_time: thời gian trả lời truy vấn CCPU: chi phí lệnh CPU CI/O: chi phí xuất/nhập đĩa CMSG: chi phí việc khởi đầu nhận thơng báo CTR: chi phí truyền đơn vị liệu từ trạm đến trạm khác #instr: tổng tất lệnh CPU trạm #I/OS: số lần xuất/nhập đĩa #msgs: số thơng báo #bytes: tổng kích thước tất thông báo - Minh họa khác tổng chi phí thời gian trả lời liệu từ trạm 1,2 gửi liệu đến trạm để truy vấn Giả sử, C MSG, CTR biểu thị theo đơn vị thời gian + Tính tổng chi phí x đơn vị từ trạm đến trạm y đơn vị từ trạm đến trạm là: Total_cost = CMSG + CTR * x + CMSG + CTR * y = 2CMSG + CTR * (x + y) + Vì việc truyền liệu diễn song song nên thời gian trả lời truy vấn là: Response_time = max{CMSG + CTR * x , CMSG + CTR * y} 4.4.2.Các thống kê liệu - Lý • Yếu tố ảnh hưởng đến hiệu suất chiến lược thực thi kích thước quan hệ 31 • Đánh giá kích thước kết dựa thông tin thống kê quan hệ sở cơng thức ước tính lực lượng kết phép tốn quan hệ - Mục đích thống kê liệu: • Xác định kích thước quan hệ trung gian sinh trình thực câu truy vấn • Xác định chi phí truyền thơng cho đại lượng trung gian - Các liệu cần thông kê Cho quan hệ R xác định tập thuộc tính A={A1, , An} R phân mảnh thành R1, R2, , Rr + length(Ai): độ dài (byte) thuộc tính Ai , AiA, + card(Ai(Rj): lực lượng phép chiếu mảnh Rj lên thuộc tính Ai (số giá trị phân biệt thuộc tính Ai) + max(Ai): giá trị cực đại thuộc tính Ai Dom(Ai) + min(Ai): giá trị cực tiểu thuộc tính Ai Dom(Ai) + card(dom(Ai)): lực lượng thuộc tính Ai + card(Ri): số mảnh R - Ngoài ra, liệu thống kê bao gồm hệ số chọn phép nối (SFj) số cặp đại số quan hệ, hệ số SFj quan hệ R S số thực 1, xác định bởi: + Hệ số SFj nhỏ phép nối có tính chọn tốt, ngược lại có tính chọn tồi + Các thống kê có lợi để đánh giá kích thước quan hệ trung gian + Kích thước quan hệ trung gian R xác định size(R) = card(R)*length(R) Trong đó: length(R) độ dài (số byte) R, tính theo độ dài thuộc tính card(R) số R tính theo công thức phần 4.4.3 Lực lượng kết trung gian - Mục đích: xác định liệu thống kê cần thiết - Các toán hạng quan hệ ký hiệu R S - Hệ số chọn phép toán SFOP (OP biểu thị phép toán) tỷ lệ toán hạng quan hệ tham gia vào kết phép toán với số quan hệ Phép chọn card(SFs(R)) = SFs (F) * card(R) 32 Trong SFs(F) phụ thuộc vào cơng thức chọn tính sau, với p(Ai), p(Aj) vị từ tương ứng với thuộc tính Ai, Aj Phép chiếu: card(A(R)) ? - Phép chiếu có khơng loại bỏ Ở xét phép chiếu loại bỏ - Lực lượng quan hệ kết phép chiếu tùy ý khó đánh giá xác, tương quan thuộc tính chiếu thường khơng biết - Tuy nhiên, có hai trường hợp tầm thường đặc biệt có lợi: + Nếu phép chiếu R thuộc tính đơn A card( A(R)) = card(R) + Nếu thuộc tính chiếu khố R, card( A(R)) = card(R) card(RS) = card(R) * card(S) Phép nối: card(R ⋈ S) card (R⋈S) = SFj*card(R)*card(S) Lưu ý: Khơng có cách tổng quát để xác định lực lượng phép nối khơng có thơng tin thêm Phép nửa nối Công thức phụ thuộc vào thuộc tính A S, nên thường gọi hệ số chọn thuộc tính A S Lực lượng phép nối tính sau: Phép hợp - Rất khó đánh giá số lượng R  S, giống R S bị loại bỏ phép hợp - Ở đưa cơng thức tính (giả sử R S không chứa lặp): + Cận card(RS) = card(R)+card(S) 33 + Cận card(RS) = max{card(R),card(S)} Phép trừ Cũng phép hợp đưa cận cận dưới: + Cận card(R-S) = card(R) + Cận card(R-S) = TÀI LIỆU THAM KHẢO 1.TS Phạm Thế Quế (2009), Bài giảng Cơ sở liệu phân tán, Học viện Cơng nghệ Bưu Viễn thơng TS Phan Thị Hà , Bài giảng Cơ sở liệu phân tán, Học viện Cơng nghệ Bưu Viễn thơng 34

Ngày đăng: 26/12/2023, 04:54

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

Tài liệu liên quan