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 DẠNG KHỐI
LUẬN VĂN THẠC SĨ MÁY TÍNH
HÀ NỘI, 2014
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 DẠNG KHỐI
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ MÁY TÍNH
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
MỤC LỤC
MỞ ĐẦU 7
1. Lý do chọn đề tài 7
2. Mục đích nghiên cứu 7
3. Nhiệm vụ nghiên cứu 7
4. Đối tượng và phạm vi nghiên cứu 7
5. Phương pháp nghiên cứu 8
6. Dự kiến đóng góp mới cho đề tài 8
7. Cấu trúc luận văn 8
CHƯƠNG I: MÔ HÌNH CÁC DỮ LIỆU QUAN HỆ VÀ MỘT SỐ TÍNH
CHẤT VỀ KHÓA 9
1.1. Giới thiệu mô hình dữ liệu quan hệ 9
1.2. Thuộc tính và miền thuộc tính 9
1.3. Quan hệ và lược đồ quan hệ 10
1.4. Khóa của lược đồ quan hệ 12
1.5. Phụ thuộc hàm 4
1.5.1. Các tính chất của phụ thuộc hàm 15
1.5.2. Hệ tiên đề Amstrong 16
1.6. Hàm đóng 17
1.7. Lược đồ quan hệ 18
1.8. Bao đóng 19
1.8.1. Bao đóng của các tâp phụ thuộc hàm 19
1.8.2. Bao đóng của tập thuộc tính 19
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 20
1.9. Khóa của lược đồ quan hệ 22
1.9.1. Các tính chất của khóa trong lược đồ quan hệ 23
1.9.2. Thuật toán tìm khóa của một quan hệ, giao của các khóa 24
1.10. Dạng chuẩn của các hệ khóa 26
CHƯƠNG II: MÔ HÌNH DỮ LIỆU DẠNG KHỐI 30
2.1. Khối, lược đồ khối 30
2.2. Lát cắt 33
2.3. Khóa của khối 35
2.4. Đại số quan hệ trên khối 37
2.4.1. Phép hợp 37
2.4.2. Phép giao 38
2.4.3. Phép trừ 38
2.4.4. Tích đề các 38
2.4.5. Tích đề các theo tập chỉ số 38
2.4.6. Phép chiếu 39
2.4.7. Phép chọn 39
2.4.8. Phép kết nối 40
2.4.9. Phép chia 41
2.5. Phụ thuộc hàm 41
2.6. Bao đóng của tập thuộc tính chỉ số 42
2.7. Khóa của lược đồ khối R với tập phụ thuộc hàm F trên R 45
2.8. Dạng chuẩn của khối 47
CHƯƠNG III: 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 49
3.1. Hệ Sperner trong mô hình dữ liệu dạng khối 49
3.2. các dạng chuẩn của khóa. 54
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT
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 XY (hợp của 2 tập thuộc tính X vớ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 (xid, i= 1 n).
id(i) = {x(i) xid }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.
Là con.
Chứa.
Thuộc.
Tồn tại.
Không tồn tại.
Không thuộc.
Với mọi.
Rỗng.
Phép giao.
Phép hợp.
Không thuộc tập con
DANH MỤC CÁC HÌNH VẼ
Hình 2.1. Một phần mô hình của khối BANHANG 33
Hình 2.1. Biểu diễn khối nhân viên NV(R) 33
Hình 2.1. Biểu diễn lát cắt 36
Hình 2.1. Khối bán hàng sim điện thoại 51
7
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 vi nghiên cứu
*Đối 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
8
*Phạm vi nghiên cứu
- 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
9
CHƯƠNG I
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 vớ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].
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).
10
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 Đề các của các miền Dom(A
1
), Dom(A
2
) Dom(A
n
),
kí hiệu Dom
(A
i
) =
D
A
i
được biểu diễn như sau:
D(A
1
) 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ố A
1
,A
2
,…,A
n
để 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 vất vả hơn), nhưng 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
1
, 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 A
i
(i = 1,2, , n) có miền giá trị là Dom
(A
i
)
. Khi đó r là một
tập các bộ {h
1
, h
2
, , h
m
} được gọi là quan hệ trên R với h
j
(j=1, 2, , m) là
một hàm:
h
j
= U →
i
i
A
A U
D
, sao cho h
j
(
A
i
)
D
A
i
(i=1, 2, ,n).
11
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:
A
1
A
2
A
n
h
1
(A
1
) h
1
(A
2
) h
1
(A
n)
h
2
(A
1
) h
2
(A
2
) h
2
(A
n)
h
m
(A
1
) h
m
(A
2
) h
m
(A
n)
Bảng 1.1: Bảng ví dụ quan hệ r
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ì h
1
, 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 file đó là khác nhau, vì vậy không chấp nhận có hai bản ghi trùng
nhau trong một file 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:
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
12
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
D
Tê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
D
Trọng lượng
là tập các xâu ký tự độ dài không quá 10
D
Tỉ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 = {h
1
, h
2
, h
3
, h
4
}, ở đây đối với bản ghi thứ
nhất (dòng thứ nhất) chúng ta có
h
1
(Mã hàng) = p
1
h
1
(Tên hàng) = Gạch men
h
1
(Màu sắc) = Trắng
h
1
(Trọng lượng) = 120
h
1
(Tỉnh) = Hà Nội.
13
1.4. Khóa của lược đồ quan hệ. [5], [7]
Định nghĩa 1.3
Giả sử r = { h
1
, h
2
, , h
m
} là một quan hệ, s = < R, F > là một sơ đồ quan
hệ, trong đó R = {a
1
, a
2
, , a
n
} 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 ứng là một khoá của s, một khóa của Y) nếu:
A R ( A R F
+
, (A, R) Y).
Nghĩa là A phải thoả mãn các tính chất sau đây:
Với bất kỳ hai bộ h
1
, h
2
r đều tồn tại một thuộc tính a A sao cho h
1
(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 t
1
(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 A R
+ Bất kỳ một tập con thực sự của A không là khoá của r (s, Y) hay không tồn
tại A' tập con thực sự A' A mà A' R
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).
f
r
14
Khóa đóng một vai trò rất quan trọng vì nhờ có nó người ta mới tìm
kiếm được (tìm kiếm bản ghi ). Phép toán tìm kiếm bản ghi trong file dữ liệu
là phép toán quan trọng nhất vì chỉ sau khi tìm kiếm 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 với nhau trong quá trình tìm kiếm bản ghi là nhanh nhất.
Một sơ đồ quan hệ có thể có nhiều khóa.
1.5. Phụ 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
1
, a
2
, , a
n
} là tập các thuộc tính, r = { h
1
, h
2
, , h
m
} là một
quan hệ trên R, và A, B R ( A, B là tập cột hay tập thuộc tính ). Khi đó ta
nói A xác định hàm cho B hay B phụ thuộc hàm vào A trong r
( ký pháp A B ) nếu:
( h
i
, h
j
r) (( a A ) ( h
i
(a) = h
j
(a)) ( b B ) ( h
i
(b) = h
j
(b) ))
Ta sẽ viết (A, B) hay A B thay cho A B
Đặ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 B 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 B cũng phải bằng nhau từng cặp một.
r
f
15
- 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
SBD HOTEN DIACHI TINH KHUVỰC
SP2A0001
Nguyễn Văn Minh
Phúc Yên
Vĩnh Phúc
0
SP2A0002
Nguyễn Hải Minh
30 Láng Hạ
Hà Nội
3
SP2A0003
Đặng Nhật Minh
Mê Linh
Hà Nội
3
SP2A0004
Vũ Thúy Minh
89 Văn lãng
Lạng Sơn
0
SP2A0005
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 thoã 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 = {A1, 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 Y X thì X Y
f
f
16
2, Tính mở rộng hai vế
Nếu X Y thì XZ YZ
3, Tính bắc cầu
Nếu X Y và 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ếu X Y và YW Z thì XW Z
6, Tính cộng đầy đủ
Nếu X Y và Z W thì XZ YW
7, Tính tích lũy
Nếu 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
1
, a
2
, , a
n
} 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) : A, B R }
Khi đó : Y P(R) x P(R) là họ f nếu
A, B, C, D R có
1). (A, A) Y
2). (A, B) Y, (B, C) Y (A, C) Y
3). (A, B) Y, A C, D B (C, D) Y
4). (A, B) Y, (C, D) Y (A C, B D) Y
17
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.
- A A (A, A) F
r
A B
- A C
B C
- A B (A C, D B) C D
Ví dụ: Cho r
1
, r
2
là các quan hệ:
a b a b
1 0 1 0
r
1
= 1 1 r
2
= 1 1
2 3 2 3
1 2 1 2
Có thể thấy rằng r
1
và r
2
khác nhau nhưng F
r1
= 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ệ Lớp các phụ thuộc hàm
1.6. Hàm đóng.
Định nghĩa 1.6
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):
r
r
r
r
r
r
18
- A L(A)
- Nếu A B thì L(A) L(B)
- L (L(A)) = L (A).
Định lý 1.1
Nếu F là một họ f và chúng ta đặt L
F
(A) = { a: a R: (A,{a}) F}
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, B): 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:
Lớp các họ phụ thuộc hàm Lớp các hàm đóng
1.7. Lược đồ quan hệ.
Định nghĩa 1.7
Cho trước R = {a
1
, a
2
, , a
n
} là tập các thuộc tính.
Khi đó s là một sơ đồ quan hệ, s = < R, F >
A
1
B
1
A
2
B
2
F = . . . . . .
. . . . . .
A
t
B
t
19
ở đây A
i
, B
i
R ( i = 1, ,t ) và A
i
B
i
là phụ thuộc hàm
Ví dụ: Cho sơ đồ quan hệ s = < R, F >, với R = {a
1
, a
2
, a
3
, a
4
}
{a
1
} {a
3
, a
4
} cột 1 xác định hàm với cột 3 cột 4
F = {a
2
} {a
3
} cột 2 xác định hàm với cột 3
{a
3
} {a
4
} cột 3 xác định hàm vớ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
+
là 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 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:
1, Tính phản xạ: X X
+
2, Tính đơn điệu: Nếu X Y thì X
+
Y
+
3, Tính lũy đẳng: X
++
= X
+
4, X
+
Y
+
(XY)
+
5, (X
+
Y)
+
= (XY
+
)
+
= (X
+
Y
+
)
+
=(XY)
+
6, X Y
Y X
+
7, X Y
Y
+
X
+
8, X X
+
và X
+
X
9, X
+
= Y
+
X Y và Y X
20
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 Y 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 vì 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 F
+
Y X
+
. Thật vậy: X Y tồn tại k sao cho
Y = A
k
A
i
= X
+
Y X
+
X
+
= Y (X
+
- Y) X Y (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, Y U
Đầ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 Y X
+
nếu đúng thì X Y 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
21
Đầu ra: X
+
Phương pháp
Tính liên tiếp các tập thuộc tính X
0
, X
1
, theo phương pháp sau:
Bước 0: X
0
= X
Bước i:
* Xi = Xi-1 {A} nếu Y Z F, A Z và A Xi-1
* Ngược lại, X
i
= X
i-1
Nếu tồn tại một chỉ số J mà X
J
= X
J-1
thì kết thúc thuật toán.
Khi đó X
+
=X
i
Định lý 1.2
Thuật toán tìm bao đóng cho kết quả X
i
= X
+
Chứng minh:
Ta sẽ chứng minh X
i
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ó X
0
=
X X X
0
. Cho nên X
0
X
+
Bước quy nạp: Giả sử X X
i-1
(1) ta cần chứng minh X X
i
. Thật
vậy, theo thuật toán tìm bao đóng ta có f
j
= X
j
Y
j
để X
i-1
X
j
và X
i
= X
i-1
Y
j
X
i-1
Y
j
(2). Từ (1) và (2) X Y
j
(3).
Từ (1) và (3) X X
i-1
và Y
j
= X
i
X X
i
.
.
Vậy X
i
X
+
Ta chứng minh A X
+
A X
i
để kết luận X
i
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 X
i
A X
i
. Nên ta có điều phải chứng minh.
Ví dụ: Cho tập thuộc tính U = {A, B, C, D, E, G, H} và tập phụ thuộc
hàm F = {A D, AB DE, CE G, E H}
Tính (AB)
+
F
Bước 0 : X
0
= AB
22
Bước 1: X
1
= X
0
{D} vì có A D thỏa mãn điều kiện
Bước 2: X
2
= X
1
{E} vì có AB DE thỏa mãn điều kiện
Bước 3: X
3
= X
2
{H} vì có E H thỏa mãn điều kiện
Bước 4: X
4
= 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ệ , U 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ỳ K
U . Ta nói rằng
K 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) ( K → U)
F+
b) Không tồn tại Z
K sao cho (Z → U )
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 K 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) (K- A)+ ≠ U,
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ó
23
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 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. K
U là một khoá khi và chỉ khi U 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 l ý 1.3
( Đặc trưng của các thuộc tính khóa )
Cho K là một khóa của LĐQH a = (U,F). Khi đó với mọi tập con X của K ta
có:
X
+
K = X.
Chứng minh
Vì X
X
+
và X
K nên X
X
+
K. Ta cần chứng minh X
+
K
X.
Giả sử A
X
+
K và A
X. 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, A
X
+
M
+
. Từ đây suy ra K
M
+
,
do đó, theo tính chất lũy đẳng của bao đóng và tính chất khóa của K ta có, U=
K
+
M
++
= M
+
, tức là M là bộ phận thực sự của khóa K lại đồng thời là siêu
khóa, trái với định nghĩa khóa. Vậy A
X.
Đ ị n h l ý 1.4
(Công thức tính giao các khóa)
Cho LĐQH a = (U,F) với n thuộc tính trong U và m PTH trong F. Gọi U
I
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: