Chương 1 Tổng quan về truy vấn không tường minh 1.1 Truy vấn không tường minh là gì? Truy vấn tường minh: là một truy vấn của người dùng yêu cầu dữ liệu thỏa mãn chính xác các ràng buộc của truy vấn Ví dụ như truy vấn Q:- CarDB(Make = “Ford”) là một truy vấn tường minh, tất cả các bộ dữ liệu kết quả của nó phải có thuộc tính “Make” có giá trị là “Ford”. Truy vấn không tường minh: là một truy vấn người dùng mà yêu cầu sự phù hợp gần chính xác nhưng không nhất thiết phải chính xác với các ràng buộc của truy vấn. Các câu trả lời cho truy vấn không tường minh phải được xếp hạng theo mức độ gần gũi/ tương tự với các ràng buộc của truy vấn. Ví dụ như truy vấn Q:- CarDB (Make like “Ford”) là một truy vấn không tường minh, câu trả lời phải có thuộc tính “Make” giới hạn bởi các giá trị tương đương với “Ford”.
Như vậy một truy vấn không tường minh là một truy vấn có các ràng buộc truy vấn mềm dẻo hơn so với truy vấn tường minh và có yêu cầu đối sánh tương tự chứ không yêu cầu phải chính xác như ở truy vấn tường minh. Cho nên một câu truy vấn không tường minh có thể chuyển đổi sang truy vấn tường minh bằng việc siết chặt các quan hệ trong ràng buộc truy vấn. Ví dụ như, siết chặt quan hệ “like” thành “equal-to” trong truy vấn không tường minh cho chúng ta truy vấn tường minh “Make = Ford”. 9 Vì sao chúng ta phải quan tâm tới việc hỗ trợ trả lời các truy vấn không tường minh? Như chúng ta đã biết sự phát triển nhanh như vũ bão của Internet đã làm đa dạng hoá các cơ sở dữ liệu, bao gồm cơ sở dữ liệu khoa học, hệ thống điều tra du lịch, … sự tăng trưởng của các hệ thống này dẫn đến sự thay đổi lớn trong mô tả yêu cầu của người dùng để làm sao có thể đáp ứng yêu cầu của người dùng “sự hài lòng ngay tức khắc”.
Bởi vậy đa số các cơ sở dữ liệu sẵn sàng trên Internet và Web đều cung cấp giao diện dựa trên mẫu để cho phép người dùng có thể tương tác dễ dàng với với cơ sở dữ liệu. Các yêu cầu của người dùng tự động được chuyển đổi tới các câu truy vấn thông qua cơ sở dữ liệu. Các giao diện dựa trên mẫu này mặc dù rất dễ dàng sử dụng nhưng chỉ hỗ trợ các câu truy vấn nối tiếp với vị từ chọn lọc được đưa ra qua cơ sở dữ liệu, các truy vấn tường minh chính xác phù hợp với các bộ dữ liệu. Mặt khác do hệ thống cơ sở dữ liệu ngày càng đa dạng nên làm tăng thêm độ phức tạp của các kiểu dữ liệu như những tài liệu siêu văn bản, các hình ảnh… mà các giao diện lại thiếu các mô hình linh hoạt, các thông tin miền.
Hơn nữa các giao diện truy vấn cơ sở hiện nay lại giới hạn khả năng truy vấn. Sự đa dạng của các kiểu dữ liệu là khó có thể tính toán đúng các câu truy vấn trên chúng. Cho nên người dùng có vẻ khó khăn trong việc rút ra được những thông tin mà mình mong muốn. Thêm nữa người dùng thường mong muốn “gần như thế” thay thế cho việc mong muốn “chính xác”.
Cho nên các câu truy vấn mờ truy vấn không tường minh do người dùng đưa ra có thể nhận lại các câu trả lời không như mong đợi. Thường thì người dùng phải tính toán lại các câu truy vấn trước khi họ nhận được câu trả lời thỏa mãn. Như vậy việc thiếu kiến thức về nội dung của 10 cơ sở dữ liệu và khả năng câu hỏi có hạn của giao diện có thể làm cho người dùng không thu được kết quả thỏa mãn từ cơ sở dữ liệu. Các vấn đề ở trên có thể được giải quyết bởi việc cung cấp những câu trả lời tương tự nếu người dùng không đưa ra một câu truy vấn tường minh, một truy vấn có các yêu cầu một cách chính xác.
Câu trả lời sẽ được xếp hạng dựa trên độ tương thích của chúng với câu truy vấn của người dùng. Với các lý do ở trên thì việc cung cấp các cách để hỗ trợ trả lời cho các truy vấn không tường minh là rất cần thiết đối với các giao diện cơ sở dữ liệu hiện nay. Cụ thể hơn chúng ta sẽ minh họa vấn đề hỗ trợ trả lời hco các truy vấn tường minh bằng bài toán cụ thể sau và các thách thức gặp phải khi giải quyết bài toán.2 Bài toán đặt ra 1.1 Phát biểu bài toán: Bài toán: Cho một truy vấn liên từ Q trên quan hệ R trên cơ sở dữ liệu quan hệ độc lập M, tìm tất cả các bộ của R thoả mãn truy vấn Q trên một mức ngưỡng của độ liên quan ε. Để truy nhập các bộ dữ liệu của R chúng ta phải đưa ra các truy vấn có cấu trúc trên R.
Các câu trả lời cho Q phải được xác định mà không thay đổi mô hình dữ liệu của M.2 Thách thức đặt ra khi giải quyết bài toán Với bài toán đặt ra ở trên ví dụ có câu truy vấn của người dùng là: 11 Q:- CarDB (Model like Camry, Price like 10000) Giả thiết rằng người dùng tìm kiếm ô tô giống như Camry sẽ rất hạnh phúc nếu chỉ ra rằng ô tô mẫu Camry thỏa mãn hầu hết các ràng buộc của cô ấy. Từ đây, chúng ta thu được truy vấn bởi việc siết chặt các ràng buộc từ “likeness” tới “=”: Qpr :- CarDB (Model = Camry, Price = 10000) Nhiệm vụ của chúng ta bắt đầu với việc trả lời những bộ dữ liệu đối với Qpr- gọi là tập cơ sở, nhưng chúng ta lại tìm thấy các bộ khác tương tự với các bộ trong tập cơ sở và xếp hạng chúng dưới dạng tương tự Q. ý kiến của chúng ta là xem từng bộ trong tập cơ sở như là câu truy vấn lựa chọn và đưa ra sự giảm nhẹ của các câu truy vấn lựa chọn này tới cơ sở dữ liệu để tìm kiếm các bộ tương tự bổ sung. Ví dụ như, nếu một trong các bộ của tập cơ sở là Make = Toyota, Model = Camry, Price= 10000, Year = 2000 Chúng ta có thể đưa ra câu truy vấn giảm bớt một vài ràng buộc thuộc tính trong bộ dữ liệu này.
ý kiến này dẫn tới thách thức đầu tiên: Sự giảm bớt nào sẽ sản sinh ra nhiều bộ tương tự? Một khi chúng ta đưa ra ý tưởng này và quyết định lược bớt truy vấn, chúng ta có thể đưa chúng cho cơ sở dữ liệu và tạo các bộ dữ liệu bổ sung sao cho tương tự như các bộ trong tập cơ sở. Tuy nhiên, không giống như tập cơ sở, những bộ dữ liệu này có thể có những mức thay đổi sao cho thích ứng với người dùng. Do đó chúng cần được sắp xếp trước khi đưa tới người dùng. Điều này dẫn tới khó khăn thứ hai: Làm thế nào để tính toán được độ tương tự giữa câu truy vấn và bộ trả lời? Vấn đề của chúng tôi càng phức tạp bởi quan tâm của chúng tôi trong việc tạo ra các đánh giá tương tự không phụ thuộc vào ma trận khoảng cách cung cấp bởi người dùng.
12 Vậy để hỗ trợ trả lời cho các truy vấn không tường minh, chúng ta cần giải quyết các vấn đề sau: - Mô hình về độ tương tự: để trả lời các truy vấn không tường minh đòi hỏi phải mở rộng mô hình xử lí truy vấn dạng nhị phân (trong đó có các bộ thỏa mãn hoặc không thỏa mãn truy vấn) tới một mô hình của mức độ (theo đó một bộ được đưa ra có phải là một câu trả lời thỏa mãn hay không). - Ước lượng sự tương tự ngữ nghĩa: Việc mong đợi người sử dụng “không chuyên” của hệ thống cung cấp các độ đo tương tự để đánh giá mức độ tương tự giữa các giá trị gắn với một thuộc tính được đưa ra là không thực tế. Vì thế, một vấn đề quan trọng nhưng khó khăn mà chúng ta phải đối mặt là phát triển các hàm tương tự độc lập miền mà có độ xấp xỉ gần với “mong muốn của người dùng” - Thứ tự các thuộc tính: để cung cấp các kết quả có sắp xếp cho câu truy vấn, chúng ta phải kết hợp các độ tương tự được đưa ra trên các thuộc tính riêng biệt của quan hệ vào một số đo tương tự toàn bộ của mỗi bộ dữ liệu. Trong khi độ đo này có thể khác nhau giữa các người dùng, hầu hết người dùng thường không có khả năng định lượng một cách chính xác mức độ quan trọng gán cho một thuộc tính.3 Các công việc liên quan đến việc hỗ trợ trả lời các truy vấn không tường minh Các phương pháp trước đây để nhận được các kết quả cho các truy vấn không tường minh đều dựa trên định lý của các tập mờ.
Sau đây chúng ta sẽ di tìm hiểu một số hướng tiếp cận trước đây mà liên quan tới việc hỗ trợ trả lời các truy vấn không tường minh: 13 1.1 Sử dụng thông tin không tường minh và không chắc chắn Các hệ thống thông tin đều tồn tại mô hình, cách lưu trữ và khôi phục tất cả các dữ liệu. Vấn đề xuất hiện khi một số dữ liệu bị mất đi hoặc không biết chính xác hoặc khi một thuộc tính không phù hợp với một đối tượng đặc biệt. Hướng nghiên cứu này cho phép một số giá trị thuộc tính là giá trị tường minh, một chuỗi biểu thị giá trị bị mất, một chuỗi biểu thị giá trị không phù hợp hoặc là giá trị không tường minh. Những giá trị không tường minh được giới thiệu trong sự đánh giá câu truy vấn, khi nó không hiển nhiên là đối tượng nào cần được khôi phục.
Để điều khiển được sự không chắc chắn này, hai tập các đối tượng được khôi phục trong mỗi truy vấn: một tập các đối tượng chắc chắn thoả mãn đầy đủ và một tập có lẽ chỉ thỏa mãn một vài mức độ không chắc chắn. Các hệ thống thông tin tồn tại các mô hình, lưu trữ, thao tác và khôi phục nhiều kiểu dữ liệu khác nhau, ví dụ như danh sách những người làm thuê, các đơn hàng, các báo cáo và tất cả các kiểu tài liệu. Một mô hình thông thường được đưa ra là coi tất cả dữ liệu như là các đối tượng. Theo [5], từng kiểu đối tượng được mô hình hóa bằng việc lựa chọn một số thuộc tính biểu diễn cho giá trị nào mà được gán.