Phần tử ngoại lai trong CSDL gồm 2 loại: loại thứ nhất là các dữ liệu được thu thập hoặc tạo sinh theo một quy luật khác với các dữ liệu khác và được xem là dữ liệu sai hay dữ liệu không
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
LUẬN VĂN THẠC SĨ MÁY TÍNH
Người hướng dẫn khoa học: TS Lê Văn Phùng
HÀ NỘI, 2016
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo TS Lê Văn Phùng, người thầy đã tận tình hướng dẫn và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này
Tôi xin gửi lời cảm ơn đến Ban giám hiệu trường THPT Mê Linh và các thầy cô trong trường đã tạo điều kiện để tôi có được những dữ liệu thực tế góp phần vào sự hoàn thiện của luận văn
Xin gửi lời cảm ơn đến các bạn đồng môn và những bạn bè thân thiết
đã đồng hành cùng tôi trong suốt quá trình hoàn thành luận văn này
Hà Nội, ngày 08 tháng 07 năm 2016
Học viên
Nguyễn Khắc Hiếu
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này
là trung thực và không trùng lặp với các đề tài khác Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc
Hà Nội, ngày 08 tháng 07 năm 2016
Học viên
Nguyễn Khắc Hiếu
Trang 5MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
BẢNG KÍ HIỆU CÁC CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH VẼ vii
MỞ ĐẦU viii
CHƯƠNG 1 1
TỔNG QUAN VỀ PHÁT HIỆN PHẦN TỬ NGOẠI LAI 1
ĐỐI VỚI CÁC DẠNG CHUẨN TRONG CSDL QUAN HỆ 1
1.1 Các dạng chuẩn trong CSDL quan hệ 1
1.1.1 Khái quát về CSDL quan hệ 1
1.1.2 Các dạng chuẩn của mô hình CSDL quan hệ 8
1.2 Tổng quan về phát hiện phần tử ngoại lai 16
1.2.1 Khái niệm về phần tử ngoại lai 16
1.2.2 Các phương pháp xác định phần tử ngoại lai 17
CHƯƠNG 2 19
THUẬT TOÁN XÁC ĐỊNH PHẦN TỬ NGOẠI LAI 19
ĐỐI VỚI CÁC DẠNG CHUẨN 19
2.1 Khái niệm về phát hiện phần tử ngoại lai đối với chuẩn trong CSDL quan hệ 19
2.2 Phân loại các phần tử ngoại lai trong CSDL quan hệ 20
2.3 Mô hình phát hiện phần tử ngoại lai dựa theo luật đối với CSDL quan hệ 20
2.4 Các thuật toán phát hiện phần tử ngoại lai đối với các dạng chuẩn 23 2.4.1 Đối với dạng chuẩn 2NF 23
2.4.2 Đối với dạng chuẩn 3NF 25
2.4.3 Đối với dạng chuẩn BCNF 26
CHƯƠNG 3 ỨNG DỤNG TÌM PHẦN TỬ NGOẠI LAI ĐỐI VỚI DẠNG CHUẨN VÀO BÀI TOÁN NHẬP ĐIỂM TRONG TRƯỜNG THPT MÊ LINH 28
3.1 Mô tả bài toán và yêu cầu 28
Trang 63.1.1 Đặt vấn đề 28
3.1.2 Mô tả bài toán và yêu cầu 28
3.2 Phân tích thiết kế bài toán ứng dụng (input, output, hệ thống xử lý, giao diện) 29
3.2.1 Liệt kê các chức năng 29
3.2.2 Phân tích hệ thống 30
3.3 Cài đặt và thử nghiệm thuật toán phát hiện phần tử ngoại lai đối với dạng chuẩn 3NF để hỗ trợ nhập điểm trong trường THPT Mê Linh 36
3.3.1 Cài đặt môi trường thử nghiệm 36
3.3.2 Một số giao diện chính trong chương trình 36
3.3.3 Thử nghiệm chương trình 43
3.3.4 Đánh giá kết quả thử nghiệm 52
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
Trang 7BẢNG KÍ HIỆU CÁC CHỮ VIẾT TẮT
Trang 8DANH MỤC CÁC BẢNG
Bảng 1.1 Biểu diễn quan hệ r 1
Bảng 1.2 Bảng thiết bị lưu giữ thông tin về các mặt hàng 2
Bảng 1.3 Bảng xét quan hệ THISINH 4
Bảng 1.4 Bảng quan hệ BANHANG 7
Bảng 1.5 Xét quan hệ về trình độ ngoại ngữ 9
Bảng 2.1 Bảng quan hệ r 25
Bảng 2.2 Bảng quan hệ r sau khi sửa giá trị t4(B) = 3 26
Bảng 2.3 Bảng quan hệ r sau khi sửa giá trị t4(D) = 3 27
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hình phân lớp các dạng chuẩn 11
Hình 1.2 Phần tử ngoại lai trong tập điểm có tọa độ (x,y) trên mặt phẳng có giá trị tung độ y nhỏ hơn hẳn các phần tử khác của tập hợp 16
Hình 2.1 Sơ đồ phát hiện phần tử ngoại lai dựa theo luật trong CSDL quan hệ 23
Hình 3.1 Biểu đồ Use Case cho actor giáo viên 30
Hình 3.3 Trang đăng nhập vào hệ thống quản trị 37
Hình 3.4 Giao diện trang chủ admin 37
Hình 3.5 Trang thông tin giáo viên 38
Hình 3.6 Trang thông tin lớp học 38
Hình 3.7 Trang thông tin học sinh 39
Hình 3.8 Trang thông tin môn học 39
Hình 3.9 Phân lớp và môn học cho giáo viên 40
Hình 3.10 Trang đăng nhập vào hệ thống nhập điểm 41
Hình 3.11 Tạo công việc mới 41
Hình 3.12 Nhập điểm môn học 42
Hình 3.13 Điểm sau khi nhập đầy đủ 42
Hình 3.14 Bảng điểm của học sinh theo lớp 43
Hình 3.15 Xem và in bảng điểm của học sinh 43
Hình 3.16 File dữ liệu excel 47
Hình 3.17 Chọn file điểm nhập sẵn từ excel 48
Hình 3.18 Chương trình tìm thấy phần tử ngoại lai sau khi kiểm tra file nhập vào 48
Hình 3.19 Hiển thị các bước chạy của thuật toán sau khi tìm thấy phần tử ngoại lai 49
Hình 3.20 Kết quả đúng sau khi đã thay giá trị t4(Lý) = 4 bằng t4(Lý) = 8 50
Hình 3.21 Kết quả báo cáo đúng sau khi phát hiện phần tử ngoại lai 50
Hình 3.22 Hiển thị các bước chạy của thuật toán kiểm tra ngoại lai 51
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Gắn liền với sự phát triển của thế giới ngày nay không thể không kể đến việc các ngành nghề có sự hỗ trợ đắc lực của hệ thống máy tính, chính vì những nhu cầu phát triển của xã hội đã thúc đẩy ngành khoa học máy tính ra đời và phát triển, khiến con người đi sâu vào nghiên cứu, tìm tòi khám phá Trong khoa học máy tính luôn có những công trình nghiên cứu mới đi sâu vào việc làm thế nào để quản lí, khai thác các cơ sở dữ liệu (CSDL) một cách hiệu quả và an toàn Tuy nhiên, trong quá trình xử lí, khai thác các dữ liệu vẫn có những CSDL không mong muốn tồn tại và phá vỡ những qui định hay các chuẩn mà các bộ CSDL phải tuân theo Trog thực tiễn, nhiều dữ liệu được xem là hợp lệ nếu nó thỏa mãn các luật nào đó, nếu một trong các luật này bị
vi phạm thì xem là phần tử ngoại lai
Xác định phần tử ngoại lai (outlier) trong tập hợp dữ liệu là một hướng mới được quan tâm nghiên cứu và tỏ ra có nhiều ứng dụng thiết thực Phần tử ngoại lai trong CSDL gồm 2 loại: loại thứ nhất là các dữ liệu được thu thập hoặc tạo sinh theo một quy luật khác với các dữ liệu khác và được xem là dữ liệu sai hay dữ liệu không hợp lệ, loại thứ hai là dữ liệu hợp lệ nhưng có những đặc điểm khác biệt so với đa số các dữ liệu khác Vấn đề đặt ra là phát triển các phần mềm để phát hiện tự động các phần tử có dấu hiệu khác biệt trong CSDL cho phép các chuyên gia xác định xem cần loại bỏ nó ra khỏi CSDL hay cần xử lý đặc biệt với các phần tử ngoại lai được phát hiện này Đến nay, ngoài các phương pháp xác định dữ liệu ngoại lai bằng phương pháp thống kê, các tác giả đều xác định phần tử ngoại lai theo phương pháp so sánh khoảng cách hay mức tương đồng giữa các dữ liệu
Trang 11Trong luận văn này, chúng tôi sẽ xác định phần tử ngoại lai trong các
cơ sở dữ liệu quan hệ dựa theo những ràng buộc, luật mà các phần tử của file
dữ liệu quan hệ phải tuân theo (chẳng hạn thỏa mãn phụ thuộc hàm)
Với sự phát triển ngày càng nhanh của công nghệ, đặc biệt là công nghệ khám phá tri thức trong CSDL đang là chủ đề nóng trong công nghệ thông tin
nên tôi đã chọn đề tài “Nghiên cứu phần tử ngoại lai đối với các dạng chuẩn
trong cơ sở dữ liệu quan hệ” là luận văn cao học của mình Trong đó chủ yếu
nghiên cứu về phần tử ngoại lai đối với các dạng chuẩn trong CSDL quan hệ
2 Mục đích nghiên cứu
- Tìm hiểu tổng quan về phần tử ngoại lai đối với các dạng chuẩn trong CSDL quan hệ
- Trên cơ sở các kiến thức đã thu thập và nghiên cứu, tổng hợp các kỹ thuật
để hướng đến ứng dụng vào bài toán nhập điểm trong trường THPT Mê Linh
3 Nhiệm vụ nghiên cứu
- Tổng quan phát hiện phần tử ngoại lai trong CSDL quan hệ
- Tổng quan phát hiện phần tử ngoại lai đối với các dạng chuẩn trong CSDL quan hệ
- Ứng dụng tìm phần tử ngoại lai đối với bài toán nhập điểm trong trường THPT Mê Linh
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Phần tử ngoại lai đối với các dạng chuẩn trong
Trang 12+ Sưu tập tài liệu, phân tích, tổng hợp các kết quả nghiên cứu về phần tử
ngoại lai đối với các dạng chuẩn trong CSDL quan hệ
+ Phân tích bài toán ứng dụng và chọn lọc thuật toán thử nghiệm thích
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ PHÁT HIỆN PHẦN TỬ NGOẠI LAI
ĐỐI VỚI CÁC DẠNG CHUẨN TRONG CSDL QUAN HỆ
1.1 Các dạng chuẩn trong CSDL quan hệ
1.1.1 Khái quát về CSDL quan hệ
1.1.1.1 Quan hệ
Định nghĩa 1.1
Cho R={a1,a2, ,an} là một 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ị là Dai Khi đó r – 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, ,m) là một hàm [2]:
hj: R Dai
ai R sao cho: hj ( ai ) Dai
Có thể biểu diễn quan hệ r ở dạng bảng:
Bảng 1.1 Biểu diễn quan hệ r
Trang 14Ví dụ 1:
Để lưu giữ thông tin về các mặt hàng, cần sử dụng bảng THIẾT BỊ như sau:
Bảng 1.2 Bảng thiết bị lưu giữ thông tin về các mặt hàng
Mã thiết bị Tên thiết bị Mô tả Đơn giá Kho
CPUSK478P30 Bộ vi xử lý
pentium 4
Pentium IV 3.0C GHz (Box/512Kb/Bus800)
Có thể quy định kích thước cho các thuộc tính (các trường) như sau:
Tên thuộc tính Kiểu Kích thước
Có nghĩa là chúng ta xác định miền giá trị cho các thuộc tính:
Mã thiết bị là một xâu ký tự có độ dài không quá 15
Tên thiết bị là một xâu ký tự có độ dài không quá 30
Trang 15Mô tả là một xâu ký tự có độ dài không qúa 100
Đơn giá là một số nguyên không quá 5
Kho là một xâu ký tự không quá 2
Khi viết R(a1,a2,…,an) ta có một lược đồ quan hệ R
1.1.1.2 Phụ thuộc hàm
Khái niệm về phụ thuộc hàm trong một quan hệ là rất quan trọng trong việc thiết kế mô hình dữ liệu Năm 1970 E.F Codd đã mô tả phụ thuộc hàm trong mô hình dữ liệu quan hệ, nhằm giải quyết việc phân rã không mất thông tin
Định nghĩa 1.2 (phụ thuộc hàm)
Cho R = { a1, a2, , an } là tập các thuộc tính, r = { h1, h2, , hm } là một quan hệ trên R, và A, B R (A, B là tập cột hay tập thuộc tính) Khi đó ta nói
A xác định hàm cho B hay B phụ thuộc hàm vào A trong r [2]
f
( ký pháp A B ) nếu:
r
( hi, hj r) (( a A ) ( hi(a) = hj(a)) ( b B ) ( hi(b) = hj(b) ))
nghĩa là đối số trùng nhau thì hàm có cùng giá trị
Người ta còn viết (A, B) hay A B thay cho A B
Lúc đó tập hợp tất cả (A,B) như thế xác định một họ f trên R
Nhận xét:
- Ta có thể thấy rằng B mà phụ thuộc hàm vào A, nếu hai dòng bất kỳ
mà các giá trị của tập thuộc tính A mà bằng nhau từng cặp một, thì kéo theo các giá trị trên tập thuộc tính B cũng phải bằng nhau từng cặp một
r
f
Trang 16Ví dụ 2: Xét quan hệ
Bảng 1.3 Bảng xét quan hệ THISINH
THISINH
PĐ711001 Nguyễn Thái Bình 12 Bản Nhàn Lạng Sơn 0
PĐ711002 Trần Nam Ninh 3 Kim Mã Hà Nội 3
PĐ711003 Lê Thanh Hoa 53 Hội Bà Trưng Hà Nội 3
PĐ711004 Vũ Thúy Hồng 89 Đồng Đăng Lạng Sơn 0
PĐ711005 Phạm Như Em 40 Trần hưng đạo Hải Dương 2
Trong quan hệ THISINH, dựa vào định nghĩa phụ thuộc hàm của quan hệ ta có:
{ TINH } { KHUVUC }
{ SBD } { HOTEN, DIACHI, TINH, KHUVUC }
Ý nghĩa: Khái niệm phụ thuộc hàm miêu tả một loại ràng buộc (phụ thuộc dữ liệu) xảy ra tự nhiên nhất giữa các tập thuộc tính
1.1.1.3 Hệ tiên đề Armstrong
Gọi F là tập xác định các phụ thuộc hàm đối với lược đồ quan hệ R và
từ F nếu mối quan hệ r trên R đều thoả mãn phụ thuộc hàm của F thì cũng
thoả mãn X Y Chẳng hạn F ={A B, B C} thì A C suy ra từ F
Gọi F + là bao đóng (closure) của F, tức là tập tất cả các phụ thuộc hàm được
suy diễn logic từ F Nếu F =F+ thì F là họ đầy đủ (full family) của các phụ
thuộc hàm [2]
Trang 17Để có thể xác định khoá của một lược đồ quan hệ và các suy diễn logic giữa các phụ thuộc hàm cần thiết phải tính được F+ từ F Do đó đòi hỏi phải
có các hệ tiên đề Tập các quy tắc của hệ tiên đề được Armstrong (1974) đưa
ra, thường được gọi là hệ tiên đề Armstrong
Định nghĩa 1.3
Cho R = {a1, ,an} là tập các thuộc tính
X, Y, Z R Hệ tiên đề Armstrong bao gồm 3 tính chất cơ bản sau:
A1 (phản xạ) : Nếu Y X thì X Y
A2 (tăng trưởng): Nếu Z R và X Y thì XZ YZ
Trong đó ký hiệu XZ là hợp của hai tập X và Z thay cho ký hiệu X
cấu trúc logic của mô hình dữ liệu quan hệ
Có nhiều quan hệ khác nhau nhưng các họ đầy đủ các phụ thuộc hàm của chúng lại như nhau
Có thể thấy rằng r1 và r2 khác nhau nhưng Fr1 = Fr2 vì chỉ có A B
1.1.1.4 Khóa của quan hệ, sơ đồ quan hệ, họ f
Định nghĩa 1.4 (Khoá)
Giả sử r = { h1, h2, , hm} là một quan hệ, s = < R, F > là một sơ đồ quan
hệ, trong đó R = {a1, a2, , an} là tập các thuộc tính, F là tập xác định các phụ
f
Trang 18thuộc hàm trên R Gọi Y là một họ f trên R và A R Khi ấy A là một khoá
của r ( tương ứng là một khoá của s, một khóa của Y) nếu:
A R ( A R F+, (A, R) Y)
Nghĩa là A phải thoả mãn các tính chất sau đây:
Với bất kỳ hai bộ h1, h2 r đều tồn tại một thuộc tính a A sao cho
h1(a) h2(a) Nói cách khác, không tồn tại hai bộ mà có giá trị bằng nhau trên mọi tập thuộc tính của A Điều kiện này có thể viết t1(A) t2(A) Do vậy, mỗi giá trị của A xác định là duy nhất Khi biết giá trị thuộc tính trong A sẽ biết được các giá trị của thuộc tính khác
Theo định nghĩa của Codd: Nếu có hai dòng bằng nhau trên các giá trị của khoá A thì sẽ kéo theo bằng nhau trên tất cả các cột còn lại Như vậy sẽ có hai cột bằng nhau, điều này không thể có được và nếu có thì đấy là dữ liệu nhầm lẫn
Chúng ta gọi A ( A R) là một khoá tối tiểu của r (tương ứng của s,
của Y) nếu:
+ A là một khoá của r (s,Y) tức A R
+ Bất kỳ một tập con thực sự của A không là khoá của r (s, Y) hay không tồn tại A' tập con thực sự A' A mà A' R
r
Trang 19Dù rằng dễ thấy A có thể chính bằng R nhưng người ta vẫn phải đi tìm khóa tối tiểu, tức là khóa nhỏ nhất mà không thể nhỏ hơn được nữa để việc so sánh các giá trị khóa với nhau trong quá trình tìm kiếm bản ghi là nhanh nhất Một sơ đồ quan hệ có thể có nhiều khóa, thậm chí còn có nhiều khoá tối tiểu
Ví dụ 4: Ta có bảng quan hệ sau:
Bảng 1.4 Bảng quan hệ BANHANG BANHANG
Trang 20Vậy Mr là hệ bằng nhau cực đại của r
1.1.2 Các dạng chuẩn của mô hình CSDL quan hệ 1.1.2.1 Các khái niệm cơ bản
Định nghĩa 1.6 (Dạng chuẩn 1 - 1NF)
Trang 21Giả sử r = {h1, h2, , hm} là file dữ liệu trên tập cột R = {a1, a2, , an} Khi đó r là 1NF nếu các giá trị hi(aj) là sơ cấp với mọi i, j [2]
Khái niệm sơ cấp hiểu ở đây là giá trị hi(aj) (i = 1, ,m ; j = 1, n ) không phân chia được nữa
Ví dụ 6: Xét quan hệ - Trình độ ngoại ngữ
Bảng 1.5 Xét quan hệ về trình độ ngoại ngữ
TDNN
A199002 Quốc Trung Anh, Trung
A199006 Bảo Quỳnh Pháp, Nga, Anh
Có thể thấy rằng thuộc tính NGOAINGU còn có thể được chia nhỏ hơn
ra thành từng ngoại ngữ một và sau đó có thể phân thành hai bộ phận là tên ngoại ngữ và trình độ ngoại ngữ Do vậy quan hệ ngoại ngữ cha ở dạng chuẩn
1
Định nghĩa 1.7 (Dạng chuẩn 2 - 2NF)
Quan hệ r được gọi là dạng chuẩn 2 nếu:
- Quan hệ r là dạng chuẩn 1
- Với mọi khoá tối thiểu K:
A {a} Fr với A K và a là thuộc tính thứ cấp [2]
Định nghĩa 1.8 (Dạng chuẩn 3 - 3NF)
Quan hệ r là dạng chuẩn 3 nếu:
A {a} Fr đối với A mà A+ R, a A, a K [2]
Có nghĩa là:
Trang 22- K là một khóa tối tiểu
- a là thuộc tính thứ cấp
- A không là khóa
- A {a} không đúng trong r
Định nghĩa 1.9 (Dạng chuẩn Boyce-Codd - BCNF)
Quan hệ r = { h1, h2, , hm} được gọi là dạng chuẩn Boyce - Codd nếu:
A {a} Fr , đối với những tập thuộc tính A mà A+ R, a A [2]
Nhận xét:
Qua định nghĩa ta có thể thấy dạng chuẩn BCNF là 3NF và 3NF là 2NF Chúng ta có thể đa ra các ví dụ chứng tỏ quan hệ là 2NF nhng không là 3NF và có quan hệ là 3NF nhng không là BCNF
Nói cách khác là lớp các quan hệ BCNF là lớp con thực sự của lớp các quan hệ 3NF và lớp các quan hệ 3NF này lại là lớp con thực sự của lớp các quan hệ 2NF
Đối với s = < R, F > thì các dạng chuẩn 2NF, 3NF, BCNF trong đó ta thay Fr = F+
Chú ý: Đối với sơ đồ quan hệ chúng ta không có dạng chuẩn 1NF
Ví dụ 7: Cho s = < R, F > là sơ đồ quan hệ, với R = (a1, a2, a3, a4)
Trang 23Như vậy việc phân lớp các dạng chuẩn có thể được thể hiện qua hình
Định nghĩa 1.10 (phụ thuộc hoàn toàn, phụ thuộc bộ phận)
Một phụ thuộc hàm A B đợc gọi là sơ cấp nếu không tồn tại một tập
hợp A' A sao cho A' B Trong trờng hợp này ta cũng nói B phụ thuộc
hoàn toàn vào A Nh vậy nếu A là một thuộc tính sơ cấp thì phụ thuộc hàm A
1NF
BCNF
3NF 2NF
Trang 24 B cũng là sơ cấp Trong trờng hợp ngợc lại, ta nói B phụ thuộc bộ phận vào A
Một phụ thuộc hàm A C được gọi là trực tiếp nếu không có B ( B
A và B C ) sao cho A B và B C (tức là B không phụ thuộc hàm vào A hoặc C không phụ thuộc hàm vào B) Trong trờng hợp nếu có B nh vậy thì B
đợc gọi là tập thuộc tính bắc cầu và A C là phụ thuộc bắc cầu
Định lý 1.3
Giả sử r = { h1, h2, , hm} là một quan hệ trên R = {a1, a2, , an} Khi ấy
r ở dạng chuẩn 3NF nếu và chỉ nếu:
- Quan hệ r đã ở dạng chuẩn 2NF
- Không có thuộc tính thứ cấp nào của r phụ thuộc bắc cầu vào một khoá tối tiểu
Trang 25Giả sử A B là một phụ thuộc hàm Chúng ta gọi phụ thuộc hàm này
là tầm thường nếu B A Ngợc lại trong trờng hợp này, chúng ta gọi nó là phụ thuộc hàm không tầm thường
Định lý 1.6
Giả sử s = < R, F >là một sơ đồ quan hệ trên R Khi đó s là BCNF nếu
1.1.2.5 Các thuật toán
Thuật toán 1 (kiểm tra một quan hệ r có là BCNF hay không)
Input:r = { h1, h2, , hm} là một quan hệ trên R = {a1, a2, , an}
Output: r có phải là BCNF hay không ?
Trang 27Output: s có là BCNF hay không?
Cho sơ đồ quan hệ s = < R, F >, với
R = {a1, a2, a3, a4 ,a5, a6}
{a1} {a2 }
F = {a1, a2} { a3, a4} (nhận xét: m=3
{a4} {a5, a6} phụ thuộc hàm không tầm thường)
Bước 1:
Xét phụ thuộc hàm thứ nhất, có bao đóng vế trái:
{a1}+ = {a1, a2, a3, a4 ,a5, a6} = R
Bước 2:
Xét phụ thuộc hàm thứ 2, có bao đóng vế trái:
{a1,a2}+ = {a1, a2, a3, a4,a5, a6} = R
Bước 3:
Xét tiếp phụ thuộc hàm thứ 3, có bao đóng vế trái:
{a4}+ = {a4, a5, a6} R
Như vậy tại bước 3 (m=3) phải dừng và kết luận:s không là BCNF
Trang 281.2 Tổng quan về phát hiện phần tử ngoại lai
1.2.1 Khái niệm về phần tử ngoại lai
Một cách hình thức người ta có thể định nghĩa phần tử ngoại lai (outliers) của một tập dữ liệu là các phần tử mà theo một cách nhìn nào đó có các đặc tính không giống với tập hợp đa số còn lại của tập dữ liệu Chẳng hạn trong hình 1.2 cho thấy một phần tử ngoại lai theo vị trí hình học
X Hình 1.2 Phần tử ngoại lai trong tập điểm có tọa độ (x,y) trên mặt phẳng có
giá trị tung độ y nhỏ hơn hẳn các phần tử khác của tập hợp
Các khái niệm về ngoại lai đầu tiên có nguồn gốc từ lĩnh vực thống kê Barnett và Lewis định nghĩa: một phần tử ngoại lai là một quan trắc hoặc một tập con các quan trắc mà sự xuất hiện của chúng trái ngược với những quan trắc còn lại [6] Phần tử ngoại lai cũng có thể được hiểu như một quan trắc mà giá trị của nó khác biệt quá nhiều so với những quan trắc khác gây cho người
ta nghi ngờ rằng nó đã được thực hiện bằng một kỹ thuật khác
Có nhiều cách định nghĩa và hiểu khác nhau về phần tử ngoại lai Tuy nhiên chúng có điểm chung là: phần tử ngoại lai của một file dữ liệu là những
Trang 29phần tử của file dữ liệu có sự khác biệt đáng kể đối với những phần tử còn lại
Và khi tiến hành xác định phần tử ngoại lai, trước hết người ta đưa ra định nghĩa, sau đó sẽ xây dựng phương pháp để xác định
1.2.2 Các phương pháp xác định phần tử ngoại lai
Có nhiều công trình nghiên cứu về phát hiện phần tử ngoại lai Các phương pháp chính để xác định phần tử ngoại lai bao gồm:
1- Xác định phần tử ngoại lai theo khoảng cách (Distance-Based):
Theo hướng tiếp cận này cần phải xác định một hàm đo khoảng cách (metric) giữa các phần tử trong tập dữ liệu Các phần tử ngoại lai là những phần tử nằm khá xa với tập các phần tử còn lại Điển hình cho hướng tiếp cận này là Knorr [8]
Một trong những định nghĩa của Knorr đưa ra như sau:
Cho một tập hợp dữ liệu (dataset) T; O là một phần tử thuộc T Xác định một hàm khoảng cách trong T (khoảng cách giữa hai điểm trong T) Gọi D- lân cận của O là một tập các điểm Q € T sao cho khoảng cách tới O nhỏ hơn D Một phần tử O trong tập dữ liệu T là một (M, D) – outlier nếu số phần tử của
T nằm trong D – lân cận của O không vượt quá M
2- Xác định theo thống kê (Statistical – Based):
Hướng nghiên cứu này dựa trên việc xác định các mô hình phân phối
Phần tử ngoại lai là những phần tử không tuân theo các luật này Điển hình
Trang 30cho hướng tiếp cận này là các tác giả Barnett and Lewis [6]
Ví dụ về một định nghĩa phần tử ngoại lai theo thống kê: Cho một tập dữ liệu
Các phần tử ngoại lai được xác định là các phần tử có giá trị lệch với giá trị trung bình µ vượt quá 3 (qui tắc 3 )
3- Xác định theo độ khác biệt (Deviation-Based):
Hướng nghiên cứu này dựa trên việc xác định những đặc trưng cơ bản của các phần tử trong một tập các phần tử Các phần tử có những đặc trưng khác biệt quá lớn so với các phần tử còn lại thì là các phần tử ngoại lai Điển hình cho hướng tiếp cận này là các tác giả Arning, Agrawal, Raghavan [8] Đồng thời với các hướng nghiên cứu này, các tác giả cũng đưa ra các phương pháp và thuật toán xác định phần tử ngoại lai: Phương pháp dựa theo đồ thị (Graphical methods), phương pháp dựa theo phân phối (Distribution-Based methods), phương pháp dựa theo độ sâu (Depth-Based methods), thuật toán phân cụm (Clustering Algorithm) và đặc biệt phương pháp dựa theo khoảng cách (Distance-Based methods) được Knorr phát triển trong các công trình của mình
Các phương pháp nói trên mới nghiên cứu phát hiện phần tử ngoại lai trên tập các phần tử dữ liệu nói chung, chưa đi sâu và các loại dữ liệu có cấu trúc cụ thể Mặt khác vai trò của các ràng buộc, luật biết trước chưa được đặt
ra Các tác giả nghiên cứu thường giải quyết vấn đề phát hiện phần tử ngoại lai đồng thời với việc phát hiện những luật mà các phần tử của tập dữ liệu phải tuân theo Điều này làm hạn chế đến hiệu quả khi áp dụng vào những
Trang 31trường hợp loại CSDL cụ thể hoặc khi chúng ta quan tâm nhiều đến sự vi phạm của các phần tử dữ liệu đối với một tập hợp các luật được cho trước
CHƯƠNG 2 THUẬT TOÁN XÁC ĐỊNH PHẦN TỬ NGOẠI LAI
ĐỐI VỚI CÁC DẠNG CHUẨN
2.1 Khái niệm về phát hiện phần tử ngoại lai đối với chuẩn trong
CSDL quan hệ
Trong thực tế sau khi một cơ sở dữ liệu được thiết kế xong, trong quá trình cập nhật dữ liệu xảy ra hiện tượng các quan hệ có chứa những bản ghi làm cho quan hệ không còn thỏa mãn điều kiện dạng chuẩn mà lẽ ra nó phải thỏa mãn Hiện tượng này xuất hiện khi các bộ (bản ghi) được cập nhật sai Chúng ta sẽ gọi các bản ghi này là các phần tử ngoại lại của các dạng chuẩn Việc phát hiện ra những bản ghi này và xử lý chúng có ý nghĩa làm sạch dữ liệu, giúp cho việc tiến hành khai thác dữ liệu được chính xác
Bài toán đặt ra là cho trước một quan hệ r được giả thiết là ở một dạng chuẩn nào đó Hãy xác dịnh các phần tử (bộ) của quan hệ vi phạm vào các điều kiện của dạng chuẩn (các phần tử ngoại lai đối với dạng chuẩn)
Cách thức tiến hành để phát hiện các phần tử ngoại lai theo dạng chuẩn
là chúng ta dựa vào các tiêu chuẩn, phương pháp kiểm tra, đánh giá một file quan hệ là thuộc dạng chuẩn nào
Định nghĩa phần tử ngoại lai đối với dạng chuẩn:
Giả sử cho r là quan hệ trên tập thuộc tính R được giả thiết là ở dạng chuẩn cho trước Khi đó, những cặp bộ của r làm cho r không thỏa mãn điều kiện dạng chuẩn cho trước được gọi là cặp bộ ngoại lai theo dạng chuẩn cho trước.[3]
Trang 32Một số thuật toán phát hiện các phần tử ngoại lai loại này sẽ được trình bày ở các phần dưới Khi đó, các khái niệm về hệ bằng nhau của một quan hệ
r và một số kết quả liên quan sẽ được sử dụng
2.2 Phân loại các phần tử ngoại lai trong CSDL quan hệ
Tùy theo các loại ràng buộc đối với các phần tử trong một quan hệ của CSDL quan hệ ta cũng có những loại phần tử ngoại lai đối với từng trường hợp đó (phần tử vi phạm các ràng buộc tương ứng) Tùy theo ngữ cảnh và yêu cầu của bài toán thực tế mà các khái niệm, định nghĩa, phương pháp xác định phần tử ngoại lai sẽ được đưa ra Trong phạm vi nghiên cứu của luận văn tôi chỉ đề cập tới một số dạng phần tử ngoại lai phổ biến đối với CSDL quan hệ
và có ý nghĩa trong việc ứng dụng vào một số bài toán kiểm toán và quản lý tài chính Chi tiết về khái niệm và phương pháp xác định các phần tử ngoại lai cho từng trường hợp sẽ được trình bày ở các nội dung sau Các loại phần tử ngoại lai trong CSDL quan hệ được đề cập tới trong luận văn bao gồm:
1) Phần tử ngoại lai đối với phụ thuộc hàm, trong đó được chia ra:
a Phần tử ngoại lai đối với phụ thuộc hàm nói chung
b Phần tử ngoại lai đối với khóa
c Phần tử ngoại lai đối với các dạng phụ thuộc hàm đặc biệt khác (dạng bằng nhau, dạng tỉ lệ)
2) Phần tử ngoại lai đối với hệ luật kết hợp (các ràng buộc dạng phụ thuộc hàm);
3) Phần tử ngoại lai đối với các dạng chuẩn, trong đó chia ra:
a Phần tử ngoại lai đối với dạng chuẩn 2NF
b Phần tử ngoại lai đối với dạng chuẩn 3NF
c Phần tử ngoại lai đối với dạng chuẩn BCNF 4) Phần tử ngoại lai đối với phụ thuộc hàm xấp xỉ loại 2
5) Phần tử ngoại lai đối với phụ thuộc hàm dạng xấp xỉ hồi quy
2.3 Mô hình phát hiện phần tử ngoại lai dựa theo luật đối với CSDL
quan hệ
Mô hình được trình bày ở đây dùng cho việc phát hiện các phần tử ngoại lai theo nghĩa chúng vi phạm các qui tắc, ràng buộc (luật) cho trước
Trang 33trong CSDL dạng quan hệ Các luật được đề cập ở đây mang tính chủ quan của người dùng và đã biết trước (dựa trên các quy định trong thực tế đối với từng loại dữ liệu) có ý nghĩa như hệ thống giám sát trong kỹ thuật học máy có giám sát
Trong trường hợp bài toán phát hiện phần tử ngoại lai theo nghĩa xác định các phần tử trong tập dữ liệu có sự khác biệt đáng kể so với đa số các phần tử còn lại mà chưa biết rõ luật mà các phần tử phải tuân theo thì có thể
áp dụng các phương pháp đã được trình bày để giải quyết
4) Sử dụng phương pháp được lựa chọn để xử lý bài toán
Sơ đồ được mô tả như trong hình 2.1
Nhận xét:
- So sánh với các mô hình phát hiện phần tử ngoại lai khác:
Mô hình phát hiện phần tử ngoại lai dựa theo luật được trình bày ở trên
so với các mô hình của các tác giả đi trước có những điểm khác biệt sau:
- Các mô hình trước đây không đặt ra vấn đề biết trước các luật mà các phần tử trong tập dữ liệu phải tuân theo mà thường gắn quá trình xác định phần tử ngoại lai cùng với việc phát hiện các luật nằm trong dữ liệu Các phương pháp, thuật toán phát hiện thuộc loại phát hiện không có giám sát (tương tự như phương pháp học máy không có giám sát) Trong mô hình mới được đưa ra trong Luận văn, các luật được biết trước Các phương pháp, thuật toán được đưa ra thuộc loại phát hiện có giám sát)