Thể hiện dấu hiệu không chắc chắn cho các thuộc tính không khóa .... DANH MỤC CÁC CHỮ VIẾT TẮT 1NF Fisrt Normal Form Dạng chuẩn thứ nhất 2NF Second Normal Form Dạng chuẩn thứ hai 3NF Thi
Trang 1TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG
NGUYỄN LÊ HOÀN
LOẠI BỎ CÁC MẪU TIN NHÂN BẢN THỪA TRONG CƠ SỞ DỮ LIỆU QUAN HỆ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên – 2012
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan bản luận văn này là công trình nghiên cứu của riêng tôi, không sao chép ở bất kỳ công trình khoa học nào trước đây Các kết quả nêu trong luận văn có nguồn gốc rõ ràng và được trích dẫn đầy đủ Nếu có gì sai, tôi xin chịu hoàn toàn trách nhiệm
Học viên
Nguyễn Lê Hoàn
Trang 3MỤC LỤC
Trang
MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 2
1.1 Tổng quan CSDL quan hệ 2
1.1.1 Định nghĩa quan hệ 2
1.1.2 Phụ thuộc hàm 2
1.1.3 Khóa 4
1.1.3 Các loại chuẩn 7
1.2 Hệ chuyên gia 14
1.2.1 Thể hiện dấu hiệu không chắc chắn 16
1.2.2 Thể hiện các luật không chắc chắn 19
1.2.3 Lan truyền chắc chắn đối với các luật có nhiều giả thiết 22
CHƯƠNG 2: LOẠI BỎ CÁC MẪU TIN NHÂN BẢN THỪA 25
2.1 Các dạng lệnh SQL 25
2.2 Các loại mảnh và cách phân mảnh quan hệ 32
2.2.1 Các lý do phân mảnh 40
2.2.2 Các kiểu phân mảnh 40
2.3 Thể hiện dấu hiệu không chắc chắn cho các thuộc tính không khóa 50
2.4 Thể hiện luật không chắc chắn cho các thuộc tính có giá trị lặp 51
2.4.1 Thuật toán 52
2.4.2 Mệnh đề 53
2.5 Kết luận 54
CHƯƠNG 3: ỨNG DỤNG GIẢI MỘT SỐ BÀI TOÁN THỰC TẾ 55
3.1 Giới thiệu các quan hệ trong CSDL quản lí nhân sự 55
3.1.1 Bài toán phân mảnh tối ưu 55
Trang 43.1.2 Bài toán phân mảnh ứng dụng 55
3.2 Tư vấn 67
3.3 Kết luận và hướng phát triển 67
3.3.1 Kết luận 67
3.3.2 Hướng phát triển 67
TÀI LIỆU THAM KHẢO 68
Trang 7DANH MỤC CÁC CHỮ VIẾT TẮT
1NF Fisrt Normal Form (Dạng chuẩn thứ nhất)
2NF Second Normal Form (Dạng chuẩn thứ hai)
3NF Third Normal Form (Dạng chuẩn thứ ba)
4NF Fourth Normal Form (Dạng chuẩn thứ bốn)
5NF Fifth Normal Form (Dạng chuẩn thứ năm)
BCNF Boye Codd Normal Form (Dạng chuẩn BOYE CODD)
CF Certainty Factor (Nhân tố chắc chắn)
CSDL Cơ sở dữ liệu
DDBM Distributed Database Managerment (Hệ quản trị CSDL phân tán)
FD Functional Dependancy (Phụ thuộc hàm)
GCS Global Conception Schema (lược đồ khái niệm toàn cục)
LCS Local Conception Schema (lược đồ khái niệm địa phương)
LTM Long Term Memory (bộ nhớ vĩnh cửu)
MB Measure of Belief (Độ chắn chắn)
MD Measure of Disbelief (Độ không chắn chắn)
SQL Structured Query Langguage (Ngôn ngữ truy vấn có cấu trúc) STM Short Term Memory (bộ nhớ tạm thời)
Trang 8DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 1.1 HS 3
Bảng 1.2 HangHoa 5
Bảng 1.3 Khoa 6
Bảng 1.4.Luong 7
Bảng 1.5 TienLuong 8
Bảng 1.6.XeMay 8
Bảng 1.7 XeMay1 9
Bảng 1.8 XeMay2 9
Bảng 1.9 SV 10
Bảng 1.10 Xe 12
Bảng 1.11 R1 13
Bảng 1.12 R2 13
Bảng 1.13 R3 13
Bảng 1.14 Miêu tả các giá trị CF 23
Bảng 2.1 So sánh các lựa chọn nhân bản 39
Bảng 2.2 Truong 42
Bảng 2.3 Hocsinh 42
Bảng 2.4 Monhoc 42
Bảng 2.5.Diemthi 43
Bảng 2.6 Truong1 44
Bảng 2.7 Truong2 45
Bảng 2.8 Hocsinh1 46
Bảng 2.9 Hocsinh2 46
Bảng 2.10.Monhoc1 48
Trang 9Bảng 2.11.Monhoc2 50
Bảng 3.1 Quan hệ R 56
Bảng 3.2 Mảnh ngang t1 56
Bảng 3.3 Mảnh ngang t2 56
Bảng 3.4 Mảnh ngang t3 57
Bảng 3.5 Mảnh ngang t4 57
Bảng 3.6 Mảnh ngang t5 57
Bảng 3.7 Mảnh ngang t6 57
Bảng 3.8 Mảnh ngang t7 58
Bảng 3.9 Mảnh ngang t8 58
Bảng 3.10 Mảnh ngang t9 58
Bảng 3.11 Mảnh ngang t10 58
Bảng 3.12 Mảnh ngang t11 59
Bảng 3.13 Mảnh ngang t12 59
Bảng 3.14 Mảnh ngang 1 60
Bảng 3.15 Mảnh ngang 2 60
Bảng 3.16 Mảnh ngang 3 61
Bảng 3.17 Mảnh ngang 4 61
Bảng 3.18 Mảnh ngang 5 61
Bảng 3.19 Mảnh ngang 6 61
Bảng 3.20 Mảnh ngang 7 62
Bảng 3.21 Mảnh HV1 62
Bảng 3.22 Mảnh HV2 62
Bảng 3.23 Mảnh HV3 63
Bảng 3.24 Mảnh HV4 63
Bảng 3.25 Mảnh HV5 63
Bảng 3.26 Mảnh HV6 63
Trang 10Bảng 3.27 Mảnh HV7 63
Bảng 3.28 Mảnh R1 64
Bảng 3.30 Mảnh ngang tR21 65
Bảng 3.31 Mảnh ngang tR22 65
Bảng 3.32 Mảnh ngang tR23 65
Bảng 3.33 Mảnh ngang tR24 65
Bảng 3.34 Mảnh ngang R2a 65
Bảng 3.35 Mảnh HV8 66
Bảng 3.37 Mảnh R22 66
Bảng 3.38 Mảnh ngang tR22 66
Trang 11DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Giải quyết vấn đề của chuyên gia 17
Hình 1.2 Giải quyết các vấn đề của hệ chuyên gia 17
Hình 1.3 Phạm vi của CF 20
Hình 1.4 Phân mảnh hỗn hợp 49
Hình 1.5 Tái thiết các mảnh hỗn hợp 49
Hình 2.1 Quá trình thiết kế từ trên xuống 36
Hình 2.2 Mối liên hệ giữa các quan hệ 44
Trang 12MỞ ĐẦU
Trong mấy thập niên gần đây sự bùng nổ về công nghệ thông tin diễn ra
mạnh mẽ, hầu hết các lĩnh vực đều phát triển với tốc độ tối đa của nó, trong
đó lĩnh vực cơ sở dữ liệu đã mở ra một hướng phát triển mới đó là cơ sở dữ
liệu phân tán - phân mảnh
Việc phân tán – phân mảnh một quan hệ thành nhiều mảnh rồi phân tán
trên các nút mạng và xử lý chúng như những đơn vị độc lập sẽ cho phép thực
hiện nhiều giao dịch đồng thời và giải quyết được vấn đề tiết kiệm không gian
nhớ cho một nút mạng cục bộ cũng như tốc độ đường truyền
Khi đưa vào sử dụng, một CSDL quan hệ bao giờ cũng đã được chuẩn hoá
Mỗi bảng trong CSDL quan hệ có một lược đồ quan hệ dạng R (K,A) trong đó K
= KeyR = {K 1 , K 2 ,…} là tập siêu khoá (khoá chính), K i được gọi là thuộc tính
khoá Tập các thuộc tính còn lại A = {A 1 , A 2 ,…} là tập các thuộc tính không khoá
Tập siêu khoá được dùng để xác định tính duy nhất của các bộ giá trị t(K,A)
Một số bộ giá trị t(A) có thể trùng nhau trên toàn bộ hoặc ở một số thuộc
tính không khoá nhưng vẫn không vi phạm tính duy nhất của bộ giá trị cũng
như tính chất phụ thuộc hàm bởi chúng luôn luôn có bộ giá trị khoá t(K) khác
nhau Nghĩa là có thể do một sai sót nào đó mà hai bộ t s (K), t x (K) khác nhau
và t s (A), t x (A) có thể khác hoặc giống nhau nhưng t s (K, A), t x (K, A) trong thực
tế chỉ mô tả một đối tượng, khi đó ta nói t s (K, A), t x (K, A) là nhân bản thừa
của nhau Điều này đặc biệt hay xảy ra trong CSDL phân tán khi vô hình nhân
bản và vô hình phân tán Điều gì xẩy ra, nếu một người được nhận "danh hiệu
khen thưởng tại một số nơi", một nhân viên của tổng công ty có thể nhận
"lương tại một số công ty con" ở các nút mạng khi vô hình nhân bản và phân
tán.…Vì vậy cần phải loại bỏ tất cả các bộ được nhân bản thừa trong CSDL
quan hệ Để làm việc này chúng ta có thể dựa vào phương pháp heuristics
Trang 13CHƯƠNG 1: CƠ SỞ LÍ THUYẾT
1.1 Tổng quan CSDL quan hệ
Một số khái niệm cơ bản về hệ cơ sở dữ liệu: Để dễ dàng cho việc giải thích các khái niệm, trước hết chúng ta quan sát qua hệ thống bán vé máy bay bằng máy tính Dữ liệu lưu dữ trong máy tính bao gồm các thông tin về khách hàng, chuyến bay, đường bay, …Mọi thông tin về mối quan hệ này được biểu diễn trong máy tính thông qua việc đặt chỗ của khách hàng Vậy làm thế nào
để biểu diễn được dữ liệu đó và để đảm bảo khách hàng đi đúng tuyến Phần
thông tin lưu trữ trong máy tính đó theo một định dạng nào đó gọi là cơ sở dữ
liệu(Database) Phần chương trình để xử lý cơ sở dữ liệu gọi là hệ quản trị cơ
sở dữ liệu(Database management system), hệ quản trị cơ sở dữ liệu có nhiệm
vụ rất quan trọng như một bộ diễn dịch với các ngôn ngữ bậc cao nhằm giúp người sử dụng có thể dùng được hệ thống mà ít nhiều không cần quan tâm đến thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy
1.1.1 Định nghĩa quan hệ
Cho R = (A1, A2, …, An) là tập hữu hạn không rỗng các thuộc tính
Mỗi thuộc tính Ai có một miền giá trị DAi (i = 1, 2, …, n) Khi đó r gồm một tập các bộ {h1, h2, …, hm} được gọi là một quan hệ trên R, với hj (j= 1, 2,
Trang 14* Phụ thuộc hàm (Functional dependancy): Giả sử R(A1, A2, …, An) là
lược đồ quan hệ, X, Y là tập con của {Ai} Người ta nói rằng XY (X xác
định Y hay Y phụ thuộc hàm vào X) nếu với tất cả các thác triển r của R, n bộ
ti, tj ( )của r ta có: i j
Nếu chiếu X(ti) = chiếu X(tj) thì chiếu Y(ti) = chiếu Y(tj)
Ví dụ:
Xét quan hệ HS(Sbd, HoTen, DiaChi, Truong, KhuVuc) cho bởi bảng 1.1:
CD101 Lê Thị Bình Định Hóa TN Định Hóa 1
Giả sử R = (A1, A2, …, An) là tập các thuộc tính F là tập các phụ thuộc
hàm trên R Khi đó sơ đồ quan hệ s là cặp R, F như trên và ký hiệu là
s = < R, F >
Trang 15* Bao đóng của sơ đồ quan hệ:
Giả sử một sơ đồ quan hệ s = (R, F), trong đó R là tập các thuộc tính, F là tập các phụ thuộc hàm trên R Kí hiệu F+ là tập tất cả các phụ thuộc hàm được
dẫn xuất từ F bằng việc áp dụng hệ tiên đề Armstrong:
Đặt A+ = {a: A {a} F+} Khi đó A+ được gọi là bao đóng của A
trên s Thấy rằng ABF nếu và chỉ nếu B A
1.1.3 Khóa
Khóa (key) của một quan hệ r trên tập thuộc tính R= (A1, …, An) là tập con
K{A1, …, An} thỏa mãn các tính chất sau đây: với bất kì hai bộ ti, tjr đều tồn tại một thuộc tính A K sao cho ti(A) tj(A) (i ) Nói cách khác, không j
tồn tại hai bộ mà có giá trị bằng nhau trên mọi thuộc tính của K, điều kiện này có thể viết ti(K) tj(K) Do vậy mỗi giá trị của K là xác định duy nhất
Trong một lược đồ quan hệ có thể có rất nhiều khóa Việc tìm tất cả các khóa của lược đồ quan hệ là rất khó khăn Để có thể định nghĩa khóa ta lưu ý, nếu K’ là khóa của quan hệ r(A1, …, An) thì K’ K R, K cũng là khóa của
r, nghĩa là với bất kì hai bộ ti, tj r từ ti(K’) tj(K’) Vì vậy chúng ta có định nghĩa khóa của một quan hệ như sau:
* Định nghĩa khóa:
Khóa của một quan hệ trên tập thuộc tính R={A1, …, An} là tập con K
R sao cho bất kì hai bộ khác nhau ti, tj r luôn thỏa mãn ti(K) tj(K) bất kì tập con thực sự K’ K nào, K’ đều không có tính chất đó Thì K được định nghĩa là khóa
Ví dụ 1:
Cho quan hệ hàng hóa HangHoa(MSMH, TenHang, SoLuong) cho dữ liệu bởi bảng 1.2 như sau:
Trang 16ti(MSHH) tj(MSHH) ( i ) j
* Thuật toán tìm khóa tối tiểu của một quan hệ:
Cho trước r = {h1, …, hm} là một quan hệ trên tập thuộc tính R ={A1, … , An}
Er = {Eij:1 i j m}, ở đây Eij = {aR: hi(a) = hj(a)}
Vào: r ={h1,…, hm} là một quan hệ trên tập thuộc tính R ={A1, …,An} Ra: K là một khóa tối tiểu của r
+ Bước 1: Tính Er = {A1, …, An} trong đó Er là các hệ bằng nhau
K0, K1, K2, …, Kn tính theo quy tắc:
K0 = R = {A1, …, An} hoặc K0 là khóa đã biết
Ki = Ki-1 – {Ai} nếu không tồn tại A Mr sao cho Ki-1 – {Ai} A hoặc
Ki = Ki-1 trong trường hợp ngược lại
Nếu ta thay đổi thứ tự các thuộc tính của R, thì bằng thuật toán này chúng ta tìm được một khóa tối tiểu khác
Trang 17Ví dụ 2: Cho quan hệ Khoa = {A, B, C, D, E} cùng dữ liệu ở bảng 1.3
Áp dụng thuật toán cho ví dụ trên ta có:
+Bước 1: Tính Er: Đối với r ta có: E12 = {B}, E13 = {E}, E14 = {},
E23 = {A,D}, E24 = {E}, E34 = {B}
+ Bước 2: Tính Mr = {{B},{E},{A,D}}
+ Bước 3: Dễ thấy K0 = R = {A, B, C, D, E}
K1 = K0 – {A} = {A, B, C, D, E} - {A} = {B, C, D, E}
K2 = K1 – {B} = {B, C, D, E} - {B} = {C, D, E}
K3 = K2 – {C} = {D, E}
K4 = K3
K5 = K4
Do vậy theo thuật toán tập thuộc tính {D, E} là khóa tối tiểu của r
Nếu ta thay đổi thứ tự R= {E, D, C, B, A} thì ta có:
K1= {D, C, B, A}
K2= {C, B, A}
K3= {B, A}
Vì K3 – B = A và A {A, D} ta có K4= K3 Mắt khác, vì K4 – A = B là một phần tử của Mr, ta có K5 = K4
+ Bước 4: Vậy {A,B} là khóa tối tiểu khác
Trang 181.1.3 Các loại chuẩn
Trong quá trình cập nhật dữ liệu không thể tránh khỏi những sai sót gây
ra các dị thường cho nên các quan hệ cần thiết phải được biến đổi thành các dạng chuẩn Quá trình đó được xem là quá trình chuẩn hóa Một quan hệ được chuẩn hóa là một quan hệ trong đó mỗi miền của một thuộc tính chỉ chứa một giá trị nguyên tố, tức là không thể phân chia nhỏ thêm được nữa và do đó mỗi giá trị trong quan hệ cũng là nguyên tố
Các dạng chuẩn: Theo lý thuyết ban đầu Codd đưa ra các dạng chuẩn của quan hệ:
Dạng chưa chuẩn
Dạng chuẩn thứ nhất (Fisrt Normal Form, viết tắt 1NF)
Dạng chuẩn thứ hai (Second Normal Form, viết tắt 2NF)
Dạng chuẩn thứ ba (Third Normal Form, viết tắt 3NF)
Dạng chuẩn BCNF (Boye Codd Normal Form)
Dạng chuẩn thứ bốn (Fourth Normal Form, viết tắt 4NF)
Dạng chuẩn thứ năm (Fifth Normal Form, viết tắt 5NF)
* Dạng chưa chuẩn:
Ví dụ 1:
Cho quan hệ Luong có cấu trúc như bảng 1.4:
Tien HoTen
Luong Thuong Bảng 1.4.Luong
Trang 19Quan hệ TienLuong có cấu trúc cho bởi bảng 1.5:
HoTen Luong Thuong Tien
Bảng 1.5 TienLuong
+ Định nghĩa 2.(Dạng chuẩn 2 – 2NF)
Sơ đồ quan hệ s = (R, F) được gọi là ở dạng chuẩn 2NF nếu mọi thuộc tính thứ cấp của s phụ thuộc hoàn toàn vào khóa Hay nói cách khác s là 2NF nếu trong s không có các phụ thuộc hàm dạng A {a} Fn với A là tập con thực sự của K và a là thuộc tính thứ cấp
Ví dụ 3: Cho quan hệ XeMay(MaXe, Mac, Gia) cho bởi bảng dữ liệu 1.6:
Trang 20+ Định nghĩa 4.(Dạng chuẩn Boye- Codd – BCNF)
Sơ đồ quan hệ s = (R, F) được gọi là ở dạng chuẩn BCNF nếu trong s không tồn tại phụ thuộc hàm dạng A {a} với {a} A và A+ R Có nghĩa
là cấm tất cả các thuộc tính không phụ thuộc vào tập các bao đóng khác R
Ví dụ 5: Cho quan hệ XeMay2(MaXe,Ten,NamSx,Mau) cho bởi bảng 1.8:
Bảng 1.8 XeMay2
Trang 21* Các phụ thuộc đa trị và dạng chuẩn bốn:
Trên thực tế quan hệ thuộc các dạng chuẩn 3NF, BCNF vẫn chưa hết dư thừa dữ liệu Việc dư thừa ấy khiến các phép cập nhật trên bảng hoặc là phức tạp hoặc là đưa đến sai khác về thông tin
+ Định nghĩa 5 Phụ thuộc đa trị (Multivalued dependancy)
Giả sử R(A1, A2, …, An) là một lược đồ quan hệ X,Y {Ai}, ta nói rằng
X ->>Y (X xác đa trị Y hay Y phụ thuộc đa trị vào X) nếu cho những giá trị
Trang 22X, có một tập giá trị Y liên quan và tập này độc lập với các thuộc tính
Z = R - X - Y Điều này tức là:
(X ->>Y) {(xyz),(x’y’z’)R (xy’z),(x’yz’)R } xX,yY, zZ
Trong ví dụ trên, quan hệ SV có các thuộc tính đa trị MsSv ->> MonHoc
Tập thuộc tính liên quan đến các thuộc tính phụ thuộc đa trị là Z = {TheThao}
Có thể thấy trong định nghĩa về phụ thuộc đa trị nêu trên, tập Y phụ
thuộc vào X luôn có mặt của tập thứ ba là Z Giá trị Y gắn với (x, z) như là
gắn với x Để loại bỏ các phụ thuộc đa trị do suy diễn và để phụ thuộc đa trị
tối giản, Melkanoff năm 1982 đã đưa ra định nghĩa về phụ thuộc đa trị cơ sở
+ Định nghĩa 6 Phụ thuộc đa trị cơ sở (Elementary Muntivalued
dependancy)
Phụ thuộc đa trị X ->> Y của quan hệ R mà:
1 Y không rỗng và không giao với X
2 R không chứa phụ thuộc đa trị khác có dạng X’ ->>Y’ mà
'
+ Định nghĩa 7 Dạng chuẩn bốn (Fourth Normal Form – 4NF)
Một quan hệ ở dạng chuẩn bốn khi và chi khi những phụ thuộc đa trị cơ
sở là phụ thuộc trong đó xác định một thuộc tính Tức là nếu có phụ thuộc đa
trị thì nó có dạng Z ->>A
* Các phụ thuộc kết nối và dạng chuẩn năm.
Việc phân rã các quan hệ có chuẩn 4NF cũng chưa loại bỏ được các dư
thừa trong quan hệ Kết luận này đã được Nicole năm 1978 hay Fagin năm
1979 khẳng định điều này
Trang 23Ví dụ 7:
Cho quan hệ Xe(Ten, Mau, Mac) và dữ liệu cho ở bảng 1.7 về người dùng xe có màu và mác xe Bảng 1.7 dữ liệu cho thấy quan hệ này vẫn dư thừa dữ liệu và vấn đề cần phải nghiên cứu và phân rã chúng như bảng 1.10:
Bảng 1.10 Xe
Quan hệ Xe thuộc dạng chuẩn 4NF vì bài toán không xác định phụ thuộc
đa trị nào Kiểm tra các phụ thuộc đa trị ta thấy:
+ Không thể Ten Mau vì không có bộ (Nam, Đỏ, YAMAHA)
+ Không thể Mau Mac vì không có bộ (Mai, Đỏ, YAMAHA)
+ Không thể Mac Ten vì không có bộ (Mai, Đỏ, HONDA)
Để giải quyết vấn đề này người ta phải phân rã thành nhiều quan hệ Tài liệu này được Aho hay Nicolas đề cập năm 1979
Quan hệ Xe nói trên có thể phân rã thành các quan hệ R1, R2, R3 được thể hiện ở các bảng 1.11, 1.12, 1.13 như sau:
Trang 24Ten Mau Mau Mac Ten Mac
Bảng 1.11 R1 Bảng 1.12 R2 Bảng 1.13 R3
+ Định nghĩa 8 phụ thuộc kết nối (Joint dependancy)
Cho R = (A1, A2, …, An) là lược đồ quan hệ và X1, X2, …, Xm là các tập con của {Ai} Ta nói rằng có phụ thuộc kết nối *{ X1, X2, …, Xn } nếu R là kết nối của chiếu của nó trên X1, X2, …, Xm, tức là:
R = chiếu x1(R) chiếu x2(R) …chiếu xm(R)
Trong ví dụ về quan hệ Xe nói trên tuân theo phụ thuộc kết nối *{{Ten, Mau}, {Mau, Mac}, {Ten, Mac}}
Nhận xét thấy phụ thuộc đa trị là trường hợp đặc biệt của phụ thuộc kết nối, do X ->> Y thỏa mãn *{XY, XZ}
+ Định nghĩa 9 Dạng chuẩn năm (Fifth Normal Form – 5NF)
Một quan hệ ở dạng chuẩn năm khi và chỉ khi tất cả các phụ thuộc kết nối thực hiện bởi khóa sơ cấp của R
Các phụ thuộc đa trị cũng là các phụ thuộc kết nối, nên một lược đồ qua
hệ ở dạng chuẩn nối cũng là lược đồ ở dạng 4NF Các phân rã ở dạng chuẩn 5NF không tổn thất thông tin nhưng không giữ được các phụ thuộc hàm và phụ thuộc đa trị Do vậy nói chung không thể có được phân rã giữ được các phụ thuộc cho lược đồ chuẩn năm
Trang 25* Mối liên hệ giữa các bảng (Relationship)
Khái niệm quan hệ ở mục này được dùng để nhóm họp hai hay nhiều thực thể với nhau nhằm biểu hiện một mối liên quan tồn tại trong thế giới thực giữa các thực thể này
+ Quan hệ một – một (one - to - one): mỗi thể hiện của thực thể A được liên kết với không, một hay nhiều thể hiện của B và mỗi thể hiện của B được liên kết với một thể hiện duy nhất của A Đây là quan hệ thông dụng và đơn giản nhất
+ Quan hệ nhiều – nhiều (many - to - many): mỗi thể hiện của thực thể A được liên kết với không, một hay nhiều thể hiện của B và ngược lại, mỗi thể hiện của thực thể B được liên kết với không, một hay nhiều thể hiện của A
1.2 Hệ chuyên gia
+ Máy thông minh
Khi tri thức con người ngày càng rộng và cao, thì họ đòi hỏi thiết bị càng có khả năng xử lý các vấn đề ngày càng phức tạp Thậm chí yêu cầu máy xử lý các tình huống càng giống con người Máy phải “thu thập các sự kiện, suy nghĩ, dẫn luận và đưa ra các kết luận” Nhiều tổ chức đã dùng các thiết bị - cùng với các phần mềm hỗ trợ để ra các quyết định hoặc thu thập tri thức của các chuyên gia các lĩnh vực mà họ cần có các máy móc đó gọi là máy thông minh
Định nghĩa 1.2-1 Chuyên gia về lĩnh vực nào đó là một người có kiến
thức sâu sắc về lĩnh vực đó và có thể dùng kiến thức đó để giải quyết các vấn
đề tương tự trong lĩnh vực đó
Trải qua các kinh nghiệm, chuyên gia phát triển kĩ năng giúp họ giải quyết vấn đề một cách có hiệu quả Còn hệ chuyên gia là hệ thống bắt chước được các kĩ năng của chuyên gia
Định nghĩa 1.2-2 Hệ chuyên gia là một hệ thống dựa trên tri thức, cho
phép mô hình hóa các tri thức của chuyên gia có chất lượng, hay chuyên gia
Trang 26được huấn luyện một lĩnh vực cụ thể; hệ chuyên gia dùng tri thức này để giải quyết vấn đề phức tạp thuộc lĩnh vực đó
Hay nói cách khác:
Hệ chuyên gia gồm máy tính và chương trình được dùng để mô phỏng và bắt chước cách giải quyết vấn đề của các chuyên gia
* Hệ chuyên gia bao gồm hai khối cơ bản:
+ Khối cơ sở tri thức, dùng để lưu các tri thức chuyên xâu về lĩnh vực, nó bao gồm các khái niệm, các sự kiện, các quan hệ và các luật suy diễn, lựa chọn, …
+ Khối suy luận là một bộ xử lý, nó được mô hình hóa theo cách lập luận
và xử lý của chuyên gia Khối suy luận nhận thông tin về sự kiện, so sánh chúng với các tri thức có trong khối cơ sở tri thức rồi rút ra kết luận hay bình luận Như vậy khối suy luận cần có kĩ thuật về suy luận
Tri thức là những gì con người có thể biết và hiểu được Tri thức có thể phân loại thành dạng có cấu trúc hoặc không có cấu trúc, tri thức rõ ràng hay tri thức ngụ ý, không rõ ràng Những gì mà con người chúng ta biết được là tri thức rõ ràng Tri thức không có cấu trúc mà vẫn có thể hiểu được mà không phát biểu rõ ràng là các tri thức ngụ ý, khi các tri thức được tổ chức để chia sẻ thì đó là những tri thức có cấu trúc Để chuyển đổi được dạng tri thức rõ ràng sang tri thức không rõ ràng cần được cấu trúc hóa và định dạng lại Cơ sở tri thức chứa các tri thức chuyên sâu về lĩnh vực chuyên gia Cơ sở tri thức bao gồm: các sự kiện, các luật, các khái niệm và các quan hệ Trong cuộc sống, sở
dĩ các chuyên gia có thể giải quyết vấn để ở một mức cao vì họ có nhiều tri thức về lĩnh vực họ hoạt động Thực tế hiển nhiên này là cơ sở nền tảng cho thiết kế các máy giải quyết vấn đề dựa trên tri thức mà ta gọi là hệ chuyên gia
* Cơ sở của hệ chuyên gia:
+ Cơ sở tri thức
Trang 27Định nghĩa 1.2-3 Cơ sở tri thức là thành phần chính bên cạnh các
thành phần giải vấn đề trong hệ thống dựa trên tri thức Trong hệ chuyên gia thì cơ sở tri thức được định nghĩa là một phần trong hệ chuyên gia chứa các tri thức về lĩnh vực
Trong hệ chuyên gia các tri thức chuyên gia được lưu dữ trong khối cơ
sở tri thức Chính là khối LTM (Long Term Memory) trong mô hình giải của con người
Việc thu thập các tri thức và mã hóa tri thức, có nhiều cách, tuy nhiêu để điển hình là dùng luật lựa chọn Một trong các luật đó thường có dạng:
IF < condiction > THEN < Do something >
Ví dụ:
IF “Chăm chỉ học tập ” THEN “Kết quả sẽ tốt”
1.2.1 Thể hiện dấu hiệu không chắc chắn
1.2.1.1 Biểu diễn dấu hiệu không chắc chắn
Qua kết quả của nhóm nghiên cứu quan sát thấy các thầy thuốc thường dùng suy luận không chính xác trên các thông tin có sẵn Tức là thầy thuốc chỉ tin một phần vào sự suy xét trên dấu hiệu nào đó Đối với suy luận không chính xác, cần gán giá trị CF cho mỗi luật
Đối với dấu hiệu không chắc chắn, người ta quyết định gán một nhân tố chắc chắn “CF” để thể hiện độ tin cậy của thầy thuốc vào dấu hiệu đó Số này chạy từ -1, ứng với sai số hoàn toàn, đến +1, ứng với đúng hoàn toàn Số dương thể hiện sự tin cậy, số âm thể hiện sự không tin cậy Chẳng hạn thầy phát biểu dấu hiệu nào đó có thể đúng, thì giá trị CF = 0.6 được gán cho dấu hiệu đó
1.2.1.2 Thể hiện dấu hiệu không chắc chắn
Qua kết quả nghiên cứu người ta cũng quan sát thấy các thầy thuốc thường dùng suy luận không chính xác trên các thông tin có sẵn Tức là thầy
Trang 28thuốc chỉ tin vào một phần suy xét trên dấu hiệu nào đó Đối với suy luận không chính xác, cần gán CF cho mỗi luật
Hình 1.1 Giải quyết vấn đề của chuyên gia
Hình 1.2 Giải quyết các vấn đề của hệ chuyên gia
LTM (lưu các tri thức
về lĩnh vực)
Deduction (các kết luận) Lời khuyên
STM (Lưu các sự kiện, các kết luận)
LTM (lưu các tri thức
về lĩnh vực)
Motor suy diễn Người sử dụng
(các kết luận)
Bộ nhớ làm việc (Lưu các sự kiện, các kết luận)
Trang 291.2.1.3 Suy luận không chắc chắn
Người ta cũng thấy rằng khi độ tin cậy vào dấu hiệu đang có là nhỏ hơn
sự chắc chắn thì độ tin cậy này trong suy luận liên quan cũng giảm đi Chẳng hạn, luật đầu tiên kết luận về việc chỉ ra tổ chức bị viêm dạng hạt, người ta dùng giả thiết không chắc chắn, CF(Ei) < 1 và mức độ tin cậy trong kết luận giảm, CF(H) < 0.7 Người ta áp dụng kĩ thuật không chắc chắn kéo theo kĩ thuật này
1.2.1.4 Tổ hợp dấu hiệu từ nhiều nguồn
Khi thầy thuốc nhận thông tin trợ giúp để kết luận từ nhiều nguồn, người
ta thấy rằng kết luận có độ tin cậy lớn hơn Do vậy lý thuyết chắc chắn cần tằng độ tin cậy về kết luận khi nhận trợ giúp từ nhiều luật
Ví dụ:
Luật R1 IF A AND B THEN Z CF = 0.8
Luật R2 IF C AND D THEN Z CF = 0.7
Cả hai luật đều kết luận về sự kiện Z, nhưng với giá trị CF khác nhau Nếu hai luật đều cháy thì người ta thu được hai độ tin cậy về Z Ở đây người
ta cần kết hợp hai luật, tức kết hợp hai nhận định “có khả năng” và có thể Trong trường hợp hai thuộc tính được tráo đổi và tiệm cận nhau mà thuộc tính quan trọng không bị phụ thuộc vào thứ tự của chúng Chẳng hạn hai luật có cùng độ tin cậy về quyết định cuối cùng thì áp dụng luật nào trước cũng được Với cách làm này sẽ làm độ tin cậy tăng lên từng phần
Trang 301.2.2 Thể hiện các luật không chắc chắn
1.2.2.1 Độ tin cậy thực
Thông thường thầy thuốc sẽ cân đối độ tin cậy về giả thuyết cho cả dấu hiệu dương tính và dấu hiệu âm tính Tùy theo trường hợp mà dấu hiệu được chấp nhận hay bị loại Vấn đề đặt ra là độ tin cậy thực đặt ra được bao nhiêu? Trước hết người ta tập hợp tất cả thông tin trợ giúp và gọi nó là độ tin cậy MB (measure of Belief) trong giả thuyết Việc tập hợp tiến hành theo cách hoán đổi và tiệm cận Tiếp theo, các thông tin MD (Measure of Disbelief) Độ tin cậy thực hay CF trong giả thuyết được tính bằng độ lệch giữa hai giá trị độ đo này
Ví dụ:
Một vài thông tin hỗ trợ giả thuyết với độ MB(H) = 0.8 trong khi dấu hiệu khác loại trừ H cho giá trị MD(H) = 0.2 Trong trường hợp này, độ tin cậy thực về H được tính CF(H) = 0.8 - 0.2 = 0.6 Lúc này H được xem là khả năng đúng
1.2.2.2 Cơ sở của lý thuyết chắc chắn
Phần trên đã nêu lên sự cần thiết về mô hình chắc chắn Nhu cầu này sinh
ra một cách tự nhiên khi thầy thuốc quản lý thông tin không chính xác Dù vậy nhưng cần khẳng định rằng mô hình này không hoàn toàn dựa vào lý thuyết xác suất mà chỉ theo lý thuyết khi thành lập mô hình
Lý thuyết chắc chắn giả thuyết rằng xác suất trước của giả thuyết H, p(H) thể hiện độ tin cậy được giám định của chuyên gia về H Độ không tin p(~H) của chuyên gia được coi là tùy theo ràng buộc xác suất truyền thống, tức p(H)
+ p(~H) = 1 Ngoài ra còn giả thuyết rằng nếu chuyên gia giám sát dấu hiệu
thấy: xác suất về giả thuyết có dấu hiệu (tức xác suất có điều kiện p(H|E)) lớn
hơn xác suất trước (tức p(H)), tức là p(H|E) > p(H) đúng, thì độ tin cậy của
chuyên gia về giả thuyết tăng tỷ lệ thuận đến (p(H|E) – (p(H)) / (1 – p(H)
Trang 31Cái chính của lý thuyết này là có khi có chút dấu hiệu, độ tin cậy của chuyên gia về giả thuyết có thể tăng hay giảm chút ít Ý này được phát triển gắn với MB và MD
Định nghĩa 1.2-4: Độ đo tin cậy (Measure of Belief (MB)) giá trị bằng
số thể hiện độ tin cậy tăng lên về giả thuyết H dựa trên dấu hiệu E
Định nghĩa 1.2-5: Độ đo không tin cậy (Measure of Debelief (MD)) giá trị
bằng số thể hiện độ tin cậy không tăng lên về giả thuyết H dựa trên dấu hiệu E Các giá trị này thỏa mãn 0MB, MD Chúng được xác định hình 1thức theo xác suất trước có điều kiện theo các công thức sau:
1 MB(H,E) = 1 nếu p(H) = 1
ngược lại thì MB(H,E) = (max{p(H|E), p(H)} – p(H)/(1 – P(H))
2 MD(H,E) = 1 nếu p(H) = 0
ngược lại thì MD(H,E) = (min{p(H|E), p(H)} – p(H)/(1 – P(H))
Do người ta quan sát một vài thông tin, thông tin này làm thay đổi độ tin cậy hay độ không tin vào giả thuyết cho nên người ta kết hợp hai giá trị trên vào giá trị độ tin cậy chung, CF = MB – MD; 1 CF 1
Định nghĩa 1.2-6: Nhân tố tin cậy (Certainty Factor - CF) Giá trị bằng
số thể hiện mức độ tin cậy thực vào giả thuyết khi có thông tin
Giá trị -1 của CF thể hiện “sai chắc chắn” và +1 thể hiện “đúng chắc chắn” Giá trị 0 cho biết “không biết”, giá trị âm thể hiện độ không tin vào giả thuyết trong khi giá trị dương ngược lại
Trang 32* Tùy theo tình huống thực tế, mà độ chắc chắn có một số trường hợp điển hình xảy ra như sau:
+ Trường hợp 1 Dấu hiệu khẳng định hoàn toàn giả thuyết:
Nếu dấu hiệu đã có E khẳng định hoàn toàn giả thuyết H thì p(H|E) = 1
Do vậy MB(H, E) = 1, MD(H, E) = 0, và tính được CF(H,E) = MB(H, E) - MD(H, E) = 1 Do vậy khi E hoàn toàn xác định H, theo sơ đồ về giá trị CF (hình 1.3) thì H là đúng chắc chắn
+Trường hợp 2 Dấu hiệu hoàn toàn không xác định giả thuyết:
Khi p(H|E) = 1 thì p(H|E) = 1 – p(H|E) = 0 Vậy MB(H, E) = 0, MD(H,E) = 1 Nên tính được CF(H,E) = MB(H, E) - MD(H, E) = -1, tức theo
sơ đồ về giá trị CF (hình 1.3) thì H là sai chắc chắn
+Trường hợp 3 Thiếu dấu hiệu:
Nếu dấu hiệu đã có E độc lập với giả thuyết không khẳng định hay phủ nhận H, tức p(H|E) = p(H) Theo công thức tính MB, MD thì MB(H, E) = MD(H, E) = 0, vậy tính được CF(H,E) = 0 Trường hợp này có nghĩa nếu H
và E độc lập thì H được xem như không biết
+Trường hợp 4 Dấu hiệu dương:
Nếu dấu hiệu đã có E xác định một phần giả thuyết H thì p(H) < P(H|E) < 1 và tính các độ đo theo MB(H, E) = (p(H|E) – p(H))/(1-p(H)); MD(H,E) = 0 Do đó CF(H, E) = MB(H, E)
Vậy thì E xác định H một phần theo sơ đồ CF (hình 1.3), CF(H, E) thuộc miền dương, tức miền tin cậy vào giả thuyết H
+Trường hợp 5 Dấu hiệu âm:
Nếu dấu hiệu đã có E không xác định một phần giả thuyết H thì 0 < P(H|E) < p(H) Do vậy MB(H, E) = 0 và MD(H, E) = p(H) – p(H|E)/p(H) Vậy CF(H, E) = - MD(H, E)
Trang 33Do vậy khi E không xác định từng phần giả thuyết H thì CF(H, E) thuộc miền âm trong sơ đồ CF (hình 1.3)
+Trường hợp 6 Nguồn mang nhiều khẳng định nhưng cũng có điều
CF(H, E) = (MB(H, E) – MD(H, E))/(1 - min{MB(H, E), MD(H, E)}) Trong ví dụ này người ta thu được CF(H, E) = 0.995 Cách tính này có tác dụng ngược lại so với cách tính trước; nó giảm tác dụng của một số nhỏ ý kiến trái ngược
Trong hầu hết các vấn đề, việc đánh giá CF nhờ các chuyên gia không phải là dễ dàng Việc dùng CF thực chất thay cho độ p(H) và p(H|E)
1.2.3 Lan truyền chắc chắn đối với các luật có nhiều giả thiết
1.2.3.1.Dấu hiệu không chắc chắn
Các hệ thống dùng luật không chính xác cần có sách thể hiện dấu hiệu không chắc chắn Chẳng hạn “hôm nay có thể nắng” là câu có độ không chắc chắn do “có khả năng …”
Người ta dùng CF với các giá trị từ -1 đến +1 để thể hiện độ tin cậy trong câu Chẳng hạn CF(E) = CF(“hôm nay có khả năng nắng”) = 0.6 Tiếp cận này đã thay xác suất hình thức p(E) bằng CF Trong bảng các giá trị CF điển hình
Trang 34Loại không chắc chắn CF Không xác định - 1.0 Hầu như không xác định - 0.8
“hôm nay có khả năng sẽ nắng” hoặc “hôm nay sẽ nắng CF = 0.6”
* Các luật không chắc chắn
CF dùng cho câu và cho cả các luật để thể hiện dấu hiệu không chắc chắn giữa dấu hiệu F trong giả thuyết của luật và giả thuyết H trong phần kết luận của luật Cấu trúc cơ bản của luật dùng trong mô hình chắc chắn có dạng IF E THEN H CF(luật), trong đó CF(luật) thể hiện mức độ tin cậy H khi có E Tức khi đúng thì người ta tin H theo CF(H, E) = CF(luật)
Ví dụ:
Luật: IF có mây xanh cao, E THEN sẽ nắng, H với CF = 0.8 sẽ được tham chiếu đến bảng miêu tả để hiểu rằng “nếu có mây xanh cao thì hầu như chắc chắn trời nắng”
Trang 351.2.3.2 Lan truyền chắc chắn đối với các luật có nhiều giả thuyết
Trong trường hợp có nhiều giả thuyết, nhân tố chắc chắn đối với kết luận của luật được lập theo cách tương tự như cách dùng trong hệ thống PROSPECTOR Như nhóm MYCIN thì người ta giả sử có độc lập điều kiện của dấu hiệu theo dạng AND hay OR khi xét độ tin cậy vào giả thuyết
1.2.3.3 Các luật AND
Mô hình chắc chắn dùng các luật có dạng:
IF E1 AND E2 AND … En THEN H CF(luật)
CF( H, E1 AND E2 AND … En) = Min{CF(Ei)}*CF(luật)
Ví dụ:
IF trời tối AND gió mạnh dần THEN sẽ mưa CF = 0.8
Giả thuyết rằng CF(trời tối) = 1.0 và CF(gió mạnh dần) = 0.7 thì
CF(sẽ mưa) = min{1.0, 0.7}*0.8 = 0.56; có nghĩa “có khả năng mưa”
IF trời tối OR gió mạnh dần THEN sẽ mưa CF = 0.9
Giả thuyết rằng CF(trời tối) = 1.0 và CF(gió mạnh dần) = 0.7 thì
CF(sẽ mưa) = max{1.0, 0.7}*0.9 = 0.9; có nghĩa “hầu hết chắc chắn là mưa”
Trang 36CHƯƠNG 2: LOẠI BỎ CÁC MẪU TIN NHÂN BẢN THỪA
2.1 Các dạng lệnh SQL
SQL (Structured Query Language) được phát triển từ ngôn ngữ SEQUEL – 2, thử nghiệm và cài đặt ở trung tâm nghiên cứu của hãng IBM ở San jose, California cho hệ thống quản trị cơ sở dữ liệu lơn điển hình là System-R Trong System-R SQL vừa đóng vai trò là một ngôn ngữ có thể thao tác độc lập với người sử dụng đầu cuối, đồng thời lại có khả năng là một ngôn ngữ con được nhúng trong ngôn ngữ chủ PL/1
SQL đảm bảo các lệnh theo cú pháp tiếng Anh Trong bảng - quan hệ các chức năng của SQL gồm:
+ Tạo, xóa một bảng;
+ Tìm dữ liệu Người ta có thể tìm đến cột, dòng hay dữ liệu chi tiết;
+ Cập nhật dữ liệu (thêm, sửa, xóa dữ liệu);
+ Thêm cột mới;
+ Sao chép dữ liệu từ bảng này sang bảng khác;
+ Các tiện ích khác giúp tổ chức, in dữ liệu
SQL là một ngôn ngữ phi thủ tục, chuẩn mực và điển hình Phép toán
cơ bản trong ngôn ngữ SQL là phép ánh xạ được miêu tả như một khối SELECT – FROM – WHERE
Định nghĩa dữ liệu trong SQL chính là tạo ra các bảng bằng cấu trúc các cột và dữ liệu trong bảng (các hàng)
+ Cách tạo một CSDL trong SQL
Ngôn ngữ SQL dùng lệnh CREAT để tạo tệp CSDL có cú pháp như sau:
Cú pháp như sau:
Trang 37CREATE DATABASE <TênCSDL>
ON
(NAME = <TênFileCSDLLogic>,
FILENAME = ‘Đường dẫn đến tệp vật lý CSDL.mdf’)
+ Lệnh tạo các bảng:
Ngôn ngữ SQL dùng lệnh CREAT để tạo các bảng quan hệ có cú pháp:
CREATE TABLE <TênBảng>
(<Tên_cột 1 Kiểu dữ liệu> (độ rộng nếu có) Các_ràng_buộc_nếu_có
<Tên_cột 2 Kiểu dữ liệu> (độ rộng nếu có) Các_ràng_buộc_nếu_có
Trong mô tả các thuộc tính trên, NOT NULL được dùng với nghĩa thuộc tính có mô tả này nhất thiết phải có dữ liệu
Trang 38+Xóa bảng bằng lệnh:
Ngôn ngữ SQL dùng lệnh DROP để xóa các bảng quan hệ có cú pháp: DROP TABLE <Tên_bảng>
+ Lựa chọn dữ liệu bằng biểu thức SELECT:
Câu lệnh SELECT có nhiều toán hạng, dùng với các chức năng sau:
Liệt kê tất cả hay một phần của bảng;
Sắp xếp dữ liệu;
Tổ hợp dữ liệu từ các bảng khác nhau;
Thực hiện phép toán;
Gọi hàm mẫu trong SQL;
Tạo dạng kết quả ra;
Nhập, sửa đổi dữ liệu
Các lệnh có thể dùng thêm GROUP BY, ORDER BY và HAVING SELECT FROM Các hàm mẫu của SQL mà SELECT dùng là:
COUNT Cho phép tính các giá trị tham gia trong cột hay trong kết quả; SUM Tổng các giá trị;
AVG Trung bình của các giá trị;
MAX Giá trị cực đại;
MIN Giá trị cực tiểu
Dạng đơn giản của câu SELECT là liệt kê các dòng của bảng, dùng SELECT *
Trang 39SELECT BAN.Ten, BAN.SL
FROM HANG, BAN
WHERE BAN.N_P = HANG.N_P AND
BAN.SL > 10
HANG.Mau = “Xanh”
+ Câu lệnh mô tả phép hợp các quan hệ
Phép hợp của đại số quan hệ được thể hiện qua từ khóa UNION của ngôn ngữ SQL Câu UNOIN sẽ kết hợp hai câu lệnh SELECT
+ Sử dụng hàm mẫu: SQL cho phép tính toán gộp trong câu hỏi bằng
cách dùng các hàm mẫu MAX, MIN, SUM, AVG, COUNT,…
FROM HANG GROUP BY NP
+ Tính toán số học: SQL cho phép sử dụng các phép toán số học: +, -, *, /, ( )
Ví dụ 5:
SELECT Ten, NP, (SL*10)