Xử lý kết nối mờ trong VQS:

Một phần của tài liệu Vận dụng khả năng tìm kiếm của hệ thống truy vấn mở để xây dựng môdun tích hợp vào SQL server nhằm hỗ trợ cho hệ thống trả lời truy vấn luận văn thạc sĩ (Trang 59 - 64)

Như chúng ta biết, phép toán nối là một trong những phép toán nhiều chi phí nhất trong một HQTCSDL. Trong trường hợp của VQS, việc xử lý hiệu quả các kết nối mờ còn được nghiên cứu và đề cập bởi các tác giả trong [7]. Trong phần này, chúng tôi sẽ giới thiệu ngắn gọn sự mở rộng này của hệ thống VQS gốc để thực hiện các phép nối mờ.

Việc xử lý phép nối mờ khác với việc xử lý phép nối truyền thống trong tập kết quả được trả về. Đối với một phép toán kết nối truyền thống,

Data Application Client PIS- VQL Client PIS-VQL Adapter VQS

khi dữ liệu phù hợp trong các quan hệ được nối không thỏa mãn nhu cầu của các điều kiện kết nối một cách chính xác, các HQTCSDL sẽ trả về một tập kết quả rỗng. Còn đối với một phép nối mờ, VQS sẽ trả về cho người sử dụng các bản ghi được nối từ các quan hệ nhằm làm thỏa mãn một cách xấp xỉ các điều kiện kết nối. Như các truy vấn lựa chọn mờ, các bản ghi kết hợp trả về sẽ được sắp xếp theo khoảng cách gộp để hợp nhất các điều kiện. Tuy nhiên, việc tính toán và sắp xếp toàn bộ các bản ghi kết hợp cho hợp lý với một kết nối mờ yêu cầu việc xử lý vô cùng tốn kém. Trước tiên, hệ thống phải được xây dựng tập hợp gồm các phần tử của các quan hệ liên quan và sau đó sắp xếp tất cả các bản ghi của tập kết quả sẽ tác động đến các điều kiện kết nối. Vì vậy tập kết quả của một phép mờ sẽ trở nên rất lớn khi số điều kiện nối tăng hay số khối lượng dữ liệu của các quan hệ kết hợp tăng. Chúng ta hãy xem một minh họa rất đơn giản sau: giả sử chúng ta phải thực thiện một phép nối mờ cho hai quan hệ Nhân Viên và Quản Lý và chúng chứa 3000 và 40 bản ghi. Tập hợp các phần tử sẽ bao gồm 120000 (3000x40) bản ghi. Điều này sẽ dẫn đến tổng số 120000 phép toán tính khoảng cách gộp mà hệ thống có thể thực hiện. Với các cơ sở dữ liệu rất lớn, vấn đề trở nên rất nghiêm trọng.

Để xử lý vấn đề này, một phương pháp tối ưu xấp xỉ đã được giới thiệu. Ở đây hai khái niệm mới đã được định nghĩa: Các quan hệ nối chính là các quan hệ đầu tiên của mỗi điều kiện kết nối; Các quan hệ nối phụ là các quan hệ khác bao gồm các điều kiện nối. Các tác giả đã giới thiệu một phương pháp để cắt giảm số bản ghi của quan hệ nối phụ trước khi được kết hợp với các bản ghi của quan hệ nối chính. Phương pháp này được mô tả ngắn gọn như sau: Cho mỗi điều kiện nối mờ có dạng “A.X IS B.X CONFIDENCE α” (X là thuộc tính nối và A, B là quan hệ nối chính

và quan hệ nối phụ; CONFIDENCE là một từ khóa mới của ngôn ngữ VQL mở rộng), hệ thống sẽ xử lý bảng NCR tương ứng của thuộc tính nối X (X cũng có thể là một trường mờ) tác động đến giá trị của α để thực hiện loại trừ các bản ghi của quan hệ nối phụ. Chú ý rằng một truy vấn có thể có nhiều hơn một điều kiện nối và hệ thống sẽ quản lý quá trình loại trừ ở trên. Cuối cùng là chỉ các bản ghi còn lại trong sự giao nhau có ảnh hưởng với toàn bộ điều kiện nối được xem xét để tính toán khoảng cách gộp với bản ghi liên quan trong quan hệ nối chính.

Để làm sáng tỏ, chúng ta xem một mô tả chính thức của ngôn ngữ truy vấn mờ như hình sau. DataSource đầu tiên luôn luôn được xem như là quan hệ nối chính, trong DataSource thứ hai được xem như quan hệ nối phụ. Trong JoinExpression, tham số CONFIDENCE chỉ ra một giá trị sẽ được sử dụng để giảm số bản ghi có thể được xem xét của quan hệ nối phụ. Giá trị của tham số này có thể trong đoạn [0,1] và biểu diễn đường kính tương ứng của mỗi cột NCR trong bảng NCR từ giá trị truy vấn có thể được xem xét trong suốt quá trình xử lý nối mờ. Giá trị mặc định của tham số CONFIDENCE là 1; nghĩa là toàn bộ bản ghi trong quan hệ nối phụ liên quan điều kiện nối này sẽ được đánh giá. Nếu CONFIDENCE được thiết lập là 1 cho toàn bộ điều kiện nối, toàn bộ bản ghi của tích Đề- Các sẽ được xem xét.

Hình 3.14 Mô tả chính thức của ngôn ngữ VQL mở rộng

Còn phải chú ý rằng, với mỗi điều kiện nối, các thuộc tính nối mờ của cả hai quan hệ chính và quan hệ phụ phải là các trường mờ của bảng NCR giống nhau. Ví dụ sau đây sẽ làm rõ hơn:

VQLExpression = “SELECT FROM” (DataSource [“,” DataSource] “WHERE” Conditions)

“INTO” destinationTableName

DataSource = ([ownerName”.”]rootTableName) |

([ownerName”.”]rootViewName) | “(“SQLSelectStatement”)”

Conditions = columnName “IS” (ValueExpression | JoinExpression)

[“AND” columnName “IS” (ValueExpression | JoinExpression)]

ValueExpression = (“ ‘ “ alphanumericValue “ ‘ “) | numericValue

[“WEIGHTED BY” numericValue]

JoinExpression = columnName

[“WEIGHTED BY” numericValue] [“CONFIDENCE” numericValue]

Ví dụ:

Giả sử chúng ta có hai quan hệ WORKER và CHIEF với các thuộc tính như sau: NAME, CITY, HAIR_COLOR. Hơn nữa giả sử các thuộc tính CITY và HAIR_COLOR của hai quan hệ có liên quan với bảng NCR: CITY_LOCATION(X, Y) và COLORS(Red, Green, Blue). Bây giờ hệ thống VQS thực hiện một truy vấn như sau: "Tìm tất cả các công nhân có màu tóc tương tự và sống gần với ít nhất một người lảnh đạo". Truy vấn này có thể được trình bày bởi câu lệnh VQL sau:

SELECT FROM chief, worker

WHERE chief.hair_color IS worker.hair_color CONFIDENCE 0.3

AND chief.city IS worker.city CONFIDENCE 0.4

INTO myResultTable

Ở đây quan hệ CHIEF giữ vai trò như quan hệ nối chính và quan hệ WORKER là quan hệ nối phụ. Sau đây là những gì hệ thống phải trải qua: Cho mỗi bản ghi C trong quan hệ CHIEF, trước tiên hệ thống xử lý điều kiện kết nối như sau: bởi vì giá trị CONFIDENCE là 0,3 và đường kính của bảng NCR COLORS là 255 trong mỗi chiều nên một lựa chọn trước tiên được thực hiện để chọn toàn bộ bản ghi trong quan hệ WORKER vì vậy sự khác biệt của các tọa độ màu tóc trong mỗi chiều dựa vào các tọa độ của C.hair_color là không lớn hơn 76,5 (=255x0,3). Chúng ta hãy gọi tập kết quả cho lựa chọn đầu tiên này là RS1. Tương tự, hệ thống sẽ còn tiền xử lý điều kiện nối thứ hai để lấy tập kết quả RS2. Sau đó chỉ những bản ghi thuộc về giao của RS1 và RS2 (chúng ta gọi tập các bản ghi này

(adsbygoogle = window.adsbygoogle || []).push({});

là R1) được xử lý để tính toán khoảng cách gộp đến bản ghi liên quan C của quan hệ CHIEF. Sau đó hệ thống phải sắp xếp các bản ghi của tập R1 theo một điều kiện đã biết, ví dụ như khoảng cách gộp của chúng, trước khi lưu chúng vào một bảng đã cho trong mệnh đề INTO, gọi là bảng myResultTable. Các bước ở trên được lặp lại cho mỗi bản ghi trong quan hệ CHIEF và chúng ta thu được một chuỗi các tập kết quả R1, R2, ..., Rk đối với mỗi bản ghi này. Các bản ghi này được lưu trong một bảng đã cho trong mệnh đề INTO.

Một phần của tài liệu Vận dụng khả năng tìm kiếm của hệ thống truy vấn mở để xây dựng môdun tích hợp vào SQL server nhằm hỗ trợ cho hệ thống trả lời truy vấn luận văn thạc sĩ (Trang 59 - 64)