Tải bản đầy đủ (.pdf) (47 trang)

Bao đóng và các thuật toán tìm bao đóng trong mô hình dữ liệu dạng khối

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1003.76 KB, 47 trang )

TRƯỜ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

1 HÀ NỘI – NĂM 2016


TRƯỜ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



LỜ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ư


LỜ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.
Nếu 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

Tạ Thị Như



MỤ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.
1.2.

Quan hệ và lược đồ quan hệ ........................................................ 3

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.
1.2.4.

Phép trừ ....................................................................................... 6
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 chia .................................................................................. 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 đề Armstrong ............................................................... 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 Đề - 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


2.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 trong 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ố trong 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



DANH 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:
Ký hiệu

Ý nghĩa

A, B, C

Thuộc tính

X, Y, Z

Tập thuộc tính

XY
ABC
Dom(A)

Hợp của 2 thuộc tính X và Y
[A, B,C] (Tập thuộc tính gồm 3 phần tử A, B, C)
Miền giá trị của A

R hoặc r(R)

Khối r trên lược đồ khối R

X(i) = (x, Ai)


Các thuộc tính của lược đồ khối



Thuộc



Tồn tại



Với mọi



Rỗng



Hợp



Giao



Không tồn tại




Là con



Chứa


DANH 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ệ Khachhang1  Khachhang2 ........... 5
Bảng 1.4. Biểu diễn quan hệ Khachhang1 ∩ Khachhang2 .......... 6
Bảng 1.5. Biểu diễn quan hệ Khachhang1 - Khachhang2 ............ 6
Bảng 1.6. Biểu diễn quan hệ Khachhang2 – Khachhang1............ 7
Bảng 1.7. Biểu diễn quan hệ r × 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ỉ = ‘BN‘ (Khachhang) ........... 9

Bảng 1.10. Quan hệ SINHVIEN ................................................... 11


MỞ ĐẦ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 trọ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 vi nghiên cứu
- Đối tượng: Bao đóng trong mô hình dữ liệu dạng khối.
1


- 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


CHƯƠ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á trị của thuộc tính X, được kí hiệu là Dom(X) hay viết tắt là D X .
i

Ví dụ 1.2:

Dom(MaKH) = {char(5)};


Dom(TenKH) = {char(30)};

Dom(Diachi) = {‘HN‘, ‘BN‘, ‘HP‘}; Dom(DT) = {char(15)};
1.1.2. Quan hệ và lược đồ quan hệ [3, 5]
Quan hệ:
Cho U = {X1, X2,..., Xn} 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 Xi (i = 1, 2,..., n) có miền giá trị D X . Khi đó, r là một tập các
i

bộ {h1, h2,..., hm} được gọi là quan hệ trên R với hj (j = 1, 2,..., m) là một hàm:
h j  U  D X i , X i  U | h j ( X i )  DX i (i = 1, 2,..., n)

Ta có thể xem một quan hệ như một bảng mà trong đó mỗi hàng là một bộ và
một cột tương ứng với một thuộc tính. Biểu diễn bảng quan hệ r như sau:
X1

X2

...

Xn

h1(X1)

h1(X2)

...

h1(Xn)


h2(X1)

h2(X2)

...

h2(Xn)

...

...

...

...

hm(X1)

hm(X2)

...

hm(Xn)

Bảng 1.1. Ví dụ về quan hệ r
3


Bộ của quan hệ [3]
Một bộ giá trị là các thông tin của một đối tượng thuộc quan hệ. Bộ giá

trị cũng thường được gọi là một mẫu tin hay bản ghi, dòng của văn bản.
Một bộ q là một vectơ gồm n thành phần thuộc tập hợp con của tích Đề - Các
miền giá trị của các thuộc tính và thỏa mãn tân từ đã cho của quan hệ.
Ví dụ 1.3: Xét bảng KHACHHANG ta có:
KHACHHANG
Mã KH

Địa chỉ

Tên khách hàng

Điện thoại

A001

Trần Thị Ngọc Ánh

HN

01234567892

A002

Đỗ Đức Dương

BN

0914568124

A003


Nguyễn Ngọc Khánh

HP

01678325235

A004

Đoàn Tuyết Trinh

VP

01287343527

Bảng 1.2. Quan hệ KHACHHANG
Bộ giá trị: (A001, Trần Thị Ngọc Ánh, HN, 01234567892) là một bộ.
Nếu một bộ t = (d1, d2,..., dm) ∈ r, r xác định trên tập thuộc tính U, X  U thì
t(X) được gọi là giá trị của tập thuộc tính X trên bộ t. Nếu X = { A1, A2,...,
Ak} thì t.X = (d1, d2,..., dk).
Lược đồ quan hệ [3]
Tất cả các thuộc tính trong 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
U = {X1, X2,..., Xn} được viết là R(U) hoặc R{X1, X2,..., Xn}.
1.2. Các phép toán đại số trên lược đồ quan hệ
1.2.1. Phép hợp [3]
Hai quan hệ r và s được gọi là khả hợp nếu như hai quan hệ này xác
định cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị.
Cho hai quan hệ r và s khả hợp. Hợp của r và s kí hiệu là r ∪ s là một
quan hệ gồm tất cả các bộ thuộc r hoặc thuộc s hoặc thuộc cả hai quan hệ. Ta

có:
r  s  t | t  r hoặc t  s

4


Ví dụ 1.4: Cho hai bảng
Khachhang1

Khachhang2

Khachhang1  Khachhang2

Mã KH

Địa chỉ

A001

HN

A002

BN

A003

HP

Mã KH


Địa chỉ

A001

HN

A002

BN

A004

VP

Mã KH

Địa chỉ

A001

HN

A002

BN

A003

HP


A004

VP

Bảng 1.3. Biểu diễn quan hệ Khachhang1  Khachhang2
1.2.2. Phép giao [3]
Cho hai quan hệ r và s khả hợp. Giao của r và s kí hiệu là r ∩ s là một
quan hệ gồm tất cả các bộ thuộc r và thuộc s. Ta có:

r  s  t | t  r



t  s

Ví dụ 1.5: Cho hai bảng:
Khachhang1

Mã KH

Địa chỉ

A001

HN

A002

BN


A003

HP

5


Khachhang2

Mã KH

Địa chỉ

A001

HN

A002

BN

A004

VP

Mã KH

Địa chỉ


A001

HN

A002

BN

Khachhang1 ∩ Khachhang2

Bảng 1.4. biểu diễn quan hệ Khachhang1 ∩ Khachhang2
1.2.3. Phép trừ [3]
Cho 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ó:

r  s  t | t  r



t  s

Ví dụ 1.6: Cho hai bảng:
Khachhang1

Khachhang2

Mã KH

Địa chỉ


A001

HN

A002

BN

A003

HP

Mã KH

Địa chỉ

A001

HN

A002

BN

A004

VP

Khachhang1 - Khachhang2


Mã KH

Địa chỉ

A003

HP

Bảng 1.5. biểu diễn quan hệ Khachhang1 - Khachhang2

6


Khachhang2 – Khachhang1

Mã KH

Địa chỉ

A004

VP

Bảng 1.6. biểu diễn quan hệ Khachhang2 – Khachhang1
1.2.4. Tích Đề - các [3]
Cho hai quan hệ r và s bất kỳ có tập thuộc tính lần lượt là U 1 và U2.
Tích Đề - các của r và s kí hiệu là r × s là một quan hệ trên U1 ∩ U2 gồm tất cả
các bộ ghép được từ các bộ của r và s. Ta có:
r  s  t  u, v  /u  r, v  s


Ví dụ 1.7: Cho hai bảng
Bảng r

Bảng s

MaKH

MaSP

SoHD

A001

MTD

0111

A002

OC3

0112

MaSP

TenSP

MTD

Máy tính DELL


OC3

Ổ cứng 3GB

CKD

Chuột không dây

Tích Đề - các của 2 bảng trên là:
MaKH

MaSP

SoHD

MaSP

A001

MTD

0111

MTD

Máy tính DELL

A001


OC3

0111

OC3

Ổ cứng 3GB

A001

CKD

0111

CKD

Chuột không dây

A002

MTD

0112

MTD

Máy tính DELL

A002


OC3

0112

OC3

Ổ cứng 3GB

A002

CKD

0112

CKD

Chuột không dây

Bảng 1.7. Biểu diễn quan hệ r × s

7

TenSP


1.2.5. Phép chiếu [3]
Cho quan hệ r xác định trên tập thuộc tính U và X  U . Phép chiếu của
quan hệ r trên tập thuộc tính X, kí hiệu là




X

(r) là tập các bộ của r xác định

trên X, ta có:



X

(r )  t. X | t  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:

Ta có:

A

B

C

D

a

1


i

2

b

2

g

4

c

8

h

5

d

6

g

2

e


2

I

5



D

(r)

D



B

D

2

1

2

4

2


4

5

8

5

6

2

và ta có:

BD

(r)

Cụ thể cho bảng:
Khachhang Mã KH

Tên khách hàng

Địa chỉ

Điện thoại

A001


Trần Thị Ngọc Ánh

HN

01234567892

A002

Đỗ Đức Dương

BN

0914568124

A003

Nguyễn Ngọc Khánh

HP

01678325235

A004

Đoàn Tuyết Trinh

VP

01287343527


Bảng 1.8. Bảng khách hàng
8


Cầ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:



(khachhang) = quan hệ kết quả

MãKH, Điachi, Đienthoai

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 trong biểu thức F: >, <, =, ≥, ≤, #.
- Các phép toán logic trong biểu thức F:



(và),




(hoặc),  (phủ định).

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 | t  r  F(t)  đúng.
Ví dụ 1.9: Cho bảng
Khachhang

Mã KH

Địa chỉ

Tên khách hàng

Điện thoại

A001

Trần Thị Ngọc Ánh

HN

01234567892

A002

Đỗ Đức Dương

BN


0914568124

A003

Nguyễn Ngọc Khánh

HP

01678325235

A004

Đoàn Tuyết Trinh

BN

01287343527

Chọn khách hàng có địa chỉ ở BN, ta là như sau: 

Địa chỉ = ‘BN‘ (Khachhang)

Kết quả là:
Khachhang

Mã KH

Tên khách hàng

Địa chỉ


Điện thoại

A002

Đỗ Đức Dương

BN

0914568124

A004

Đoàn Tuyết Trinh

BN

01287343527

Bảng 1.9. Biểu diễn phép chọn: 
9

Địa chỉ = ‘BN‘ (Khachhang)


1.2.7. Phép kết nối [3]
Cho quan hệ r(U) và s(V). Đặt M = U  V. Phép kết nối tự nhiên hai
quan hệ r(U) và s(V), ký hiệu r*s, cho ta quan hệ giữa các bộ được dán từ các
bộ u của quan hệ R với mỗi bộ v của quan hệ S (sao cho các giá trị trên miền
thuộc tính chung M của hai bộ này giống nhau).


P(UV )  r * s  u * v u  r, v  s, u.M  v.M 
Nếu M = U  V =  , r*s sẽ cho ta tích Đề - Các, trong đó 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) = {A1, A2,..., An}, V
quan hệ r cho quan hệ s ký hiệu là

 U. Phép chia của

r  s , là một quan hệ trên U – V gồm các

bộ t sao cho tồn tại bộ u  s và ghép t với u ta được bộ thuộc r:

r  s  t | u  s, t , u   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
dây và máy tính với số lượng lớn hơn 2 (một trong 2 sản phẩm không có sản
phẩm nào có số lượng là 0).
Khachhang

Chuột không dây

Máy tính

Dương Văn Cường

1

3


Nguyễn Thùy Dương

3

2

Đặng Hồng Thái

1

0

Lê Hồng Vân

4

1

Tên khách hàng

Soluongcantim Chuột không dây

Máy tính

3

2

Khachhangdapung Tên khách hàng
Nguyễn Thùy Dương


10


1.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 trạ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 U. Nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và kí
hiệu X → Y nếu với mọi quan hệ r xác định trên R và với 2 bộ t 1, t2 bất kỳ mà
t1(X) = t2(X) thì t1(Y) = t2(Y).
Ví dụ 1.11: Ta có quan hệ SINHVIEN như sau:
MaSV

Hoten

Tinh

Khuvuc

T001

Đỗ Phương Anh


Vĩnh Phúc

2

T002

Nguyễn Thị Huệ

Hà Nội

1

T003

Hà Mạnh Tuấn

Phú Thọ

2

T004

Trần Hoàng Quang

Tuyên Quang

3

Bảng 1.10. Quan hệ SINHVIEN

Trong 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.

11


1.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 = { A1, A2,...,
An}, cho X, Y, Z, W  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  X thì X→Y.
- Nếu X→Y thì XW→YW.
- NẾU X→Y, Y→Z thì X→Z.
- Nếu X→Y, YZ→W thì XZ→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  R. 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} thì 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 đề Armstrong.
Hệ tiên đề Armstrong [3]
Cho R = { A1, A2,..., An} là tập các thuộc tính, X, Y, Z



R.

Hệ tiên đề Armstrong có 3 tính chất cơ bản sau (suy diễn theo tiên đề):
- 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.
- A3 (bắc cầu): Nếu X→Y và Y→Z thì X→Z.
12


Trong đó kí hiệu XZ là hợp của hai tập X và Z thay cho kí hiệu X  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 | 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 đơn điệu: Nếu F  G thì F+  G+.
 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  F+ ?

- Vì A → B  AX → BX.
- Từ AX → BX, kết hợp BX → Z, suy ra AX → Z.
- Từ C → X  AC → AX.
- Áp dụng tính chất bắc cầu, AC → AX và AX → Z suy ra AC → Z  F+.
1.4.2. Bao đóng của tập thuộc tính [3, 5]
Định nghĩa 1.3 [3]
Cho lược đồ quan hệ R xác định trên tập thuộc tính U, 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 | X → A

 F+}.

Các tính chất của bao đóng:
 Tính phản xạ: X  X+.
 Tính đơn điệu: Nếu X  Y thì X+  Y+.
 Tính lũy đẳng: X++ = X+.
 X+Y+  (XY)+
 (X+Y+) = (XY+)+ = (X+Y+)+ =(XY)+
 X→Y  Y+  X+.
 X→X+ và X+→X
13


 X+ = Y+  X→Y và Y→X
Các thuật toán tìm bao đóng:
Tính liên tiếp tập các thuộc tính X0, X1, X2,… theo phương pháp sau:
Bước 1: X0 = 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  Xi thì
Xi+1 = Xi


 Z.

Loại phụ thuộc hàm Y→Z khỏi F.

Bước 3: Nếu ở bước 2 không tính được Xi+1 thì Xi chính là bao đóng của X.
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 U = {A,B,C,D,E,G} và F =
{C→G, BG → CD, AEG → BC, CG → AE, B → CG } Tìm bao đóng của
tập X = {C} dựa trên F.
Giải
B1: X0 = C
B2: Lần lượt xét các phụ thuộc hàm của F, ta thấy có C → G thỏa mãn nên
X1 = C  G = CG
Lặp lại bước 2:
Ta lại gặp CG→AE thỏa mãn nên X2 = CGAE.
Làm tương tự ta có:
X3 = CGAEB (áp dụng AEG→BC)
X4 = CGAEBD (áp dụng BG→CD)
Vậy (C)+ = ABCDEG
Hệ quả:
- 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
ở vế phải của các phụ thuộc hàm trong F thì X+ = (X – A)+

 A.

- 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+ 
X  Y.

14



2

CHƯƠ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; A1, A2,…, An) là một bộ hữu hạn các phần tử, trong đó id
là tập chỉ số hữu hạn khác rỗng, Ai (i = 1, n ) là các thuộc tính. Mỗi thuộc tính
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ạ
từ tập chỉ số id đến các miền giá trị của thuộc tính Ai (i = 1, n ). Nói một cách
khác:

t  r  R   t  t i : id  dom(Ai ) i = 1, n
Ta kí hiệu khối đó là r(R) hoặc r(id; A1, A2,…, 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
trong một cơ quan như sau:
Cho R = (id; A1, A2, A3, A4). Trong đó: id = {1/2016, 2/2016,
3/2016,…, 12/2016} và các thuộc tính là A1 = ma (mã), A2 = ten (tên), A3 =
luong (lương), A4 = trinh_do (trình độ).
Với khối NV(R) như dưới đây, ta thấy nó gồm 3 phần tử: t1, t2, t3

15



Hình 2.1: Biểu diễn khối nhân viên NV(R)
Khi đó ta có:
 Lương của nhân viên t1 ở tháng 1/2016 là: t1(1/2016, luong) = 300.
 Tên của cán bộ t2 vào tháng 2/2016 là: t2(2/2016, ten) = ‘Y‘.
 Trình độ của cán bộ t3 tháng 3/2016 là: t3(3/2016, trinh_do) = ‘CD‘.
2.1.2. Lát cắt [1, 2, 4]
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R. Với mỗi x  id ta ký
hiệu r(Rx) là một khối với Rx = ({x}; A1, A2,…, An) sao cho:

 

t x  r Rx   t x  t xi  t i i 

1, n
x

với t ∈ r(R),





i
và t  t : id  dom Ai 

j 1, n

Ở đây t x ( x)  t ( x) với i  1, n .
i


i

Khi đó r(Rx) được gọi là một lát cắt trên khối r(R) tại điểm x.
Ví dụ 2.2: Với khối NV(R), R = (id; A1, A2, A3, A4). Trong đó: id = {1/2016,
2/2016, 3/2016,…, 12/2016} và các thuộc tính là A1 = ma (mã), A2 = ten
(tên), A3 = luong (lương), A4 = trinh_do (trình độ).
Nếu x = 2/2016  id thì lát cắt r(R2/2016) có dạng như sau:
16


r(R2/2016)

Ma

Ten

Luong

Trinh_do

A01

X

500

ThS

A02


Y

450

DH

A03

Z

400

CD

Ta có các mệnh đề sau:
Mệnh đề 2.1 [4]
Cho R = (id; A1, A2,…, An). r(R) là một khối trên R. Với mỗi x  id thì
lát cắt r(Rx) là một quan hệ. Trong trường hợp tập chỉ số id chỉ gồm 1 phần tử
thì r(R) trở thành một quan hệ.
Như vậy mỗi quan hệ r(A1, A2,…, An) là một trường hợp đặc biệt của
khối, đó chính là khối r(R) với R = ({x}; A1, A2,…, An).
Mệnh đề 2.2 [4]
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R. Khi đó tồn tại một
họ quan hệ duy nhất biểu diễn họ {r(Rx)}x id các lát cắt của r(R). Ngược lại
không đúng, nghĩa là với một họ quan hệ cho trước biểu diễn họ các lát cắt
của một khối nào đó thì khối tìm được không duy nhất.
2.2. Các phép toán Đại số quan hệ trên khối [2, 4]
Cho r là một khối trên R = (id; A1, A2,…, An). Cũng tương tự như đại
số quan hệ trong mô hình dữ liệu quan hệ, ở đây các phép toán của đại số
quan hệ lặp lại được áp dụng cho các khối như: phép hợp, phép giao, phép

trừ, phép chiếu, phép chọn, phép kết nối, phép chia, phép nối dài.
Hai khối r và s được gọi là khả hợp nếu chúng có cùng một lược đồ khối.
2.2.1. Phép hợp [4]
Cho hai khối r và s khả hợp, khi đó hợp của r và s, kí hiệu là r



s, là

một khối gồm các phần tử thuộc khối r hoặc khối s đã cho. Ta có:
r  s  t | t  r hoặc t  s

2.2.2. Phép giao [4]
Cho hai khối r và s khả hợp. Giao của r và s kí hiệu là r ∩ s là một khối
gồm tất cả các phần tử thuộc đồng thời cả hai khối r và s đã cho. Ta có:
17


×