Mở rộng mô hình cơ sở dữ liệu quan hệ dựa trên tính tương tự

Giới thiệu 1

Chương I. Khái quát về CSDLQH với thông tin không đầy đủ 6

1. Một số cách tiếp cận CSDLQH mờ 6

2. Mô hình CSDLQH dựa trên tính tương tự 8

2.1. Những định nghĩa cơ sở 9

2.2. Đại số quan hệ 10

2.3. Phụ thuộc hàm 11

3. Nhận xét 12

Chương II. Mở rộng mô hình CSDLQH dựa trên tính tương tự 14

1. Mở rộng mô hình CSDLQH của P.Buckles và E.Petry 14

1.1. Ngữ nghĩa của một bộ, quan niệm về các bộ thừa trong quan hệ 15

1.2. Các giá trị NULL 23

2. Mở rộng các phép toán quan hệ 27

2.1. Mở rộng phép hợp 27

2.2. Mở rộng phép giao 27

2.3. Mở rộng phép hiệu 28

2.4. Mở rộng phép chiếu 29

2.5. Mở rộng phép tích Đề-các 30

2.6. Mở rộng phép chọn 30

2.7. Mở rộng phép kết nối tự nhiên 33

2.8. Phép tính quan hệ trong trường hợp có kí hiệu NULL 36

2.9. Nhận xét 38

3. Cập nhật dữ liệu 38

3.1. Các qui tắc cập nhật dữ liệu 38

3.2. Nhận xét 45

4. Ngôn ngữ hỏi SQL S/P 46

4.1. Biểu thức điều kiện sau WHERE 46

4.2. Ngữ nghĩa và đánh giá câu hỏi SQL s/p 47

5. Các phụ thuộc dữ liệu 50

5.1. Phụ thuộc hàm và tập các luật suy dẫn 50

5.2. Phụ thuộc đa trị và tập các luật suy dẫn 52

5.3. Tách không mất thông tin 56

6. Kết luận 58

Chương III. Chuẩn hóa mô hình CSDLQH dựa trên tính tương tự 59

1. Các dạng chuẩn của CSDLQH dựa trên tính tương tự 59

2. Chuẩn hoá lược đồ CSDLQH dựa trên tính tương tự 61

3. Kết luận 66

Chương IV. Cài đặt thử nghiệm 67

1. Yêu cầu cần thực hiện 67

2. Thiết kế mô đun 70

3. Một số kết quả thử nghiệm 71

Tài liệu tham khảo: 77

 

 

doc70 trang | Chia sẻ: huong.duong | Lượt xem: 1335 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Mở rộng mô hình cơ sở dữ liệu quan hệ dựa trên tính tương tự, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iểu của bổ đề 2.3 vẫn đúng trong trường hợp cho phép kí hiệu null xuất hiện. Bổ đề 2.6. Cần và đủ để hai bộ là thừa đối với nhau (theo a) là ngữ nghĩa (theo a) của chúng là bằng nhau. Nội dung của Định lý 2.1 phát biểu cho trường hợp không có kí hiệu null, rằng việc trộn các bộ tương đương với nhau sẽ cho kết quả là một bộ tương đương với một bộ bất kỳ đã tham gia vào phép trộn, vẫn đúng trong trường hợp có kí hiệu null. 2. Mở rộng các phép toán quan hệ 2.1. Mở rộng phép hợp Cho r1 và r2 là hai quan hệ trên cùng một lược đồ R(U). Hợp theo ngưỡng a của r1 và r2 là một quan hệ kí hiệu là r1Èar2 được xác định như sau: r1Èar2=Ma(r1Èr2). Tính chất của phép hợp: Từ định nghĩa của phép hợp (với ngưỡng a) trên đây, kết hợp với bổ đề 2.3 về kết quả trộn các bộ thừa với nhau không phụ thuộc thứ tự trộn, dễ suy ra phép hợp có tính giao hoán và kết hợp. Nghĩa là: rÈas=sÈar (r1Èar2)Èar3=r1Èa(r2Èar3). 2.2. Mở rộng phép giao Cho r1 và r2 là hai quan hệ trên cùng một lược đồ R(U). Giao theo ngưỡng a của r1, r2 là một quan hệ kí hiệu là r1Çar2 được xác định như sau: r1Çar=Ma({t|(tÎr1 và $t’Îr2: t»at’) hoặc (tÎr2 và $t’Îr1: t»at’)}). Tính chất của phép giao: Tương tự như phép hợp, phép giao cũng có tính chất giao hoán và kết hợp: rÇas=sÇar (r1Çar2)Çar3=r1Ça(r2Çar3). 2.3. Mở rộng phép hiệu Cho r1 và r2 là hai quan hệ trên cùng một lược đồ R(U). Hiệu theo ngưỡng a của r1 đối với r2 là một quan hệ kí hiệu là r1-ar2 được xác định như sau: r1-ar2=Ma{tÎr1|"t’Îr2: tt’}. Tính chất của phép hiệu: Cũng như trường hợp CSDL truyền thống, phép giao có thể được biểu thị qua phép hiệu, nghĩa là (r1Çar2)@ar1-a(r1-ar2). Chứng minh: a) Với tÎr1Çar2, theo định nghĩa phép Ça, $t1Îr1, $t2Îr2: t1»at2, t=Ma({t1,t2}). Theo định lý trộn 2.1, t »at1. Chúng ta sẽ chỉ ra t1Î(r1-a(r1-ar2)) bằng cách chứng tỏ rằng "t’Î(r-ar2): t1»at’. Thật vậy, giả sử có t’Î(r1-ar2) sao cho t1»at’, khi đó do tính bắc cầu của »a chúng ta có t2»at’, điều này mâu thuẫn với giả sử phản chứng t’Î(r1-ar2). Như vậy "tÎr1Çar2, $t1Î(r1-a(r1-ar2): t » a t1. b) Với tÎ(r1-a(r1-ar2)) thì: tÎr1 (1) và "t’Î(r1-ar2) : tat’ (2) Để chứng minh rằng tÎr1Çar2 chỉ cần chứng tỏ rằng $t2Îr2: t »at2. Giả sử "t*Îr2: tat*, từ đó thấy được tÎ(r1-ar2), và theo (2) suy ra tat, đây là một điều vô lý. Vậy "tÎ(r1-a(r1-ar2)), thì tÎr1Çar2. Theo định nghĩa hai quan hệ tương đương theo a (@a), kết hợp với chứng minh a) và b) trên đây, có (r1Çar2)@ar1-a(r1-ar2). 2.4. Mở rộng phép chiếu Cho r là quan hệ trên cùng một lược đồ R(U), U={A1, A2,…, Am}, "i=1, 2,…, m, miền trị của Ai là Di, XÍU. Chiếu theo ngưỡng a của r trên X là một quan hệ trên lược đồ R(X) kí hiệu là ra[X] được xác định như sau: ra[X]=Ma(r[X]). Ví dụ 2.6: Cho 2 quan hệ r1 (Hình 2.10) và r2 (Hình 2.11) trên lược đồ R(A, B, C), và các quan hệ tương tự trên các miền ở các hình : Hình 2.7, Hình 2.8, Hình 2.9. a1 a2 a3 a5 a1 1.0 0.3 0.8 0.7 a2 0.3 1.0 0.3 0.3 a3 0.8 0.3 1.0 0.7 a5 0.7 0.3 0.7 1.0 Hình 2.7. Quan hệ tương tự trên Dom(A). b1 b2 b3 b4 b1 1.0 0.1 0.6 0.1 b2 0.1 1.0 0.1 0.9 b3 0.6 0.1 1.0 0.1 b4 0.1 0.9 0.1 1.0 Hình 2.8. Quan hệ tương tự trên Dom(B). c1 c2 c3 c1 1.0 0.0 0.8 c2 0.0 1.0 0.0 c3 0.8 0.0 1.0 Hình 2.9. Quan hệ tương tự trên Dom(C). A B C a1 b1, b3 c1, c2 a2, a3 b2 c3 Hình 2.10. Quan hệ r1. A B C a2, a5 b4 c3 a1, a3 b2 c2 Hình 2.11. Quan hệ r2. Với a=(0.7, 0.6, 0.8) sẽ có: r1Èar2 A B C a1 b1, b2 c1, c2 a2, a3, a5 b2, b4 c3 a1, a3 b2 c2 Hình 2.12. r1Èar2. r1Çar2 A B C a2, a3, a5 b2, b4 c3 Hình 2.13. r1Çar2. r1-r2 A B C a1 b1, b3 c1, c2 Hình 2.14. r1-r2. r2,a[B] B b2, b4 Hình 2.15. r2,a[B]. 2.5. Mở rộng phép tích Đề-các Cho r và s là hai quan hệ tương ứng trên các lược đồ R(A1, A2,…, Am) và S(A’1, A’2,…, A’n ). Tích Đề-các theo ngưỡng của r và s là một quan hệ trên lược đồ (A1, A2,…, Am, A’1, A2,…, An) kí hiệu là r´as, được xác định như sau: r´as=Ma(r´s). 2.6. Mở rộng phép chọn Định nghĩa phép giao khả năng Cho di và di’ là hai biểu thức tập hợp trên Di, giao khả năng của di và di’ theo ngưỡng ai là một biểu thức tập hợp trên Di hoặc là tập Æ, kí hiệu là diÇPaidi’, được xác định như sau: diÇPaidi’={aÎdi/$a’Îdi’: a~aia’}È{a’Îdi: a ~aia’}. Có thể chứng minh được rằng nếu (diÇPaidi’) là biểu thức tập hợp trên Di (nghĩa là ¹Æ) thì ngữ nghĩa của nó chính là ngữ nghĩa (theo ai) của di giao với ngữ nghĩa (theo ai) của di’. Định nghĩa biểu thức của phép chọn 1) Một phát biểu fi có dạng (ai.Ai : d) là một biểu thức với aiÎ[0, 1], Ai là tên một thuộc tính, Di là miền tương ứng của thuộc tính Ai, dÍDi. 2) Một phát biểu fi có dạng NOT(ai.Ai : d) là một biểu thức với ai[0, 1], Ai là tên một thuộc tính, Di là miền tương ứng của thuộc tính Ai, dÍDi. 3) Nếu P, Q là hai biểu thức thì P AND Q là biểu thức, P OR Q là biểu thức. Cho r là một quan hệ trên lược đồ R, phép chọn trên r với biểu thức chọn đã cho được xác định như sau: a) Chọn chặt: Chọn chặt trong r, thoả biểu thức F là một quan hệ trên R kí hiệu là sF(r) được xác định như sau: 1) Nếu F có dạng (ai.Ai: d). Quan hệ sF sẽ gồm các bộ t=( d1, d2,…, dm), djÍDj sao cho di»aid. 2) Nếu F có dạng NOT(ai.Ai: d). Quan hệ sF sẽ gồm các bộ t=( d1, d2,…, dm), djÍDj sao cho diaid. 3) Nếu F có dạng (P AND Q) thì sF (r)= sP(r)ÇsQ(r). 4) Nếu F có dạng (P OR Q) thì sF(r)= sP(r)ÈsQ(r). b) Chọn không chặt: Chọn không chặt trong r, thoả biểu thức F là một quan hệ trên R kí hiệu là sF được xác định như sau: 1) Nếu F có dạng (ai.Ai: d). Quan hệ sF sẽ gồm các bộ t=( d1, d2,…, dm), djDj sao cho diÇPaid¹Æ. 2) Nếu F có dạng NOT(ai.Ai: d). Quan hệ sF sẽ gồm các bộ t=(d1, d2,…, dm), djÍDj sao cho diÇPaid=Æ. 3) Nếu F có dạng (P AND Q) thì sF(r)= sP(r)Ç sQ(r). 4) Nếu F có dạng (P OR Q) thì sF (r)= sP(r)ÈsQ(r). Dễ dàng thấy rằng, nếu quan hệ r không có bộ thừa theo ngưỡng b=(b1, b2,…, bm) thì các quan hệ kết quả sF(r) và sF(r) được xác định như trên cũng không có bộ thừa theo ngưỡng b. Ví dụ 2.7: Cho quan hệ mờ r3 như ở Hình 2.16 cùng các quan hệ tương tự trên các miền tương ứng cho trong Hình 2.2 và Hình 2.3. r3 TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm, xanh nhạt, hồng nhà văn, giáo sư t2 Bình xanh đen, tím đỏ đạo diễn, giáo viên t3 Phúc trắng, hồng nhà thơ t4 Lộc trắng, kem nhà văn t5 Áọ xanh đen, đỏ phi công, đạo diễn t6 Tài xanh đậm, tím đỏ phi công Hình 2.16. Quan hệ r3. F1=(0.8. Màu xe: {xanh đậm, đỏ}) AND (0.8. Nghề nghiệp: {nhà văn, giáo viên}). F2=(0.8. Màu xe: {xanh đậm, đỏ}) OR (0.8. Nghề nghiệp: {nhà văn, giáo viên}). F3=(0.8. Màu xe: {xanh đậm, đỏ}) AND (NOT (0.8. Nghề nghiệp: {nhà văn, giáo viên})). Khi đó sẽ có: sF1(r3)={t2} sF1(r3)={t1, t2, t5} sF2(r3)={t1, t2, t5} sF2(r3)={t1, t2, t3, t4, t5} sF3(r3)={t5, t6} sF3(r3)={t6} Chọn chặt sF1(r3) cho thông tin về những người mà màu xe chỉ có thể là hai màu tương tự với màu “xanh đậm” và “màu đỏ” còn nghề nghiệp chỉ có thể là tương tự với nghề “nhà văn” và nghề “giáo viên”. Trong khi đó chọn không chặt sF1(r3) sẽ chọn những người có khả năng là màu xe tương tự với màu “xanh đậm” hay “màu đỏ” và nghề nghiệp có thể tương tự với nghề “nhà văn” hay nghề “giáo viên”. Chọn chặt sF2(r3) chon thông tin về những người mà màu xe chỉ có thể là hai màu tương tự với màu “xanh đậm” và màu “màu đỏ” và những người nghề nghiệp chỉ có thể là tương tự với nghề “nhà văn” hay “giáo viên”. Trong khi đó chọn không chặt sF2(r3) sẽ chọn những người có khả năng màu xe tương tự với màu “xanh đậm” hay “màu đỏ” và những người có khả năng nghề nghiệp tương tự với nghề “nhà văn” hay nghề “giáo viên”. 2.7. Mở rộng phép kết nối tự nhiên Tương ứng với hai phép chọn, có hai phép kết nối tự nhiên: kết nối tự nhiên chặt (gọi tắt là phép kết nối hay phép kết nối tự nhiên) và kết nối tự nhiên không chặt (gọi tắt là phép kết nối không chặt). Cho r và s là hai quan hệ tương ứng trên hai lược đồ R(U1) và R(U2), U1ÇU2¹Æ. Đặt U=U1ÈU2, X=U1ÇU2, X1=U1-X, X2=U2-X. a) Kết nối tự nhiên chặt: Kết nối tự nhiên chặt theo aX của r với s là một quan hệ trên lược đồ R(U) kí hiệu là rVaXs, được xác định như sau: rVaXs={t=(t1, t’, t2)|t’1Îr, $t’2Îs: (t’1[X1]=t1, t’2[X2]=t2, t’1[X]»aXt’2[X] và t’=MaX{t’1[X], t’2[X]})}. b) Kết nối tự nhiên không chặt: Kết nối tự nhiên không chặt theo aX của r với s là một quan hệ trên lược đồ R(U) kí hiệu là rTaXs, được xác định như sau: rTaXs ={t=(t1, t’, t2)|$t’1Îr, t’2Îs: (t’1[X1]=t1, t’2[X2]=t2, "AÎX, t’1[A]t’2[A]Æ và t’[A]=t’1[A]t’2[A])}. Cả hai phép kết nối chặt và không chặt đều có tính kết hợp. Ví dụ 2.8: Cho quan hệ r4 (Hình 2.17). D E d1, d2 e1, e3 d2, d3 e2 Hình 2.17. Quan hệ r4. Căn cứ vào các quan hệ tương tự cho ở Hình 2.7, 2.8, 2.9. sự phân lớp tương đương trên miền trị các thuộc tính A, B, C theo các ngưỡng tương ứng 0.4, 0.6, 0.8 được biểu diễn ở Hình 2.18. Hình 2.19 cho sự phân lớp tương đương trên miền trị của thuộc tính D, E. A 0.4 a1 a3 a5 a2 B 0.6 b1 b3 b2 b4 C 0.8 c1 c3 c2 Hình 2.18. Các lớp tương đương trên miền trị của A, B, C. D 0.7 d1 d3 d2 E 0.9 e1 e2 e3 Hình 2.19. Các lớp tương đương trên miền trị của D, E. Với các quan hệ r1 ở Hình 2.10, quan hệ r4 ở Hình 2.17, tích đề các của r1 với r4 theo ngưỡng a=(aA, aB, aC, aD, aE)=(0.4, 0.6, 0.8, 0.7, 0.9) là quan hệ r6 ở Hình 2.20. A B C D E a1 b1, b3 c1, c2 d1, d2 e1, e3 a1 b1, b3 c1, c2 d2, d3 e2 a2, a3 b2 c3 d1, d2 e1, e3 a2, a3 b2 c3 d3, d3 e2 Hình 2.20. Quan hệ r6 = r1 ´a r4. C E c2, c3 e3 c1, c3 e2 c2 e1, e3 Hình 2.21. Quan hệ r5. A B C E a1 b1, b3 c1, c2, c3 e3 a2, a3 b2 c1, c3 e2 Hình 2.22. Quan hệ r7. A B C E a1 b1, b3 c2 e3 a1 b1, b3 c1, c3 e2 a1 b1, b3 c2 e1, e3 a2, a3 b2 c3 e3 a2, a3 b2 c1, c3 e2 Hình 2.23. Quan hệ r8. Kết nối tự nhiên chặt và không chặt của r1 với r5 (Hình 2.21) theo ngưỡng aC=0.8 là quan hệ r7, r8 ở Hình 2.22 và 2.23. Tính chất của phép kết nối tự nhiên: Cả hai phép kết nối chặt và không chặt đều có tính kết hợp và giao hoán. 2.8. Phép tính quan hệ trong trường hợp có kí hiệu NULL Khi xem xét các phép tính quan hệ ở trường hợp có sử dụng kí hiệu null trong các giá trị thuộc tính, có một số nhận xét sau: 1) Giá trị của một bộ trên một thuộc tính, chẳng hạn {a1, a2,…, at} có thể đã kể hết các lớp tương đương do ngưỡng aj phân hoạch Dj, nghĩa là về mặt ngữ nghĩa có thể coi {a1, a2,…, at} tương đương với {D}, trong khi đó hệ thống coi {a1, a2,…, at} không tương đương với {D}. Như vậy, trong trường hợp có kí hiệu null D, các định nghĩa về phép hợp, giao, hiệu, chiếu, tích Đề-các, chọn chặt và kết nối chặt nếu giữ nguyên như đã phát biểu (cho trường hợp không có kí hiệu null) có thể có một số nhược điểm sau: Kết quả của phép hợp, phép Đề-các, phép chiếu có thể chứa những bộ thừa đối với nhau (tương đương về ngữ nghĩa) như đã nêu. Kết quả của phép giao có thể sẽ thiếu mặt một số bộ vì hệ thống coi {a1, a2,…, at} không tương đương với {D}. Tương tự, việc thực hiện phép hiệu có thể sẽ còn lưu lại một số bộ đáng lẽ bị loại bỏ. Phép chọn chặt, kết nối chặt có thể sẽ bỏ qua một số bộ do hệ thống coi {a1, a2,…, at} không tương đương với {D}. 2) Nếu giá trị của một bộ trên một thuộc tính là {D}, về mặt ngữ nghĩa có thể coi là giá trị này đã kể hết các lớp tương đương do ngưỡng aj phân hoạch Dj. Nghĩa là các khả năng chung của một giá trị không chứa kí hiệu null như {a1, a2,…, at} và giá trị {D} chính là tất cả các khả năng do {a1, a2,…, at} đưa ra. Trong khi đó hệ thống đã tính {a1, a2,…, at}Çaj{D}=Æ. Như vậy, trong trường hợp có kí hiệu null D, các định nghĩa về phép chọn không chặt và phép kết nối không chặt nếu giữ nguyên như đã phát biểu, thì sẽ bỏ qua một số bộ mà đáng lẽ về mặt ngữ nghĩa những bộ này xứng đáng thuộc quan hệ kết quả. Tương ứng với nhận xét trên, có thể khắc phục như sau: 1) Bổsung cho hệ thống khả năng kiểm tra và quyết định rằng một giá trị {a1, a2,…, at} trên Dj có chứa hết mọi khả năng (với ngưỡng aj) hay không. Nghĩa là kiểm tra và quyết định rằng {a1, a2,…, at} có tương đương với {D} hay không. 2) Cần xác định việc lấy giao ÇPaAi của hai biểu thức trị trên một thuộc tính (nghĩa là bao gồm trường hợp có kí hiệu null). Định nghĩa phép giao khả năng (của hai biểu thức trị): Trên miền trị Di của thuộc tính Ai xét ngưỡng tương tự ai. Cho di, di’ tương ứng là biểu thức trị của t và t’ trên Ai, phép giao khả năng của di và di’ kí hiệu là ÇPaAi cho kết quả là một biểu thức trị trên Ai được xác định theo bảng sau: M M’ M ÇPaAiM’ M ÇPaAiM’ Æ M’ M’ M ÇPaAiM’ M’ Æ Æ M M Æ M Hình 2.24. Kết quả biểu thức trị trên thuộc tính Ai. Qua kiểm tra thấy được rằng biểu thức trị (diÇPaAidi’) trên Ai được xác định theo bảng trên có ngữ nghĩa (theo aAi) chính là giao của hai ngữ nghĩa của hai biểu thức trị di và di’. Tính kết hợp của phép kết nối tự nhiên vẫn còn đúng trong trường hợp có kí hiệu null. 2.9. Nhận xét Các phép toán quan hệ đã được trình bày ở trên thực sự là mở rộng của các phép toán quan hệ trong CSDLQH truyền thống. Khi trở lại điều kiện đơn trị cho mỗi giá trị thuộc tính và lấy ngưỡng tương tự là 1.0, sẽ có lại mô hình cổ điển với đại số quan hệ truyền thống. Đặc biệt phép chọn và phép kết nối được chia thành hai mức chặt và không chặt cho phép khai thác sự mở rộng về mặt ngữ nghĩa của mỗi bộ trong mô hình mới. Trường hợp mọi giá trị thuộc tính được khẳng định chỉ có một khả năng (theo một ngưỡng đã xác định) thì hai mức chặt và không chặt sẽ trùng nhau. 3. Cập nhật dữ liệu 3.1. Các qui tắc cập nhật dữ liệu Đối với mỗi nhóm người dùng CSDL, mức độ và quan niệm mờ hoá khi xử lý thông tin trong quan hệ r của họ được thể hiện qua việc họ xác định (hay chấp nhận) một ngưỡng a trên r. Người sử dụng có thể khai thác thông tin có trong quan hệ r của lược đồ R(U) bằng việc sử dụng quan hệ Ma(r). Quan hệ Ma(r) có được từ quan hệ r có trong lưu trữ gốc, nhờ phép trộn các bộ thừa (theo ngưỡng a). Ma(r) tồn tại trong thời gian triển khai một ứng dụng cụ thể, thậm chí có trường hợp nó phải được lưu trữ vật lý trong một thời gian nhất định nào đó. Một phép cập nhật cho một quan hệ Ma(r) như vậy sẽ xảy ra ở một trong hai trường hợp sau: Một phép cập nhật cho một quan hệ có trong lưu trữ gốc có thể kích hoạt việc cập nhật cho Ma(r). Người dùng quan hệ Ma(r) yêu cầu cập nhật một số thông tin để khai thác phục vụ cho ứng dụng của mình mà những thông tin này không cần hoặc không được ghi vào lưu trữ gốc. Trong CSDLQH truyền thống, các phép cập nhật thường được đề cập đến là: thêm một bộ, xoá đi một bộ vốn có trong quan hệ, thay đổi giá trị của một bộ đã có trong quan hệ, phép thay đổi một bộ có thể biểu diễn qua phép xoá và thêm bộ. Khác với CSDLQH truyền thống, tuy vẫn được nhận diện qua khoá, song mỗi bộ trong quan hệ ở mô hình CSDLQH mở rộng đang xem xét thường chứa thông tin không chính xác và không chắc chắn. Do vậy giá trị của một bộ đang có mặt trong quan hệ có thể bị thay đổi trong hai tình huống sau: Thực hiện phép CHANGE(r, t[K], t*[K]). Ngữ nghĩa của phép cập nhật này là các giá trị của bộ t trên các thuộc tính không khoá t[U-K] được đổi thành t*[U-K]. Bộ t của quan hệ r được nhận diện bởi giá trị trên khoá t[K] (K là khoá của r). Việc thực hiện phép CHANGE(r, t[K], t*[U-K]) tương với việc thực hiện lần lượt hai phép cập nhật: phép xoá bộ t trong r, phép thêm bộ t’=(t[K], t*[U-K]) vào r. Phép CHANGE(r, t[K], t*[U-K]) được sử dụng khi người dùng coi thông tin trong bộ t’ là mới hơn, phản ánh đúng đắn hơn về chính đối tượng mà thông tin trong bộ t vốn đang thể hiện. Thực hiện phép UPDATE(r, t[K], t’[U-K]). Ngữ nghĩa của phép cập nhật này là: các giá trị của t trên các thuộc tính không khoá t[U-K] được đổi thành t*[U-K]. Các giá trị trên thuộc tính không khoá t*[U-K] được hình thành kho đối chiếu t[U-K] với t’[U-K], với mục đích chứa những thông tin nói chung là chính xác hơn, chắc chắn hơn so với những thông tin cung cấp bởi bộ t vốn có cũng như những thông tin cung cấp bởi bộ t’=(t[K], t’[U-K]) mới xuất hiện trong lệnh UPDATE. Phép UPDATE(r, t[K], t’[U-K]) được sử dụng khi người dùng coi thông tin về một đối tượng (được xác định nhờ khoá) trong hai bộ t và t’ là bình đẳng và chính xác về độ chắc chắn. Việc xoá đi một bộ vốn có trong quan hệ hay thêm một bộ mới vào quan hệ được tiến hành bình thường (như CSDLQH truyền thống). Bộ được xoá phải được chỉ định bởi các giá trị trên các thuộc tính khoá. Như vậy chỉ có quy tắc cho phép cập nhật UPDATE là đáng bàn, còn các phép cập nhật còn lại khá đơn giản. Giả sử trên một lược đồ R đã xác định một khoá K (gồm k thuộc tính khoá, không mất tính tổng quát giả sử đó là các thuộc tính A1, A2,…, Ak tương ứng với các miền D1, D2,…, Dk). Đó là tập các thuộc tính mà bất cứ hai bộ nào ”đủ tương tự” trên khoá cũng ”đủ tương tự” trên các thuộc tính còn lại. Qui tắc 2.1. (Cho thao tác thêm một bộ vào quan hệ) Cho INS là một câu lệnh thêm một bộ t=(d1, d2,…, dm) vào quan hệ r của lược đồ R theo ngưỡng tương tự a=(a1, a2,…, am). Hệ thống sẽ kiểm tra và thực hiện tương ứng như sau: 1) Nếu trong quan hệ r không có bộ t’ nào để t[K]»aKt’[K] thì thêm t vào r, 2) Không xảy ra 1) thì không làm gì cả. Qui tắc 2.2. (Cho thao tác xóa một bộ trong quan hệ) Cho DEL là một câu lệnh xoá khỏi quan hệ r bộ t với t[K]»a(d1, d2,…, dm) và ngưỡng tương tự a=(a1, a2,…, am). Hệ thống sẽ kiểm tra và thực hiện tương ứng như sau: 1) Nếu trong quan hệ r có bộ t để t[K]»a(d1, d2,…, dm) thì loại bỏ t khỏi quan hệ r, 2) Không xảy ra 1) thì không làm gì cả. Qui tắc 2.3. (Cho thao tác thay đổi giá trị một bộ trong quan hệ) Cho CHANGE là một câu lệnh thay đổi bộ t trong quan hệ r trên những thuộc tính không khoá, với t được xác định bởi t[K]»a(d1, d2,…, dk) theo ngưỡng tương tự a=(a1, a2,…, ak). Hệ thống sẽ kiểm tra và thực hiện tương ứng như sau: 1) Nếu trong quan hệ r có bộ t để t[K]»a(d1, d2,…, dk) thì lần lượt thực hiện hai phép cập nhật sau: DEL, INS. 2) Nếu không xảy ra trường hợp 1) thì không là gì cả. Như đã nói ở trên, phép UPDATE(r, t[K], t’[U-K]) cho quan hệ r nhờ một bộ t’=(t[K], t’[U-K]) được dùng khi trong quan hệ r đã có bộ t’ cũng cung cấp thông tin về một đối tượng O nào đó, giờ đây lại biết thêm bộ t’ cũng cung cấp thông tin về O và coi như t và t’ bình đẳng về độ chính xác cũng như độ chắc chắn. Vì t và t’ là hai bộ thể hiện thông tin về cùng một đối tượng nên yêu cầu của mô hình này là thông tin trên các thuộc tính khoá của hai bộ này phải tương đương: t[K]»aKt’[K]. Với ngữ nghĩa của một bộ trong mô hình CSDL đang được xem xét thì: trên mỗi thuộc tính A, bộ t khẳng định rằng thông tin về O chỉ có các khả năng đã trình nằm trong các khả năng đã trình ra trong t[A], không thể xảy ra khả năng nào nằm ngoài những khả năng t[A] đã đưa ra. Mỗi khả năng được t[A] thể hiện bởi một hay một số giá trị xấp xỉ với nhau hiểu theo nghĩa “đủ tương tự” và cũng có nghĩa là xấp xỉ về tương tự (ở một ngưỡng nào đó) với giá trị chính xác trên thực tế. Tương tự đối với t’. Với một cặp bộ (t, t’) như vậy có 2 khả năng xảy ra: Thông tin không mâu thuẫn: (t[A]ÇPat’[A]¹Æ), nghĩa là tồn tại khả năng được cả t và t’ cùng đưa ra. Nếu thông tin ở cả hai bộ đều đúng thì những khả năng có mặt ở cả t[A] và t’[A] sẽ chứa những khả năng đúng với thực tế, những khả năng chỉ có mặt ở một trong hai bộ đều không thể xảy ra trong thực tế. Thông tin mâu thuẫn: tập các khả năng do t[A] đưa ra và tập các khả năng do t’[A] đưa ra không chạm nhau, nghĩa là không có khả năng nào vừa có mặt ở t[A] vừa có mặt ở t’[A]. Điều này được thể hiện bởi mệnh đề (t[A]ÇPat’[A]¹Æ). Suy ra thông tin (trên thuộc tính A) được cung cấp bởi t và t’ là mâu thuẫn, so với thực tế thì ít nhất thông tin (trên A) của một trong hai bộ là sai. Không biết bộ nào trong hai bộ đó là sai, cũng không loại trừ khả năng cả hai bộ cùng sai. Khi kết hợp thông tin của hai bộ t và t’ về cùng một đối tượng, thì cũng có nghĩa là đã lưu được thông tin mới phong phú hơn (theo nghĩa chính xác hơn, chắc chắn hơn). Qui tắc 2.4. (Cho thao tác thay đổi giá trị một bộ trong quan hệ nhờ kết hợp với thông tin của một bộ mới) Cho UPDATE là một câu lệnh thay đổi giá trị bộ t trong quan hệ r nhờ bộ t’=( d1, d2,…, dm). Với t được xác định bới t[K]»a(d1, d2,…, dk) theo ngưỡng tương tự a=(a1, a2,…, ak). Hệ thống sẽ lần lượt kiểm tra và thực hiện tương ứng như sau: 1) Nếu trong quan hệ r có bộ t để t[K]»aK( a1, a2,…, ak) thì lần lượt làm những việc sau: "AÎU tính t[A]ÇPaAt’[A] Nếu "AÎU: t[A]ÇPaAt’[A]¹Æ thì lập bộ t*, với t*[A]=M(t[A]ÇPaAt’[A]) và thực hiện lần lượt hai phép cập nhật sau: DEL, INS. Nếu $AÎU: t[A]ÇPaAt’[A]=Æ thì thông báo có mâu thuẫn đối với bộ t và không làm gì nữa. 2) Nếu không xảy ra 1) thì không làm gì cả. Ví dụ2.9: Xét quan hệ r3 ở Hình 2.16 cùng với các quan hệ tương tự đã cho ở Hình 2.2 và 2.3. Cho khoá chỉ gồm một thuộc tính là Tên, ngưỡng tương tự là (1.0, 0.6, 0.8) r3 TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm, xanh nhạt, hồng nhà văn, giáo sư t2 Bình xanh đen, tím đỏ đạo diễn, giáo viên t3 Phúc trắng, hồng, kem nhà thơ t4 Lộc trắng, kem nhà văn t5 Thọ xanh đen, đỏ phi công, đạo diễn t6 Tài xanh đậm, tím đỏ phi công Hình 2.25. Giả sử thực hiện thao tác cập nhật sau: UPDATE Do t=({Phúc}, {hồng, kem}, {nhà thơ}) và t3 đủ tương tự trên khoá (theo ngưỡng 1.0) và hơn thế t»at3 nên kết quả nhận được r3 như bảng cho ở Hình 2.25 trên đây. Giả sử muốn cập nhật cho r3 ở hình 3.19 trên bởi: UPDATE Thông tin về người tên là An được cung cấp bởi bộ t1 (vốn có trong r3) và thông tin mới ({An}, {xanh đậm, xanh đen}, {đạo diễn, phi công}) không mâu thuẫn (trên mọi thuộc tính). Kết quả thu được r3 như bảng cho ở Hình 3.26 dưới đây. Giả sử muốn cập nhật cho quan hệ r3 ở Hình 2.26 bởi: UPDATE Hệ thống sẽ chỉ thông báo rằng: thông tin cần cập nhật mâu thuẫn với bộ t5. r3 TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm, xanh nhạt, xanh đen nhà văn, đạo diễn t2 Bình xanh đen, tím đỏ đạo diễn, giáo viên t3 Phúc trắng, hồng, kem nhà thơ t4 Lộc trắng, kem nhà văn t5 Thọ xanh đen, đỏ phi công, đạo diễn t6 Tài xanh đậm, tím đỏ phi công Hình 2.26. r3 TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm, xanh nhạt, xanh đen nhà văn, đạo diễn t2 Bình xanh đen, tím đỏ đạo diễn, giáo viên t3 Phúc trắng, hồng, kem nhà thơ t4 Lộc trắng, đen phi công, đạo diễn t5 Thọ xanh đen, đỏ phi công, đạo diễn t6 Tài xanh đậm, tím đỏ phi công Hình 2.27. Giả sử muốn cập nhật cho quan hệ r3 ở Hình 2.26 bởi: CHANGE Kết quả bộ t4 bị xoá khỏi r3 và xuất hiện một bộ mới trong r3 như ở Hình 2.27. Ví dụ 2.10: Trong ví dụ này chúng ta xét việc cập nhật trong trường hợp các quan hệ có chứa kí hiệu null. Cho quan hệ mờ r trong Hình 2.28 dưới đây. Giả sử thực hiện 3 thao tác: UPDATE UPDATE UPDATE Với giả thiết các quan hệ tương tự và ngưỡng tương tự a giống như ví dụ trên, thì kết quả thu được như trong Hình 2.29. r TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm D t2 Ái ^ phi công t3 Bình xanh đen, tím đỏ D, ^ t4 Lạc trắng, kem giáo viên Hình 2.28. r TÊN MÀU XE NGHỀ NGHIỆP t1 An xanh đậm, xanh đen phi công, nhà văn t2 Ái ^ phi công t3 Bình đỏ, tím đỏ nhà văn, ^ t4 Lạc trắng, kem giáo viên Hình 2.29. Kết quả thực hiện ba thao tác Update. Bây giờ ta thực hiện phép cập nhật sau: UPDATE Hệ thống sẽ báo: thông tin muốn cập nhật mâu thuẫn với bộ t4 đang có trong r2. 3.2. Nhận xét Trên đây đã trình bày các qui tắc cập nhật dữ liệu trong mô hình CSDLQH đang xem xét. Từ các qui tắc cập nhật nêu trên có thể rút ra những nhận xét sau: Sau mỗi khi cập nhật, những thông tin lưu trữ trong quan hệ là không mâu thuẫn. Sau khi cập nhật, những thông tin lưu trữ trong quan hệ là đủ (không thiếu và không thừa) theo cách hiểu như sau: không thừa thông tin theo nghĩa quan hệ không chứa hai bộ nào thừa đối với nhau (theo ngưỡng tương tự a đang xét đến). Không thiếu thông tin theo nghĩa các thông tin vốn có trước khi cập nhật và các thông tin muốn cập nhật đều có mặt trong quan hệ (kết quả), ngoại trừ những thông tin bị phát hiện là mâu thuẫn. Do cập nhật, có thể một số thông tin chưa đầy đủ chưa chắc chắn trở nên đầy đủ hơn, chắc chắn hơn. Thông tin mâu thuẫn có thể được phát hiện. 4. Ngôn ngữ hỏi SQL S/P 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.A) 2’)NOT(R.Ai: S.Aj) 3)(R.Ai q a) 4)(R.Ai q 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

Các file đính kèm theo tài liệu này:

  • docBTH1095.doc