Trong phần này sẽ trình bày ý tưởng mở rộng SQL, ngôn ngữ hỏi trong CSDLQH truyền thống, để có một ngôn ngữ hỏi (tạm gọi là SQL s/p) phù hợp với mô hình đang xét.
4.1. Biểu thức điều kiện sau WHERE
Một lược đồ CSDL mờ có thể bao gồm những thuộc tính mà trên miền trị của chúng có xác định một quan hệ mờ tương tự, những thuộc tính như vậy được gọi là thuộc tính loại s/p. Những thuộc tính còn lại mà giống như trong lược đồ CSDLQH truyền thống dạng chuẩn 1 được gọi là thuộc tính rõ (cũng có thể coi quan hệ mờ tương tự xác định trên miền trị của chúng có ngưỡng ngầm định là 1.0).
a) Biểu thức nguyên tố
Có các dạng biểu thức nguyên tố được xác định như sau: 1)(R.Ai: d) 1’)NOT(R.Ai: d) 2)(R.Ai: S.Aj) 2’)NOT(R.Ai: S.Aj)
3)(R.Ai θ a) 4)(R.Ai θ S.Aj)
Trong đó R và S là tên quan hệ; Ai, Aj là tên thuộc tính; d là một giá trị thuộc miền trị của thuộc tính loại s/p Ai (thuộc tính có ngưỡng tương tự nhỏ hơn 1); a là một giá trị thuộc miền trị rõ Ai; θ∈{<, >, ≤, ≥, ≠, =}. Cần chú ý rằng Ai và Aj xuất hiện ở dạng 1), 1’) và 2), 2’) đều là những thuộc tính loại s/p, còn Ai, Aj ở 3) và 4) đều là các thuộc tính rõ.
b) Biểu thức nguyên tố được mờ hoá
Những biểu thức nguyên tố liên quan đến những thuộc tính s/p có thể được mờ hoá bằng cách viết thêm chỉ số s hoặc chỉ số p.
Nếu Q là biểu thức nguyên tố dạng 1), 1’), 2), 2’) thì những biểu thức sau gọi là những biểu thức nguyên tố được mờ hoá từ Q:
5)(Q)s
αi 6)(Q)p 7)(Q)s
αip
c) Biểu thức điều kiện sau WHERE
Định nghĩa
. Một biểu thức nguyên tố (1-4) là một biểu thức điều kiện.
. Một biểu thức nguyên tố được mờ hoá (5-7) là một biểu thức điều kiện. . Nếu P và Q là hai biểu thức điều kiện thì (P AND Q) và (P OR Q) là các biểu thức điều kiện.
4.2. Ngữ nghĩa và đánh giá câu hỏi SQL s/p
a) SQL s/p
. Dạng câu lệnh truy vấn thông tin SQL s/p: SELECT Ri1.A1,…, Rik.Ak
FROM R1, R2,…, Rn
WHERE Ψ;
Ở đây R1, R2, Rn là danh sách tên các quan hệ mờ và Ri1.A1,…, Rik.Ak là danh sách các thành phần được lấy ra; R.A chỉ thuộc tính A của quan hệ R. Nếu trong
danh sách sau từ khoá FROM chỉ có một quan hệ có thuộc tính A thì có thể viết A thay cho R.A trong danh sách sau SELECT. Ψ là biểu thức điều kiện như đã được định nghĩa ở trên. Ý nghĩa của câu lệnh này có thể được diễn tả trong đại số quan hệ: trong tích Đề-các các quan hệ trong mệnh đề FROM chọn những bộ thoả biểu thức điều kiện Ψ rồi chiếu trên các thuộc tính có mặt ở mệnh đề SELECT. Việc chọn những bộ thoả biểu thức điều kiện Ψ được xác định như sau:
Chọn bộ để thoả biểu thức nguyên tố (1-4):
Trong biểu thức nguyên tố, dấu “:” có nghĩa sánh bằng (“=”). Ví dụ, biểu thức (r3.Màu_xe : {xanh đậm, xanh nhạt, hồng}) cho điều kiện chon những bộ trong quan hệ r3 có giá trị ở rhuộc tính Màu_xe là {xanh đậm, xanh nhạt, hồng}. Còn biểu thức (NOT(r3.Màu_xe : {xanh đậm, xanh nhạt, hồng})) cho chọn những bộ mà giá trị thuộc Màu_xe không phải là tập hợp {xanh đậm, xanh nhạt, hồng}.
Kết quả chọn bộ để thoả mãn biểu thức nguyên tố được mờ hoá:
Nếu biểu thức điều kiện Ψ là một biểu thức nguyên tố được mờ hoá từ biểu thức Q thì khi chọn bộ thoả Ψ với Ψ là:
5) (Q)s
α kết quả trùng với kết quả của phép chọn αF trên những quan hệ xuất hiện trong Q với F=(α, Q).
6) (Q)p tương ứng với αF với F=(1.0, Q). 7) (Q)s
α P tương ứng với αF với F=(α, Q).
Ví dụ 2.11:
Biểu thức điều kiện là Ψ1=(r3.Màu_xe : {xanh đen, hồng})s
0.8, thì tập những bộ thoả điều kiện này chính là kết quả của phép chọn σF(r3), với F=(0.8, r3.Màu_xe : {xanh đậm, hồng}).
Biểu thức điều kiện là Ψ3=((r3.Màu_xe : {xanh đen, hồng})p thì tập những bộ thoả điều kiện này chính là kết quả của phép chon σF(r3), với F=(1.0, r3.Màu_xe :
một tập có chứa phần tử “xanh đen” hay có chứa phần tử “hồng” đều thoả mãn biểu thức điều kiện Ψ2.
Biểu thức điều kiện là Ψ3=(r3.Màu_xe : {xanh đen, hồng})s
0.8p thì tập hợp những bộ thoả điều kiện này chính là kết quả của phép chọn σF(r3), với F=(0.8, r3.Màu_xe : {xanh đen, hồng}). Nói cách khác, những bộ mà giá trị tại thuộc tính Màu_xe là một tập có chứa phần tử đủ tương tự (theo 0.8) với “xanh đen” hay có chứa phần tử đủ tương tự (theo 0.8) với “hồng” đều thoả mãn biểu thức điều kiện Ψ3.
Chọn bộ để thoả mãn biểu thức điều kiện dạng P AND Q, P OR Q:
Nếu hai quan hệ P và Q tương ứng là kết quả của việc chon các bộ thoả P và Q thì kết quả chọn thoả (P AND Q) sẽ là (P∩Q), kết quả chọn thoả (P OR Q) sẽ là
(P∪Q).
Ví dụ 2.12:
Giả sử muốn biết tất cả các loại thuốc có thể chọn cho mỗi bệnh nhân, từ hai quan hệ cho ở Hình 2.30 và 2.31 dưới đây, có thể dùng câu lệnh:
SELECT R1.TÊN, R2.THUỐC FROM R1, R2
WHERE (R1.BỆNH : R2.CĐ)s
0.8p AND (NOT(R1.BỆNH : R2.CCĐ))p
kết quả cho trong bảng KẾT QUẢ (Hình 2.32).
TÊN BỆNH N1 {b1, b2, b3} N2 {b4} N3 {b3, b5} Hình 2.30. Quan hệ R1. THUỐC CĐ CCĐ c1 {b1, b4, b5} {b3} c2 {b1, b2} {b5} c3 {b6} {b6} c4 {b3, b6} {b5} Hình 2.31. Quan hệ R2. TÊN THUỐC N1 c2 N1 c3 N1 c4
N2 c1
N2 c2
N3 c3
Hình 2.32. Bảng KẾT QUẢ.
Giả thiết với ngưỡng tương tự 0.8 các bệnh b1, b2, b4 cùng một lớp tương đương, b3 và b6 cùng một lớp tương đương.
b) Mờ hoá các thành phần sau SELECT
Một cách tương tự có thể bổ sung chỉ số mờ hoá s, α cho các thành phần (loại s/p) đứng sau SELECT trên cơ sở phép chiếu với ngưỡng cho trước.