Ngôn ngữ thao tác dữ liệu (DML) của SQL mờ (FSQL)

Một phần của tài liệu Lý thuyết chuẩn hóa của cơ sở dữ liệu mờ và ngôn ngữ SQL mờ (Trang 79)

Phần này trình bày về các câu lệnh DML trong ngôn ngữ FSQL dựa trên ngôn ngữ SQL truyền thống. Tuy nhiên, cũng tương tự như trong ngôn ngữ SQL mở rộng (SQLEx) được giới thiệu ở phần trên, phần này chỉ trình bày các phần mới được thêm vào ngôn ngữ SQL chuẩn để tạo thành ngôn ngữ FSQL trên cơ sở dữ liệu mờ.

3.4.2.1.Câu lnh SELECT trong FSQL

Tương tự như trong ngôn ngữ SQL chuẩn, câu lệnh SELECT của FSQL có cú pháp như sau:

SELECT <danh sách thuộc tính> FROM <danh sách các bảng dữ liệu> [WHERE <các điều kiện mờ>]

Ngôn ngữ FSQL là một sự mở rộng đích thực của SQL. Điều này có nghĩa là tất cả các câu lệnh hợp lệ trong SQL cũng hợp lệ trong FSQL. Hơn nữa, FSQL mở rộng và kết hợp các yếu tố mới vào ngôn ngữ SQL chuẩn để cho phép xử lý dữ liệu mờ.

Dưới đây trình bày các phần mới được mở rộng, thêm vào câu lệnh SELECT truyền thống để tạo thành câu lệnh SELECT mờ trong ngôn ngữ FSQL.

Các nhãn ngôn ngữ có thể được định nghĩa trên miền trị của mỗi thuộc tính. Các nhãn ngôn ngữđó sẽ được đặt trước bởi ký tự $ để có thể phân biệt chúng với dữ liệu khác. Có 2 kiểu nhãn ngôn ngữ được sử dụng trong các kiểu thuộc tính mờ khác nhau:

Các nhãn ngôn ngữđược định nghĩa trên các thuộc tính với miền trị cơ sở có thứ tự (ordered underlined domain). Mọi nhãn của kiểu này được biểu diễn bởi một phân bố khả năng (hình thang hoặc tam giác). Chẳng hạn như ví dụ 3.8, thuộc tính Tuoi có các nhãn ngôn

ngữ tr, trung niên, già [hình 3.2]. Các nhãn ngôn ngữ này được sử dụng cho các kiểu thuộc tính mờ 1 và 2. [chi tiết ở phần 3.4.1].

Các nhãn ngôn ngữđược định nghĩa trên các thuộc tính với miền trị cơ sở không có thứ tự (nonordered domain). Các nhãn ngôn ngữ này được gọi là các nhãn “vô hướng”. Trong đó, một quan hệ tương tự được định nghĩa giữa các cặp nhãn ngôn ngữ trong cùng một miền trị. Độ tương tự giữa các cặp nhãn là một số thực, nằm trong đoạn [0, 1]. Chẳng hạn như trong ví dụ 3.8, thuộc tính Mau_toc có các nhãn

ngôn ngữ Vàng, Đen, Hoe. Nhãn ngôn ngữ này được sử dụng cho kiểu thuộc tính mờ 3.

2. Các toán t so sánh m

Bên cạnh các phép so sánh truyền thống, điển hình (=, > ...), FSQL bao gồm nhiều toán tử so sánh mờ [Bảng 3.2]. Tương tự như trong SQL, các toán tử so sánh mờđược sử dụng để so sánh một thuộc tính với một hằng số hoặc 2 thuộc tính có cùng kiểu dữ liệu.

B so sánh kh năng B so sánh cn thiết Mô t

FEQ (F=) NFEQ (NF=) Bằng nhau mờ

FGT (F>) NFGT (NF>) Lớn hơn mờ

FLT (F<) NFLT (NF<) Nhỏ hơn mờ

FLEQ (F<=) NFLEQ (NF<=) Nhỏ hơn hoặc bằng mờ FDIF(F<>) NFDIF(NF<>) Khác nhau mờ

Bng 3.2: Các toán t so sánh m

Trong luận văn này, các toán tử so sánh mờ được định nghĩa dựa trên độđo khả năng và độđo cần thiết [chi tiết trong phần 3.4.3]. Chú ý rằng trong các thuộc tính với miền trị cơ sở không có thứ tự (thuộc tính mờ kiểu 3), chỉ các toán tử FEQ và FDIF được sử dụng vì chúng không có thứ tự.

3. Ngưỡng thc hin

Với mỗi điều kiện mờ cơ bản, một ngưỡng thực hiệnτ ∈[0,1] có thể được thiết lập (mặc định là 1) với cú pháp như sau:

<Điu kin m> THOLD τ

Khi ngưỡng thực hiện τ được thiết lập nghĩa là chỉ những điều kiện mờ có ngưỡng tối thiểu làτ ∈ [0,1] mới được xem xét. Từ khoá THOLD (threshold) là không bắt buộc và có giá trị mặc định là 1.

Ví d 3.9. Với quan hệ NHAN_VIEN nhưở ví dụ 3.8. Xét câu truy vấn “Tìm tất cả những người có tóc vàng với ngưỡng là 0.5”.

SELECT *

FROM Nhan_Vien

WHERE Mau_toc FEQ $Vàng THOLD 0.5

4. Hng s m

Trong FSQL, các hằng số mờ được sử dụng và được trình bày chi tiết trong bảng sau:

Hng s mMô tả (adsbygoogle = window.adsbygoogle || []).push({});

Hng s mMô t

dụng được.

UNDEFINED Thuộc tính không áp dụng được NULL Không biết gì về nó

$[a,b,c,d] Tập mờ hình thang (a<=b<=c<=d) $label Nhãn ngôn ngữ

[n,m] Đoạn giữa n và m

#n +-m Giá trị mờ “xấp xỉ n”: dạng tam giác với đỉnh là n và biên là m.

Bng 3.3: Các hng s m trong FSQL

5. Hàm CDEG và các toán t logic

Hàm CDEG (Compatibility Degree) được sử dụng với một thuộc tính ở phần đối số, có dạng: CDEG (Thuộc tính). Do vậy, hàm này tính độ thoả mãn một điều kiện cho một thuộc tính cụ thể trong câu truy vấn.

Nếu các toán tử logic (AND, OR) xuất hiện trong phần điều kiện. Việc tính toán độ tương thích này được thực hiện bởi các phép toán T-chuẩn (sử dụng hàm min) và T-đối chuẩn (sử dụng hàm max), chi tiết được trình bày trong bảng sau:

<Điu kin> CDEG(<Điu kin>)

<Điều kiện1>AND<Điều kiện2> min (CDEG(<điều kiện1>),CDEG(<điều kiện2>)) <Điều kiện1>OR <Điều kiện2> max (CDEG(<điều kiện1>),CDEG(<điều kiện2>))

NOT <Điều kiện1> 1- CDEG(<điều kiện1>)

Bng 3.4: Cách tính hàm CDEQ vi các toán t logic trong FSQL

Hàm CDEG(*) được sử dụng để tính độ thoả mãn điều kiện của mỗi bộ dữ liệu (bao gồm tất cả các thuộc tính).

Hàm CDEG được sử dụng trong danh sách lựa chọn (sau từ khoá SELECT) trong câu lệnh SELECT để cho thấy độ thoả mãn điều kiện của một thuộc tính hoặc mỗi bộ dữ liệu.

Ví d 3.10. Với quan hệ NHAN_VIEN. Xét câu truy vấn “Tìm tất cả những người có màu tóc vàng với ngưỡng là 0.5”.

SELECT *, CDEG(Mau_Toc) FROM Nhan_Vien

WHERE Mau_toc FEQ $Vàng THOLD 0.5

6. Điu kin vi IS

Trong FSQL, điều kiện này được sử dụng với các hằng số mờ được định nghĩa như trong bảng 3.3. Điều kiện này có dạng sau:

<Thuc tính m > IS [NOT] (UNKNOWN, UNDEFINED, NULL)

Nếu thuộc tính không mờ và hằng số là NULL thì hằng số này được hiểu tương tự như trong mô hình cơ sở dữ liệu truyền thống (hệ quản trị cơ sở dữ liệu truyền thống).

Ví d 3.11. Với quan hệ NHAN_VIEN. Xét câu truy vấn “Tìm tất cả những người mà màu tóc có giá trị UNKNOWN”.

SELECT *

FROM Nhan_Vien

WHERE Mau_toc IS UNKNOWN

3.4.2.2.Các câu lnh DML khác trong SQL m

Cú pháp của các câu lệnh INSERT, UPDATE, DELETE trong SQL mờ là tương tự như trong SQL chuẩn.

Câu lnh INSERT (adsbygoogle = window.adsbygoogle || []).push({});

Các nhãn ngôn ngữ, hằng số mờ có thểđược sử dụng như là các giá trị đầu vào trong thao tác thêm mới dữ liệu.

Ví d 3.12. Xét quan h NHAN_VIEN như ở ví dụ 3.8. Câu lệnh thêm mới một nhân viên có chiều cao trung bình, tuổi trẻ và có màu tóc là {1/Đen, 0.8/Vàng} được mô tả như sau:

INSERT INTO Nhan_Vien(Ma_nhan_vien, Chieu_cao, Tuoi, Mau_toc) VALUES(9999, 160, Trẻ, {1/Đen, 0.8/Vàng})

Câu lnh UPDATE

Các giá trị để cập nhật có thể là các nhãn ngôn ngữ và các hằng số mờ hoặc câu truy vấn con mờ. Hơn nữa, trong mệnh đề WHERE của câu lệnh này, các điều kiện mờ có thể được sử dụng tương tự như mệnh đề WHERE của câu lệnh SELECT.

Ví d 3.13. Xét quan h NHAN_VIEN nhưở ví dụ 3.8. Cập nhật thông tin chiều cao là 165 cho tất cả các nhân viên nhiều tuổi (Già) với ngưỡng là 0.75. Câu lệnh UPDATE được mô tả như sau:

UPDATE Nhan_Vien SET Chieu_Cao = 165

WHERE Tuoi FEQ $Già THOLD 0.75

Câu lnh DELETE

Ở mệnh đề WHERE của câu lệnh này, tương tự các điều kiện mờ có thể sử dụng nhưở mệnh đề WHERE của câu lệnh SELECT.

Ví d 3.14. Xét quan h NHAN_VIEN nhưở ví dụ 3.8. Câu lệnh xoá tất cả nhân viên có tuổi là trẻđược mô tả như sau:

DELETE

FROM Nhan_Vien WHERE Tuoi FEQ $Trẻ

Một phần của tài liệu Lý thuyết chuẩn hóa của cơ sở dữ liệu mờ và ngôn ngữ SQL mờ (Trang 79)