Phương pháp xử lý truy vấn mờ

Một phần của tài liệu (Luận án tiến sĩ) Một số phương pháp xử lý truy vấn mới trên cơ sở dữ liệu hướng đối tượng mờ (Trang 110)

Phương pháp xử lý một truy vấn đối tượng mờ trong cơ sở dữ liệu HĐT mờ tương tự như trong cơ sở dữ liệu hướng đối tượng, nhưng chúng được định nghĩa lại cho phù hợp hơn như đã được thảo luận ở các phần trên. Hình 3.1 đề xuất kiến trúc và phương pháp xử lý truy vấn đối tượng mờ như sau [CT2]:

Hình 3.1: Phương pháp xử lý truy vấn hướng đối tượng mờ 3.2.4.1 Các bước của phương pháp

1. Các truy vấn được thể hiện bằng ngôn ngữ khai báo tựa như ngôn ngữ truy vấn (SQL92) không đòi hỏi người dùng phải có kiến thức về việc triển khai đối tượng, đường dẫn truy cập hoặc chiến lược xử lý.

109

2. Biểu thức tính toán được tối giản ở dạng chuẩn hóa bằng cách loại bỏ các biến vị ngữ trùng lặp, áp dụng định danh và viết lại. Biểu thức chuẩn hóa sau đó được chuyển đổi thành biểu thức đại số đối tượng mờ tương đương.

3. Dạng truy vấn này là một biểu thức lồng nhau có thể được xem như một cây có các nút là các toán tử đại số và các lá của nó đại diện cho các lớp trong cơ sở dữ liệu.

4. Biểu thức đại số được kiểm tra tiếp theo về tính nhất quán của kiểu để đảm bảo rằng các vị từ và phương thức không được áp dụng cho các đối tượng không hỗ trợ các chức năng được yêu cầu. Điều này không đơn giản như kiểm tra kiểu trong các ngôn ngữ lập trình chung vì các kết quả trung gian, là tập hợp các đối tượng, có thể bao gồm các kiểu không đồng nhất.

5. Bước tiếp theo trong xử lý truy vấn là áp dụng các quy tắc viết lại bảo toàn tương đương cho biểu thức đại số với nhất quán kiểu.

6. Cuối cùng, một kế hoạch thực hiện có tính đến việc triển khai đối tượng được tạo từ biểu thức đại số được tối ưu hóa. Việc tách bước tối ưu hóa đại số khỏi bước tạo kế hoạch thực hiện tuân theo sự phân biệt được thực hiện giữa truy vấn viết lại và tối ưu hóa kế hoạch.

Viết lại truy vấn là một quá trình cấp cao trong đó việc sử dụng heuristic là mục đích chung để thúc đẩy việc áp dụng các quy tắc chuyển đổi hiệu quả hơn. Mặt khác, tối ưu hóa kế hoạch là một quy trình cấp thấp hơn, chuyển đổi một truy vấn thành kế hoạch truy cập hiệu quả nhất về chi phí, dựa trên mô hình chi phí cụ thể và kiến thức về đường dẫn truy cập và thống kê cơ sở dữ liệu. Phương pháp này phân tách rõ ràng các mối quan tâm khác nhau và cung cấp khả năng mở rộng cho bộ xử lý truy vấn. Tuy nhiên, nó phải đối mặt với một vấn đề nghiêm trọng: chi phí tổ hợp để phân tích số lượng lớn các kế hoạch được tạo ra. Bước tối ưu hóa đại số tạo ra một họ các biểu thức truy vấn tương đương dựa trên các quy tắc chuyển đổi được định nghĩa cho đại số. Bước tạo kế hoạch thực hiện tạo ra một số ánh xạ thay thế từ mỗi biểu thức này đến các lệnh gọi giao diện của trình quản lý đối tượng. Do đó, số lượng các lựa chọn thay thế cần được xem xét có thể trở nên khá cao. Một thay thế tiếp là sử dụng các quy tắc heuristic để kiểm soát viết lại truy vấn sao cho một biểu thức truy vấn duy nhất được tạo làm đầu vào cho bước tối ưu hóa kế hoạch.

110

Mặt khác, phương pháp tối ưu hóa dựa trên chi phí, hợp nhất hai bước này thành một và xem xét các thuật toán thực hiện thay thế như một phần của không gian tìm kiếm.

3.2.4.2 Quy trình xử lý truy vấn mờ

Quá trình này có 3 pha, FOODBMSs xử lý truy vấn trong suốt quá trình dịch chuyển:

1. Phân tích cú pháp và dịch chuyển. 2. Tối ưu hóa.

3. Đánh giá.

3.2.4.3 Cây truy vấn và đồ thị truy vấn

Hầu hết các truy vấn trình lên FOODMS là truy vấn ngôn ngữ bậc cao FOQL. Trong giai đoạn phân tích cú pháp và dịch chuyển, hình thức câu truy vấn của người dùng định nghĩa được chuyển đổi sang dạng mẫu có cú pháp của FOODMS. Đây có thể là trong các hình thức của một biểu thức đại số, truy vấn và đồ thị truy vấn cây quan hệ.

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

SELECT Tuổi

FROM Bán hang trẻ WITH 0.5

WHERE Bán hang trẻ. Tuổi = ‘rất trẻ’ WITH 0.8

Truy vấn liệt kê các đối tượng là bán hàng trẻ có mức thành viên bằng hoặc lớn hơn 0.5 và có độ tuổi rất trẻ với mức thành viên bằng hoặc lớn hơn 0.8. Giá trị chiều cao của các đối tượng đã chọn được cung cấp cho người dùng. Giả sử ta có ba đối tượng của Bán hàng trẻ: 𝒐𝟏, 𝒐𝟐 và 𝒐𝟑 và chúng có mức thành viên lần lượt là 0,4, 0,6 và 0,7. Rõ ràng là 𝒐𝟏 không đáp ứng truy vấn vì mức thành viên của nó đối với Bán hàng trẻ là 0.4, thấp hơn ngưỡng đã cho 0.5. Đối tượng 𝒐𝟐 và 𝒐𝟑 có thể đáp ứng hoặc không thể đáp ứng truy vấn, tùy thuộc vào việc độ tuổi của chúng còn rất trẻ dưới ngưỡng cho trước 0.8.

Câu truy vấn có thể được dịch sang một trong các biểu thức đại số quan hệ sau đây:

𝑆𝑇𝑢ổ𝑖=′𝑟ấ𝑡 𝑡𝑟ẻ′(𝑃𝑇𝑢ổ𝑖(Rất trẻ)) 𝑃𝑇𝑢ổ𝑖(𝑆𝑇𝑢ổ𝑖=′𝑟ấ𝑡 𝑡𝑟ẻ′(Bán hàng trẻ))

111

Hình 3.2: Cây truy vấn

Và cách biểu diễn đồ thì truy vấn theo hình 3.3 như sau:

Hình 3.3: Đồ thị truy vấn

Sau khi phân tích cú pháp và chuyển đổi sang biểu thức đại số kết hợp mờ, các truy vấn sau đó được biến đổi dưới dạng cây truy vấn hoặc đồ thị truy vấn, có thể được xử lý bởi bộ máy tối ưu hóa. Bộ máy tối ưu hóa thực hiện các phân tích khác nhau trong dữ liệu truy vấn, tạo ra một số phát sinh các kế hoạch đánh giá tính hợp lệ biểu thức truy vấn. Từ đó, xác định các kế hoạch đánh giá thích hợp nhất để thực thi.

Trong ví dụ 3.1 câu truy vấn FOQL được chuyển sang biểu thức đại số đối tượng mờ có dạng như sau:

𝝅̃𝑵𝒂𝒎𝒆(𝝈̃Người bán hàng trẻ .𝒇𝒐𝒊𝒅=𝑁𝑔ườ𝑖 𝑏á𝑛 ℎà𝑛𝑔.𝒇𝒐𝒊𝒅 ⋀ Người bán hàng trẻ.𝑻𝒖ổ𝒊=′𝒓ấ𝒕 𝒕𝒓ẻ′

(Người bán hàng trẻ ⋈̃ 𝑁𝑔ườ𝑖 𝑏á𝑛 ℎà𝑛𝑔) )

Ví dụ 3.2: Câu truy vấn dựa vào cấu trúc cây kế thừa:

Hình 3.4: Đồ thị lược đồ phân cấp lớp mờ

Cấu trúc lớp mờ và quan hệ kê thừa: 𝑆𝑇𝑢ổ𝑖=′𝑟ấ𝑡 𝑡𝑟ẻ′ 𝑃𝑇𝑢ổ𝑖 Bán hàng trẻ 𝑆𝑇𝑢ổ𝑖=′𝑟ấ𝑡 𝑡𝑟ẻ′ 𝑃𝑇𝑢ổ𝑖 Bán hàng trẻ Bán hang trẻ Rất trẻ Tuổi=’Trẻ’

112 CLASS DUAN WITH DEGREE OF 1.0

INHERITS DUANQUANTRONG WITH DEGREE OF 1.0 INHERITS DUANTHEODOI WITH DEGREE OF 1.0 ATTRIBUTES ID:

TYPE OF string WITH DEGREE OF 1.0 Tenduan: TYPE OF string WITH DEGREE OF 1.0 Ngansach: TYPE OF character WITH DEGREE OF 1.0 Ngaygiao: FUZZY DOMAIN {Ngay, Thang, Nam}:

TYPE OF string WITH DEGREE OF 1.0 Mucdocuaduan: FUZZY DOMAIN {Cao, Trung binh, Thap}:

TYPE OF string WITH DEGREE OF 1.0 Hoten: TYPE OF string WITH DEGREE OF 1.0 Tuoi:

FUZZY DOMAIN {rất trẻ, trẻ, già, trung niên, rất già}: TYPE OF integer WITH DEGREE OF 1.0 Gioitinh: FUZZY DOMAIN {Nam, Nu}:

TYPE OF integer WITH DEGREE OF 1.0 Membership Attribute name

WEIGHT w(ID) = 0.1, w(Hoten) = 0.1, w(Tuoi) = 0.9, w(GioiTinh) = 0.1, w(Ngaygiao) = 0.6 METHODS END 𝜋D.foid,D.Tenduan,T.Hoten,T.Capdo,T.Ngaygiao(( (𝜎Tuoi=’trẻ’(𝐷𝑈𝐴𝑁)) ⋈D.Foid=Q.Foid (DUANQUANTRONG )) ⋈Q.Foid=T.Foid (DUANTHEODOI ) )

Từ biểu thức đại số đối tượng mờ mới ta có câu truy vấn FOQL tương ứng như sau:

FQ2: SELECT D.foid, D.Tenduan, T.Hoten, T. Capdo, T.Ngaygiao

FROM DUAN AS D, DUANQUANTRONG AS Q, DUANTHEODOI AS T WITH 0.5

113

Hình 3.5: Hai cây truy vấn cho truy vấn FQ2. (a) Cây truy vấn tương ứng với biểu thức đại số đối tượng mờ cho FQ2. (b) Cây truy vấn ban đầu (chuẩn của FOQL)

cho truy vấn FQ2. (c) Đồ thị truy vấn cho FQ2.

Trong Hình 3.5 a, các nút lá D, Q và T lần lượt đại diện cho ba quan hệ DỰ ÁN, DỰ ÁN QUAN TRỌNG và DỰ ÁN THEO DÕI, và các nút cây bên trong đại diện cho biểu thức của các phép toán đại số đối tượng mờ. Khi cây truy vấn này được thực thi,

[D.Foid, D.Tenduan] [T.Hoten, T.Capdo, T.Ngaygiao]

Q T

D.Foid= Q.Foid Q.Foid= T.Foid

⋈D.Foid=Q.Foid

DUANTHEODO I

T

⋈Q.Foid=T.Foid

𝜋D.Foid,D.Tenduan,T.Hoten,T.Capdo,T.Ngaygiao

Q DUANQUANTRONG 𝜎D.Tuoi=’trẻ’ D DUAN (1) (2) (3) x x T

D.Foid=Q.Foid AND Q.Foid=T.Foid AND D.Tuoi=’trẻ’

𝜋D.Foid,D.Tenduan,T.Hoten,T.Capdo,T.Ngaygiao

Q D (a) (b) D.Tuoi=’trẻ’ (c) D ‘trẻ’

114

nút được đánh dấu (1) trong Hình 3.5a phải bắt đầu thực hiện trước nút (2) vì một số bộ dữ liệu kết quả của hoạt động (1) phải có sẵn trước khi chúng ta có thể bắt đầu thực hiện hoạt động (2). Tương tự, nút (2) phải bắt đầu thực thi và tạo ra kết quả trước khi nút (3) có thể bắt đầu thực thi, v.v.

3.3 Tối ưu hóa truy vấn mờ

Với một câu truy vấn, sẽ tồn tại nhiều phương án mà hệ thống CSDL HĐT mờ cho phép xử lý và đưa ra kết quả cuối cùng tương đương nhau, việc tối ưu hóa câu truy vấn sẽ cho chúng ta lựa chọn phương án nào có tổng thời gian thực hiện truy vấn hiệu quả hơn, tức là chọn phương án có chi phí ước lượng nhỏ nhất [53] - [68].

3.3.1 Các phép biến đổi tương đương

Ký hiệu 𝜇𝐹𝐶̃(𝑜), 𝜇𝐹𝐶̃ 1(𝑜), 𝜇𝐹𝐶̃ 2(𝑜), 𝜇𝐹𝐶̃ 3(𝑜) là các tập đối tượng mờ; e, f, g, h là các biểu thức đại số, phép toán 𝑜𝑝 ∈ {𝑢𝑛𝑖𝑜𝑛, 𝑑𝑖𝑓𝑓}. Những luật này chỉ áp dụng trên các phép toán đối tượng mờ, phép toán bộ, phép toán tập hợp và các phép toán đa tập (bag). Về ký hiệu, chúng ta chỉ sử dụng các ký hiệu phép toán một cách hình thức [100], các phép toán này có thể được cài đặt với một số thay đổi trong các mô hình khác nhau [CT4].

 𝑅1: Hoán vị phép chọn:

𝜎𝜆𝑡.𝑔(𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃(𝑜))) = 𝜎𝜆𝑠.𝑓(𝜎𝜆𝑠.𝑔(𝜇𝐹𝐶̃(𝑜)))

 𝑅2: Tổ hợp các phép chọn

𝜎𝜆𝑠.(𝑓∧𝑔 ∧…ℎ)(𝜇𝐹𝐶̃(𝑜)) = 𝜎𝜆𝑠.𝑓(𝜎𝜆𝑡.𝑔(… (𝜎𝜆𝑢.ℎ(𝜇𝐹𝐶̃(𝑜))) … ))

 𝑅3: Thu gọn dãy các phép chiếu

Π(𝑎1… 𝑎𝑛)(Π(𝑏1… 𝑏𝑛)(𝜇𝐹𝐶̃(𝑜))) = Π(𝑎1… 𝑎𝑛)(𝜇𝐹𝐶̃(𝑜))| {𝑎1, … , 𝑎𝑛} ⊂ {𝑏1, … , 𝑏𝑛}

 𝑅4: Hoán vị phép chọn và phép chiếu

𝜎𝜆𝑠.𝑒(Π(𝑎1,…,𝑎𝑛)(𝜇𝐹𝐶̃(𝑜))) = Π(𝑎1,…,𝑎𝑛)(𝜎𝜆𝑠.𝑒(𝜇𝐹𝐶̃(𝑜)))

 𝑅5: Hoán vị một phép chiếu với phép hợp, hiệu trên tập/đa tập

Π(𝑎1,…,𝑎𝑛)(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜)) = Π(𝑎1,…,𝑎𝑛)𝜇𝐹𝐶1̃(𝑜) 𝑜𝑝 Π(𝑎1,…,𝑎𝑛)𝜇𝐹𝐶2̃(𝑜)

115

𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜))

= 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜) ) 𝑜𝑝 𝜇𝐹𝐶̃ 2(𝑜), 𝑖𝑓 𝑓 𝑖𝑠 𝑟𝑒𝑙𝑎𝑡𝑒𝑑 𝑡𝑜 𝜇𝐹𝐶̃ 1(𝑜)

nếu f chỉ liên quan với 𝜇𝐹𝐶̃ 1(𝑜). Tổng quát:

𝜎𝜆𝑠.(𝑓∧𝑔∧ℎ(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜))

= 𝜎𝜆𝑢.ℎ(𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)) 𝑜𝑝 𝜎𝜆𝑡.𝑔(𝜇𝐹𝐶̃ 2(𝑜))) , 𝑖𝑓 𝑓 𝑖𝑠 𝑟𝑒𝑙𝑎𝑡𝑒𝑑 𝑡𝑜𝜇𝐹𝐶̃ 1(𝑜)

nếu f liên quan 𝜇𝐹𝐶̃ 1(𝑜), g liên quan 𝜇𝐹𝐶̃ 2(𝑜) và h liên quan đến cả 𝜇𝐹𝐶̃ 1(𝑜) và

𝜇𝐹𝐶̃ 2(𝑜)

 𝑅7: Hoán vị giữa phép Apply và phép chọn: nếu điều kiện chọn chỉ chứa các thuộc tính do phép toán apply trả về thì:

𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝜇𝑠.𝑒(𝜎𝜆𝑡.𝑓(𝜇𝐹𝐶̃(𝑜))) = 𝜎𝜆𝑡.𝑓(𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝜇𝑠.𝑒(𝜇𝐹𝐶̃(𝑜)))

 𝑅8: Hoán vị giữa phép làm phẳng (flat) và phép apply trên tập và đa tập: giả sử 𝜇𝐹𝐶̃(𝑜) là thể hiện của 1 lớp và X là một tập thuộc tính phức của lớp 𝐹𝐶̃ 𝑓𝑙𝑎𝑡𝑠 (𝑎𝑝𝑝𝑙𝑦𝑠

𝜆𝑠.(𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑡.𝑒(Π(𝑋)(Π𝑉(𝜇𝐹𝐶̃(𝑜)))))

(𝜇𝐹𝐶̃(𝑜)))

= 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑡.𝑒(𝑓𝑙𝑎𝑡𝑠 (𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.Π(𝑋)(Π𝑉(𝜇𝐹𝐶̃(𝑜))) (𝜇𝐹𝐶̃(𝑜))))

Biểu thức ở vế trái, có biểu thức e tác động trước tập các tập (thu được bởi

Π(𝑋)) sau đó làm phẳng thành một tập; biểu thức ở vế phải có phép toán làm phẳng được ta cs động trước (kết quả thu được là một tập), sau đó thực hiện phép toán apply.

 𝑅9: Tính kết hợp của phép hợp

(𝜇𝐹𝐶̃ 1(𝑜) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 2(𝑜)) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 3(𝑜)𝜇𝐹𝐶̃ 1(𝑜) 𝑢𝑛𝑖𝑜𝑛 ( 𝜇𝐹𝐶̃ 2(𝑜) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 3(𝑜))

 𝑅10: Các luật kế thừa đối với phép chọn và phép apply: nếu 𝐹𝐶̃2 là một lớp con của 𝐹𝐶̃1 , thì thể hiện của 𝜇𝐹𝐶̃ 2(𝑜) là một tập con của thể 𝜇𝐹𝐶̃ 1(𝑜):

𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)) 𝑢𝑛𝑖𝑜𝑛 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 2(𝑜))

= 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜))𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 1(𝑜))𝑢𝑛𝑖𝑜𝑛 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 2(𝑜)) = 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 1(𝑜))

116

3.3.1.1 Tối ưu hóa kế hoạch thực thi truy vấn

Với câu truy vấn, rõ ràng có nhiều cây xử lý tương đương, tức là các phương án thay thế để thực hiện truy vấn. Những lựa chọn thay thế này là kết quả của một số lựa chọn mở, một số trong đó được liệt kê dưới đây.

Join Ordering. Một dãy các phép nối có thể sắp xếp lại, kết quả này trong nhiều lựa chọn thay thế. Để làm giảm số lượng thứ tự trong của phép nối ta xem xét, người ta có thể loại trừ các kết quả tạo ra các tích đề các, hoặc hạn chế các thứ tự nối với các kết quả tạo cây tuyến tính, thay vì xem xét tất cả các loại có thể, cây tổng quát (đây là vấn đề mang tính thời sự đang được nghiên cứu).

Pushing Selections. Các lựa chọn có thể được thực hiện ở những thời điểm khác nhau. Ví dụ, chúng ta có thể thực hiện một lựa chọn nhất định trước hoặc sau khi áp dụng một hàm giá trị đối tượng (di chuyển lựa chọn vào tham gia, hoặc ngược lại). Ngoài ra, các lựa chọn với vị từ lựa chọn kết hợp có liên quan có thể được chia thành hai lựa chọn (hoặc ngược lại), và thứ tự của các lựa chọn, cũng như thứ tự của các thuật ngữ trong vị từ lựa chọn, có thể thay đổi.

Pushing Projections. Các phép chiếu, cũng giống như phép chọn, có thể được thực hiện ở những thời điểm khác nhau. Ngoài ra, có thể thay đổi thứ tự áp dụng cho phép chiếu và phép chọn.

Method Selection. Đối với mỗi phép toán luận lý có thể có một số phương pháp, đó là thực hiện vật lý. Ví dụ, một phép toán nối có thể được thực hiện bởi: nested loops join, hash join, hoặc sort merge join. Ngoài ra, đối với liên kết tiềm ẩn được hỗ trợ bởi các trường liên kết, các phiên bản kết nối dựa trên con trỏ có thể được chọn. Hơn nữa, phép chọn có thể được thực hiện bằng cách sử dụng các chỉ mục, hoặc bằng cách thực hiện quét mối quan hệ, tiếp theo là kiểm tra vị từ.

Index Selection. Nếu lựa chọn được hỗ trợ bởi nhiều chỉ số, người ta có cơ hội sử dụng tất cả, một số, hoặc chỉ một trong các chỉ số khả dụng.

Một phần của tài liệu (Luận án tiến sĩ) Một số phương pháp xử lý truy vấn mới trên cơ sở dữ liệu hướng đối tượng mờ (Trang 110)

Tải bản đầy đủ (PDF)

(138 trang)