BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN PHẦN TỬ NGOẠI LAI ĐỐI VỚI KHÓA TRONG MÔ HÌNH CSDL QUAN HỆ VÀ ỨNG DỤNG TRONG QUẢN LÝ KẾT
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
PHẦN TỬ NGOẠI LAI ĐỐI VỚI KHÓA TRONG MÔ HÌNH CSDL QUAN HỆ VÀ ỨNG DỤNG TRONG QUẢN LÝ KẾT QUẢ TỐT NGHIỆP TẠI TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
TRẦN VĂN TRƯỜNG
HÀ NỘI – NĂM 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
PHẦN TỬ NGOẠI LAI ĐỐI VỚI KHÓA TRONG MÔ HÌNH CSDL QUAN HỆ VÀ ỨNG DỤNG TRONG QUẢN LÝ KẾT QUẢ TỐT NGHIỆP TẠI TRƯỜNG ĐẠI
HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, tất cả các số liệu và kết quả nghiên cứu trong luận văn này là hoàn toàn trung thực và chưa từng được ai công bố trong bất kì công trình nào 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
Tác giả luận văn
TRẦN VĂN TRƯỜNG
Trang 4Trong quá trình nghiên cứu của mình, mặc dù được sự hướng dẫn rất nhiệt tình, đầy trách nhiệm của TS Lê Văn Phùng và các thầy cô giáo trong Viện Đại học
Mở Hà Nội cùng với sự nỗ lực của cá nhân nhưng cũng không thể tránh được những thiếu sót Tác giả chân thành mong nhận được những ý kiến đóng góp từ quý Thầy, Cô và bạn bè đồng nghiệp
Trân trọng cảm ơn
Trần Văn Trường
Trang 5iii
MỤC LỤC
Trang
LỜI CAM ĐOAN iii
LỜI CẢM ƠN ii
DANH MỤC VIẾT TẮT v
DANH MỤC CÁC HÌNH VẼ vi
DANH MỤC CÁC BẢNG BIỂU vii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ MÔ HÌNH CSDL QUAN HỆ VÀ PHẦN TỬ NGOẠI LAI 3
1.1 Các đặc trưng nổi bật của mô hình CSDL quan hệ 3
1.2 Vai trò của Khóa trong mô hình quan hệ 4
1.2.1 Khái niệm về Khóa trong mô hình CSDL quan hệ 4
1.2.2 Vai trò của khóa trong tệp dữ liệu 5
1.3 Khái niệm khóa và phương pháp xác định khóa trong CSDL quan hệ 10
1.3.1 Khái niệm khoá 10
1.3.2 Một số thuật toán liên quan đến khóa 12
1.3.3 Hệ bằng nhau 18
1.4 Khái niệm phần tử ngoại lai và vai trò của nó trong mô hình CSDL quan hệ 20
1.4.1.Khái niệm về phần tử ngoại lai 20
1.4.2 Vai trò của phần tử ngoại lai trong mô hình CSDL quan hệ 20
1.5 Ứng dụng của các phần tử ngoại lai 23
1.6 Kết luận chương 24
CHƯƠNG 2 : PHẦN TỬ NGOẠI LAI ĐỐI VỚI KHÓA TRONG MÔ HÌNH CSDL QUAN HỆ 26
2.1 Khái niệm phần tử ngoại lai đối với phụ thuộc hàm và khóa 26
2.1.1 Khái niệm phần tử ngoại lai đối với phụ thuộc hàm 26
2.1.2 Định lý Nhận biết cặp ngoại lai đối với phụ thuộc hàm 26
Trang 6iv
2.1.3 Thuật toán xác định các cặp ngoại lai đối với tập các phụ thuộc
hàm 27
2.1.4 Phần tử ngoại lai đối với các dạng phụ thuộc hàm đặc biệt 28
2.1.5 Khái niệm phần tử ngoại lai đối với khóa 32
2.2 Mô hình phát hiện các phần tử ngoại lai 32
2.2.2 Phân loại các phần tử ngoại lai trong CSDL quan hệ 33
2.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ệ 33
2.3 Thuật toán xác định phần tử ngoại lai theo khóa 34
2.3.1 Thuật toán 34
2.4 Kết luận chương 35
CHƯƠNG 3 ỨNG DỤNG NGHIÊN CỨU VỀ PHẦN TỬ NGOẠI LAI ĐỐI VỚI KHÓA TRONG QUẢN LÝ KẾT QUẢ TỐT NGHIỆP TẠI TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP 38
3.1 Hiện trạng và yêu cầu quản lý kết quả tốt nghiệp tại Trường Đại học kinh tế-kỹ thuật công nghiệp 38
3.2 Yêu cầu và các chức năng chính của chương trình thử nghiệm ứng dụng phần tử ngoại lai đối với Khóa trong quản lý kết quả tốt nghiệp tại Trường Đại học kinh tế-kỹ thuật công nghiệp 41
3.2.1 Yêu cầu của chương trình thử nghiệm 41
3.2.2 Quy trình xử lý 42
3.3 Các giao diện chính của chương trình 46
3.4 Đánh giá kết quả thử nghiệm của chương trình 53
3.5 Kết luận chương 3 53
KẾT LUẬN 55
1 Kết quả đạt được trong luận văn 55
2 Hạn chế 55
3 Hướng phát triển 55
DANH MỤC TÀI LIỆU THAM KHẢO 56
Trang 7v
DANH MỤC VIẾT TẮT
STT Từ viết tắt Tiếng Anh Tiếng Việt
1 CNTT Information Technology Công nghệ thông tin
3 DDL Data Definition Languages Ngôn ngữa định nghĩa dữ liệu
5 SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc
Trang 8vi
DANH MỤC CÁC HÌNH VẼ
Trang Hình 1.1 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……… 20
Hình 3.1 Giao diện chính của chương trình……… 46
Hình 3.2 Giao diện chọn dữ liệu học phần ……….……… 47
Hình 3.3 Giao diện tải dữ liệu bảng học phần ………… ……… 47
Hình 3.4 Giao diện chọn file dữ liệu học phần …… ……… 48
Hình 3.5 Giao diện thông tin danh sách các học phần……… 48
Hình 3.6 Giao diện chọn bảng điểm ……… 49
Hình 3.7 Giao diện chọn file bảng điểm ……… 49
Hình 3.8 Giao diện thông tin điểm ……… 50
Hình 3.9 Giao diện thẩm định kết quả tốt nghiệp ……… 50
Hình 3.10 Giao diện chọn file dữ liệu báo cáo ……… 51
Hình 3.11 Giao diện chọn file bảng điểm lưu giáo viên ……… 51
Hình 3.12 Giao diện tổng hợp điểm ……… 52
Hình 3.13 Giao diện đối chiếu điểm ……… 52
Hình 3.14 Giao diện hiển thị môn bị sai điểm ……… 53
Trang 9vii
DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 3.1 Bảng danh sách các học phần ……… 42
Bảng 3.2 Bảng danh sách các lớp ……… 42
Bảng 3.3 Bảng danh sách sinh viên ……… 42
Bảng 3.4 Bảng điểm ……… 43
Bảng 3.5 Bảng kết quả ……… 43
Bảng 3.6 Bảng báo cáo ……… 44
Bảng 3.7 Bảng hợp giữa bảng báo cáo và bảng kết quả ……… 44
Bảng 3.8 Bảng điểm lưu ……… 45
Trang 101
MỞ ĐẦU
1 Tính cấp thiết của luận văn
Có rất nhiều tri thức còn tiềm ẩn trong dữ liệu và chưa được khai thác một cách có hiệu quả [2,4] Riêng lĩnh vực khám phá phần tử “ngoại lai” mới bước đầu được thực sự quan tâm nghiên cứu Mặc dù nó có khả năng được ứng dụng trong nhiều lĩnh vực trong cuộc sống, chẳng hạn như phát hiện những thẻ bất thường trong hệ thống ngân hàng, những tuyến đường bất ổn không hợp lý trong giao thông, ứng dụng trong hệ thống an ninh, dự báo thời tiết, trong thị trường chứng khoán, trong lĩnh vực thể thao, y tế, giáo dục,… Tuy nhiên, với số lượng dữ liệu được tập trung và lưu trữ trong cơ sở dữ liệu (CSDL) ngày càng lớn thì việc tìm kiếm các ngoại lệ, hoặc các phần tử ngoại lai, càng trở nên cấp thiết hơn nhiều, đặc biệt là trong thời đại công nghệ thông tin (CNTT) ngày nay
Do tính hấp dẫn và tính thời sự của khai phá dữ liệu, đặc biệt là phát hiện
phần tử ngoại lai trong CSDL quan hệ, tôi đã chọn đề tài “Phần tử ngoại lai đối với
Khóa trong mô hình CSDL quan hệ và ứng dụng trong quản lý kết quả tốt nghiệp tại Trường Đại học kinh tế-kỹ thuật công nghiệp” là luận văn cao học của mình
Trong đó nghiên cứu cơ sở lý luận về khai phá dữ liệu, tâm điểm là phát hiện phần
tử ngoại lai, và ứng dụng vào việc hỗ trợ quản lý kết quả tốt nghiệp tại Trường Đại học kinh tế- kỹ thuật công nghiệp, nơi mà tôi đang công tác
2 Mục tiêu nghiên cứu
Luận văn được hình thành nhằm các mục tiêu sau:
- Tìm các phương pháp phát hiện phần tử ngoại lai đối với khóa trong CSDL quan hệ;
- Hỗ trợ thẩm định kết quả tốt nghiệp cho học sinh Trường Đại học kinh tế-
kỹ thuật công nghiệp
3 Đối tượng nghiên cứu
Đối tượng nghiên cứu trong luận văn là phần tử ngoại lai trong CSDL quan
hệ
4 Phạm vi nghiên cứu
Trang 112
Phạm vi nghiên cứu trong luận văn chỉ bó hẹp trong vùng về phần tử ngoại lai đối với khóa trong CSDL quan hệ
5 Phương pháp nghiên cứu
- Kết hợp lý thuyết với đánh giá thưc nghiệm
- Thu thập tài liệu, phân tích, suy luận, tổng hợp, đánh giá
- Phân tích bài toán và ứng dụng và chọn lọc thuật toán thử nghiệm thích hợp
6 Dự kiến kết quả đạt được
- Xác định phần tử ngoại lai đối với phụ thuộc khóa trong cơ sở dữ liệu quan
hệ
- Xây dựng được một chương trình demo hỗ trợ kiểm tra kết quả tốt nghiệp tại trường Đại học Kinh tế Kỹ thuật Công nghiệp có ứng dụng việc xác định phần tử ngoại lai đối với phụ thuộc hàm và khóa trong cơ sở dữ liệu quan hệ
Trang 123
CHƯƠNG 1 TỔNG QUAN VỀ MÔ HÌNH CSDL QUAN HỆ
VÀ PHẦN TỬ NGOẠI LAI
1.1 Các đặc trưng nổi bật của mô hình CSDL quan hệ
Mô hình dữ liệu quan hệ được Codd đề xuất năm 1970 Nó đã tạo ra một cuộc
cách mạng mới trong lĩnh vực CSDL và nhanh chóng thay thế các mô hình dữ liệu trước đó [4]
Mô hình dữ liệu quan hệ tương đối đơn giản và dễ hiểu Mô hình dữ liệu quan
hệ là mô hình dữ liệu mà cốt lõi của nó là CSDL quan hệ Một CSDL quan hệ là một tập của một hoặc nhiều quan hệ, trong đó mỗi một quan hệ là một bảng Mô hình quan hệ sử dụng một tập các bảng để biểu diễn cả dữ liệu và mối liên hệ giữa những dữ liệu này Bảng có n cột và mỗi cột có một tên duy nhất
Các ưu điểm cơ bản của mô hình dữ liệu quan hệ so với các mô hình khác [4]:
- Được xem là mô hình có cơ sở toán học vững chắc nhất
- Đang giữ vai trò thống trị và là nền tảng cho hàng loạt các hệ quản trị CSDL nổi tiếng và phổ biến như Oracle, DB2, MS SQL server, Access
- Tương đối đơn giản dễ hiểu, một CSDL quan hệ là một tập quan hệ, biểu diễn đơn giản bằng bảng gồm các cột và hàng giúp NSD mới làm quen với CSDL
có thể hiểu được nội dung CSDL
- Cung cấp các khái niệm chặt chẽ được hình thức hoá cao, cho phép áp dụng các công cụ toán học, các thuật toán tối ưu trên dữ liệu
-Tuy được trừu tượng hoá cao nhưng chỉ dừng ở mức logic, nghĩa là độc lập với mức vật lý- mức cài đặt, với các thiết bị lưu trữ nên đảm bảo được tính độc lập giữa dữ liệu và chương trình ứng dụng
- Nhờ biểu diễn dữ liệu thống nhất, nó có thể cho phép sử dụng các ngôn ngữ thao tác dữ liệu ở mức cao, dễ sử dụng và dễ chuẩn hoá
-NSD có thể tạo và sửa các bản ghi trong CSDL, có thể tạo báo cáo, độc lập với nhóm phát triển phần mềm
Trang 13dữ liệu Nhờ vậy NSD có thể làm việc độc lập với nhóm lập trình
-Những CSDL quan hệ thông dụng nhất đều sử dụng ngôn ngữ SQL (structured query language)
1.2 Vai trò của Khóa trong mô hình quan hệ
1.2.1 Khái niệm về Khóa trong mô hình CSDL quan hệ
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ụ thuộ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 [4]:
A →r f 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 [4]:
+ A là một khoá của r (s,Y) tức A → R
Trang 14Ký hiệu Kr , Ks , Ky là tập tất cả các khoá tối tiểu của r (s, Y)
1.2.2 Vai trò của khóa trong tệp dữ liệu
Khi giải quyết các bài toán thông tin quản lý, người ta thường sử dụng các hệ quản trị cơ sở dữ liệu mà trong đó chứa cơ sở dữ liệu quan hệ Các phép xử lý đối với bài toán này thường là tìm kiếm bản ghi sau đó thêm bản ghi mới, thay đổi nội dung bản ghi hoặc xoá bản ghi Trong các thao tác trên, việc tìm kiếm bản ghi là rất quan trọng Muốn tìm được bản ghi trong file dữ liệu thì chúng ta phải xây dựng khoá của file dữ liệu đó
Khoá chính là hình ảnh của cột mã số hay số thứ tự (vì số thứ tự không thể
trùng nhau được)
Khóa đóng một vai trò rất quan trọng vì nhờ có nó người ta mới tìm kiếm được (tìm kiếm bản ghi) Phép toán tìm kiếm bản ghi trong file dữ liệu là phép toán quan trọng nhất vì chỉ sau khi tìm kiếm xong thì người ta mới tiến hành loại bỏ bản ghi ấy hoặc bổ sung một bản ghi mới vào trước hoặc sau bản ghi mà ta đã tìm được
Dù 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
Có hai thuật toán tìm khoá của quan hệ và lược đồ quan hệ Tìm khoá ở đây chính là tìm khoá tối tiểu
Trang 156
Thuật toán Tìm khoá tối tiểu của một quan hệ [4]:
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 khoá tối tiểu của r
Phương pháp:
Bước 1: Tính E r= {A1, A2 } trong đó E r là các hệ bằng nhau
Bước 2: Tính M r là các hệ bằng nhau cực đại
Bước 3: Lần lượt tính các thuộc tính K0, K1, , Kn theo qui tắc:
K0 = R ={a1, , an } hoặc K0 là một khoá đã biết
Ki =
Bước 4: Đặt K = Kn Khi đó K là khoá tối tiểu
Nhận xét: Nếu ta thay đổi thứ tự các thuộc tính của r bằng thuật toán này chúng ta có thể tìm được một khoá tối tiểu khác
Trang 167
Vậy {C, E} là một khoá tối tiểu của r
Cũng ví dụ trên nhưng ta thay đổi tập thuộc tính theo thứ tự là {A, C, E, B, D} Ta
đi tìm khoá tối tiểu của r
Bước 1 và bước 2 giống như trên
Vậy khoá tối tiểu của r là {E, B}
Như vậy thay đổi thứ tự của các thuộc tính, ta sẽ có những tập khoá tối tiểu khác nhau
Trang 178
Vậy khoá tối tiểu của r là {D, E}
*Các thuộc tính được lấy theo thứ tự r2 = {E, D, C, B, A}
Vậy khoá tối tiểu khác của quan hệ là {B, A}
Thuật toán Tìm khoá tối tiểu cho một sơ đồ quan hệ [4]
Vào : sơ đồ quan hệ s = <R, F> trong đó
F là tập các phụ thuộc hàm
R={a1, , an}là tập các thuộc tính
Ra: K là tối tiểu của s
Phương pháp: Tính liên tiếp các tập thuộc tính K0, K1, , Kn như sau: K0 =
R = {a1, , an}
Ki =
K = Kn là khoá tối tiểu
Ta có thể dùng công thức tương đương:
Ki-1 nếu Ki-1 − {ai} → R ∉ F +
K i-1 − {a i } nếu ngược lại
K i-1 − {a i } nếu K i-1 − a i + = R
K i-1 nếu ngược lại
Trang 189
Giả sử s = < F, R > là một lược đồ quan hệ trong đó:
R = {a, b, c, d}
F = {{a, b} → {d},{c} → {b}}
Tìm khoá tối tiểu của sơ đồ quan hệ
Áp dụng thuật toán trên ta có:
Vậy khoá tối tiểu là {a, c}
Trong mô hình CSDL quan hệ, khái niệm hệ bằng nhau và hệ bằng nhau cực đại đóng một vai trò quan trọng trong các thuật toán tìm khóa cho một quan hệ r
Giả sử r = {h1, h2, , hm} là một quan hệ trên R = {a1, a2, , an}
Đặt Er = {Eij : 1 ≤ i<j ≤ | r |} trong đó Eij = {a ∈ R: hi(a) = hj(a)}, | r | = m
Er được gọi là hệ bằng nhau của r
Giả sử Mr = {A∈P (R) : ∃ Eij = A,∃Epq :A ⊂ Epq}
Trang 19Vậy Mr là hệ bằng nhau cực đại của r
1.3 Khái niệm khóa và phương pháp xác định khóa trong CSDL quan hệ
1.3.1 Khái niệm khoá
Cho 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ụ thuộ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 [4]:
A →r f R (A → R ∈ F+, (A, R) ∈Y)
Nghĩa là A phải thoả mãn các tính chất sau đây:
Trang 2011
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 [4]:
+ 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
Dù 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ụ 1.6 : Cho bảng quan hệ sau:
Trang 2112
Trong bảng trên mã số mặt hàng (MAHANG) là khoá Mỗi giá trị mã hàng đều xác định duy nhất một loại mặt hàng trong quan hệ BAN_HANG
Ký hiệu Kr , Ks , Ky là tập tất cả các khoá tối tiểu của r (s, Y)
1.3.2 Một số thuật toán liên quan đến khóa
1.3.2.1 Một số thuật toán tính bao đóng
Một vấn đề thường xuyên xảy ra là đối với một sơ đồ quan hệ cho trước (s
= <R, F>), và một phụ thuộc hàm A → B, chúng ta muốn biết A → B có là phần tử của F+ hay không Để trả lời câu hỏi này chúng ta cần tính bao đóng F+của tập các phụ thuộc hàm F
Tuy nhiên tính F+ trong trường hợp tổng quát là rất khó khăn và tốn kém thời gian vì các tập phụ thuộc hàm thuộc F+ là rất lớn cho dù F có thể là nhỏ Chẳng hạn,
F = {A → B1, A → B2, A → Bn }, khi đó F+ bao gồm cả những phụ thuộc hàm A
→ Y với Y ⊆ {B1 ∪ B2 ∪ ∪ Bn}, như vậy ta sẽ có 2n tập con Y Trong khi đó việc tính bao đóng của tập thuộc tính A lại không khó Theo kết quả đã trình bầy ở trên thì việc kiểm tra A → B ∈ F+ sẽ được thế bởi việc tính A+
Thuật toán 1: Tính bao đóng của một tập các thuộc tính đối với tập các phụ thuộc hàm trên sơ đồ quan hệ [4]
Input : s = < R, F > là một sơ đồ quan hệ trong đó
R = (a1, a2, , an) là tập hữu hạn các thuộc tính
2) Ai = Ai-1 ∪ {a} nếu ∃ (C → D) ∈ F, {a} ∈ D và C ⊆ Ai-1
3) Rõ ràng A = A0 ⊆ A1 ⊆ ⊆ Ai ⊆ R và R hữu hạn nên tồn tại i sao cho
Ai = Ai+1
Trang 22Thuật toán 2: Tính bao đóng cho một tập bất kỳ trên quan hệ r [4]
Input: r = {h1, h2, , hm} là một quan hệ trên R = {a1, a2, , an}, A ⊆ R
Output : A+r
Bước 1: Từ r xây dựng một tập Er = { Eij : 1 ≤ i < j ≤ m }
Eij = {a : a ∈ R và hi(a) = hj(a)}
Bước 2: Từ Er xây dựng một tập
M = {B ∈ P(R) : Tồn tại Eij ∈ Er : Eij = B}
ở đây P(R) là tập các tập con của R
Bước 3: A+r được tính như sau:
∩ B nếu tồn tại B ∈ M : A ⊆ B, (giao của tất cả các tập
A+r = A ⊆ B trong M chứa nó (A))
R ngược lại
Có thể thấy rằng Eij = ∅ (trong trường hợp hai dòng i và j không có cột nào trùng nhau về giá trị, có nghĩa rằng chúng khác nhau hoàn toàn)
Trang 2314
Không bao giờ có Eij = R (có nghĩa rằng Eij = toàn bộ không gian), vì nếu xẩy
ra thì có hai dòng trùng nhau, theo định nghĩa quan hệ thì không cho phép có hai dòng trùng nhau
E12 ={B, C}, E13 = {D, E}, E14 = {D}
E23 = {A}, E24 ={E}
E34 = {B, C, D}
M = {{A}, {B, C}, {B, C, D}, {D}, {D, E}, {E}}
Vậy {B, C}+r = {B, C} ∩ {B, C, D} ={B, C}
1.3.2.2 Một số thuật toán tính khóa tối tiểu
Khi giải quyết các bài toán thông tin quản lý, người ta thường sử dụng các hệ quản trị cơ sở dữ liệu mà trong đó chứa cơ sở dữ liệu quan hệ Các phép xử lí đối với bài toán này thường là tìm kiếm bản ghi sau đó thêm bản ghi mới, thay đổi nội dung bản ghi hoặc xoá bản ghi Trong các thao tác trên, việc tìm kiếm bản ghi là rất quan trọng Muốn tìm được bản ghi trong file dữ liệu thì chúng ta phải xây dựng khoá của file dữ liệu đó
Có hai thuật toán tìm khoá của quan hệ và lược đồ quan hệ Tìm khoá ở đây chính là tìm khoá tối tiểu
Thuật toán 3: Tìm khoá tối tiểu của một quan hệ [4]
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 khoá tối tiểu của r
Trang 2415
Phương pháp:
Bước 1: Tính E r= {A1, A2 } trong đó E r là các hệ bằng nhau
Bước 2: Tính M r là các hệ bằng nhau cực đại
Bước 3: Lần lượt tính các thuộc tính K0, K1, , Kn theo qui tắc:
K0 = R ={a1, , an } hoặc K0 là một khoá đã biết
Ki =
Bước 4: Đặt K = Kn Khi đó K là khoá tối tiểu
Nhận xét: Nếu ta thay đổi thứ tự các thuộc tính của r bằng thuật toán này chúng ta có thể tìm được một khoá tối tiểu khác
Vậy {C, E} là một khoá tối tiểu của r
K i-1 - { a i } nếu: không tồn tại A ∈ M r : K i-1 - {a i } ⊆ A
(bao Ki)
Ki-1 trong trường hợp ngược lại
Trang 2516
Cũng ví dụ trên nhưng ta thay đổi tập thuộc tính theo thứ tự là {A, C, E, B, D} Ta
đi tìm khoá tối tiểu của r
Bước 1 và bước 2 giống như trên
Vậy khoá tối tiểu của r là {E, B}
Như vậy thay đổi thứ tự của các thuộc tính, ta sẽ có những tập khoá tối tiểu khác nhau
Bước 1: E12 = {B, C} E13 = {E} E14 = ∅
E23 = {A, D} E24 = {E} E34 = {B}
Trang 2617
Xét K4 = K3 - {D} = {E} ⊂ P(Mr) ⇒ K4 = K3 = {D, E}
Xét K5 = K4 - {E} = {D} ⊂ P(Mr) ⇒ K5 = K4 = {D, E}
Vậy khoá tối tiểu của r là {D, E}
*Các thuộc tính được lấy theo thứ tự r2 = {E, D, C, B, A}
Vậy khoá tối tiểu khác của quan hệ là {B, A}
Thuật toán 4: Tìm khoá tối tiểu cho một sơ đồ quan hệ [4]
Vào : sơ đồ quan hệ s = <R, F> trong đó
F là tập các phụ thuộc hàm
R={a1, , an}là tập các thuộc tính
Ra: K là tối tiểu của s
Phương pháp: Tính liên tiếp các tập thuộc tính K0, K1, , Kn như sau: K0 =
R = {a1, , an}
Ki =
K = Kn là khoá tối tiểu
Ta có thể dùng công thức tương đương:
K i-1 nếu K i-1 − {a i } → R ∉ F+
K i-1 − {a i } nếu ngược lại
Ki-1 − {a i} nếu Ki-1 − ai+ = R
K i-1 nếu ngược lại
Trang 27Tìm khoá tối tiểu của sơ đồ quan hệ
Áp dụng thuật toán trên ta có:
Giả sử r = {h1, h2, , hm} là một quan hệ trên R = {a1, a2, , an}
Đặt Er = {Eij : 1 ≤ i<j ≤ | r |} trong đó Eij = {a ∈ R: hi(a) = hj(a)}, | r | = m
Er được gọi là hệ bằng nhau của r
Trang 28Vậy Mr là hệ bằng nhau cực đại của r
Trang 2920
1.4 Khái niệm phần tử ngoại lai và vai trò của nó trong mô hình CSDL quan hệ
1.4.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 lại (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 [1,2,7] Chẳng hạn trong Hình 1.1 cho thấy một phần tử ngoại lai theo vị trí hình học
Hình 1.1 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 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 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 phầ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.4.2 Vai trò của phần tử ngoại lai trong mô hình CSDL quan hệ
Cho một bảng dữ liệu r trên một tập thuộc tính R Kí hiệu T là tập các qui tắc, ràng buộc (gọi là các luật) mà các phần tử của r phải tuân theo Phần tử ngoại
Trang 30Phần tử ngoại lai giữ một vai trò đặc biệt quan trọng trong mô hình CSDL
quan hệ, đặc biệt là đối với phụ thuộc hàm của bảng dữ liệu r
Cho r là một bảng dữ liệu trên sơ đồ quan hệ (R,F) Giải thiết r là một quan
hệ Ta gọi một cặp bộ t1, t2 ∈ r không thỏa mãn điều kiện phụ thuộc hàm của F là cặp phần tử ngoại lai đối với phụ thuộc hàm của bảng dữ liệu r
Người ta biểu diễn một cách hình thức như sau [6,7]:
Giả sử X → Y là một phục thuộc hàm thuộc F Khi đó cặp t1, t2 ∈r là cặp phần tử ngoại lai đối với phụ thuộc hàm X → Y nếu:
t1(X)= t2(X) và t1(Y) ≠ t2(Y)
Khái niệm phần tử ngoại lai đi cùng với mô hình CSDL quan hệ ngày nay đã ngày càng đi sâu vào mọi mặt trong đời sống kinh tế -xã hội Chúng dùng để:
- Phát hiện xâm nhập (phát hiện các hoạt động nguy hiểm (phá vỡ thâm nhập
và các hình thức khác của máy tính lạm dụng) trong một hệ thống máy tính liên quan từ một vấn đề bảo mật Khác với hệ thống hành vi bình thường, phát hiện xâm nhập là một ứng cử viên hoàn hảo cho việc áp dụng các kỹ thuật phát hiện ngoại lai)
- Phát hiện gian lận (liên quan đến hoạt động tội phạm xảy ra trong các tổ chức thương mại, các tổ chức như ngân hàng, các công ty thẻ tín dụng, cơ quan bảo hiểm, các công ty điện thoại di động, thị trường chứng khoán, … Người sử dụng độc hại có thể là khách hàng thực tế của tổ chức hoặc phải dùng đến hành vi trộm cắp danh tính (giả làm khách hàng) Các hoạt động phát hiện nhằm mục đích phát
Trang 31- Phát hiện gian lận trong y tế công cộng (Dữ liệu có thể có giá trị ngoại lai
do một số lý do như tình trạng bệnh nhân bất thường hoặc thiết bị đo đạc lỗi hoặc lỗi ghi âm Hầu hết các ngoại lai hiện tại kỹ thuật phát hiện trong này nhằm mục đích phát hiện tại miền hồ sơ bất thường (ngoại lai điểm)).- Phát hiện thiệt hại công nghiệp (Đơn vị công nghiệp bị thiệt hại do liên tục sử dụng và hao mòn thông thường, thiệt hại như vậy cần phải được phát hiện sớm để ngăn chặn sự leo thang hơn nữa và gây tổn thất dẫn đến thiệt hại Các dữ liệu trong phạm vi này thường là cảm biến dữ liệu được ghi bằng các cảm biến khác nhau và thu thập cho phân tích
Ví dụ như Phát hiện lỗi trong đơn vị cơ khí và thành phần như động cơ, tua bin, dầu chảy trong đường ống, Các vết nứt trong dầm, thủng trong khung máy bay, dữ
liệu không lường trước được sử dụng cho lỗi phát hiện ở các đơn vị cơ khí…)
- Phát hiện gian lận trong Xử lý hình ảnh (Phát hiện ngoại lai ở đây nhằm phát hiện những thay đổi trong một hình ảnh theo thời gian (phát hiện chuyển động) hoặc trong các khu vực mà xuất hiện bất thường trên hình ảnh tĩnh Tên miền này bao gồm các hình ảnh vệ tinh, công nhận chữ số, quang phổ, hình ảnh X quang vú,
và giám sát video Các yếu tố được gây ra bởi chuyển động hoặc chèn đối tượng hoặc thiết bị lỗi Các dữ liệu có không gian cũng như đặc điểm thời gian Mỗi điểm
dữ liệu có một vài các thuộc tính liên tục như màu sắc, kết cấu , …Các giá trị ngoại lai thú vị là những điểm hoặc bất thường hoặc khu vực trong ảnh (điểm và sự chênh lệch theo ngữ cảnh))
- Phát hiện sai sót trong Mạng cảm biến (Ngoại lai trong dữ liệu thu thập hoặc có thể bao hàm một hoặc nhiều cảm biến bị lỗi (Các ứng dụng cảm biến phát hiện lỗi), hoặc các cảm biến sự kiện phát hiện (ứng dụng phát hiện xâm nhập))
Trang 3223
1.5 Ứng dụng của các phần tử ngoại lai
Đối với một số ứng dụng khám phá tri thức, các sự kiện hiếm có thường được quan tâm hơn các sự kiện thông thường, chẳng hạn việc phát hiện các thẻ tín dụng giả, theo dõi các hoạt động tội phạm trong thương mại điện tử
Sau sự tấn công các trang Web năm 2000 và đặc biệt sự kiên khủng bố tấn công nước Mỹ ngày 11/9/2001, người ta quan tâm nhiều đến việc bảo mật máy tính, bao gồm cả phần cứng, phần mềm và cả hệ thống mạng (ví dụ: phát hiện sự xâm nhập) Bảo mật hệ thống mạng bao gồm tần suất của các tấn công dịch vụ mà một sự kiện bên ngoài được phát hiện trong gói dữ liệu hệ thống mạng (ví dụ: Số lượng lớn không bình thường các gói dữ liệu từ một nguồn lạc danh) Công cụ thống kê có thể được dùng để tìm ra một thói quen là ngoại lệ tương ứng với một lịch sử đã biết (ví dụ: Những thói quen điển hình theo đăng nhập, sử dụng CPU và truy xuất dữ liệu)
Đối với các hệ thống thanh toán điện tử bao gồm các ứng dụng thẻ tín dụng, thẻ điện thoại và thẻ thông minh, chúng ta quan tâm tới việc phát hiện thẻ giả
Thêm một ứng dụng nữa trong việc phát hiện phần tử ngoại lai là ứng dụng
để nghiên cứu cổ phiếu, chứng khoán Nhiều cá nhân và công ty đã từng thử dự đoán giá trị các cổ phiếu được niêm yết dựa trên việc tìm kiếm các phần tử ngoại lai (ví dụ: Giả sử phần lớn giá các cổ phiếu ở một ngành đang lên cao ở một thị trường ảo và có các thị trường khác (trong cùng một ngành) mà giá cổ phiếu biến động đột ngột, các phẩn tử ngoại lai như thế nên được xác định và sau đó các nhà phân tích có thể dựa vào các nguyên nhân để giải thích sự quá nóng hoặc quá lạnh của thị trường, để xác định khuynh hướng của cố phiếu có thể mua vào hay bán ra hoặc tích lũy) Sự có mặt của các phần tử ngoại lai trong các cổ phiếu của các quỹ chung, có thể giúp làm đa dạng hóa bảng niêm yết cổ phiếu trên sàn chứng khoán trong cùng một loại
Trên các thị trường chứng khoán thế giới, các giao dịch được thực hiện mỗi ngày lên đến con số hàng triệu giao dịch, các nhà quản lý bảng niêm yết, các doanh