Tải bản đầy đủ (.docx) (95 trang)

Luận văn một số tính chất mở rộng của khóa 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 (506.94 KB, 95 trang )

Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM
HÀ NỘI 2
NGUYỄN VĂN HÂN
MỘT SÓ TÍNH CHẤT MỞ RỘNG CỦA KHÓA
TRONG MÔ HÌNH DỮ LIÊU DANG KHỐI
• •
LUẬN VĂN THẠC SĨ MÁY TÍNH
Bộ GIÁO DỤC VÀ ĐÀO TẠO • • • TRƯỜNG ĐẠI HỌC sư PHẠM
HÀ NỘI 2

HÀ NỘI, 2014

• Người hướng dẫn khoa học: PGS.TS Trịnh Đình Thắng
HÀ NỘI, 2014
• LỜI CẢM ƠN
• Luận văn tốt nghiệp cao học được hoàn thành tại Đại học Sư phạm
Hà Nội 2. Có được luận văn tốt nghiệp này, tác giả xin bày tỏ lòng biết ơn sâu sắc
tới trường Đại học Sư phạm Hà Nội 2, Phòng Sau đại học, đặc biệt là PGS.TS
Trịnh Đình Thắng đã trực tiếp hướng dẫn, dìu dắt, giúp đỡ tác giả với những chỉ
dẫn khoa học quý giá trong suốt quá trình triển khai, nghiên cứu và hoàn thành đề
tài “Những tính chất mở rộng của khóa trong mô hình dữ liệu dạng khối”.
• Xin chân thành cám ơn các Thầy Cô giáo - Các nhà khoa học đã
trực tiếp giảng dạy truyền đạt những kiến thức chuyên ngành khoa học máy tính
cho bản thân tác giả trong những năm qua.
• Tác giả rất mong nhận được sự đóng góp, phê bình của quý thầy
Cô, các nhà khoa học, đọc giả và các bạn đồng nghiệp.
• Xin chân trọng cảm ơn!
• Hà Nội, ngày 10 tháng 12 năm 2014
• Học viên
• Nguyễn Văn Hân
• LỜI CAM ĐOAN


• Tôi xin cam đoan đây 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, các số liệu, kết quả nêu trong luận
văn là trung thực và chưa từng được công bố trong bất kỳ công trình nào khác.
• Học viên
• Nguyễn Văn Hân
• MUC LUC


• DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT
• • y
• Trong luận á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
• CSDL Cơ sở dữ liệu.
• LĐQH Lược đồ quan hệ.
• PTH Phụ thuộc hàm.
• A, B, c Thuộc tính.
• X, Y, z Tập thuộc tính.
• XY XuY (hợp của 2 tập thuộc tính X YỚi Y).
• ABC [A, B, C] (tập thuộc tính gồm 3 phần tử A, B, C).
• Dom(A) Miền giá trị của thuộc tính 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 chỉ số của lược đồ khối (xeid, i= 1 n id(i) =
{x(i) xeid }Tập các thuộc tính chỉ số của lược đồ khối.
• |r| Số phần tử của khối r.
• C

• Là con.
• 1
3
• Chứa.

• e • Thuộc.
• 3 • Tồn tại.
• È
• Không tồn
tại.
• Ể
• Không
thuộc.
• V • Với mọi.
• 0 • Rỗng.
• n • Phép giao.
• u • Phép hợp.
• i
• Không thuộc
tập con

• DANH MUC CÁC HÌNH VẼ


• I. MỞ ĐẦU
1. Lý do chọn đề tài
• Những năm gần đây, việc nghiên cứu tìm ra các mô hình mới đáp ứng
các ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc tuyến tính và phi tuyến tính được
các nhà nghiên cứu trong và ngoài nước quan tâm. Một trong những mô hình mới này
là mô hình dữ liệu dạng khối. Mô hình dữ liệu này có thể xem là một mở rộng của mô
hình dữ liệu quan hệ.
• Trong quản lý cơ sở dữ liệu(CSDL), khóa là yếu tố liên kết giữa các
(CSDL) với nhau. Nhờ có khóa mà hệ quản trị ( CSDL) có thể quản lý tốt được chất
lượng dữ liệu
• Để góp phần hoàn chỉnh thêm về mô hình dữ liệu dạng khối và việc sử

dụng khóa trong mô hình dữ liệu tôi mạnh dạn chọn đề tài “Một số tính chất mở rộng
của khóa trong mô hình dữ liệu khối” cho luận văn của mình.
2. Mục đích nghiên cứu
- Tìm hiểu khái quát về mô hình cơ sở dữ liệu dạng khối sau đó đi sâu và nghiên
cứu các tính chất mở rộng của khóa trong mô hình khối.
- Chứng minh một số tính chất của mở rộng của khóa, đặc trưng của các thuộc
tính mở rộng của khóa trong mô hình dữ liệu dạng khối.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu lý thuyết về mô hình cơ sở dữ liệu dạng khối . Cụ thể là các tính
chất mở rộng của khóa trong mô hình khối, Đặc trưng của các thuộc tính mở
rộng của khóa trong mô hình dữ liệu dạng khối.
4. Đối tượng và phạm vỉ nghiên cứu
• *ĐỐỈ tượng nghiên cứu
- Một số tính chất mở rộng của khóa trong cơ sở dữ liệu cụ thể là đặc trưng của
các thuộc tính mở rộng của khóa trong mô hình dữ liệu dạng khối
• *Phạm vi nghiên cứu
6
- Một số tính chất mở rộng của khóa trong mô hình dữ liệu dạng khối.
5. Phương pháp nghiền cứu
- Phương pháp tổng hợp phân tích các vấn đề có liên quan đến đề tài.
- Phương pháp lý luận
- Phương pháp chứng minh
6. Dự kiến đóng góp mới của đề tài
- Nêu lên được các tính chất mở rộng của khóa trong mô hình dữ liệu dạng
khối.
7. Cấu trúc của luận văn.
- Tương ứng với nhiệm vụ nghiên cứu đặt ra, ngoài phần mở đầu và phần kết
luận, nội dung của luận văn được triển khai trong 3 chương.
• Chương 1: Các mô hình dữ liệu quan hệ và một số tính chất về khóa
• Chương 2: Mô hình dữ liệu dạng khối

• Chương 3: Một số tính chất mở rộng của khóa trong mô hình dữ liệu dạng
khối.
• Sau cùng là Phụ lục và Tài liệu tham khảo
• CHƯƠNGI MÔ HÌNH CÁC DỮ LIỆU QUAN HỆ VÀ
MỘT SỐ TÍNH CHẤT VỀ KHÓA
1.1. Giới thiệu về mô hình dữ liệu quan hệ
• Mô hình dữ liệu quan hệ (Ralational Data Model) gọi tắt là mô hình
quan hệ, do EF.Codd đề xuất năm 1970. Nền tảng lý thuyết của nó là khái niệm lý
thuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị.
• Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, và
thực tiễn đã cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất. Mô hình dữ liệu này
cùng Yới mô hình thực thể kết hợp đang được sử dụng rộng rãi trong việc phân tích
và thiết kế CSDL hiện nay. Các vấn đề của cơ sở dữ liệu được trình bày trong [4], [5],
[7]. [8]. [9].
7
• Sau đây là các khái niệm của mô hình dữ liệu quan hệ.
1.2. Thuộc tính và miền thuộc tính [4], [5]
• Định nghĩa 1.1
• Thuộc tính là các đặc điểm riêng của một đối tượng. Mỗi thuộc tính có
một tên gọi và phải thuộc về một kiểu dữ liệu nhất định.
• Kiểu dữ liêu
• Các thuộc tính được phân biệt qua tên gọi và phải thuộc một kiểu dữ
liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh, ). Kiểu dữ liệu ở đây có thể là
kiểu vô hướng hoặc là kiểu có cấu trúc. Nếu thuộc tính có kiểu dữ liệu là vô hướng thì
nó được gọi là thuộc tính đơn hay thuộc tính nguyên tố, nếu thuộc tính có kiểu dữ liệu
có cấu trúc thì ta nói rằng nó không phải là thuộc tính nguyên tố Miền giá trị
• Thông thường mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của
kiểu dữ liệu và tập hợp con đó được gọi là miền giá trị của thuộc tính. Ký hiệu DOM
(tên thuộc tính).
• Ví dụ , tập các ký tự số có chiều dài chính xác là 7, là miền của thuộc

tính số điện thoại. Tích Đe các của các miền Dom(Ai), Dom(A
2
) Dom(A
n
), kí hiệu
Dom(Ai) = D
A
được biểu diễn như sau:
• D(Ai) X D(A
2
) X X D(A
n
)
• Chẳng hạn thuộc tính NỮ có miền giá trị là {nam,nữ}, thuộc tính màu
da có miền giá trị là {da trắng, da vàng, da đen, da đỏ}, thuộc tính điểm thi là các số
thuộc tập [0; 1 ; 2; ,10].
• Lưu ý rằng nếu không lưu ý đến ngữ nghĩa thì tên của các thuộc tính
thường được ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái la tinh:
A,B,C,D, Những chữ cái in hoa X,Y,Z,W, thường dùng thay cho một nhóm nhiều
thuộc tính. Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số А
ь
А
2
,-'Лп để chỉ các
thuộc tính trong trường hợp tổng quát hay muốn đề cập đến số lượng các thuộc tính.
Tên thuộc tính phải được đặt một cách gợi nhớ, không nên đặt tên thuộc tính quá dài
(vì như thế sẽ làm cho việc viết các câu lệnh truy vấn trở nên Yất vả hơn), nhưng
8
cũng không nên đặt tên thuộc tính quá ngắn (vì nó sẽ không cho thấy ngữ nghĩa của
thuộc tính), đặc biệt không đặt trùng tên hai thuộc tính mang ngữ nghĩa khác nhau

thuộc hai đối tượng khác nhau.
1.3. Quan hệ và lược đồ quan hệ [4], [7]
• Định nghĩa 1.2
• Cho u = {A
b
A
2
, A
n
} là một tập hữu hạn không rỗng các thuộc
tính. Mỗi thuộc tính Ai (i = 1,2, n) có miền giá trị là Dom(Ai). Khi đó r là một tập các
bộ {h
b
h
2
, h
m
} được gọi là quan hệ trên R với hj (j=l, 2, m) là một hàm:
• hj = и —> u D
A
, sao cho hj(Ai) e D
Ai
(i=l, 2,
• Aị eU
• Ta có thể xem một quan hệ như một bảng mà trong đó mỗi hàng (phần
tử) là một bộ và mỗi cột tương ứng với một thuộc tính. Biểu diễn quan hệ r thảnh
bảng như sau:

• Nhân xét:
- Định nghĩa này là quan trọng, toàn bộ cơ sở dữ liệu dựa trên định nghĩa này,

nó là hạt nhân của cơ sở dữ liệu quan hệ.
- Vì hi, h
2
, , h
m
là các thành phần trong tập họp quan hệ trong r, cho nên các fíle
đó là khác nhau, vì vậy không chấp nhận có hai bản ghi trùng nhau trong một
fíle dữ liệu.
• Ví dụ: Để lưu dữ thông tin về các mặt hàng, người ta sử dụng bảng sau:
• Ai • A2

• A
n
• hi(A0 • hi(A
2
)

• hi(A
n
)
• h2(Ai) • h2(A
2
)

• h2(A
n
)
• • • •
• hJẠĩ) • h
m

(A
2
)

• h
m
(A
n)
• Bảng 1.1: Bảng ví dụ quan hệ r
9
• MẢT HÀNG
• Mã
hàng
• Tên
hàng
• Màu
săc
• Trọng
lượng
• Tỉnh
• P1 • Gạch
men
• Trăng • 120 • Hà
Nội
• P2 • Sơn • Xanh • 450
• Ninh
Bình
• P3 • Kính • Nâu • 800 • Bình
Định
• P4 • Bôn

tăm
• Trăng • 1000 • Phú
Thọ

• Bảng 1.2: Bảng cơ sở dữ liệu mặt hàng
• Chúng ta có thể quy định kích thước cho các thuộc tính (các trường) như sau:
• Tên thuộc tính • Kiểu • Kích thước
• Mã hàng • Ký tự • 5
• Tên hàng • Ký tự • 30
• Màu săc • Ký tự • 15
• Trọng lượng • Sô • 10
• Tỉnh • Ký tự • 20

• Có nghĩa là chúng ta quy định:
• Thuộc tính Mă hàng là một xâu ký tự có độ dài không quá 5 Thuộc tính Tên
hàng là một xâu ký tự có độ dài không quá 30 Thuộc tính Mầu sắc là một xâu ký
tự có độ dài không qúa 15 Trọng lượng là một số nguyên không quá 10 Tỉnh là
một xâu ký tự không quá 20 Như vậy ta có tập thuộc tính
• MẶTHÀNG = { Mã hàng, Tên hàng, Màu sắc, Trọng lượng, Tỉnh}
• Ở đây D
M
ã hàng là tập các xâu ký tự độ dài không quá 5 Diên hàng là tập các xâu
ký tự độ dài không quá 30 D
Màu
sắc là tập các xâu ký tự độ dài không quá 15
Dirọng lượng là tập các xâu ký tự độ dài không quá 10 Dxình là tập các xâu ký tự độ dài
không quá 20
• Khi đó chúng ta có các quan hệ r = {hi, h
2
, h

3
,114}, ở đây đối YỚi bản ghi thứ
• nhất (dòng thứ nhất) chúng ta có
1
0
• hi(Mã hàng) = Pi
• hi(Tên hàng) = Gạch men
• hi(Màu sắc) = Trắng
• hi (Trọng lượng) =120
• hi(Tỉnh) = Hà Nội.
1.4. Khóa của lược đồ quan hệ. [5], [7]
• Định nghĩa 1.3
• Giả sử r = { h
b
h
2
, , h
m
} là một quan hệ, s = < R, F > là một sơ đồ quan
• hệ, trong đó R = {a
b
a
2
, , an} là tập các thuộc tính, F là tập tất cả 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 ứr» Ц một khoá của s, một khóa
của Y) nếu: f
• A—> R ( A -> R e F
+
, (A, R) eY). r

• Nghĩa là A phải thoả mãn các tính chất sau đây:
• Với bất kỳ hai bộ h
b
h
2
e r đều tồn tại một thuộc tính a e A sao cho h,(a) Ф
h
2
(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 ti(A) Ф t
2
(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á của r ( tương ứng của s, của Y)
• nếu:
• + A là một khoá của r (s,Y) tức А —> 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'cAmàA'^R
Nhận xét:
• Khoá chính là hình ảnh của cột mã số hay số thứ tự (vì số thứ tự không
thể chùng nhau được).
1
1
• Khóa đóng một vai trò rất quan trọng YÌ 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 YÌ chỉ sau khi tìm kiếm song 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 YỚ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.
1.5. Phu thuôc hàm.
• •
• Khái niệm về phụ thuộc hàm trong một quan hệ là rất quan trọng trong
việc thiết kế mô hình dữ liệu. Năm 1970 E.F Codd đã đề cập phụ thuộc hàm trong mô
hình dữ liệu quan hệ, nhằm giải quyết việc phân rã không tổn thất thông tin. Định
nghĩa về khái niệm này được phát biểu như sau:
• Định nghĩa 1.4
• Cho R = { a
b
a
2
, , an } là tập các thuộc tính, r = { hi, h
2
, , h
m
} là một
quan hệ trên R, và А, в ç R ( А, в là tập cột hay tập thuộc tính ). Khi đó ta nói A xác
định hàm cho в hay в phụ thuộc hàm vào A trong r ( ký pháp А —» В ) nếu:
• ( V hi, hj e r) (( Va e А ) ( hi(a) = hj(a)) => ( Vb € в ) ( hi(b) = hj(b) ))
• г f
• Ta sẽ viết (А, B) hay А —> в thay cho А—>
в Đặt F
r
={(A, B):A,BçR,A^B}
• Lúc đó F

r
được gọi là họ đầy đủ các phụ thuộc hàm của r .
• Nhận xét:
- Ta có thể thấy rằng в mà phụ thuộc hàm vào A, nếu hai dòng bất kỳ mà các
giá trị của tập thuộc tính A mà bằng nhau từng cặp một, thì kéo theo các giá trị
trên tập thuộc tính в cũng phải bằng nhau từng cặp một.
1
2
- Với định nghĩa này dễ thấy rằng trong các file dữ liệu cột, mã số hoặc số thứ tự
không thể bằng nhau.
• Ví dụ: Xét quan hệ
• THI SINH
• SB
D
• HOTEN • DIACHI
• TIN
H
• KH
UVựC
• SP2
A0001
• Nguyên Văn
Minh
• Phúc Yên • Vĩn
h Phúc
• 0
• SP2
A0002
• Nguyễn Hải
Minh

• 30 Láng
Hạ
• Hà
Nội
• 3
• SP2
A0003
• Đặng Nhật
Minh
• Mê Linh • Hà
Nội
• 3
• SP2
A0004
• Vũ Thúy
Minh
• 89 Văn
lãng
• Lạn
g Sơn
• 0
• SP2
A0005
• Trần Khắc
Minh
• 40 Trần
hưng đạo
• Hải
Dương
• 2


• Trong quan hệ THISINH, dựa vào định nghĩa phụ thuộc hàm của quan
hệ ta có:
• { TINH } -> { KHUVUC }
• { SBD } -> { HOTEN, DIACHI, TINH, KHUVUC }
• 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.
• Phụ thuộc hàm trên tập các thuộc tính R là một dãy các ký tự có dạng A
—» B, ở đây A, B ^ R. Ta nói phụ thuộc hàm A —> B đúng trong r nếu A —* B . Ta
nói răng r tìioã mãn A —> B.
• Dễ thấy F
r
là tập tất cả các phụ thuộc hàm đúng trong r.
1.5.1. Các tính chất của phụ thuộc hàm
• Cho lược đồ quan hệ R xác định trên tập thuộc tính u = {Al, A2, An},
cho X, Y, z, w, u thì ta có một số tính chất cơ bản của lớp các phụ thuộc hàm như
sau:
1, Tính phản xạ
•Nếu YcX thìX —» Y
2, Tính mở rộng hai vế
1
3
• Nếu X —> Y thì xz -» YZ
3, Tính bắc cầu
• NếuX-> YvàY->Z thìX->Z
4, Tính mở rộng trái và thu hẹp phải
• Nếu X -> Y thì xz -> Y-W
5, Tính tựa bắc cầu
• NếuX-> YvàYW->Zthì xw^z
6, Tính cộng đầy đủ

• Neu X -» Y và z -» w thì xz —» YW
7, Tính tích lũy
• Neu X -» Y và Y —» ZW thì X -» YZW
1.5.2. Hệ tiên đề Armstrong.
• Năm 1974, Armstrong đã chỉ ra được bốn đặc trưng cho một tập phụ
thuộc hàm của một file dữ liệu nào đó. Chúng được gọi là hệ tiên đề Armstrong.
• Định nghĩa 1.5
• Cho trước R = {a
b
a
2
, , an} là một tập hữu hạn không rỗng các thuộc
• tính.
• ta gọi P(R) X P(R) = {(A, B) : А, В e R }
• Khi đó : Y ç= P(R) X P(R) là họ f nếu
V A, B, c, D ç R có
1) . (A, A)eY
2) . (A, B) G Y, (В, С) G Y => (A, С) G Y
3) . (A, B)e Y,AçC,DçB=> (C, D)EY
4) . (A, B) e Y, (C, D) e Y => (A u с, в uD) e Y
• Hệ quả (Tính đầy đủ cuả hệ tiên đề Armstrong)
• Armstrong đã chỉ ra rằng, nếu Y là một họ f tuỳ ý thì tồn tại quan hệ
r sao cho F
r
= Y.
1
4
•(A, A) e F
r
• A

• A
• -
• -
=> A
• в —> с .
• г

• А > В (А с
С, D
• Ví dụ: Cho г
ь
r
2
là các
quan hệ:
• a b
• a
b
• 1 0 •
1
0
• ri = 1 1 r
2
• =
1 1
• 2 3
• 2
3
• 1 2 •
1

2

• Có ứiể ứiấy rằng Ĩ1 và r
2
khác nhau nhưng F
r
i = F
r2
.
• Như vậy là tương quan giữa các lớp quan hệ với các lớp họ phụ
thuộc hàm được thể hiện bằng hình vẽ sau:

• Lớp các quan hệ
các phụthuộchàm
1.6. Hàm đóng.
• Định nghĩa 1.6
• -
>

С

1
5
• Một hàm L : P(R) —» P(R), ( P(R) là tập các tập con của R ) được
gọi là hàm đóng trên R nếu với mọi A,B € P(R):
- AçL(A)
- Nếu A ç В thì L(A) ç L(B)
- L (L(A)) = L (A).
• Định lý 1.1
•Neu F là một họ f và chúng ta đặt Lp(A) = { a: a eR: (A,{a}) eF}

• Thì L
F
là một hàm đóng. Ngược lại nếu L là một hàm đóng thì tồn tại duy
nhất một họ f F trên R sao cho L = L
F
. F được chỉ ra theo cách sau:
• F = {(A, В): A,BçR,Bç L(A)}.
•Như vậy, chúng ta thấy có sự tương ứng 1-1 giữa lớp các hàm đóng và lớp
các họ f. Sự tương ứng này được minh hoạ bằng hình vẽ sau:

1.7. Lược đồ quan hệ.
• Định nghĩa 1.7
•Cho trước R = {a
b
a
2
, , a^} là tập các thuộc tính.
Khi đó s là một sơ đồ quan hệ, s = < R, F >
r
Aị —> Bi A2
—> B2
• F= {
• ở đây Ai, Bi Œ R ( i =

1
6
) và Ai -» Bi là phụ thuộc hàm
• Ví dụ: Cho sơ đồ quan hệ s = < R, F >, với R = {a
b
a

2
, a
3
, a
4
} г {aj
-» {a
3
, a
4
} cột 1 xác định hàm với cột 3 cột 4 F = J {a
2
} -» {a
3
}
cột 2 xác định hàm với cột 3
• {a
3
} —» {84}
cột 3 xác định hàm YỚi cột 4
1.8. Bao đóng
1.8.1. Bao đóng của các tập phụ thuộc hàm.
• Định nghĩa 1.8
•Giả sử F là tập các phụ thuộc hàm trên sơ đồ quan hệ s — < R,F >. Gọi F
+

tập tất cả các phụ thuộc hàm có thể suy dẫn lôgic từ F bởi các luật của hệ tiên đề
Armstrong. Khi ấy F
+
được gọi là bao đóng của F.

1.8.2. Bao đóng của tập thuộc
tính Định nghĩa 1.9
• 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

• X—>A được suy diễn từ F. Ta có: x
+
= {A I X —» A e F
+
}
•Các tính chất của bao đóng:
1, Tính phản xạ: X с x
+
2, Tính đơn điệu: Neu X cz Y thì x
+
cz Y
4
^
3, Tính lũy đẳng: x
++
= x
+
4, X
+
Y
+
с (XY)

+
5, (X
+
Y)
+
= (XY
+
)
+
= (X
+
Y
+
)
+
=(XY)
+
6, X —> Y oYcX
+
1
7
7, X —» Y « Y
+
c=X
+
8, X —> x
+
và x
+
—> X

9, x
+
= Y
+
« X^Yvà Y^X
1.8.3. Bài toán thành viên và thuật toán tìm bao đóng của tập thuộc tính
• Bài toán thành viên:
• Nói rằng X —» Y là thành viên của F nếu X —» Y € F
+
. Một vấn đề
quan trọng khi nghiên cứu lý thuyết CSDL là khi cho trước tập các phụ thuộc hàm F
và một phụ thuộc hàm X —» Y, là làm sao để biết X —> Ye F
+
? Bài toán này được
gọi là bài toán hàm thành viên.
• Để trả lời câu hỏi này ta có thể tính F
+
rồi xác định xem X —> Y có
thuộc F
+
hay không. Việc tính F
+
là một công việc đòi hỏi thời gian và công sức. Tuy
nhiên, thay YÌ tính F
+
chứng ta có thể dùng tính chất 6 của bao đóng của tập thuộc
tính để xác định X —> Y có là thành viên của F hay không. Đó là:
• X —» Y e F
+
<=> Y c= x

+
. Thật vậy: X -» Y => tồn tại k sao cho
Y = A
k
c u Ai= x
+
Y c x
+
=> x
+
= Y u (X
+
- Y) => X -> Y u (X
+
- Y) => X —
> Y
• Từ đó, ta có thuật toán sau:
• Thuật toán 2.1: Xác định xem một phụ thuộc hàm X —> Y có tồn tại hay
không?
• Đầu vào: U,F,X,YcU Đầu ra: Kết
luận sự tồn tại của X —» Y Phương pháp
• Bước 1: Tìm bao đóng của tập thuộc tính X: X
+
F
Bước 2: Kiểm tra YcX
+
nếu đúng thì X —» Y e F
+
.
• Ngược lại, X —» Y Ể F

+
• Bước 3: Kết luận Thuật toán 2.2: Tìm
bao đóng của tập thuộc tỉnh Đầu vào: u, F, X
1
8
• Đầu ra: x
+
• Phương pháp
• Tính liên tiếp các tập thuộc tính Xo, x
b
theo phương pháp sau:
• Bước 0: Xo = X
• Bước i:
* Xi = Xi-1 u {A} nếu Y->ZeF,AeZ và AệÉ Xi-1
* Ngược lại, Xj = Xị.1
• Nếu tồn tại một chỉ số J mà Xj = Xj_i thì kết thúc thuật toán.
• Khi đó x
+

=Xi Định lý 1.2
• Thuật toán tìm bao đóng cho kết quả Xi = x
+
• Chứng minh:
• Ta sẽ chứng minh Xi Ç x
+
bằng phương pháp quy nạp.
• Bước 0: Theo tính chất phản xạ của luật dẫn thì X —» X, vậy ta có Xo
= X => X -> Xo. Cho nên Xo Ç x
+
• Bước quy nạp: Giả sử X —> Xị.1 (1) ta cần chứng minh X —> Xi-

Thật vậy, theo thuật toán tìm bao đóng ta có fj = Xj -» Yj để Xị.1 =2 Xj và Xi = Xi_i u
Yj X
M
-> Yj (2). Từ (1) và (2) => X —» Yj (3).
• Từ (1) và (3) => X-> Xj_,và Yj = Xi => X -> Xi. Vậy Xi e x
+
• Ta chứng minh A çz x
+
=> A ÇZ Xj để kết luận Xi 2 x
+
• A Ç x
+
nên có một phụ thuộc hàm X —> A. Theo thuật toán tìm bao
đóng thì X Ç Xi => A çXi. Nên ta có điều phải chứng minh.
• Ví dụ: Cho tập thuộc tính и = {А, в, с, D, Е, G, H} và tập phụ thuộc
hàmF = {A -» D, AB -» DE, CE ^ G, E -> H}
• Tính (AB)
+
F
• Bước 0 : x
0
= AB
• Bước 1 : X! = Xo u {D} vì có A —» D thỏa mãn điều kiện
1
9
• Bước 2: x
2
= Xi u {E} YÌ có AB —» DE thỏa mãn điều kiện
• Bước 3: x
3

= x
2
u {H} vì có E —> H thỏa mãn điều kiện
• Bước 4: X4 = x
3
=ABDEH
• Do đó, tất cả các phụ thuộc hàm có thể xác định từ AB:
• ( AB —» D, AB —» E, AB —» H, AB -> AB)
• Vậy (AB)
+
F = ABDEH
1.9. Khoá của lược đồ quan hệ.
• Theo định nghĩa đã được trình bày trong phần 1.3 thì khóa là một hoặc
một tập thuộc tính xác định duy nhất trong quan hệ. Thông thường trong một lược đồ
quan hệ có thể tồn tại nhiều khóa. Trong số đó, sẽ có một khóa được lựa chọn làm
khóa chính. Trong phần này, đưa ra một số vấn đề liên quan đến khóa thông qua phụ
thuộc hàm.
• Định nghĩa 1.10
• Cho s = < u , F > là một lược đồ quan hệ , и là tập các thuộc tính khác
rỗng và F là tập các phụ thuộc hàm. Cho tập con bất kỳ к ->u . Ta nói rằng К là khoá
(Key) của lược đồ quan hệ s khi và chỉ khi nó thỏa mãn 2 điều kiện sau:
a) ( К —> U) G F+
b) Không tồn tại z ç К sao cho (Z —> и ) G F+.
• Điều kiện (a) và (b) khẳng định các thuộc tính không khoá phụ thuộc
đày đủ vào khóa. Từ định nghĩa trên có thể suy ra rằng к là khóa của lược đồ quan hệ
khi và chỉ khi nó thỏa mãn 2 điều kiện:
a) K+ = u
b) (К- A)+ ф и, V A,K.
• Điều này có nghĩa là mỗi một giá trị của khoá xác định duy nhất giá trị
của các thuộc tính không khoá. Giá trị khoá khác nhau thì giá trị các bộ có chứa giá trị

khoá cũng khác nhau. Nếu loại bỏ một phần thông tin về khóa thì thông tin của các
thuộc tính còn lại không thể xác định được. Như vậy khoá là tập các thuộc tính sao
2
0
cho bao đóng của nó là nhỏ nhất. Nghĩa là nếu thêm hoặc loại bỏ các phần tử của
khoá sẽ là dư thừa hay thiếu thông tin.
1.9.1. Các tính chất của khóa trong lược đồ quan hệ [8]. [9].
• Các tính chất đơn
giản Cho LĐQH (U,F). Khi
đó
1. К çU là một khoá khi và chỉ khi и phụ thuộc đầy đủ vào K.
2. Hai khoá khác nhau của một LĐQH không bao nhau.
3. Mọi LĐQH đều có ít nhất một khoá.
• Đ ị n h 1 ý 1.3
• ( Đặc trưng của các thuộc tính khóa )
• Cho К là một khóa của LĐQH а = (U,F). Khi đó với mọi tập con X của к ta có:
• x
+
nK = X.
• Chứng minh
• Vì X cX
+
vàXçK nên XcX
+
nK. Ta cần chứng minh X
+
n к Œ X. Giả sử А
e X
+
nK và A gX. Ta xét tập M = K\A. Dễ thấy XçM. Ta có, theo tính chất đồng

biến của bao đóng, Ae X
+
ç M
+
. Từ đây suy ra к с M
+
, do đó, theo tính chất lũy đẳng
của bao đóng và tính chất khóa của к ta có, u= K
+
çM
++
= M
+
, tức là M là bộ phận
thực sự của khóa к lại đồng thời là siêu khóa, trái với định nghĩa khóa. Vậy Ae X.
• Đ ị n h lý 1.4
• (Công thức tính giao các khóa)
• Cho LĐQH а = (U,F) với n thuộc tính trong и và m PTH trong F. Gọi Uj là
giao các khóa của a. Khi đó có thể xác định giao các khóa bằng một thuật toán tuyến
tính theo mn qua công thức:
• Ui = U\ u (R\L)
• (L—>R)GF
• Chứng minh
• Trước hết để ý rằng các PTH L-» R và (RVL) là tương đương, do đó ta có thể
2
1
giả thiết rằng mọi PTH trong F đều có dạng L—»R, LnR = 0, tức là giả thiết rằng tập
PTH F được cho dưới dạng thu gọn tự nhiên. Do giả thiết này ta có R\L=R.
• Dễ nhận thấy, theo công thức tính Ui trong định lý, Ui là tập các thuộc tính
không có mặt trong vế phải của mọi PTH trong F, do đó chúng phải có mặt trong mọi

khóa. Giả sử A là một thuộc tính có trong vế phải của PTH L—>AR' nào đó của F. Ta
chứng minh A sẽ không xuất hiện trong một khóa K nào đấy của a. Thật vậy, xét tập
X = Ư\A. Dễ thấy X 3L và X
+
= XAR' = ư và do đó X là siêu khóa. Từ siêu khóa X
không chứa A ta lấy ra được một khóa K không chứa A.
1.9.2. Thuật toán tìm khóa của một quan hệ, giao của các khóa.
• Input: r = {h
l5
h
2
, , h
m
} là một quan hệ trên tập các thuộc tính R (R = {ai,
• &2V» Sn})
• Output: K là một khoá tối tiểu của
r Phương pháp:
• Bước 1: Từ r = {h
l5
h
2
, , h
m
}, tính E
r
= {Eỹ : 1< i < j < m } là hệ bằng
nhau Bước 2: Từ E
r
tính M
r

là hệ bằng nhau cực đại
• M
r
= {B : có Ejj để Ejj = B và không có E
st
:B(X E
st
( Ejj, Egt e E
r
)}
• Bước 3: Lần lượt tính các tập thuộc tỉnh Ko, K i , , K
n
theo quy tắc:
• Ko = R = { ai , a
2
an } hoặc Ko là một khóa.
• Ki = KM\ { ai} nếu không tồn tại B € M
r
sao cho Ki_i\ { £Li} cz B hoặc Kị =
Ki_i trong trường hợp còn lại.
• Bước 4: Đặt Kị = Kị.1 . Khi ấy K
n
là một khóa tối thiểu.
• Nhân xét:
- Việc tính M
r
là dễ dàng vì số lượng phần tử của M
r
nhỏ hơn rất nhiều so với
E

r
- Thuật toán này nếu thay đổi thứ tự các thuộc tính của R ta có thể tìm thấy
một khoá khác.
• Ví dụ: Xét quan hệ chuyen hang trong bảng sau: shh: Số hiệu
2
2
của hãng cung cấp shmh: số hiệu của mặt hàng được cung cấp
sluong: Số lượng hàng cung cấp trong chuyển hàng E34 = { shh }
• Bước 2: TínhM
r
= {{ shh, sluong },{ ngay, shmh }}
• Bước 3: Ko = R = { ngay, shh, shmh, sluong }
• Ki = Ko \ { ngay } = { shh, shmh,
sluong } vậy Ki = { shh, shmh, sluong }
• K
2
= Ki \ { shh } = { shmh, sluong }
• K
3
= K
2
\ { shmh } = { shh, sluong } e M
r

K4 = K
3
\ { sluong } = { shh, shmh }
• Vậy khoá tối tiểu của quan hệ chuyen hang: K={shmh, sluong }
* Thuật toán xác định giao các khóa trong LĐQH
Algorithm Keylntersec Format: KeyIntersec(U,F)

• Input: - Tập thuộc tính u
- Tập PTH F
• Output: - Giao các k h ó a = u \ ỊJ (R\L).
• c L->R)eF
• Method
• M:=Ư;
• for each FD L—»R in F do
• M:= м \
(R\L); endfor;
return M; end
Keylntersec.
• Theo thuật toán trên, để tính giao các khóa ta càn thực hiện m lần lặp
ứng với số lượng PTH trong tập F. Trong mỗi lần lặp, phép toán trên tập hợp n phàn
tử có độ phức tạp 0(n) do đó độ phức tạp của thuật toán tính giao các khóa,
Keylntersec là O(mn). Tích mn chính là chiều dài của biểu diễn LĐQH a = (U,F) tức
là chiều dài của dữ liệu vào trong thuật toán.
2
3
• Định lý 1.5
• Cho LĐQH a = (U,F). Gọi Ui là giao của các khóa trong a. Khi đó a có
một khóa duy nhất khi và chỉ khi Ui
+
= u.
• Chứng minh
• Nếu Ui
+
= u thì Ui là siêu khóa. Vì Ui là giao của các khóa đồng thời lại là siêu
khóa nên a không thể còn khóa nào khác ngoài Ui. Ngược lại, nếu a chỉ có một khóa
duy nhất к thì giao của các khóa đương nhiên là Ui = K, và do đó, theo tính chất của
khóa Ui

+
= K
+
= Ư.
1.10. Dạng chuẩn của các hệ khóa [5]. [9].
• Định nghĩa 1.11 ( Định nghĩa về Sperner).
• Giả sử r là một quan hệ, s = <R,F> là một sơ đồ quan hệ, Y là một họ f
trên R, và AçR. Khi đó A là một khóa của r (tương ứng là một khóa của s,
• một khóa của Y) nếu A—>R (A-»ReF
+
’ (A,R)eY). Chúng ta gọi A là một
• r
• khóa của r (tương ứng của s, của Y) nếu.
- A là một khóa của r (s, Y),
- Bất kỳ một tập con thực sự của A không là khóa của r (s, Y).
- Chúng ta ký pháp K
r
(Ks, Ky) tương ứng là tập tất cả các khóa của r
• (S,Y).
- Chúng ta gọi K (ở đây K là một tập con của P(R)) là một hệ Spemer trên R nếu
với mọi A, B e K kéo theo AỂB.
- Có thể thấy K
r
,K
S
, Ky là các hệ Spemer trên R.
• Ví dụ: Ta có bảng quan hệ sau:
• BANHANG
• MH • TEN_HANG
• SO_LUONG

(kg)
• 101
• Đường kính
trăng
• 1000
• 102 • Mì chính • 500
• 201 • Bột canh • 2000
2
4

• Trong bảng trên mã số mặt hàng (MH) là khoá. Mỗi giá trị MH đề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).
• Nếu ta có: K ={K
b
K
2
, , K
n
}
• ở đây, Kị (i = 1, , t) là các tập con của R, nếu có tính chất sau:
• + Ki không bao giờ nằm trong Kj ( Kị <ịz Kj ) thì K được gọi là một hệ
Spemer.
• Dễ thấy K
r
, Ks, K
v
là hệ Spemer trên R.
• Định nghĩa 1.12
• Cho K là hệ Spemer trên R. Ta nói rằng K là 2NF( 3NF, BCNF, tương

ứng) nếu với mỗi sơ đồ quan hệ S=<R,F> mà K
s
= K thì s là 2NF( 3NF, BCNF tương
ứng).
• Bây giờ chúng ta cho điều kiện cần và đủ để một hệ Spemer bất kỳ là
• 2NF.
• Cho K là một hệ Spemer trên R. Đặt Kp= [a&R\3A&K\a&A } và K
n
=R-
• Kp.Kp(K
n
) được gọi là tập các thuộc tính cơ bản (thứ cấp) của K.
• Cho trước sơ đồ quan hệ s = <R,F>, chúng ta nói rằng phụ thuộc hàm A
-^BeF là thừa nếu hoặc A=B hoặc có C-»DeF sao cho CcA và BcD.
• Định lý 1.6
• Cho К là hệ Spemer trên R. Khi đó к là 2NF nếu và chỉ nếu K
n
= Ф
Chứng minh:
• Theo định nghĩa của quan hệ 2NF, hệ Spemer và K
n
ta có thể thấy nếu K
n
= Ф
thì К là 2NF.
• Bây giờ ta giả thiết К là 2NF . Ký pháp K'
1
là tập các phản khóa của K.
Từ К, K'
1

ta xây dựng sơ đồ quan hệ sau:
• Đối với mỗi AcR ta có BeK"
1
sao cho AeB. Đặt с = n { в eK'
1
:
2
5

×