TỔNG QUAN VỀ XỬLÝ VẤN TIN
4.1. Bài toán xửlý vấn tin
Nhiệm vụ chính của xử lý vấn tin quan hệ là biến đổi câu vấn tin cấp cao (nghĩa là ở dạng phép tính quan hệ) thành câu vấn tin cấp thấp (tức là ở dạng đại số quan hệ). Câu vấn tin phải đạt được cả tính đúng đắn lẫn tính hiệu quả. Một biến đổi được xem là đúng đắn, nếu câu vấn tin cấp thấp có cùng ngữ nghĩa với câu vấn tin gốc – tức là cả hai cùng cho ra một kết quả. Có nhiều cách để biến đổi một câu vấn tin cấp cao thành các câu vấn tin cấp thấp – nghĩa là có rất nhiều câu vấn tin cấp thấp mang tính đúng đắn và hiệu quả. Và các câu vấn tin cấp thấp đó cùng sử dụng tài nguyên như nhau. Từ đó, đặt ra nhiệm vụ: Cần phải chọn một câu vấn tin cấp thấp nào để hạ thấp nhất việc sử dụng tài nguyên nói riêng và tổng chi phí nói chung?.
Ví dụ 4.1 –1
Xét các quan hệ:
EMP (ENO, ENAME, TITLE) ASG (ENO, PNO, RESP, DUR)
“Hãy cho biết danh sách (chỉ tên thôi) các nhân viên hiện đang quản lý một dự án nào đó”
SELECT ENAME FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO
AND ASG.RESP = “Manager”
Sẽ có hai câu vấn tin cấp thấp (tức là có hai biểu thức đại số quan hệ) do biến đổi từ câu vấn tin cấp cao trên là:
ΠENAME(σRESP = “Manager” ∧ EMP.ENO = ASG.ENO (EMP x ASG)) (*) Và
ΠENAME(EMP ENO(σRESP = “Manager” (ASG))) (**) Với mục tiêu sử dụng tài nguyên ít nhất nên câu vấn tin (**) sẽ được dùng.
Nhiệm vụ chính của thể xử lý vấn tin tập trung là đối với một câu vấn tin đã cho nó phải chọn ra được một câu vấn tin cấp thấp (đại số quan hệ) tốt nhất trong số các câu vấn tin cấp thấp tương đương. Bởi vì đây là một bài toán phức tạp về mặt tính toán khi số lượng các quan hệ lớn, và nó chính là bài toán tối ưu với một mục tiêu nào đó.
Trong quan hệ phân tán, đại số quan hệ chỉ đơn thuần nói về các các phép toán đối với các quan hệ kiểu tĩnh (đã ở tại một nút nào đó) sẽ không đủ thông tin để diễn tả các chiến lược thực hiện các câu truy vấn. Chẳng hạn, phải được bổ sung thêm các phép tính toán trao đổi dữ liệu giữa các vị trí. Bên cạnh chọn thứ tự cho các phép toán đại số quan hệ, thể xử lý vấn tin phân tán cũng phải chọn các vị trí tốt nhất để xử lý dữ liệu và có thể cả cách biến đổi dữ liệu. Do những yêu cầu trên mà không gian lời giải tăng lên làm cho việc xử lý vấn tin phân tán khó hơn rất nhiều.
Ví dụ 4.1–2
“Hãy cho biết danh sách (chỉ tên thôi) các nhân viên hiện đang quản lý một dự án nào đó”. (xem ví dụ 4.1–1). chúng ta chỉ xét câu vấn tin cấp thấp thứe hai (**)
ΠENAME(EMP ENO(σRESP = “Manager” (ASG))) (** của ví dụ 4.1-1 ) Giả sử EMP và ASG được phân mảnh ngang như sau:
EMPH1 = σENO ≤ “E3” (EMP) EMPH2 = σENO > “E3” (EMP) ASGH1 = σENO ≤ “E3” (ASG) ASGH2 = σENO > “E3” (ASG)
Các mảnh ASGH1, ASGH2, EMPH1, EMPH2 theo thứ tự được lưu tại các vị trí 1, 2, 3, 4 kết quả lưu tại vị trí 5. Chúng ta có hai chiến lược sau:
TS. Lê Huy Thập - IOIT, Vast, Hà Nội 75 Result = (EMPH1 ∪ EMPH2)
ENO (σRESP = “Manager” (ASGH1∪ ASGH2))
Vị trí 3 Vị trí 4 Vị trí 1 Vị trí 2
(a) Chiến lược B
Vị trí 5
Vị trí 4 Rerult = EMP1’ ∪ EMP2’
EMP1’ = EMPH1ENOASG1’ EMP2’ = EMPH2
ENO ASG2’
ASG1’ = σRESP = “Manager” (ASGH1) ASG2’ = σRESP = “Manager” (ASGH2) Vị trí 3 Vị trí 1 EMP1’ EMP2’ ASG1’ ASG2’ Vị trí 5
Thấy rằng, chiến lược A sử dụng sự kiện là các quan hệ EMP và ASG được phân mảnh theo cùng một cách để thực hiện song song các phép chọn và phép nối. Chiến lược B thì tập trung tất cả các dữ liệu tại vị trí lưu kết quả trước khi xử lý vấn tin.