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

Luận văn thạc sĩ lược đồ cơ sở dữ liệu chuẩn hóa

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 (2 MB, 73 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ MAI LAN

LƯỢC ĐỒ CƠ SỞ DỮ LIỆU CHUẨN HĨA
Ngành: Khoa học máy tính
Mã số: 8.48.01.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS TSKH NGUYỄN XUÂN HUY

THÁI NGUYÊN - 2020


i

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do bản thân tôi thực hiện dưới sự hướng
dẫn khoa học của PGS TSKH Nguyễn Xuân Huy – Viện Công nghệ thơng tin.
Các kết quả nghiên cứu được trình bày trong luận văn là trung thực và chưa
từng công bố trong bất kỳ cơng trình nào khác. Mọi thơng tin trích dẫn trong
luận văn đều đã được chỉ rõ nguồn gốc.
Thái Nguyên, tháng 9 năm 2020
Tác giả

Nguyễn Thị Mai Lan


ii



LỜI CẢM ƠN
Tác giả xin được bày tỏ lòng biết ơn Ban Giám hiệu, giảng viên Trường
Đại học Công nghệ thông tin – truyền thông – Đại học Thái Nguyên đã tận tình
giảng dạy và tạo mọi điều kiện thuận lợi cho tác giả trong suốt quá trình học
tập, nghiên cứu và thực hiện luận văn.
Với tình cảm chân thành, tác giả xin được bày tỏ lòng biết ơn, cảm ơn sâu
sắc tới PGS. TSKH Nguyễn Xuân Huy đã tận tình hướng dẫn, giúp đỡ để luận
văn hồn thành.
Cuối cùng, tác giả xin được gửi lời cảm ơn tới bạn bè, gia đình và đồng
nghiệp đã ln động viên, giúp đỡ tác giả hồn thành khóa học.
Thái Ngun, tháng 9 năm 2020
Tác giả

Nguyễn Thị Mai Lan


iii

MỤC LỤC
LỜI CAM ĐOAN........................................................................................ i
LỜI CẢM ƠN ............................................................................................ ii
MỤC LỤC ................................................................................................. iii
CÁC KÍ HIỆU ............................................................................................ v
DANH MỤC CÁC BẢNG ........................................................................ vi
MỞ ĐẦU ..................................................................................................... 1
1. Đặt vấn đề ................................................................................................ 1
2. Đối tượng và phạm vi nghiên cứu ........................................................... 4
3. Hướng nghiên cứu ................................................................................... 4
4. Phương pháp nghiên cứu ......................................................................... 4

5. Ý nghĩa khoa học và thực tiễn ................................................................. 5
6. Cấu trúc của luận văn .............................................................................. 5
Chương 1. CÁC KIẾN THỨC CƠ BẢN ................................................. 6
1.1.Quan hệ, bộ, thuộc tính.......................................................................... 6
1.2. Phụ thuộc hàm .................................................................................... 12
1.3. Bao đóng của tập thuộc tính ............................................................... 14
1.4. Phủ ...................................................................................................... 17
1.5. Khóa của lược đồ quan hệ .................................................................. 18
1.6. Các dạng chuẩn 1NF, 2NF, 3NF và BCNF ........................................ 19
1.7. Bảo toàn 3NF bảo toàn phụ thuộc hàm .............................................. 19
Chương 2. CÁC THUẬT TỐN VỀ CHUẨN HĨA DỮ LIỆU QUAN
HỆ .............................................................................................................. 20
2.1. Các thuật toán đại số quan hệ ............................................................. 20
2.1.1. Phép chọn......................................................................................... 20
2.1.2. Phép chiếu........................................................................................ 20
2.1.3. Kết nối tự nhiên ............................................................................... 21
2.1.4. Phép hợp .......................................................................................... 22


iv
2.1.5. Phép giao ......................................................................................... 22
2.1.6. Phép trừ ............................................................................................ 23
2.1.7. Phép chia.......................................................................................... 24
2.2. Các thuật toán quản lý phụ thuộc hàm ................................................ 25
2.2.1. Thuật tốn tìm phủ thu gọn tự nhiên của tập PTH F ....................... 25
2.2.2. Thuật tốn tìm phủ khơng dư của tập PTH F ................................... 26
2.2.3. Thuật tốn tìm phủ thu gọn trái của tập PTH F ............................... 26
2.2.4. Thuật tốn tìm phủ thu gọn phải của tập PTH F .............................. 27
2.2.5. Thuật tốn tìm phủ thu gọn của tập PTH F ...................................... 28
2.3. Các thuật tốn tìm bao đóng ............................................................... 29

2.4. Các thuật tốn khóa ............................................................................. 30
Chương 3. CÀI ĐẶT VÀ ỨNG DỤNG .................................................. 30
3.1. Tiếp cận hướng đối tượng cho thiết kế ............................................... 30
3.2. Thiết kế lớp tập hợp Set ...................................................................... 30
3.2.1. Các thuộc tính của lớp Set ............................................................... 30
3.2.2. Các phương thức của lớp Set ........................................................... 30
3.2.3. Các phép toán tập hợp ..................................................................... 33
3.3. Thiết kế lớp lược đồ quan hệ RSC ..................................................... 40
3.3.1. Các thuộc tính của lớp lược đồ quan hệ RSC.................................. 40
3.3.2. Các phương thức của lớp lược đồ quan hệ RSC ............................. 40
KẾT LUẬN............................................................................................... 65
TÀI LIỆU THAM KHẢO....................................................................... 66


v

CÁC KÍ HIỆU

KÍ HIỆU

Ý NGHĨA

aS

Phần tử a thuộc tập S

aS

Phần tử a không thuộc tập S


XY

Tập X là tập con thực sự của tập Y

XY

Tập X là tập con của tập Y

XY

Giao của hai tập X và Y

XY

Hiệu của tập X và Y

XY

Hợp của hai tập X và Y



Lượng tử tồn tại



Lượng tử với mọi

PTH
K



Phụ thuộc hàm
Khóa
Lược đồ


vi

DANH MỤC CÁC BẢNG
Bảng 1. Quan hệ Bán hàng với 3 khách hàng đầu tiên................................ 2
Bảng 2. Quan hệ Bán hàng với 4 khách hàng ............................................. 3
Bảng 3. Quan hệ Bán hàng với 4 khách hàng ............................................. 3
Bảng 1.1. Quản lý sinh viên ....................................................................... 8
Bảng 1.2. Bảng quy ước kích thước ............................................................ 8


1

MỞ ĐẦU
1. Lý do lựa chọn đề tài
Năm 1970 Codd đề xuất khái niệm phụ thuộc hàm như một cơ chế quản lý
ngữ nghĩa dữ liệu trong cơ sở dữ liệu quan hệ [8], [9].
Cho tập thuộc tính U. Một phụ thuộc hàm (PTH) trên U là công thức dạng
f: X  Y; X, Y  U
trong đó ta gọi X là vế trái và Y là vế phải của PTH f.
Cho quan hệ R(U) và một PTH f: X  Y trên U. Ta nói quan hệ R thoả
PTH f, hoặc PTH f đúng trong quan hệ R và viết R(f), nếu hai bộ tuỳ ý trong R
giống nhau trên X thì chúng cũng giống nhau trên Y,
R(XY)  (u,vR): (u.X = v.X)  (u.Y = v.Y)

Nếu f: X  Y là một phụ thuộc hàm trên U thì ta nói tập thuộc tính Y phụ
thuộc (hàm) vào tập thuộc tính X, hoặc tập thuộc tính X xác định hàm tập thuộc
tính Y.
Nếu Y khơng phụ thuộc hàm vào X thì ta viết X ! Y hoặc (XY).
Cho tập PTH F trên tập thuộc tính U. Ta nói quan hệ R(U) thoả tập PTH
F, và viết R(F), nếu R thoả mọi PTH trong F: R(F)  ( f  F): R(f)
Cho trước tập thuộc tính U, ký hiệu SAT(F) là tập toàn thể các quan hệ
trên U thoả tập PTH F.
Cho tập  các quan hệ trên U, ký hiệu FD() là tập các PTH trên U đúng
trong mọi quan hệ của .
Cho tập PTH F trên tập thuộc tính U. Bao đóng của F, ký hiệu F + là tập
nhỏ nhất các PTH trên U chứa F và thoả các tính chất F1 - F3 của hệ tiên đề
Armstrong Ao sau đây [1], [2], [3]:
 X, Y, Z  U:


2
F1. Tính phản xạ: Nếu X  Y thì X  Y  F +
F2. Tính gia tăng: Nếu XY  F + thì XZYZ  F +
F3. Tính bắc cầu: Nếu X  Y  F + và Y  Z  F + thì X  Z  F +
Sau đó hàng loạt cơng trình nghiên cứu đề xuất các dạng chuẩn cho các
lược đồ quan hệ. Một dạng biểu diễn của lược đồ quan hệ được gọi là dạng chuẩn
nếu nó cho phép người quản trị và người khai thác cơ sở dữ liệu đảm bảo được
tính nhất qn và tồn vẹn dữ liệu trong q trình cập nhật và khai thác cơ sở dữ
liệu [4],[5].
Quá trình chuẩn hoá (do Codd đề nghị 1972) lấy một lược đồ quan hệ và
thực hiện một loạt các kiểm tra để xác nhận nó có thoả mãn một dạng chuẩn nào
đó hay khơng. Q trình này được thực hiện theo phương pháp trên xuống bằng
việc đánh giá mỗi quan hệ với tiêu chuẩn của các dạng chuẩn và tách các quan
hệ nếu cần. Lúc đầu, Codd đề nghị ba dạng chuẩn gọi là dạng chuẩn 1, dạng

chuẩn 2 và dạng chuẩn 3. Tất cả các dạng chuẩn này dựa trên các phụ thuộc hàm
giữa các thuộc tính của một quan hệ.
Chuẩn hố dữ liệu có thể được xem như một quá trính phân tích các lược
đồ quan hệ cho trước dựa trên các phụ thuộc hàm và các khố chính của chúng
để đạt đến các tính chất mong muốn:
(1) Cực tiểu sự dư thừa và
(2) Cực tiểu các phép cập nhật bất thường.
Thí dụ, cho quan hệ bán hàng như sau:

Bộ

Mã hàng

Tên
hàng

Đơn giá
(nghìn
đồng)

Số
lượng

Thành tiền
(nghìn
đồng)

1

H1


Bút

10

2

20

2

H2

Vở

4

10

40

3

H3

Cặp

70

1


70


3
Bảng 1. Quan hệ Bán hàng với 3 khách hàng đầu tiên

Ta biết, quan hệ Bán hàng các thỏa phụ thuộc hàm sau đây:
Mã hàng  Đơn giá
Mã hàng  Tên hàng
Mã hàng  Đơn giá, Tên hàng
Đơn giá, Số lượng  Thành tiền
Nếu khách hàng thứ tư mua vở nhưng bàn tính tiền nạp nhầm dữ liệu thì quan
hệ Bán hàng có thể có dạng sau:
Bộ

Mã hàng

Tên
hàng

1
2
3
4

H1
H2
H3
H2


Bút
Vở
Cặp
Vở

Đơn giá
(nghìn
đồng)
10
4
70
4

Số
lượng
2
10
1
10

Thành tiền
(nghìn
đồng)
20
40
70
45

Bảng 2. Quan hệ Bán hàng với 4 khách hàng


Như vậy, quan hệ Bán hàng tại Bảng 2 chứa dữ liệu không chuẩn. Sự cố này do
bộ 4 gây ra.
Tuy nhiên, có trường hợp sinh ra dữ liệu khơng chuẩn nhưng ta không thể biết
nguyên nhân tại bộ nào.
Giả sử khách hàng thứ tư cũng mua vở với dữ liệu được nạp như trong Bảng 3.
Bộ

Mã hàng

Tên
hàng

Đơn giá
(nghìn
đồng)

Số
lượng

Thành tiền
(nghìn
đồng)

1

H1

Bút


10

2

20

2

H2

Vở

4

10

40


4
3

H3

Cặp

70

1


70

4

H2

Vở

5

10

50

Bảng 3. Quan hệ Bán hàng với 4 khách hàng

Lúc này ta chỉ có thể nói, quan hệ Bán hàng chứa dữ liệu mâu thuẫn tại bộ 2 và
bộ 4, nhưng ta không biết bộ nào sinh ra mâu thuẫn.
Trong trường hợp này ta nói quan hệ Bán hàng khơng chuẩn.
Luận văn được tập trung nghiên cưú các dạng chuẩn của lược đồ cơ sở dữ liệu
quan hệ. Vậy trong khn khổ khóa luận thạc sĩ, học viên chọn đề tài:

Lược đồ cơ sở dữ liệu chuẩn hóa
2. Đối tượng và phạm vi nghiên cứu
Luận văn tập trung khảo sát các đối tượng liên quan đến các lược đồ cơ
sở dữ liệu quan hệ sau đây:
 Lý thuyết phụ thuộc hàm.
 Các thuật toán cơ bản xử lý các đối tượng trong lược đồ quan hệ.
 Các thuật toán chuẩn hóa lược đồ quan hệ.
3. Hướng nghiên cứu



Nghiên cứu lý thuyết liên quan đến đề tài: Cơ sở dữ liệu quan hệ,
phụ thuộc hàm, các dạng chuẩn, các thuật toán tính bao đóng, khóa,
chuẩn hóa.



Cài đặt các lớp đối tượng quản lý tập hợp, thuộc tính, phụ thuộc
hàm, khóa, các dạng chuẩn 2NF và 3NF.



Thử nghiệm các lược đồ quan hệ.


5
4. Phương pháp nghiên cứu
Trong luận văn học viên dự kiến sử dụng các phương pháp nghiên cứu chính
sau:
 Phương pháp nghiên cứu lý thuyết: Tổng hợp tài liệu, hệ thống lại các
kiến thức, tìm hiểu các khái niệm, thuật tốn sử dụng trong đề tài.
 Phương pháp lập trình hướng đối tượng.
 Phương pháp đối sánh.
 Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia.
5. Ý nghĩa khoa học và thực tiễn
 Việc nghiên cứu đề tài có thể đóng góp thêm một vài chức năng quản lý
ngữ nghĩa dữ liệu thông qua các dạng chuẩn.
 Luận văn thiết kế và cài đặt một hệ thống với các chức năng nhập xuất, lưu
trữ, tính bao đóng, khóa của các lược đồ quan hệ và các thuật toán chuẩn

hóa 3NF. Hệ thống có thể được sử dụng để khảo sát và kiểm định các dạng
chuẩn và các quy trình chuẩn hóa lược đồ quan hệ.
6. Cấu trúc của luận văn
Luận văn có cấu trúc gồm:
Phần mở đầu
Phần nội dung
Chương 1. Các kiến thức cơ sở.
Chương 2. Các thuật tốn về chuẩn hóa dữ liệu quan hệ
Chương 3. Cài đặt và ứng dụng.


6

CHƯƠNG 1 - CÁC KIẾN THỨC CƠ BẢN
Trong chương 1 này, tôi sẽ giới thiệu một số cơ sở lý thuyết về cơ sở dữ
liệu gồm:
1.1 Quan hệ, bộ, thuộc tính
Định nghĩa
Cho tập hữu hạn U = {A1, A2 , ... , An} khác rỗng (n 1). Các phần tử của U
được gọi là thuộc tính. Ứng với mỗi thuộc tính AiU, i = 1,2,...,n có một tập
chứa ít nhất hai phần tử dom(Ai) được gọi là miền trị của thuộc tính Ai. Gọi D
là hợp của các dom(Ai), i = 1,2,...,n. Một quan hệ R với các thuộc tính U, ký
hiệu là R(U), là một tập các ánh xạ t: UD sao cho với mỗi AiU ta có
t(Ai)dom(Ai). Mỗi ánh xạ được gọi là một bộ của quan hệ R.
Mỗi quan hệ R(U) có hình ảnh là một bảng, mỗi cột ứng với một thuộc tính,
mỗi dịng là một bộ.
Ta ký hiệu t(U) là một bộ trên tập thuộc tính U.
Một quan hệ rỗng, ký hiệu , là quan hệ khơng chứa bộ nào.
Vì mỗi quan hệ là một tập các bộ nên trong quan hệ khơng có hai bộ trùng lặp.
Các ký hiệu và một số quy ước

Theo truyền thống của lý thuyết cơ sở dữ liệu chúng ta chấp nhận các quy
định sau đây:
Các thuộc tính được ký hiệu bằng các chữ LATIN HOA đầu bảng chữ A, B,
C,...
Tập thuộc tính được ký hiệu bằng các chữ LATIN HOA cuối bảng chữ X, Y,
Z,...
Các phần tử trong một tập thường được liệt kê như một xâu ký tự, khơng có
các ký hiệu biểu diễn tập, chẳng hạn ta viết X = ABC thay vì viết


7
X = A, B, C. XY biểu diễn hợp của hai tập X và Y, X Y. Phép trừ hai tập X
và Y được ký hiệu là X\Y, hoặc X-Y.
Một phân hoạch của tập M (thành các tập con rời nhau và có hợp là M), X1,
X2, ..., Xm được ký hiệu là M = X1 | X2 |... | Xm
với ý nghĩa M = X1  X2  ...  Xm và Xi  Xj = , 1  i, j  m, i  j.
Các bộ được biểu diễn bằng các chữ Latin thường có thể kèm chỉ số, thí dụ t,
u, v, t1 ...
Với mỗi bộ t trong quan hệ R(U) và mỗi tập con các thuộc tính X  U ta ký
hiệu t[X] hoặc t.X là hạn chế của bộ (ánh xạ) t trên tập thuộc tính X.
Ta chấp nhận quy ước tự nhiên là miền trị của mọi thuộc tính chứa ít nhất hai
phần tử. Trong trường hợp một miền trị của thuộc tính chỉ chứa một giá trị
duy nhất thì ta có thể loại bỏ cột tương ứng của thuộc tính đó trong quan hệ.
Ta chấp nhận quy ước sau đây: Mọi cặp bộ t và v trong mọi quan hệ giống
nhau trên miền rỗng các thuộc tính, t. = v..
 Hàm Attr(R) cho tập thuộc tính của quan hệ R.
 Hàm Card(R) cho lực lượng (số bộ) của quan hệ R.
Trong trường hợp tập thuộc tính U đã cho trước ta có thể viết đơn giản R thay
cho R(U)
Ký hiệu REL(U) là tập tồn thể các quan hệ trên tập thuộc tính U, REL_p(U)

là tập tồn thể các quan hệ có khơng qúa p bộ trên tập thuộc tính U, p  1.
Hai quan hệ R và S được gọi là tương thích nếu chúng có cùng một tập thuộc
tính, tức là nếu Attr(R) = Attr(S).
Với mỗi bộ t trong quan hệ R(U) và mỗi bộ v trong quan hệ S(V) ta ký hiệu tv
là phép dán hai bộ t và v. tv cho ta bộ r trên tập thuộc tính UV thoả điều kiện:
r.U = t và r.V = v.
Với mỗi bộ t trong quan hệ R(U) và với mỗi quan hệ S(V) ta ký hiệu tS là
phép dán bộ t với quan hệ S. tS cho ta quan hệ P(UV) = { tv | vS }
Thí dụ


8
Trong một trường học, chúng ta quản lý sinh viên theo biểu gồm các thuộc tính
sau:
STT

Mã SV

Họ tên SV

Giới
tính

Năm
sinh

Q
qn

Lớp


Khoa

1

DTS001

Nguyễn
Duy Nam

Nam

2001

Thái
Bình

A1

Tốn
học

2

DTS002

Bùi Minh
Hiền

Nữ


2001

Phú Thọ

A2

Vật


3

DTS003

Trần Ngọc


Nữ

2000

Thái
Ngun

A1

Tốn
học














DTS130

Hồng
Mạnh
Trung

2001

Hà Nội

A3

Hóa
học

130

Nam


Bảng 1.1. Quản lý sinh viên

Ta quy ước kích thước của các thuộc tính như sau:
Tên thuộc tính

Kiểu

Kích thước

STT

Kí tự

3

MASV

Kí tự

8

HOTEN

Kí tự

30

GIOITINH

Kí tự


4

NAMSINH

Số

4

QUE

Kí tự

15

LOP

Kí tự

3

KHOA

Kí tự

15

Bảng 1.2. Bảng quy ước kích thước



9

Như vậy ta có tập thuộc tính
SINHVIEN={STT,MASV,HOTEN,GIOITINH,NAMSINH,QUE,LOP,KHOA}

Ta có ứng với cột Mã SV có DTS01, DTS02…DTS130 là thuộc tính của bảng
Với bản ghi thứ 2(dịng thứ 2) chúng ta có một bộ gồm STT(2), Mã SV(DTS02),
Họ tên SV(Bùi Minh Hiền), Giới tính(Nữ), Năm sinh(2001), Quê quán(Phú
Thọ), lớp(A2), Khoa(Vật lí).
1.2 Phụ thuộc hàm
Định nghĩa
Cho tập thuộc tính U. Một phụ thuộc hàm (PTH) trên U là biểu thức dạng
f: X→Y ; X,Y⊆ U
Nếu f: X→Y là một phụ thuộc hàm trên U thì ta nói tập thuộc tính Y phụ thuộc
vào tập thuộc tính X, hoặc tập thuộc tính X xác định hàm tập thuộc tính Y. X là
vế trái và Y là vế phải của PTH f. Ta cũng dùng hai toán tử LS(f) và RS(f) để xác
định vế trái và vế phải của PTH f, cụ thể là
nếu f: X→ Y thì LS(f) = X, RS(f) = Y.
Cho quan hệ R(U) và một PTH f: X→Y trên U. Ta nói quan hệ R thoả PTH f
và viết R(f), nếu hai bộ tuỳ ý trong R giống nhau trên X thì chúng cũng giống
nhau trên Y.
R(X→Y) (∀ u,v ∈ R): (u.X = v.X) (u.Y = v.Y)
Ta dùng ký hiệu X ↛Y với ý nghĩa tập thuộc tính Y khơng phụ thuộc hàm vào
tập thuộc tính X[7,8].
Cho tập PTH F trên tập thuộc tính U. Ta nói quan hệ R(U) thoả tập PTH F, và
viết R(F), nếu R thoả mọi PTH trong F
R(F)  (∀ f ∈ F): R(f)


10

Nếu quan hệ R thỏa PTH f ta cũng nói PTH f đúng trong quan hệ R.
Thí dụ: Cho quan hệ R(A, B, C, D, E) như sau
P (A
a
a
b
b

B
1
1
2
2

C
x
x
y
y

D E)
d y
d x
2 x
2 y

Và các PTH f1: AA, f2: AB, f3: ACC, f4: AD, f5: DA, f6: AE.
Khi đó các PTH f1 - f5 đúng trong R, mặt khác, R không thỏa PTH f6.
Cho trước tập PTH F trên tập thuộc tính U, ký hiệu SAT(F) là tập tồn thể các
quan hệ trên U thoả tập PTH F, SAT_p(U), p  1 là tập tồn thể các quan hệ

Có khơng quá p bộ trên U và thoả tập PTH F , cụ thể là
SAT(F) = { R | RREL(U), R(F) }
SAT_p(F) = { R | RREL_p(U), R(F) }
Cho tập  các quan hệ trên U, ký hiệu FD() là tập các PTH trên U đúng
trong mọi quan hệ của .
Hệ tiên đề Armstrong
Bao đóng của tập PTH
Định nghĩa
Cho tập PTH F trên tập thuộc tính U. Bao đóng của F, ký hiệu F+ là tập nhỏ
nhất các PTH trên U chứa F và thoả các tính chất F1-F3 của hệ tiên đề
Armstrong Ao sau đây
X, Y, Z  U:
F1. Tính phản xạ: Nếu X  Y thì XY  F +
F2. Tính gia tăng: Nếu XY  F + thì XZYZ  F +
F3. Tính bắc cầu: Nếu XY  F + và YZ  F + thì XZ  F +
Chú ý :


11
Các PTH có vế trái chứa vế phải như mơ tả trong F1 được gọi là tầm thường.
Các PTH tầm thường đúng trong mọi quan hệ. Ngoài ra, các quan hệ trên tập
thuộc tính U có khơng q một bộ thỏa mọi PTH trên U.
Một số tính chất của PTH
Cho tập thuộc tính U và các tập phụ thuộc hàm F, G trên U, tập một số quan
hệ  trên U, các quan hệ R và S trên U. Dễ dàng chứng minh các tính chất sau
đây:
1. Nếu F  G thì SAT(F)  SAT(G)
2. SAT(FG) = SAT(F)  SAT(G)
3. FD(RS)  FD(R)  FD(S)
4. R  S  FD(R)  FD(S)

5. F  FD(SAT(F))
6.   SAT(FD())
7. SAT(FD(SAT(F))) = SAT(F)
8. FD(SAT(FD())) = FD()
Thí dụ
Chứng tỏ FD(RS)  FD(R )  FD(S).
Ta chọn U = AB; quan hệ R(U) chứa một bộ duy nhất u = (a,x); quan hệ S(U)
chứa một bộ duy nhất v = (a,y), x y.
R và S thỏa mọi PTH trên U. Quan hệ P = R S chứa 2 bộ u và v. P không thỏa
PTH AB.
Một số tính chất mở rộng của PTH
Sử dụng ba tiên đề Armstrong ta dễ dàng chứng minh các tính chất F4 - F11 sau
đây. Một số tính chất được chia nhỏ nhằm mục đích mơ tả các hệ tiên đề khác
cho PTH trong các mục tiếp theo.
 X, Y, Z, V  U,  A  U:
F4. Tính tựa bắc cầu: XY, YZV  XZV
F5. Tính phản xạ chặt: X X


12
F6. Mở rộng vế trái và thu hẹp vế phải: XY  XZY\V
F7. Cộng tính đầy đủ: XY, ZV  XZYV
F8. Mở rộng vế trái: XY  XZY
F9. Cộng tính ở vế phải: XY, XZ  XYZ
F10. Bộ phận ở vế phải: XYZ  XY
F11.Tính tích luỹ: XYZ, ZAV  XYZA
1.3 Bao đóng của tập thuộc tính
Định nghĩa
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong U.
Bao đóng của tập thuộc tính X, ký hiệu X+ là tập thuộc tính

X+ = {A U | X  AF+}
Thuật tốn tìm bao đóng của một tập thuộc tính
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong U.
Để xác định bao đóng X+ của tập thuộc tính X ta xây dựng dãy bao nhau
X(0)  X(1)  …  X(i) như sau
 Xuất phát: Đặt X(0)=X,
 Với i > 0, ta đặt

𝑋 (𝑖+1) = 𝑋 𝑖 ⋃ 𝑅
𝐿→𝑅∈𝐹
𝐿𝑋 𝑖

 Nếu X(i+1) = X(i) thì dừng thuật toán và cho kết quả X + = X(i).
Algorithm Closure
Format: thuộc tính X của U
Output: - Y = X+ = {A U | XA F+}
Method
Y:=X;
repeat


13
Z:=Y;
for each FD LR in F do
if L  Y then
Y:=YR;
endif;
endfor;
until Y=Z;
return Y;

end Closure.

Thuật tốn trên có độ phức tạp O(mn2 ).
1.4 Phủ
Định nghĩa
Cho hai tập PTH F và G trên cùng một tập thuộc tính U. Ta nói F suy dẫn ra
được G, ký hiệu F╞ G, nếu gG: F╞ g. Ta nói F tương đương với G, ký hiệu
F  G, nếu F╞ G và G╞ F. Nếu F  G ta nói G là một phủ của F. Ký hiệu F ≢
G có nghĩa F và G không tương đương. Cho tập PTH F trên tập thuộc tính U và
X là tập con của U, ta dùng ký hiệu XF+ trong trường hợp cần chỉ rõ bao đóng
của tập thuộc tính X lấy theo tập PTH F.
+ Phủ không dư
Định nghĩa: Cho hai tập PTH F và G trên tập thuộc tính U. G được gọi là phủ
không dư
của F nếu
(i) G là một phủ của F, và
(ii) G có dạng khơng dư theo nghĩa sau: gG: G \{g} ≢ G
Thuật tốn tìm phủ khơng dư của tập PTH
Algorithm Nonredundant
Format: Nonredundant(F)
Input: - Tập PTH F
Output: - Một phủ không dư G của F


14
(i) G  F
 (ii) g  G: G\{g} ≢ G
Method
G:=F;
for each FD g in F do

If IsMember(g,G\{g})then
G:=G\{g};
endif;
endfor;
return G;
end Nonredundant.
+ Phủ thu gọn trái
Định nghĩa: Cho hai tập PTH F và G trên tập thuộc tính U. G được gọi là phủ
thu gọn trái của F nếu
(i) G là một phủ của F, và
(ii) (LRG,AL): G\{LR}{L\AR} ≢ G
Thuật tốn tìm phủ thu gọn trái của tập PTH
Để ý rằng AL ta có L\A L, nên
g: LRG,AL): G\{g}{L\AR}╞ LR,
do đó ta chỉ cần kiểm tra G ╞ L\AR ?
Algorithm Left_Reduced
Format: Left_Reduced(F)
Input: - Tập PTH F
Output: - Một phủ thu gọn trái G của F
(i) G  F
(ii) g:LRG,AL: G\{g}{L\AR}≢G
Method
G:=F;
for each FD g:L  R in F do
X:=L;
for each attribute A in X do
if IsMember(L\AR,G)then
delete A from L in G;
endif;
endfor;



15
endfor;
return G;
end Left_Reduced.

+ Phủ thu gọn phải
Định nghĩa: Cho hai tập PTH F và G trên tập thuộc tính U. G được gọi là phủ
thu gọn phải của F nếu
(i) G là một phủ của F, và
(ii) (LRG, AR): G\{LR}{LR\A} ≢ G
Thuật tốn tìm phủ thu gọn phải của tập PTH
Algorithm Right_Reduced
Format: Right_Reduced(F)
Input: - Tập PTH F
Output: - Một phủ thu gọn của F
Method
G:=F;
for each FD g:L  R in F do
H:=G\{LR};
X:=R;
for each attribute A in X do
if A in Closure(L,H{LR\A})then
delete A from R in G;
endif;
endfor;
endfor;
return G;
end Right_Reduced.

+ Phủ thu gọn
Định nghĩa: Cho hai tập PTH F và G trên tập thuộc tính U. G được gọi là phủ
thu gọn của F nếu G đồng thời là phủ thu gọn trái và thu gọn phải của F.
Thuật tốn tìm phủ thu gọn của tập PTH
Algorithm Reduced


16
Format: Reduced(F)
Input: - Tập PTH F
Output: - Một phủ thu gọn của F
Method
return Right_Reduced(Left_Reduced(F));
end Reduced
+ Phủ tối thiểu
Định nghĩa: Cho hai tập PTH F và G trên tập thuộc tính U. G được gọi là phủ
tối thiểu của F nếu
(i) G là một phủ thu gọn của F
(ii) Vế phải của mọi PTH trong G chỉ chứa một thuộc tính.
Thuật tốn tìm phủ tối thiểu của tập PTH
Algorithm MinCover
Format: MinCover(F)
Input: - Tập PTH F
Output: - Một phủ tối thiểu G của F
Method
// Tách mỗi PTH LR trong F thành các PTH có
// vế phải chỉ chứa một thuộc tính LA, A  R
G:=;
for each FD LR in F do
for each attribute A in R\L do

if LA not_in G then
add LA to G;
endif;
endfor;
endfor;
G:=Nonredundant(Left_Reduced(G));
return G;
end MinCover.

Thí dụ


17
Cho lược đồ quan hệ R = <U, F>, Trong đó :
U = {ABC}
F = {A→B, B→A, C→B}
Hãy tìm một khoá tối thiểu K của lược đồ R
Đặt T = {ABC}; P = {AB} ; K = U\P = {C}
Tính thử K +
Ta có K+ = {CBA} = U
Vì K+ = U, nên khóa tối thiểu tìm được là: K = {C} là một khố của R.
1.5 Khóa của lược đồ quan hệ
Cho LĐQH p = (U,F). Tập thuộc tính K  U được gọi là khoá của LĐ p nếu
(i) K + = U
(ii)  A  K: (K  {A})+  U
Hai điều kiện trên tương đương với
(i') K  U
(ii')  A  K: (K  {A}) ! U
Nếu K thoả điều kiện (i) thì K được gọi là một siêu khố.
Thuộc tính A  U được gọi là thuộc tính khố (ngun thuỷ hoặc cơ sở)

nếu A có trong một khố nào đấy. A được gọi là thuộc tính khơng khố (phi
ngun thuỷ hoặc thứ cấp) nếu A khơng có trong bất kỳ khố nào. Cho LĐQH
(U,F), ta kí hiệu UK là tập các thuộc tính khóa và Uo là tập các thuộc tính
khơng khóa.
Thí dụ:
Tìm khóa biết: U = ABCDEGF = {B -> C, AC -> D, D -> G, AG -> E}
Đặt: T = { BACDG}- P = {CDGE}- K = U\P
Ta được: K = {AB}, T ∩ P = {CDG}
Tính K+ ta có: K+ = {BEACDG} U


18
Vậy khóa tìm được là: K = {AB}
Chú ý: Trong một số tàì liệu thuật ngữ khố được dùng theo nghĩa siêu
khoá và thuật ngữ khoá tối tiểu được dùng theo nghĩa khoá.
1.6 Các dạng chuẩn 1NF, 2NF, 3NF và BCNF
LĐQH p = (U,F) được gọi là LĐ
a) dạng chuẩn 1 (1NF) nếu mọi thuộc tính trong U đều khơng phải là thuộc
tính phức hợp. Chính xác ra là: LĐ p được gọi là LĐ dạng chuẩn 1 nếu chỉ sử
dụng các phép tốn quan hệ thì khơng thể truy nhập đến một thành phần của
một thuộc tính có hơn một thành phần.
b) dạng chuẩn 2 (2NF) nếu p là LĐ 1NF và mọi thuộc tính khơng khố đều
phụ thuộc đầy đủ vào mọi khoá,
 A  Uo ,  K  Key(p) : K + A
c) dạng chuẩn 3 (3NF) nếu p là LĐ 1NF và mọi thuộc tính khơng khố đều
phụ thuộc trực tiếp vào mọi khố,
 A  Uo ,  K  Key(p) : K * A
d) dạng chuẩn 3 (3NF) nếu p là LĐ 1NF và mọi PTH khơng tầm thường
XA, A là thuộc tính khơng khóa đều cho ta X là một siêu khố,
 (X  A, A  Uo – X )  X + = U

e) dạng chuẩn Boyce-Codd (BCNF) nếu p là LĐ 1NF và mọi thuộc tính
đều phụ thuộc trực tiếp vào mọi khoá,
 A  U ,  K  Key(p) : K * A
f) dạng chuẩn Boyce-Codd (BCNF) nếu p là LĐ 1NF và mọi PTH không tầm
thường XY đều cho ta X là một siêu khóa.
 (X  Y, Y – X   )  X + = U
Sơ đồ tương quan giữa các dạng chuẩn
BCNF  3NF  2NF
1.7 Bảo toàn 3NF bảo toàn phụ thuộc hàm


×