Kiểm tra tính kết nối không mất thông tin trong phép phân tách

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 61)

Trong phần này, thuật toán truyền thống được sử dụng để kiểm tra tính kết nối không mất thông tin trong phép phân tách. Thuật toán kiểm tra truyền thống được sử dụng trong mô hình cơ sở dữ liệu quan hệ mờ được mô tả như

sau. Một bảng được tạo để xác định có thuộc tính kết nối giữa các quan hệ phân tách hay không. Sự mờ sẽ được xem xét sau bước này. Nếu có một thuộc tính kết nối thì các quan hệ có thể được kết nối hay không phụ thuộc vào mức độ tương tự giữa chúng và một ngưỡng được xác định trước. Các bộ dữ liệu cũng phải thoả mãn tất cả các ffd của quan hệ, nghĩa là với mọi cặp bộ dữ liệu t1, t2, với mỗi ffd X →ϑ Y , thì C( Y [t1 ,t2]) min (ϑ, C(X[t1, t2])).

Thut toán 2.13. Thut toán kim tra tính kết ni không mt thông tin.

Vào: Cho lược đồ quan h R vi các thuc tính A1, A2, ..., An, phép phân tách

ρ={R1, R2, ..., Rk} và tp các ph thuc m F.

Ra: Mt khng định là ρ có phi là mt phân tách có kết ni không mt

thông tin hay không.

Phương pháp:

1) Khi to bng T vi 1 dòng i cho mi quan h Ri trong phép phân tách và mt ct j cho mi thuc tính Aj trong quan h cn được phân tách R. 2) Đưa bij vào mi ô ca bng

3) Vi mi dòng i và ct j

Nếu Aj nm trong min thuc tính, Ui, ca Ri, thì thiết lp Tij=aj

4) Lp li cho ti khi không có thay đổi nào trong T Vi mi ffd X →α Y trong F

Vi tt c các dòng trong bng T, tìm các dòng có ký hiu ging nhau tt c các ct tương ng vi các thuc tính trong X,

Nếu tìm được 2 dòng như thế, thiết lp ký hiu tt c các ct tương ng vi các thuc tính trong Y như sau: Nếu có bt c mt ký hiu là “a”, thiết lp ký hiu kia cũng là “a”.

5) Cui cùng, nếu có mt dòng toàn là ký hiu “a” thì phép phân tách

đảm bo tính kết ni không mt thông tin. Nếu khác, phép phân tách không đảm bo tính kết ni không mt thông tin.

Ví d 2.17. Cho lược đồ quan hệ R = (A, B, C, D, E, F) và các ffd là A

→0.6 B, C →0.5 DE và AC →0.8 F. AC là khoá mờ của quan hệ với độ mạnh là 0.5. Giả sử phân tách R thành 2 quan hệ R1= (B, E) và R2 =(A, C, D, E, F) và

sau đó áp dụng thuật toán kiểm tra tính kết nối không mất thông tin.

Bước 1: Khởi tạo bảng T với i=2 dòng cho quan hệ R1 và R2, và j=6

cột cho các thuộc tính A, B, C, D, E và F.

Bước 2: Khởi tạo các ô là bij (bảng 2.6).

T A B C D E F

R1 b11 b12 b13 b14 b15 b16

R2 b21 b22 b23 b24 b25 b26

Bng 2.6: Bng khi to cho quan h R=(A, B, C, D, E, F)

Bước 3: Với dòng đầu tiên, T12 và T15 lần lượt thiết lập là a2 và a5, vì quan hệ R1 chứa các thuộc tính A2 = B và A5 = E. Tương tự với dòng thứ 2, lần lượt các ô T21, T23, T24, T25 và T26được thiết lập là a1,

a3, a4, a5 và a6, vì quan hệ R2 chứa các thuộc tính A, C, D, E và F

(bảng 2.7).

T A B C D E F

R1 b11 a2 b13 b14 a5 b16 (adsbygoogle = window.adsbygoogle || []).push({});

R2 a1 b22 a3 a4 a5 a6

Bng 2.7: Bng sau khi áp dng bước th 3 ca thut toán kim tra kết ni không mt thông tin cho R

Bước 4: Với ffd đầu tiên, A →0.6 B, R1 và R2 không có các ký hiệu giống nhau trong cột đầu tiên, cột của thuộc tính A, do đó không có thay đổi ở cột B.

Xét ffd thứ hai, C→0.5 DE, R1 và R2 cũng không có các ký hiệu giống nhau trong cột của thuộc tính C, và không có thay đổi trong bảng. Tương tự với ffd cuối, AC →0.8 F cũng không có thay đổi trong bảng.

Bước 5: Vì không có dòng nào bao gồm toàn ký hiệu “a”, phép phân tách không phải là phép phân tách có kết nối không mất thông tin.

Ví d 2.18. Ví dụ về phép phân tách có kết nối không mất thông tin. Cho lược đồ quan hệ R = (A, B, C, D, E, F, G) và các ffd là ABC →0.7 D,

ABC →0.8 E, DE →0.7 F, F →0.6 G. ABC là khoá mờ của quan hệ với độ mạnh là 0.7 (áp dụng thuật toán tìm khoá mờ). Giả sử phân tách R thành 3 quan h

R1 = (A, B, C, D, E), R2 = (D, E, F) và R3 = (F, G), và sau đó áp dụng thuật toán kiểm tra kết nối không mất thông tin.

Bước 1: Khởi tạo bảng T có i = 3 dòng cho các quan h R1, R2, R3,

và j = 7 cột cho các thuộc tính A, B, C, D, E, F, G. Bước 2: Khởi tạo các ô là bij (bảng 2.8) T A B C D E F G R1 b11 b12 b13 b14 b15 b16 b17 R2 b21 b22 b23 b24 b25 b26 b27 R3 b31 b32 b33 b34 b35 b36 b37

Bng 2.8: Bng khi to cho quan h R = (A, B, C, D, E, F, G)

Bước 3: Với dòng đầu tiên, T11, T12, T13, T14, và T15 lần lượt được

A2 = B, A3 = C, A4 = D và A5 = E. Tương tự dòng 2, các ô T24, T25 và

T26được thay lần lượt là a4, a5, a6, vì R2 chứa các thuộc tính D, E và

F. Và cui cùng, các ô T36 và T37 được thay lần lượt là a6, a7, vì R3

chứa các thuộc tính F, G (Bảng 2.9).

T A B C D E F G

R1 a1 a2 a3 a4 a5 b16 b17

R2 b21 b22 b23 a4 a5 a6 b27

R3 b31 b32 b33 b34 b35 a6 a7

Bng 2.9: Kết qu ca bước th 3 trong thut toán kim tra kết ni không mt thông tin

Bước 4: Với ffd đầu tiên và thứ 2 ABC →0.7 D, ABC →0.8 E, R1, R2, R3 không có các ký hiệu giống nhau trong các cột của các thuộc tính

A, B, C, do đó không có thay đổi trên cột D và ct E. Xét ffd thứ 3,

DE →0.7 F, R1 và R2 có các ký hiệu giống nhau trong cột D và E, do

đó cột thuộc tính F của quan hệ R1, b16, sẽ thay đổi thành a6 (bảng 2.10).

T A B C D E F G

R1 a1 a2 a3 a4 a5 a6 b17

R2 b21 b22 b23 a4 a5 a6 b27

R3 b31 b32 b33 b34 b35 a6 a7

Bng 2.10: Kết qu ca bước th 4 trong thut toán kim tra kết ni không mt thông tin ca ffd đầu tiên ca R. (adsbygoogle = window.adsbygoogle || []).push({});

Với ffd cuối cùng F →0.6 G, R1, R2, R3 có các ký hiệu giống nhau ở cột

F, do đó cột thuộc tính G của quan hệ R1 và R2 sẽ được thay bằng a7 (bảng 2.11).

T A B C D E F G

R1 a1 a2 a3 a4 a5 a6 a7

R2 b21 b22 b23 a4 a5 a6 a7

R3 b31 b32 b33 b34 b35 a6 a7

Bng 2.11: Bng cho R = (A, B, C, D, E, F, G) khi kết thúc thut toán kim tra kết ni không mt thông tin

Bước 5: Vì có 1 dòng chứa toàn bộ ký hiệu “a”, đó là dòng đầu tiên, vì vậy phân tách có đặc tính có kết nối không mất thông tin.

2.3. Kt lu n chưng 2

Chương này đã trình bày các kết quả nghiên cứu về mô hình cơ sở dữ liệu mờ dựa trên quan hệ tương tự, với các nội dung chính sau:

Định nghĩa về sự phù hợp giữa các bộ dữ liệu dựa trên quan hệ tương tự. Đồng thời, đưa ra một công thức mới tính sự phù hợp giữa các bộ dữ liệu dựa trên quan hệ tương tự và độđo khả năng.

Các khái niệm về khoá mờ, phụ thuộc hàm mờ dựa trên sự phù hợp giữa các bộ dữ liệu. Các định nghĩa về dạng chuẩn mờ 1NF, 2NF, 3NF và BCNF và các thuật toán phân tách cũng được giới thiệu. Luận văn cũng thảo luận và trình bày hai thuật toán kiểm tra tính kết nối không mất thông tin và tính bảo toàn phụ thuộc của phép phân tách.

CHƯƠNG 3

NGÔN NG SQL M

Chương này trình bày ngôn ngữ SQL mờ trong mô hình cơ sở dữ liệu truyền thống và mô hình cơ sở dữ liệu mờ.

3.1. S lưc v ngôn ng SQL

Ngôn ngữ SQL cơ bản đã được phát triển bởi Chamberlin và Boyce (1974, 1976). Năm 1986, Viện tiêu chuẩn quốc tế Mỹ (ANSI) và tổ chức tiêu chuẩn quốc tế (ISO) đã công bố chuẩn SQL-86 hay SQL1 (ANSI, 1986). Năm 1989, chuẩn SQL-1989 được công bố và chuẩn SQL2 hay SQL-92 được công bố năm 1992 (ANSI, 1992). Phiên bản mới nhất với nhiều cải tiến của chuẩn SQL là chuẩn SQL 2003.

Trong tất cả chuẩn SQL, các lệnh cơ bản của ngôn ngữ này thường được chia thành hai nhóm chính.

+ Ngôn ngữ thao tác dữ liệu DML (Data Manipulation Language): Các câu lệnh DML cho phép truy vấn dữ liệu (để tra cứu) và thay đổi dữ liệu lưu trữ trong cơ sở dữ liệu. Ví dụ như các câu lệnh này SELECT, INSERT, UPDATE, DELETE.

+ Ngôn ngữđịnh nghĩa dữ liệu DDL (Data Defination Language): các câu lệnh DDL này cho phép tạo và thay đổi cấu trúc dữ liệu được lưu trữ. Ví dụ như câu lệnh: CREATE (để tạo 1 đối tượng trong cơ sở dữ liệu, như là bảng, view, v.v...), DROP (để loại bỏ đối tượng), ALTER (để thay đổi đối tượng ) và các câu lệnh liên quan đến bảo

mật (security), chỉ số (indexes) và các điều khiển lưu trữ vật lý của dữ liệu.

3.2. Ngôn ng SQL m

Ngày nay, ngôn ngữ SQL được xem là một trong những yếu tố chính đem lại sự thành công cho cơ sở dữ liệu quan hệ trong thương mại. Ngôn ngữ SQL đã trở thành ngôn ngữ truy vấn chuẩn cho hầu hết các hệ thống cơ sở dữ liệu thương mại hiện nay. Tuy nhiên, ngôn ngữ SQL này chỉ cho phép thiết lập các câu truy vấn với các tiêu chuẩn chọn dữ liệu cứng nhắc và dữ liệu trả về phải chính xác với các tiêu chuẩn đó. Nó không cho phép thiết lập các câu truy vấn với các tiêu chuẩn chọn dữ liệu là mơ hồ, hay còn gọi là tiêu chuẩn mơ hồ hay tiêu chuẩn mờ và dữ liệu trả về là “gần” với tiêu chuẩn đó. Do đó, một cách tự nhiên, chúng ta cần phải mở rộng ngôn ngữ SQL chuẩn sao cho có thể thiết lập được các câu truy vấn mềm dẻo với các tiêu chuẩn mờ. Ngôn

ng SQL mờ (fuzzy SQL hay FSQL) là một mở rộng của ngôn ngữ SQL và cho phép thiết lập các câu truy vấn mềm dẻo với các tiêu chuẩn mờ.

Phần tiếp theo trình bày một ngôn ngữ truy vấn dữ liệu (SQL) được mở rộng từ ngôn ngữ SQL truyền thống trong hai mô hình cơ sở dữ liệu: Mô hình cơ sở dữ liệu truyền thống với dữ liệu rõ và mô hình cơ sở dữ liệu mờ với dữ liệu mờ.

3.3. FSQL trên mô hình c s d liu rõ

3.3.1. Cơ s

Một cách dễ nhất để kết hợp các yếu tố mờ vào mô hình cơ sở dữ liệu là sử dụng cơ sở dữ liệu truyền thống với dữ liệu rõ và trình bày cách làm thế nào cho phép câu truy vấn mờđược thực hiện trên cơ sở dữ liệu này. Mô hình cơ sở dữ liệu truyền thống chỉ lưu trữ và xử lý được dữ liệu rõ, không lưu trữ

và xử lý được các dữ liệu mờ. Do đó các yếu tố mờ chỉ có thể kết hợp vào trong câu truy vấn.

Để kết hợp các yếu tố mờ vào trong ngôn ngữ SQL truyền thống, các khái niệm về tập mờ, biến ngôn ngữ (Linguistic variable), các nhãn ngôn ngữ (linguistic label, hay còn gọi là Linguistic term) được sử dụng. Mỗi một nhãn ngôn ngữ được định nghĩa và biểu diễn bởi một tập mờ được đặc trưng bởi một hàm thuộc. Có nhiều kiểu hàm thuộc khác nhau [xem chi tiết trong phần 1.1], nhưng trong luận văn này, hàm thuộc dạng hình thang và dạng tam giác được sử dụng để biểu diễn các nhãn ngôn ngữ. Hàm thuộc dạng hình thang có thể biểu diễn được nhiều kiểu dữ liệu khác nhau. Hàm thuộc dạng hình tam giác là một dạng đặc biệt của hình thang, ở đó điểm thứ 2 và thứ 3 là trùng nhau. (adsbygoogle = window.adsbygoogle || []).push({});

Phần này giới thiệu một ngôn ngữ SQL mới cho phép thực hiện được các truy vấn mềm dẻo với thông tin mờ hồ, không chính xác, được mở rộng từ ngôn ngữ SQL chuẩn, gọi là SQL mở rộng (SQLEx). Luận văn không giới thiệu chi tiết ngôn ngữ SQL chuẩn mà chỉ giới thiệu các phần mới được thêm vào trong ngôn ngữ SQL chuẩn để tạo thành ngôn ngữ SQL mở rộng (SQLEx), cho phép thiết lập các câu truy vấn mềm dẻo với tiêu chuẩn mơ hồ và được thực hiện trên cơ sở dữ liệu quan hệ truyền thống với dữ liệu rõ.

3.3.1.1.Biến ngôn ng (Linguistic variable)

Biến ngôn ngữ là các thuộc tính của quan hệ mà trên đó các yếu tố mờ hay tân từ mờđược định nghĩa trong miền trị giới hạn của thuộc tính.

3.3.1.2.Nhãn ngôn ng (Linguistic Label)

Nhãn ngôn ngữ (Linguistic Label) là tân từ mờ được định nghĩa trên miền trị của biến ngôn ngữ. Một biến ngôn ngữ có thể bao gồm nhiều nhãn

ngôn ngữ. Mỗi nhãn ngôn ngữ được định nghĩa và biểu diễn bởi một tập mờ dạng hình thang hoặc dạng tam giác.

Ví d 3.1. Cho quan h KHACH_HANG (ID, TEN, TUOI, THU_NHAP).

Trong đó, thuộc tính THU_NHAP được gọi là biến ngôn ng với miền trị giới hạn trong đoạn [0, 500], và có các nhãn ngôn ngữđược định nghĩa trên miền trị của thuộc tính THU_NHAP là: thp, trung bình, khong 300, cao. Các

nhãn ngôn ngữ này được biểu diễn bởi các tập mờ dạng hình thang và tam giác (Hình 3.1) như sau:

Thp= (0,0,150,250); Trung bình= (150,200,250,300);

Khong 300= (250, 300, 300, 350); Cao= (300, 400, 500, 500)

Hình 3.1: Các nhãn ngôn ngữđối vi thuc tính THU_NHAP

3.3.1.3.Các toán t so sánh

Các toán tử so sánh truyền thống vẫn được sử dụng. Tuy nhiên để phân biệt các nhãn ngôn ngữ (tân từ mờ) với dữ liệu rõ thì trước mỗi nhãn ngôn ngữ có tiếp đầu ngữ $.

Ví d 3.2. Với quan hệ KHACH_HANG ở ví dụ 3.1 trên, xét câu truy vấn “Tìm tên và tuổi của tất cả các khách hàng có thu nhập trung bình”.

SELECT Ten , Tuoi FROM khach_hang

WHERE thu_nhap = $trung bình

Phần sau sẽ khảo sát các phép so sánh truyền thống được sử dụng như thế nào khi so sánh dữ liệu rõ với các nhãn ngôn ngữ.

Xét điều kiện mờ có dạng XθY, trong đó X là thuộc tính với dữ liệu rõ. Y là nhãn ngôn ngữ (tân từ mờ) được định nghĩa trên miền trị của thuộc tính X. Y được biểu diễn bởi một tập mờ có giá trị nằm trong đoạn [u, v] với hàm thuộc µY, µY(x)>0 vi x là giá trị của thuộc tính X và x∈[u, v]. Nếu Y được biểu diễn bởi tập mờ hình thang [a, b, c, d] thì u=a và v=d. Nếu Y là tập mờ hình tam giác [a, m, b] thì u=a và v=b. θ là toán tử so sánh truyền thống =, >, <, ≥,≤. Độ thoả mãn điều kiện mờ XθY, ký hiệu là d(XθY) được định nghĩa như sau:

1. Nếu θ là so sánh bằng (=) thì độ thoả mãn điều kiện X=Y được đánh giá như sau:

d(X=Y) =µY(x).

Ví d 3.3. Xét câu truy vấn ở ví dụ 3.2, giả sử giá trị tại thuộc tính

THU_NHAP là 250, thì độ thoả mãn điều kiện truy vấn được tính như sau:

d(thu_nhap = $trung bình) = µ”trung bình”(250)=1

2. Nếu θ là so sánh lớn hơn (>) thì độ thoả mãn điều kiện X > Y được đánh giá như sau:    > ≤ = > v x nÕu v x nÕu 1 0 Y) d(X 3. Nếu θ là so sánh lớn hơn hoặc bằng (≥)

Điều kiện so sánh X≥Y tương đương với điều kiện (X>Y or X=Y). Việc đánh giá độ thoả mãn điều kiện này dựa trên việc đánh giá độ thoả mãn các điều kiện cơ bản. Độ thoả mãn của điều kiện X≥Y được xác định như sau:

d(X≥Y) = max (d(X = Y), d(X >Y)).

4. Nếu θ là so sánh nhỏ hơn (<) thì độ thoả mãn điều kiện X < Y được đánh giá như sau:    ≥ < = < u x nÕu u x nÕu 0 1 ) Y X ( d 5. Nếu θ là so sánh nhỏ hơn hoặc bằng (≤) Điều kiện so sánh X ≤ Y sẽđược tách thành 2 điều kiện cơ bản (X<Y or X=Y). Việc đánh giá độ thoả mãn điều kiện dựa trên việc đánh giá độ thoả mãn các điều kiện cơ bản. Độ thoả mãn của điều kiện X≤ Y được xác định như sau:.

d(X≤Y) = max (d(X=Y), d(X<Y)).

6. Nếu θ là phép so sánh khác (<>) thì độ thoả mãn điều kiện X<>Y được đánh giá như sau:    < > ≤ ≤ = <> u x và v x nÕu v x u nÕu 1 0 ) Y (adsbygoogle = window.adsbygoogle || []).push({});

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 61)