TRƯỜNG ĐẠI HỌC s ư PHẠM HÀ NỘI 2• • • • KHOA CÔNG NGHỆ THÔNG TINTẠ THỊ NHƯ BAO ĐÓNG VÀ CÁC THUẬT TOÁN TÌM BAO ĐÓNG TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC• • •
Trang 1TRƯỜNG ĐAI HOC SƯPHAM HÀ NÔI 2• • • • KHOA CÔNG NGHỆ THÔNG TIN
TA THI NHƯ • *
BAO ĐÓNG VÀ CÁC THUẬT TOÁN TÌM BAO ĐÓNG TRONG MÔ HÌNH
Chuyên ngành: Sư phạm Tỉn học
HÀ NỘ I-NĂM 2016
Trang 2TRƯỜNG ĐẠI HỌC s ư PHẠM HÀ NỘI 2• • • • KHOA CÔNG NGHỆ THÔNG TIN
TẠ THỊ NHƯ
BAO ĐÓNG VÀ CÁC THUẬT TOÁN TÌM BAO ĐÓNG TRONG MÔ HÌNH DỮ
LIỆU DẠNG KHỐI
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC• • • •
Chuyên ngành: Sư phạm Tin học
Người hướng dẫn khoa học
PGS TS Trịnh Đình Thắng
HÀ NỘI - NĂM 2016
Trang 3LỜI CẢM ƠN
Để hoàn thành khóa luận này em xin gửi lời biết ơn sâu sắc đến PGS.TS Trịnh Đình Thắng, thày là người trực tiếp hướng dẫn, định hướng và tận tình chỉ bảo em trong suốt quá trình học tập và nghiên cứu đề tài
Em cũng xin gửi lời cảm ơn chân thành đến các thầy cô trong khoa Công nghệ thông tin trường Đại học Sư phạm Hà Nội 2 đã tận tình dạy dỗ, truyền đạt tri thức cho em trong suốt 4 năm em học tập tại trường Đó là những kiến thức sẽ giúp em trong cuộc sống và công việc sau này
Em cũng xin bày tỏ sự biết ơn, cảm ơn đến gia đình, bạn bè đã luôn đồng hành, giúp đỡ và tạo điều kiện cho em để em có thể hoàn thành khóa luận này
Trong quá trình thực hiện đề tài không thể tránh khỏi những thiếu sót
Em mong nhận được sự góp ý của quý thầy cô và bạn bè
Hà Nội, ngày 04 tháng 05 năm 2016
Sinh viên
Tạ Thị Như
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung khóa luận là kết quả nghiên cứu của tôi dưới sự hướng dẫn khoa học của PGS.TS Trịnh Đình Thắng Trong khi nghiên cứu có kế thừa thành quả của các nhà khoa học và các nhà nghiên cứu Các số liệu, kết quả nêu trong luận văn là trung thực, rõ ràng
Neu tôi sai tôi xin chịu hoàn toàn trách nhiệm
Hà Nội, ngày 04 tháng 05 năm 2016
Sinh viên
Trang 5MỤC LỤC
MỞ ĐẦU ’ * 1
CHƯƠNG 1 : MÔ HÌNH DỮ LIỆU QUAN HỆ 3
1.1 Các khái niệm 3
1.1.1 Thuộc tính và miền thuộc tính 3
1.1.2 Quan hệ và lược đồ quan hệ 3
1.2 Các phép toán đại số trên lược đồ quan hệ 4
1.2.1 Phép hợp 4
1.2.2 Phép giao 5
1.2.3 Phép trừ 6
1.2.4 Tích Đề - các 7
1.2.5 Phép chiếu 8
1.2.6 Phép chọn 9
1.2.7 Phép kết nối 10
1.2.8 Phép c h ia 10
1.3 Phụ thuộc h à m 11
1.3.1 Các tính chất của phụ thuộc hàm 12
1.3.2 Hệ tiên đề Armsừong 12
1.4 Bao đóng trong lược đồ quan h ệ 13
1.4.1 Bao đóng của tập phụ thuộc hàm 13
1.4.2 Bao đóng của tập thuộc tính 13
CHƯƠNG 2: MÔ HÌNH DỮ LIỆU DẠNG KHỐI 15
2.1 Khối, Lược đồ khối, Lát cắt 15
2.1.1 Khối, Lược đồ khố i 15
2.1.2 Lát cắt 16
2.2 Các phép toán Đại số quan hệ trên khối 17
2.2.1 Phép hợp 17
2.2.2 Phép giao 17
2.2.3 Phép trừ 18
2.2.4 Tích Đe - các 18
2.2.5 Tích Đề - các theo tập chỉ số 18
2.2.6 Phép chiếu 19
2.2.7 Phép chọn 19
Trang 62.2.8 Phép kết nối 20
2.2.9 Phép chia 21
2.3 Phụ thuộc hàm 21
2.4 Bao đóng trong mô hình dữ liệu dạng khối 21
2.4.1 Bao đóng của tập phụ thuộc hàm 21
2.4.2 Bao đóng của tập thuộc tính chỉ số 22
CHƯƠNG 3: TÍNH CHẤT CỦA BAO ĐÓNG VÀ CÁC THUẬT TOÁN TÌM BAO ĐÓNG TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI 26
3.1 Tính chất của bao đóng ừong mô hình dữ liệu dạng khối 26
3.2 Chương trình Demo tính bao đóng của tập thuộc tính chỉ số ừong mô hình dữ liệu dạng khối 29
3.2.1 Giới thiệu bài toán 29
3.2.2 Các thuật toán tìm bao đóng 29
3.2.3 Ngôn ngữ lập trình c # 31
3.2.4 Giao diện chương trình 34
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 39
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ CÁI VIẾT TẮT
Trong khóa luận này dùng thống nhất các ký hiệu và các chữ viết tắt sau:
Trang 8DANH MỤC CÁC BẢNG
Bảng 1.1 Bảng ví dụ về quan hệ r 3
Bảng 1.2 Bảng quan hệ KHACHHANG 4
Bảng 1.3 Biểu diễn quan hệ Khachhangl Khachhang2 5
Bảng 1.4 Biểu diễn quan hệ Khachhangl n Khachhang2 6
Bảng 1.5 Biểu diễn quan hệ Khachhangl - Khachhang2 6
Bảng 1.6 Biểu diễn quan hệ Khachhang2 - Khachhangl 7
Bảng 1.7 Biểu diễn quan hệ г X s 7
Bảng 1.8 Bảng khách hàng 8
Bảng 1.9 Biểu diễn phép chọn ổ Địa ch i= ‘BN‘ (Khachhang) 9
Bảng 1.10 Quan hệ SINHVIEN 11
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, công nghệ thông tin đang có những bước phát triển mạnh
mẽ, việc ứng dụng công nghệ thông tin đã được áp dụng rộng rãi và đem lại hiệu quả thiết thực trong nhiều lĩnh vực khác nhau như: học tập, kinh doanh, khoa học kĩ thuật, quản lý Trong đó, cơ sở dữ liệu lại là một trong những lĩnh vực nghiên cứu đóng vai trò nền tảng trong sự phát triển của Công nghệ thông tin Từ lâu lĩnh vực này đã được đề xuất và nghiên cứu Và để xây dựng được một hệ thống cơ sở dữ liệu tốt thì phải có các mô hình dữ liệu thích hợp Hiện nay đã có rất nhiều các mô hình được sử dụng trong các hệ thống cơ sở
dữ liệu như: mô hình thực thể - liên kết, mô hình mạng, mô hình phân cấp,
mô hình quan hệ Trong đó, mô hình quan hệ được quan tâm đặc biệt hơn do
nó được xây dựng trên cơ sở toán học chặt chẽ Tuy nhiên mô hình này chưa
đủ đáp ứng với các ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc phi tuyến Vì vậy, người ta đã đề xuất và nghiên cứu ra mô hình dữ liệu dạng khối, mô hình này được coi là một mở rộng của mô hình dữ liệu quan hệ
Do bao đóng có vai trò rất quan ừọng trong cơ sở dữ liệu nên để phát
triển và hoàn thiện mô hình dữ liệu dạng khối tôi chọn đề tài là “Bao đóng và các thuật toán tìm bao đóng trong mô hình dữ liệu dạng khối“ cho khóa
luận của mình
2 Mục đích nghiền cứu
- Tìm hiểu về mô hình dữ liệu dạng khối, bao đóng và các thuật toán tìm bao đóng trong mô hình dữ liệu dạng khối
- Xây dựng chương trình demo tìm bao đóng của tập thuộc tính chỉ số
3 Nhiệm vụ nghiên cứu
- Tìm hiểu về mô hình dữ liệu dạng khối
- Xây dựng chương trình demo tìm bao đóng của tập thuộc tính chỉ số trên lược đồ khối
4 Đối tượng và phạm vỉ nghiền cứu
- Đối tượng: Bao đóng trong mô hình dữ liệu dạng khối
Trang 10- Phạm vi: Mô hình dữ liệu dạng khối.
5 Ý nghĩa khoa học và thực tiễn của đề tài
- Xây dựng demo mô phỏng thuật toán tìm bao đóng trong mô hình dữ liệu dạng khối
- Sử dụng kết quả tìm bao đóng để tìm khóa trong quá trình xây dựng cơ
sở dữ liệu thực tế
6 Phương pháp nghiên cứu
Kết hợp phương pháp lý thuyết, phân tích, suy luận, tổng hợp và thực nghiệm demo
2
Trang 11CHƯƠNG 1: MÔ HÌNH DỮ LIỆU QUAN HỆ 1.1 Các khái niêm•
1.1.1 Thuộc tính và miền thuộc tính [3, 5]
Thuộc tính là các đặc điểm riêng của một đối tượng, quan hệ Mỗi thuộc tính có một tên gọi và phải thuộc một kiểu dữ liệu nhất định, kiểu dữ liệu đó có thể là vô hướng (ví dụ như chuỗi, số, logic, ngày tháng ) hoặc các kiểu có cấu trúc được định nghĩa dựa trên các kiểu dữ liệu có sẵn
Vỉ dụ 1.1: KHACHHANG (MaKH, TenKH, Diachi, DT)
Đối tượng KHACHHANG có các thuộc tính là mã khách hàng, tên khách hàng, địa chỉ, điện thoại
Mỗi thuộc tính thường chỉ nhận các giá trị trong môt tập con của kiểu
dữ liệu mà nó thuộc Tập họp các giá trị mà thuộc tính X có thể nhận gọi là
miền giá tri của thuộc tính X, được kí hiệu là Dom(X) hay viết tắt là Dx
Dom(Diachi) = {‘H N\ ‘BN‘, ‘HP‘}; Dom(DT) = {char(15)};
1.1.2 Quan hệ và lược đồ quan hệ [3, 5]
Trang 12Nếu một bộ t = (di, d2, , dm) € r, r xác định trên tập thuộc tính u, X c ơ thì
Ak}th ìt.x = (di,d2, ,dk).
Lược đồ quan hệ [3]
Tất cả các thuộc tính ừong một quan hệ cùng với mối liên hệ giữa chúng được gọi là lược đồ quan hệ Lược đồ quan hệ R với tập thuộc tính
Ư = {Xi, x 2, , x„} được viết là R(U) hoặc R{Xi, x 2, , x„}.
1.2 Các phép toán đại số trên lược đồ quan hệ
r ^ J5 = { í l í e r hoặc í e ỉ Ị
4
Trang 14Cho hai quan hệ r và s khả hợp Hiệu của r và s kí hiệu là r - s là tập tất
cả các bộ thuộc r nhưng không thuộc s Ta có:
Trang 15Khachhang2 - Khachhangl MãKH Địa chỉ
1.2.4 Tích Đề - các [3]
Trang 161.2.5 Phép chiếu [3]
Cho quan hệ r xác định trên tập thuộc tính ư và X c ư Phép chiếu của
trên X, ta có:
I X f ( r ) = ' M ’ l í e r }Thực chất của phép chiếu là phép toán giữ lại một số thuộc tính cần thiết của quan hệ và loại bỏ những thuộc tính không cần thiết (trùng lặp)
Ví dụ 1.8: Cho bảng r gồm những thuộc tính sau:
Trang 17cần lấy một số thuộc tính khách hàng mà chỉ quan tâm đến mã số, địa chỉ, điện thoại thì phép chiếu sẽ được sử dụng như sau:
ĨỈ M ã K H ,Đ ia c H Đ ie n tH o a f- k h a C h h a n 8 Ì = q u a n h ệ k ế t q u ả
1.2.6 Phép chọn [3]
Phép chọn là phép toán lọc lấy ra một tập con các bộ của quan hệ đã cho thỏa mãn một điều kiện xác định Điều kiện đó được gọi là điều kiện chọn hay biểu thức chọn
Biểu thức chọn F được định nghĩa là một tổ họp logic của toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa hai biến là hai thuộc tính hoặc giữa một biến là một thuộc tính và một giá trị hằng Biểu thức chọn F cho giá trị đứng hoặc sai đối với mỗi bộ đã cho của quan hệ khi kiểm tra riêng bộ đó
- Các phép toán so sánh ừong biểu thức F: >, <, =, >, <, #
- Các phép toán logic trong biểu thức F: /\ (và), V (hoặc), -1 (phủ đinh)
Cho r là một quan hệ và F là một biểu thức logic trên các thuộc tính của
r Phép chọn trên quan hệ r với biểu thức logic F, kí hiệu là ổ F(r), là tập tất cả các bộ của r thỏa mãn F Ta có: ỏ F(r) = {t 11 e r A F(t) = đứng}.
Kết quả là:
Trang 181.2.7 Phép k ấ nối [3]
Cho quan hệ r(U) và s(V) Đặt M = u n v Phép kết nối tự nhiên hai
quan hệ r(ư) và s(V), ký hiệu r*s, cho ta quan hệ giữa các bộ được dán từ các
thuộc tính chung M của hai bộ này giống nhau)
P(UV) = r * s - Ịh*vm g r,v G s ,u M - v M ]
Nếu M = u n v = ậ , r*s sẽ cho ta tích Đề - Các, ừong đó mỗi bộ của quan
hệ r sẽ được ghép với mọi bộ của quan hệ s
1.2.8 Phép chia [2, 3]
Cho hai quan hệ r(U) và r(V) = {Al, A2, , A n}, V c u Phép chia của
quan hệ r cho quan hệ s ký hiệu là ĩ" ■=■ s , là một quan hệ trên Ư - V gồm các
bộ t sao cho tồn tại bộ Mẽ S v à ghép t với u ta được bộ thuộc r:
r - r S = {t I Vw e s , ( t , u ) s r }
Ví dụ 1.10: Cho quan hệ sau và tìm khách hàng mua sản phẩm chuột không
Khachhangdapung Tên khách hàng
Nguyễn Thùy Dương
10
Trang 191.3 Phụ thuộc hàm [3, 5]
Khi xét đến mối quan hệ giữa dữ liệu trong cơ sở dữ liệu quan hệ, một trong những yếu tố quan trọng nhất được xét đến là sự phụ thuộc giữa thuộc tính này với thuộc tính khác Từ đó có thể xây dựng những ràng buộc cũng như loại bỏ đi những dư thừa dữ liệu trong một cơ sở dữ liệu
Phụ thuộc hàm là mối quan hệ giữa các thuộc tính trong cơ sở dữ liệu Khái niệm về phụ thuộc hàm có một vai trò rất quan trọng trong việc thiết kế
mô hình dữ liệu Một ừạng thái phụ thuộc hàm chỉ ra rằng giá trị của một thuộc tính được quyết định một cách duy nhất bởi giá trị của thuộc tính khác
Định nghĩa 1.1 [3]
Cho lược đồ quan hệ R xác định trên tập thuộc tính u Cho X, Y là hai
tập con của Ư Nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và kí
Ví dụ 1.11: Ta có quan hệ SINHVIEN như sau:
Bảng 1.10 Quan hệ SINHVIENTrong quan hệ SINHVIEN, dựa vào định nghĩa phụ thuộc hàm của quan hệ ta có:
{Tinh} —» {Khuvuc}
{MaSV} —> {Hoten, Tinh, Khuvuc}
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
Trang 201.3.1 Các tính chất của phụ thuộc hàm [3, 5]
Cho lược đồ quan hệ R xác định trên tập thuộc tính u = { Ai, A2, ,An}, cho X, Y, z, w c U thì ta có một số tính chất cơ bản của các phụ thuộc hàm như sau:
- N ế u Y C X thì X—>Y
- Nếu X—>Y thì XW—>YW
- NẾU X—>Y, Y->Z thì x-> z.
- Nếu X->Y, Y Z ^W thì x z ^ w (Tính tựa bắc cầu)
- Nếu X—»Y, Z->W thì XZ->YW (Tính cộng đầy đủ)
- Nếu X—»Y thì XZ—>Y
- Nếu X->Y, X->Z thì X—>YZ
- Nếu X —>YZ thì X->Y.
- Nếu X—>YZ, Z->W thì X->YZW
1.3.2 Hệ tiên đề Armstrong [3, 5]
Gọi F là tập xác định của các phụ thuộc hàm đối với lược đồ quan hệ R
và X—>Y là một phụ thuộc hàm X, Y cR Nói rằng X—>Y được suy diễn logic
tò F nếu mỗi quan hệ r trên R đều thỏa mãn phụ thuộc hàm của F thì cũng thỏa mãn X—>Y Chẳng hạn F = {A—>B, B—>C} ứiì A ^ c suy diễn logic từ F Gọi F+ là bao đóng 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 đủ của các phụ thuộc hàm
Để có thể xác định khóa 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 đưa ra (1974) thường được gọi là hệ tiên đề Armsừong
Hệ tiên đề Armstrong [3]
Cho R = { Ai, A2, , An} là tập các thuộc tính, X, Y, z c R
Hệ tiên đề Armstrong có 3 tính chất cơ bản sau (suy diễn theo tiên đề):
- AI (phản xạ): Nếu Y c X thì X->Y
- A2 (tăng trưởng): NếuZ C R vàX->Y thìXZ->YZ
- A3 (bắc cầu): Nếu X->Y và Y->Z thì X->Z
12
Trang 21Trong đó kí hiệu x z là họp của hai tập X và z thay cho kí hiệu X< j Z.
1.4 Bao đóng trong lược đồ quan hệ
1.4.1 Bao đóng của tập phụ thuộc hàm [3, 5]
Định nghĩa 1.2 [3]
Cho tập phụ thuộc hàm F, bao đóng của tập phụ thuộc hàm F kí hiệu F+ là tập lớn nhất chứa các phụ thuộc hàm được suy diễn từ các phụ thuộc hàm F Vậy: F+ = {f I F|=f}
Các tỉnh chất:
• Tính chất phản xạ: Với mọi tập phụ thuộc hàm F ta luôn có F ç: F+
• Tính chất lũy đẳng: Với mọi tập phụ thuộc hàm F ta luôn có F++ = F+
Vỉ dụ 1.12: Cho F = {A—>B, C->X, BX->Z} Khi đó AC -> z G F+ ?
Cho lược đồ quan hệ R xác định trên tập thuộc tính и , X Ç U Bao đóng
của tập thuộc tính X kí hiệu là x +: là tập tất cả các thuộc tính A mà X —> A
được suy diễn từ F Ta có: x + = {A I X —> A £ F+}
Trang 22• x + = Y+ ^ X—>Y và Y->X
Các thuật toán tìm bao đóng:
Bước 1: Xo = X
Bước 2: Lần lượt xét các phụ thuộc hàm của F Nếu Y—>z có Y ç X i thì
Ngược lại lặp lại bước 2
Vỉ dụ 1.13: Cho lược đồ quan hệ R = (U, F) với Ư = {A,B,C,D,E,G} và F =
{С—>G, BG -► CD, AEG -► BC, CG —> AE, в —> CG } Tìm bao đóng của tập X = {C} dựa trên F
- R là lược đồ quan hệ, F là tập phụ thuộc hàm, A là thuộc tính chỉ xuất hiện
- R là lược đồ quan hệ, F là tập phụ thuộc hàm, X là tập con của R+ và Y là thuộc tính chỉ xuất hiện ở vế phải của các phụ thuộc hàm trong F thì x + ç:Xv_j Y
14
Trang 23CHƯƠNG 2: MÔ HÌNH DỮ LIỆU DẠNG KHỐI 2.1 Khối, Lược đồ khối, Lát cắt [1, 2, 4]
2.1.1 Khối, Lược đồ khối
Định nghĩa 2.1 [4]
Gọi R = (id; Ai, Аг, An) là một bộ hữu hạn các phần tử, trong đó id
Ai (i = 1 ,n) có miền giá trị tương ứng là dom(A) Một khối r trên tập R, kí
hiệu r(R) gồm một số hữu hạn phần tử mà mỗi phần tử là một họ các ánh xạ
khác:
t G г ( л) <5>t = Ịí' : iá —» dom(Aị)j i = 1 ,n
Ta kí hiệu khối đó là r(R) hoặc r(id; Ai, Аг, , An), hoặc kí hiệu đơn giản là r Khi đó khối r(R) được gọi là lược đồ khối R Như vậy, trên cùng một lược đồ khối R ta có thể xây dựng được nhiều khối khác nhau
Ví dụ 2.1: Ta xây dựng khối nhân viên (ký hiệu NV(R)) để quản lý nhân viên
ừong một cơ quan như sau:
Cho R = (id; Al, A2, A3, AẠ Trong đó: id = {1/2016, 2/2016,