- Dạng chuẩn tuyển là tuyển () của những phép hội ():
3.2.2.1. Thuật toán INGRES phân tán
Thuật toán tối ưu hoá câu truy vấn phân tán của INGRES phân tán bắt nguồn từ thuật toán INGRES tập trung. Hàm mục tiêu của thuật toán là tối thiểu tổng chi phí và thời gian trả lời, nhưng hai mục tiêu này đối lập nhau (tăng chi phí truyền thông, có thể giảm bớt thời gian trả lời) nên hai hàm mục tiêu có trọng số lớn hơn cho mục tiêu này hay mục tiêu kia. Thuật toán tối ưu hoá câu truy vấn này bỏ qua chi phí truyền dữ liệu tới trạm kết quả. Thuật toán sử dụng các phân đoạn ngang và xét cả hai kiểu mạng (mạng cục bộ và mạng diện rộng). Đầu vào của thuật toán xử lý câu truy vấn là một câu truy vấn viết trong phép tính quan hệ bộ (trong dạng chuẩn hội) và thông tin lược đồ (kiểu mạng, vị trí và kích thước của mỗi đoạn). Thuật toán này được thực hiện tại trạm ở đó câu truy vấn được bắt đầu, gọi là trạm chủ (master site), thuật toán có tên D-INGRES-QOA[7].
Thuật toán: D-INGRES-QOA
Input: MVQ: Truy vấn đa biến với n biến
Output: output: kết quả của truy vấn đa biến cuối cùng
BEGIN
For mỗi OVQi có thể tách ra in MVQ do {chạy tất cả các truy vấn một biến}
Run(OVQi); (1)
Endfor
While n 0 do {n- số truy vấn không thể rút gọn} (3)
Begin
{Chọn truy vấn không thể rút gọn liên quan đến các đoạn nhỏ nhất}
MVQ’ select_query(MVQ’_list) (3.1)
{Xác định các đoạn để truyền và trạm xử lý MVQ’}
Fragment-site-list SELECT_STRATEGY(MVQ’); (3.2)
{truyền các đoạn đã chọn tới các trạm đã chọn}
For mỗi c p (F,S) trong Fragment-site-list do (3.3)
Chuyển đoạn F tới trạm S;
End-for
Run(MVQ’);
n n-1; (3.4)
End-while {đầu ra của thuật toán là kết quả của MVQ’ cuối cùng} End. {D-INGRES-QOA}
Bước 1: Xử lý địa phương tất cả các truy vấn một biến (phép chọn và phép chiếu).
Bước 2: Thuật toán thu gọn được áp dụng cho truy vấn ban đầu, tách các truy vấn không thể rút gọn và các truy vấn một biến ra. Bỏ qua các truy vấn
một biến v đã xử lý ở bước 1.
Bước 3: Áp dụng cho các truy vấn không thể rút gọn.
Bước 3.1: Chọn các truy vấn chưa được xử lý và liên quan đến các đoạn nhỏ hơn.
Bước 3.2: Chọn chiến lược tốt nhất để xử lý truy vấn MVQ’ (truy vấn không thể rút gọn và có ít nhất hai biến). Chiến lược này được mô tả bởi một danh sách các c p (F, S), trong đó F là một đoạn để truyền tới trạm xử lý S.
Bước 3.4: Thực hiện MVQ’. Nếu có các truy vấn con còn lại, thuật toán quay lại bước 3 và thực hiện bước l p tiếp theo, ngược lại thuật toán kết thúc.
Đ c điểm của thuật toán INGRES phân tán là tìm kiếm trong không gian lời giải có giới hạn, trong đó một quyết định tối ưu hoá được thực hiện ở mỗi bước với kết quả của nó trên tối ưu hoá tổng thể. Tối ưu hoá câu truy vấn động có lợi vì kích thước chính xác của kết quả trung gian được biết.