Không gian tìm kiếm

Một phần của tài liệu (LUẬN văn THẠC sĩ) luận văn thạc sĩ tối ưu hóa truy vấn trong các cơ sở dữ liệu phân tán (Trang 47 - 49)

Đối với một câu truy vấn đã cho, không gian tìm kiếm có thể đƣợc định nghĩa nhƣ một tập các cây toán tử tƣơng đƣơng, có đƣợc bằng cách áp dụng các quy tắc biến đổi. Để nêu bật các đặc trƣng của bộ tối ƣu hóa truy vấn, chúng ta thƣờng tập trung các cây nối (join tree), là cây toán tử với các phép kết nối hoặc tích Đề các.

Ví dụ 2.14: Xét câu truy vấn sau:

SELECT TênNV FROM NV, PC, DA

WHERE NV.MNV=PC.MNV AND PC.MDA=DA.MDA

Hình 2.15 minh họa ba cây nối tƣơng đƣơng cho truy vấn trên, thu đƣợc bằng cách sử dụng tính chất kết hợp của các toán tử hai ngôi. Mỗi cây có thể đƣợc gán một chi phí dựa trên chi phí của mỗi toán tử. Cây nối (c) bắt đầu với một tích Đề các có thể có chi phí cao hơn rất nhiều so với cây còn lại.

Với một câu truy vấn có N quan hệ thì sẽ có O(N!) cây nối có thể thu đƣợc từ việc áp dụng tính giao hoán và kết hợp.

MDA ⋈ MDV ⋈ NV PC DA (a) MDV ⋈ MDA ⋈ PC DA NV (b) MDV, MDA ⋈ X DA NV PC

Các công việc một bộ tối ƣu hóa truy vấn cần thực hiện nhƣ sau: - Xác định thứ tự thực hiện của các phép kết nối.

- Xác định phƣơng thức truy cập các phép kết nối.

- Xác định hình dạng của cây nối trong không gian tìm kiếm có đƣợc. Nó có thể là các dạng: Linear Trees (Left Deep Trees), Right Deep trees, Bushy Join Trees, Binary Trees hoặc Zig-Zag (Xem Hình 2.14)

- Xác định thứ tự dịch chuyển của dữ liệu giữa các trạm để giảm số lƣợng dữ liệu và chi phí truyền thông.

Hình 2.16: Hình dáng của một số cây nối

Chiến lƣợc tìm kiếm là muốn nói đến các thuật toán đƣợc áp dụng để xác định kế hoạch thực thi truy vấn tốt nhất từ không gian tìm kiếm giảm chi phí tối ƣu hóa truy vấn. Có hai chiến lƣợc cơ bản:

- Chiến lƣợc xác định (Deterministic Strategy): Chiến lƣợc này tiến hành bằng cách xây dựng các kế hoạch, bắt đầu từ các quan hệ cơ sở, sau đó nối thêm một hoặc nhiều quan hệ ở mỗi bƣớc cho đến khi thu đƣợc mọi kế hoạch khả hữu. Để giảm chi phí tối ƣu hóa, những kế hoạch không dẫn đến giải pháp tối ƣu đƣợc

cắt bỏ. Có hai cách: Theo chiều rộng - xây dựng tất cả các kế hoạch có thể trƣớc khi chọn kế hoạch tốt nhất (Quy hoạch động (Dynamic Programming)), theo chiều sâu – chỉ xây dựng một kế hoạch (Greedy).

- Chiến lƣợc ngẫu nhiên (Randomized Strategy): Tiến hành tìm kiếm giải pháp tối ƣu xung quanh một số điểm cụ thể. Chiến lƣợc này không đảm bảo kế hoạch tối ƣu nhƣng tránh chi phí cao trong tối ƣu hóa về bộ nhớ và thời gian thực hiện. Chiến lƣợc này áp dụng tốt hơn với câu truy vấn có 5 - 6 quan hệ trở lên. Hai kỹ thuật tiêu biểu là Interative Improvement và Simulated Annealing [4].

Một phần của tài liệu (LUẬN văn THẠC sĩ) luận văn thạc sĩ tối ưu hóa truy vấn trong các cơ sở dữ liệu phân tán (Trang 47 - 49)