Tối ưu hóa truy vấn có thể được mô hình trạng thái và tối ưu trong một không gian trạng thái (còn gọi là không gian tìm kiếm). Trong tối ưu hóa truy vấn, mỗi trạng thái tương ứng với một truy vấn đại số chỉ ra một lịch trình thực hiện và biểu diễn như một cây xử lý. Không gian trạng thái là một họ tương đương (trong ý nghĩa của tạo ra cùng một kết quả) các truy vấn đại số. Truy vấn tối ưu hóa tạo ra và
- 31 -
tìm kiếm một không gian trạng thái bằng cách sử dụng một chiến lược tìm kiếm áp dụng một hàm chi phí cho mỗi trạng thái và việc tìm kiếm một với chi phí tối thiểu. Do đó, để đặc trưng cho một truy vấn tối ưu ba điều cần phải được quy định cụ thể:
- Không gian tìm kiếm và quy tắc chuyển đổi tạo ra biểu thức truy vấn khác cấu thành trong không gian tìm kiếm.
- Một thuật toán tìm kiếm, cho phép một để chuyển từ một trạng thái khác trong không gian tìm kiếm.
- Chi phí chức năng được áp dụng cho mỗi trạng thái.
Một trong những hy vọng để phát triển một tối ưu hóa mở rộng mà thể chứa các chiến lược tìm kiếm khác nhau, thông số kỹ thuật đại số khác nhau với các quy tắc chuyển đổi khác nhau, và chức năng chi phí khác nhau. tối ưu hóa truy vấn dựa trên quy tắc(Rule) cung cấp một số lượng hạn chế mở rộng bằng cách cho phép định nghĩa các quy tắc chuyển đổi mới. Tuy nhiên, chúng không cho phép mở rộng trong không gian khác.
Các dự án Open OODB ở Texas Instruments tập trung vào định nghĩa của một khung kiến trúc mở cho OODBMSs và trên mô tả về không gian thiết kế cho các hệ thống này. Xử lý truy vấn trong Open OODB sau bước tương tự như hình 2.1. Module truy vấn là một ví dụ về mở rộng intramodule trong Open OODB. Các truy vấn tối ưu, được xây dựng bằng cách sử dụng Volcano optimizer generator, là mở rộng đối với các toán tử đại số, chuyển đổi các quy tắc hợp lý, thực hiện các thuật toán, thực hiện luật (tức là, toán tử logic để thực hiện thuật toán ánh xạ), chi phí chức năng dự toán, và thuộc tính vật lý thực hiện chức năng (ví dụ, sự hiện diện của các đối tượng trong bộ nhớ). Việc tách giữa các ngôn ngữ truy vấn người dùng phân tích cấu trúc và toán tử đồ thị mà tối ưu hóa các hoạt động cho phép thay thế của ngôn ngữ người sử dụng hay tối ưu hóa. Việc tách biệt giữa toán tử đại số và thuật toán cho phép thăm dò thực hiện với các phương pháp thay thế để thực hiện toán tử đại số.. Mở xử lý truy vấn OODB bao gồm một động cơ thực hiện truy vấn có chứa
- 32 -
hiệu quả triển khai của quét, lập chỉ mục quét, hybrid-hash joint và lắp ráp đối tượng phức tạp.
Dự án EPOQ là một cách tiếp cận để mở rộng tối ưu hóa truy vấn, nơi không gian tìm kiếm được chia thành vùng. Mỗi vùng tương ứng với một họ tương đương của một thành ngữ truy vấn có thể truy cập khác. Các vùng không nhất thiết phải loại trừ lẫn nhau (Hình 2.2.2) và khác nhau ở các truy vấn là thao tác, kiểm soát (tìm kiếm) chiến lược mà họ sử dụng, các quy tắc chuyển đổi câu truy vấn mà họ kết hợp, và mục tiêu tối ưu hóa mà họ đạt được. Ví dụ, một trong những khu vực có thể bao gồm các quy tắc chuyển đổi mà đối phó với các truy vấn đơn giản đuợc lựa chọn, trong khi vùng khác có thể đối phó với biến đổi cho các truy vấn lồng nhau. Tương tự như vậy, một trong những vùng có thể có mục tiêu giảm thiểu một hàm chi phí, trong khi khu vực khác có thể cố gắng để biến đổi các truy vấn trong một số hình thức mong muốn. Mỗi khu vực có thể được lồng vào một số cấp, cho phép phân cấp tìm kiếm trong một khu vực. Kể từ khi khu vực không đại diện cho lớp tương đương, có một nhu cầu cho một chiến lược kiểm soát chung để xác định cách di chuyển tối ưu truy vấn từ một trong những vùng khác. Tính khả thi và hiệu quả của phương pháp này vẫn còn phải được xác minh.
Dự án TIGUKAT một cách tiếp cận theo định hướng mở rộng đối tượng để xử lý truy vấn.TIGUKAT đối tượng là một mô hình mở rộng mô hình ứng xử thống nhất đặc trưng bởi một ngữ nghĩa hoàn toàn và phương pháp tiếp cận một cách thống nhất cho các đối tượng. Mô hình là ứng xử trong rằng cách duy nhất là các đối tượng được truy cập bằng cách áp dụng những hành vi (mà thay thế cho cả các biến đối tượng và các phương pháp sẵn có trong mẫu đối tượng khác) để các đối tượng. Hành vi được xác định trên các loại và hiện thực của họ được mô hình như chức năng. Mỗi khái niệm, bao gồm các loại, các lớp , tập hợp, thông tin meta, vv là một đối tượng đầu tiên. Tính thống nhất của mô hình đối tượng mở rộng mô hình truy vấn, xử lý các truy vấn như first-class objects. Một loại truy vấn được định
- 33 -
nghĩa là một phân nhóm của các loại chức năng (Hình 2.3). Vì vậy, các truy vấn các loại chuyên ngành chức năng có thể được biên dịch và thực hiện.
TIGUKAT truy vấn tối đưa ra hệ thống các khái niệm như đại diện cho các đối tượng là dọc theo. Không gian tìm kiếm, các chiến lược chức năng tìm kiếm và chi phí được mô hình như là đối tượng (xem hình 2.3). Việc đưa các thành phần này của tối ưu hóa các loại vào hệ thống cung cấp mở rộng thông qua các nguyên tắc hướng đối tượng cơ bản của sub typing.
- 34 -
Hình 2.3 Tối ưu hóa như là một phần của hệ thống loại
Các trạng thái trong không gian tìm kiếm là mô hình như chế biến cây (PT) có các nút lá được tham chiếu đến tập hợp và các nút lá không biểu thị các ứng dụng hành vi mà kết quả là các đối tượng khác. Những nút tương ứng với các hành vi khai thác trở lại các tập hợp đại số như là kết quả tạm thời.
Toán tử đại số (ví dụ, select, joint) được định nghĩa là hành vị của các kiểu tập hợp. đó là những mô hình như trường hợp (hiển thị như là tiêu tan hộp trong hình 2.3) của loại Đại số là một kiểu con của loại hành vi. Việc thực thi(thực hiện) các thuật toán cho các toán tử đại số là mô hình như đối tượng chức năng (ví dụ, HashJoin, Scan select). Thực hiện các chức năng này không thể được sử dụng như các nút của PT, vì các nút nên đại diện cho chức năng thực hiện tất cả các đối số mà đã được ghép nối. Vì vậy, loại AlgOp được xác định có trường hợp được chức năng với các đối số ghép nối và đại diện các nút của một PT. Trong thời trang này, mỗi nút của PT một đại diện cho một thuật toán thực hiện cụ thể đối với một biểu thức đại số.
Chiến lược tìm kiếm là tương tự như mô hình như các đối tượng, nhưng tách biệt với không gian tìm kiếm. Tìm kiếm bắt đầu được định nghĩa là một loại con của loại Chức năng, và nó có thể biến thể trong chuyên ngành. Biểu đồ 3 cho thấy chuyên môn của tìm kiếm Bắt đầu vào các chiến lược tìm kiếm liệt kê EnumSSand
- 35 -
chiến lược tìm kiếm ngẫu nhiên chuyển đổi các quy tắc đại số RandomSS. Các quy tắc biến đổi đại số để điều khiển sự chuyển động của các chiến lược tìm kiếm thông qua các không gian tìm kiếm được thực hiện như trường hợp của AlgEqRule. 2.3. Kỹ thuật tối ưu hóa
Các kỹ thuật tối ưu hóa cho các truy vấn đối tượng có hai hướng cơ bản sau. Đầu tiên là chi phí tối ưu hóa dựa trên các truy vấn dựa trên các thao tác đại số. Kỹ thuật tối ưu đại số đã được nghiên cứu khá rộng rãi trong bối cảnh của mô hình quan hệ. Các hoạt động trên DBMSs quan hệ đã được hưởng lợi rất nhiều từ sự sẵn có của một định nghĩa đại số phổ chấp nhận. Mặc dù có nhiều đề xuất nhưng không có đại số đối tượng được chấp nhận, làm cho nó rất khó để khái quát các kết quả nghiên cứu. Thứ hai là tối ưu hóa của biểu thức đường dẫn. Biểu thức đường dẫn đại diện cho chỗ giao nhau đường dẫn giữa các đối tượng và là duy nhất trong OODBMSs. Tối ưu hóa biểu thức đường dẫn là một vấn đề quan trọng trong OODBMSs và đã được nhiều người quan tâm.
Nội dung trình bày của phần này gồm có hai phần là tối ưu hóa đại số và tối ưu hóa biểu thức đường dẫn.
2.3.1. Các vấn đề về tối ưu hóa đại số
Trong phần này sẽ thảo luận về tìm kiếm không quan và quy tắc chuyển đổi, thuật toán tìm kiếm, chi phí chức năng, tham số.
Tìm kiếm không gian và quy tắc chuyển đổi
Một lợi thế lớn của tối ưu hóa đại số là một biểu thức đại số truy vấn có thể được chuyển đổi bằng cách sử dụng được xác định rõ tính chất đại số như dịch chuyển, giao hoán và phân phối. Vì vậy, mỗi truy vấn có một số (có tiềm năng lớn) của biểu thức tương đương, tạo nên không gian tìm kiếm. Các biểu thức là tương đương về các kết quả mà họ tạo ra, nhưng có thể rất khác nhau về chi phí của họ. Như vậy, tối ưu hóa truy vấn sửa đổi các biểu thức truy vấn, bằng phương tiện của
- 36 -
các quy tắc chuyển đổi đại số, trong một nỗ lực để có được một trong đó tạo ra cùng một kết quả với chi phí thấp nhất.
Các quy tắc chuyển đổi được rất nhiều phụ thuộc vào đại số đối tượng cụ thể, kể từ khi họ được định nghĩa riêng biệt cho từng đại số đối tượng và cho các kết hợp của họ. Việc thiếu một định nghĩa tiêu chuẩn đại số đối tượng đặc biệt lo ngại vì cộng đồng không thể hưởng lợi từ những khái quát của đại số nghiên cứu rất nhiều đối tượng. với sự khác biệt đặc biệt quan trọng.Các cân nhắc chung cho định nghĩa các quy tắc chuyển đổi và thao tác các biểu thức truy vấn là khá tương tự như hệ thống quan hệ các biểu thức truy vấn quan hệ được định nghĩa về quan hệ đối bằng phẳng, trong khi các truy vấn đối tượng được xác định trên lớp (hoặc các tập hợp hoặc bộ các đối tượng) có mối quan hệ thừa kế giữa họ. do đó, có thể sử dụng ngữ nghĩa của các mối quan hệ trong tối ưu hóa truy vấn hướng đối tượng để đạt được một số biến đổi bổ sung.
Xem xét, ví dụ, các đại số đối tượng quy định tại [7] mà toán tử làm việc và sản xuất bộ đối tượng. Xem xét ba toán tử union (ký hiệu là ), intersection (ký hiệu là ) và tham số select (ký hiệu là P δF <Q1…Qk>), nơi union và intersection
có các thiết lập lý thuyết ngữ nghĩa thông thường và chọn lựa chọn các đối tượng từ một tập P sử dụng bộ các đối tượng Q1…Qk là tham số (theo nghĩa một hình thức generalied của semijoin). Sau đây là một số các quy tắc chuyển đổi mà có thể được áp dụng trong thời gian tối ưu để có được các biểu thức truy vấn tương đương (để sử dụng ngắn gọn dùng biểu thị Qset cho Q1…Qk; RSet được định nghĩa tương tự):
Quy tắc 1 chụp giao hoán của select, trong khi quy tắc 2 là bắt mà chọn phân phối qua union. Quy tắc 3 là một sự đồng nhất trong đó sử dụng thực tế là chỉ chọn hạn chế đầu vào và trả về của một tập hợp con của đối số đầu tiên của nó.
- 37 -
Hai quy tắc đầu tiên là khá chung mà họ đại diện tính tuơng đương được thừa kế từ lý thuyết tập hợp. Việc một phần ba là một quy tắc chuyển đổi đặc biệt cho một toán tử đại số đối tượng cụ thể được xác định với một ngữ nghĩa cụ thể. Tất cả ba, nhưng là cú pháp trong tự nhiên. Hãy xem xét các quy tắc sau đây, mặt khác, nơi Ci biểu thị tập hợp các đối tượng trong phạm vi của lớp ci và Cj biểu thị mức độ sâu sắc của cj lớp (tức là tập hợp các đối tượng trong phạm vi của cj cũng như trong mức độ của tất cả những người đó là lớp con của cj):
Những quy định này được chuyển đổi ngữ nghĩa trong tự nhiên vì chúng phụ thuộc vào mô hình đối tượng và đặc điểm kỹ thuật mô hình truy vấn. Quy tắc 4 ví dụ là đúng bởi vì mô hình đối tượng hạn chế mỗi đối tượng chỉ thuộc về một lớp. quy tắc 5 giữ vì các mô hình hồi giấy phép truy vấn các đối tượng ở mức độ sâu của tầng lớp mục tiêu.
Cuối cùng, nguyên tắc 6 thống nhất dựa trên loại quy tắc cho các ứng dụng của nó cũng như điều kiện là F’ là trùng với F trừ mỗi sự xuất hiện của p được thay thế bằng r (điều kiện này mới được ký hiệu là c phía trên các,).
Kể từ khi ý tưởng chuyển đổi truy vấn được biết đến, ở đây không xây dựng các kỹ thuật trên. Các cuộc thảo luận ở trên minh chứng cho ý tưởng nói chung và cũng làm nổi bật những khía cạnh độc đáo cần được xem xét trong đại số đối tượng.
Thuật toán tìm kiếm
Tìm kiếm rộng, theo đó toàn bộ không gian tìm kiếm được liệt kê, nhất là thẳng về phía trước tìm kiếm chiến lược có thể được sử dụng. Một hàm chi phí có thể được áp dụng cho mỗi biểu thức tương đương để xác định rẻ nhất. Một cải tiến
- 38 -
là sử dụng một cách tiếp cận lập trình năng động, theo đó các biểu thức mới được xây dựng từ dưới lên bằng cách sử dụng tối ưu biểu thức con trước đó xác định.
Vì các thuật toán tìm kiếm kiệt kê được dựa trên đánh giá chi phí của toàn bộ không gian tìm kiếm, trên đầu của họ là khá cao. Trong các hệ thống quan hệ, số lượng toán tử tham gia thường xác định sự phức tạp của tìm kiếm liệt kê. Nếu có N toán tử joint và có hai sự lựa chọn joint theo thứ tự (đối với quan hệ bên trong và bên ngoài), sau đó có O (2N) biểu thức truy vấn khác để đánh giá. Suy nghiệm như thực hiện các lựa chọn và dự đoán trước khi gia nhập (để giảm kích cỡ của gia tham số) không thay đổi tính chất tổ hợp của vấn đề. Do đó, giá trị của N và ngưỡng ngoài mà tổ hợp tính chất của vấn đề làm cho các giải pháp khả thi liệt kê trở thành một vấn đề quan trọng.
Điều này có thể là một mối quan tâm quan trọng để tối ưu hóa truy vấn đối tượng là tốt. Trước tiên, một số lượng lớn các đại số đối tượng toán tử joint hoặc toán tử với ngữ nghĩa tương tự để tham gia. Thứ hai, nó đã được đề xuất rằng ngay cả nếu nó không được phổ biến để tìm thấy nhiều dữ liệu kinh doanh chế biến các truy vấn với hơn 10 toán tử joint, các truy vấn như vậy là khá phổ biến trong hệ thống AI và các ứng dụng quyết định hỗ trợ. Đây là những ứng dụng quan trọng là OODBMSs cố gắng để phục vụ.
Trong những trường hợp này, các thuật toán tìm kiếm ngẫu nhiên đã được đề xuất là một trong những thay thế để hạn chế các vùng của không gian tìm kiếm mà được phân tích. các thuật toán ngẫu nhiên được biết đến trong hoạt động nghiên cứu và hai phiên bản của các thuật toán đã được điều tra trong bối cảnh quan hệ tối ưu hóa truy vấn: mô phỏng ủ và lặp đi lặp lại cải tiến. Một sự kết hợp của hai thuật toán, được gọi là tối ưu hóa hai giai đoạn, được đề xuất trong [8]. Nếu không đi vào chi tiết của các thuật toán, các ý tưởng nói chung có thể được mô tả như sau. Các