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 khóa và phản khóa trong mô hình cơ sở dữ liệu dạng khối.. Giả thiết k
Trang 1TRONG 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: TS Trịnh Đinh Vinh
HÀ NỘI, 2013
Trang 22
LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo TS Trịnh Đình Vinh, người đã tận tình hướng dẫn, giúp đỡ và động viên tôi trong suốt quá trình làm luận văn
Xin cám ơn tất cả các thầy giáo, cô giáo trong Trường Đại học Sư phạm
Hà Nội 2 đã tạo điều kiện hết sức để tôi được học tập và hoàn thành khóa học được thuận lợi
Xin chân thành cảm ơn các thầy giáo, cô giáo đã trực tiếp giảng dạy và mang đến cho tôi niềm say mê nghiên cứu khoa học
Tôi xin gửi lời biết ơn chân thành tới đồng nghiệp, bạn bè, gia đình đã luôn tạo điều kiện, ủng hộ về mọi mặt để tôi hoàn thành luận văn
Hà Nội, tháng 12 năm 2013
Tác giả luận văn
Nguyễn Thị Phương Thùy
Trang 3Tác giả luận văn
Nguyễn Thị Phương Thùy
Trang 41
MỤC LỤC
MỞ ĐẦU 4
CHƯƠNG 1: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 7
1.1 Thuộc tính và miền thuộc tính 7
1.2 Quan hệ, lược đồ quan hệ 8
1.3 Khóa của quan hệ 9
1.4 Đại số quan hệ 10
1.4.1 Phép hợp 10
1.4.2 Phép giao 11
1.4.3 Phép trừ 11
1.4.4 Tích Đề-các 12
1.4.5 Phép chiếu 13
1.4.6 Phép chọn 14
1.4.7 Phép kết nối 16
1.4.8 Phép chia 17
1.5 Phụ thuộc hàm 18
1.5.1 Các tính chất của phụ thuộc hàm 19
1.5.2 Hệ tiên đề Amstrong cho các phụ thuộc hàm 19
1.6 Bao đóng 20
1.6.1 Bao đóng của tập phụ thuộc hàm 20
1.6.2 Bao đóng của tập thuộc tính đối với tập các phụ thuộc hàm 20
1.6.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
21
Trang 52
1.7 Khoá của lược đồ quan hệ 23
1.7.1 Định nghĩa khóa trong lược đồ quan hệ 23
1.7.2 Các tính chất của khóa trong lược đồ quan hệ 24
1.7.3 Thuật toán xác định một khóa của lược đồ quan hệ 26
1.7.4 Phản khóa và tính chất của phản khóa trong lược đồ quan hệ 27
1.8 Chuẩn hóa cơ sở dữ liệu 28
1.8.1 Hiệu quả của cơ sở dữ liệu 28
1.8.2 Các dạng chuẩn hóa của lược đồ quan hệ 28
CHƯƠNG 2: MÔ HÌNH CƠ SỞ DỮ LIỆU DẠNG KHỐI 2.1 Khối, lược đồ khối 31
2.2 Lát cắt 32
2.3 Khóa của khối 33
2.4 Đại số quan hệ trên khối 35
2.4.1 Phép hợp 36
2.4.2 Phép giao 36
2.4.3 Phép trừ 36
2.4.4 Tích Đề các 36
2.4.5 Tích Đề các theo tập chỉ số 37
2.4.6 Phép chiếu 37
2.4.7 Phép chọn 38
2.4.8 Phép kết nối 38
2.4.9 Phép chia 39
2.5 Phụ thuộc hàm 39
2.6 Bao đóng của tập thuộc tính chỉ số 41
2.7 Khoá của lược đồ khối R đối với tập phụ thuộc hàm F trên R 43
Trang 63
2.8 Dạng chuẩn của khối 45
CHƯƠNG 3: KHÓA VÀ PHẢN KHÓA TRONG LƯỢC ĐỒ KHỐI 3.1 Các tính của khóa trong lược đồ khối 48
3.2 Phản khóa và các tính chất của phản khóa trong lược đồ khối 52
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 55
Trang 7Trong 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 ứng dụng tin học có trong mọi lĩnh vực và ngày càng có xu hướng tăng nhanh Xu hướng tích cực đó kéo theo ngày càng đông đảo người quan tâm đến thiết kế xây dựng các cơ sở dữ liệu Hiện nay có nhiều
mô hình cơ sở dữ liệu, mỗi mô hình đều có ưu nhược điểm riêng Tuy nhiên mô hình cơ sở dữ liệu quan hệ do E.Codd đề xuất tỏ ra có nhiều ưu điểm khi thiết
kế ứng dụng, bởi lẽ mô hình này được xây dựng trên mô hình toán học Do các quan hệ có cấu trúc tuyến tính nên mô hình này chưa đủ đáp ứng đối với các ứng dụng phức tạp
Trong những năm gần đây, việc nghiên cứu nhằm mở rộng mô hình dữ liệu quan hệ đã được nhiều nhà khoa học quan tâm Theo hướng nghiên cứu này một mô hình mới đã được đề xuất, đó là mô hình dữ liệu dạng khối, mô hình này được xem là mở rộng của mô hình quan hệ Với mô hình này cơ sở dữ liệu được lưu đa chiều, tức là cùng một phần tử, ta có thể lưu trữ và xử lý ở các thời điểm khác nhau, việc cập nhật dữ liệu không ảnh hưởng đến dữ liệu trước đó Trên cơ
sở nghiên cứu về mô hình này, một loạt kết quả nghiên cứu đã được công bố nhằm mô tả chi tiết hơn về mô hình dữ liệu dạng khối
Vì vậy, trên cơ sở lý thuyết của các nhà khoa học nghiên cứu về mô hình
dữ liệu quan hệ và mô hình dữ liệu khối, trong luận văn này chúng tôi xây
Trang 85
dựng “Khóa và phản khóa trong mô hình dữ liệu dạng khối” nhằm góp phần
hoàn thiện hơn lý thuyết về mô hình dữ liệu dạng khối
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 khóa và phản khóa trong mô hình cơ sở 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 về khóa và phản khóa trong mô hình khối
Nghiên cứu mối quan hệ giữa khóa và phản khóa trong cơ sở 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
Khóa và phản khóa trong mô hình dữ liệu dạng khối
*Phạm vi nghiên cứu
Các tính chất của khóa trong mô hình dữ liệu dạng khối
Các tính chất của phản khóa trong 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
Trang 96
6 Giả thiết khoa học:
Phát biểu các tính chất và mối quan hệ giữa khóa và phản khóa trong mô hình dữ liệu dạng khối
7 Cấu trúc của luận văn:
Luận văn gồm: Lời mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo
Chương 1: Trình bày các khái niệm cơ bản nhất về mô hình quan hệ Trình bày các phép toán đại số trên mô hình quan hệ, các vấn đề về phụ thuộc hàm, bao đóng, các tính chất của khóa và phản khóa trong mô hình cơ sở dữ liệu quan hệ Phần cuối của chương trình bày về các dạng chuẩn
Chương 2: Giới thiệu tổng quan về mô hình khối: định nghĩa khối, lược đồ khối, lát cắt, khóa, đại số quan hệ trên khối, phụ thuộc hàm, các dạng chuẩn trong khối
Chương 3: Phát biểu và chứng minh một số tính chất của khóa và phản khóa trong mô hình dữ liệu dạng khối
Trang 107
Chương 1: Mô hình cơ sở 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 E.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ể đ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]
Sau đõy là cỏc khỏi niệm của mụ hỡnh dữ liệu quan hệ
1.1 Thuộc tớnh và miền thuộc tớnh
Định nghĩa 1.1 [4], [5]
- Thuộc tớnh là đặc trưng của đối tượng
- Tập tất cả cỏc giỏ trị cú thể cú của thuộc tớnh Ai gọi là miền giỏ trị của thuộc tớnh đú, ký hiệu: Dom(Ai) hay viết tắt là DAi
Vớ dụ 1.1:
Đối tượng Sinhviờn cú cỏc thuộc tớnh như: MaSV, Hoten, NgSinh, Đchi,
Miền giỏ trị của cỏc thuộc tớnh của đối tượng Sinh viờn :
Dom(MaNV) = {char(4)} ={‘SV01’, ‘SV02’, ‘SV03’ .};
Dom(Hoten) = {char(30)} ={‘Nguyễn Văn A’,‘Nguyễn Văn B’, }; Dom(NgSinh) = {date} ={‘30/03/78’, ‘22/12/96’, };
Dom(Đchi) ={char(10)} = {‘HN’, ‘HP’, ‘VP’, …}
Trang 11hj = U →
i i
A
A U
D
, sao cho hj(Ai) DAi (i=1, 2, ,n)
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:
Ví dụ 1.2: Mô tả một ví dụ về bảng nhân viên
Bảng 1.2: Bảng cơ sở dữ liệu nhân viên
Trang 129
Bộ giá trị: (CT001, Nguyễn Anh, Giám đốc, 6) 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 Khi đó, kí hiệu t.X 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)
Định nghĩa 1.3
Tập tất cả các thuộc tính cần quản lý của một đối tượng cùng với mối quan
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 = {A1, A2, , An} được viết là R(A1, A2, , An) hoặc R(U)
Khi đó, một quan hệ r sẽ được xác định trên lược đồ R(U) Miền giá trị của quan hệ r là tập tất cả các bộ của quan hệ được xác định trong lược đồ quan
hệ R(U)
1.3 Khóa của quan hệ [5], [7]:
Định nghĩa 1.4
Khoá của quan hệ r xác định trên tập thuộc U={A1, A2, , An} là tập con
K U sao cho bất kỳ hai bộ khác nhau t1, t2 r luôn thoả t1(K) ≠ t2(K) và bất kỳ tập con thực sự K1 K nào đó đều không có tính chất đó
Tập thuộc tính K’ được gọi là siêu khoá nếu K’ K và K là một khoá của quan hệ r
Ví dụ 1.3:
Bảng 1.3: Bảng cơ sở dữ liệu sinh viên
Ta có thuộc tính MaSV là khóa của quan hệ
Trang 1310
1.4 Đại số quan hệ [4], [7]:
Việc tìm tập dữ liệu theo các phép toán quan hệ thuận tiện Các phép toán này được gọi là đại số quan hệ gồm có năm phép toán cơ bản là: phép chọn, phép chiếu, phép giao, phép hợp và phép trừ Dựa vào các phép toán cơ bản, ta có thể đưa thêm các phép khác như: phép kết nối, phép chia
Định nghĩa 1.5
Hai quan hệ r và s được gọi là khả hợp nếu như hai quan hệ này xác định trên 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ị
1.4.1 Phép hợp
Cho hai quan hệ r và s khả hợp Hợp của r và s ký hiệu 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}
Ví dụ 1.4: Giang nhập bảng 1, Nam nhập bảng 2 Cuối cùng, Giang nhập cả hai
bảng vào bảng 1 và lấy tên là bảng nhân viên:
Trang 14Cho hai quan hệ r và s khả giao Giao của r và s ký hiệu là r s là một quan hệ gồm tập tất cả các bộ thuộc r và thuộc s Ta có:
Trang 15Cho hai quan hệ r và s bất kỳ có tập thuộc tính lần lượt là U1 và U2với U1 U2 = Tích đề - các của r và s ký hiệu là: r x s là một quan hệ trên
U1 U2 gồm tập tất cả các bộ ghép được từ các bộ của r và s Ta có:
r x s = tu, v / u r, v s
Ví dụ 1.7: Khi nhân hai bảng nhân viên 2 với bảng mã khi đó ta được bảng nhân viên 3 Bảng quan hệ này sẽ có hai cột với tên là “mã số” nên bảng mới chúng phải được đổi tên để không trùng lặp tên thuộc tính Ví dụ là mã 1 và
mã 2 Để bảng mới có ý nghĩa cần hạn chế theo điều kiện với nhiều thuộc tính của cả hai bảng, chẳng hạn mã số 1 = mã số 2
Trang 1613
Nhân viên 3 Mã số 1 Mã số 2 Họ và tên Đơn vị Bậc lương
CT001 CT001 Nguyễn Giang Bán hàng 4 CT001 CT002 Trương Hoa Bán hàng 4 CT002 CT001 Nguyễn Giang Kế toán 6 CT002 CT002 Trương Hoa Kế toán 6 CT005 CT001 Nguyễn Giang Bán hàng 4 CT005 CT002 Trương Hoa Bán hàng 4
Bảng 1.7: Phép nhân hai quan hệ 1.4.5 Phép chiếu
Phép chiếu thực hiện trên một quan hệ cho kết quả là quan hệ có số cột
ứng với thuộc tính chiếu Các dòng thu được là các dòng của bảng ban đầu có
các giá trị ứng với các thuộc tính chiếu Sau khi loại bỏ các cột không phải thuộc
tính chiếu, các dòng có thể mang giá trị trùng nhau, nên phải lược bớt các dòng
trùng Chẳng hạn chiếu trên bảng nhân viên:
Chiếu thuộc tính chiếu (nhân viên) = quan hệ kết quả
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: 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
Ví dụ 1.8:
Trong bảng nhân viên Muốn lấy một số thuộc tính như mã số, đơn vị, bậc
lương, thì phép chiếu sẽ được sử dụng như sau:
Trang 1714
Chiếu mã số, đơn vị, bậc (nhân viên1) = quan hệ kết quả
Biểu thức chọn F được định nghĩa là một tổ hợp logic của các 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: >, <, =, ≥, ≠, ≤
Trang 1815
- 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 chọn F, kí hiệu là F(r), là tập tất cả các
bộ của r thoả mãn F Ta có: F(r) = { t│ t∈r F(t)}
Ví dụ 1.9: Trên quan hệ nhân viên, có thể thực hiện phép chọn để xét những nhân viên có bậc lương trên 3 Quan hệ nhân viên = phép chọn ( bậc lương > 3) Có thể viết câu lệnh theo cách không hình thức như:
bậc lương>3(nhân viên) = Nhân viên 2
Nhân viên 2 Mã số Họ và tên Đơn vị Bậc lương
Trang 1916
Kết quả của phép kết nối r và s qua điều kiện F là tập tất cả các bộ giá trị
từ những bộ giá trị của hai quan hệ tham gia và bộ giá trị vừa được ghép thỏa mãn điều kiện cho trước
= {t = (u, v) / u ∈ r v ∈ s F(t) đúng}
Do đó, phép kết nối chính là một phép chọn trên tích Đề - các
= δF(r x s) Điều kiện kết nối F là tổ hợp logic của các toán hạng trong đó mỗi toán hạng là một phép so sánh giữa thuộc tính của r và s
Tùy theo tính chất của biểu thức điều kiện và yêu cầu của kết quả mà có thể chia phép nối thành phép nối tự nhiên, nối bằng, nối so sánh, nửa nối và tự nối Trong đại số quan hệ, các phép toán là tương đương khi chúng cho cùng kết quả Phép nối tương đương với kết quả của hai phép đại số quan hệ là phép nhân
và phép chọn
Ví dụ 1.10: Phép nối tự nhiên giữa hai bảng nhân viên 1 và bảng mã nhân viên thu được bảng nhân viên 2 có hai dòng Dòng ứng với mã số CT005 của bảng nhân viên 1 không nối được với dòng nào của bảng mã
Trang 20r s = t/us,(t,u)r
Ví dụ 1.11: Dựa trên quan hệ về năng lực của nhân viên và khả năng cụ thể mà có thể biết được nhân viên nào đáp ứng các yêu cầu Phép chia thực hiện trên hai quan hệ
Khả năng cần có Năng lực
Đánh máy Tiếng Anh
Trang 21Định nghĩa 1.6
Cho một lược đồ quan hệ R xác định trên tập thuộc tính U Cho X, Y U Nói rằng, X xác định hàm Y (hoặc Y phụ thuộc hàm vào X), ký hiệu: X→ Y nếu trên mọi quan hệ r xác định trên R ta có:
t1, t2r : t1.X = t2.X thì ta có: t1.Y = t2.Y 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:
Nhân viên đáp ứng yêu cầu Họ và tên
Hoàng Hoa Nguyễn Nam
Trang 22Gọi R là quan hệ trên tập thuộc tính U Khi đó với các thuộc tính X, Y, Z,
W ⊆ U ta có hệ tiên đề Armstrong như sau:
Trang 2320
Vậy: F+ = {f | F ╞ f}
Các tính chất:
1, Tính chất phản xạ: Với mọi tập phụ thuộc hàm F ta luôn có FF+
2, Tính chất đơn điệu: Nếu F G thì F+ G+
3, 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+ 1.6.2 Bao đóng của tập thuộc tính
Định nghĩa 1.8
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+}
1.6.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 cơ sở dữ liệu là khi cho trước tập các phụ thuộc
Trang 24để xác định X Y có là thành viên của F+ hay không Đó là: X → Y ∈ F+⇔ Y
⊆ X+ Ta chứng minh điều này
Giả sử Y= {Ai1, Ai2, ,Aik}{A1…An} với A1…An là các thuộc tính và Y
⊆ X+ Từ địnhnghĩa X+ ta có X → Ai, áp dụng hệ tiên đề Amstrong cho mỗi i suy ra X → Y nhờ luật hợp
Ngược lại, giả sử ta có X → Y, áp dụng hệ tiên đề Amstrong cho mỗi i
ta có X → Ai, Ai∈Y nhờ luật tách, suy ra Ai∈ X+ Từ đó, suy ra Y ⊆ X+ Vậy
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 1.2: Tìm bao đóng của tập thuộc tính
Đầu vào: U, F, X
Đầu ra: X+
Trang 25 Ngược lại, Xi = Xi-1
Nếu tồn tại một chỉ số J mà XJ = XJ-1 thì kết thúc thuật toán
Khi đó X+ =Xi
Định lý 1.1:
Thuật toán tìm bao đóng cho kết quả Xi = X+
Ví dụ 1.12: 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: X0 = AB
Bước 1: X1 = X0 {D} vì có A D thỏa mãn điều kiện
Bước 2: X2 = X1 {E} vì có AB DE thỏa mãn điều kiện
Bước 3: X3 = X2 {H} vì có E H thỏa mãn điều kiện
Bước 4: X4 = X3 =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.7 Khóa của lược đồ quan hệ [1], [7]:
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
Trang 26a) ( 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ó 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 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.7.2 Các tính chất của khóa trong lược đồ quan hệ
Các tính chất đơn giản
Cho lược đồ quan hệ (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ược đồ quan hệ không bao nhau
3 Mọi lược đồ quan hệ đều có ít nhất một khoá
Trang 2724
Định lý 1.2
(Đặ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, AX +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 AX
Định lý 1.3
(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 UI
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:
Trước hết để ý rằng các PTH L R và L (R\L) là tương đương, do đó
ta có thể giả thiết rằng mọi PTH trong F đều có dạng L R, L R = , 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
Trang 2825
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 = U\A Dễ thấy X L và X += XAR' = U 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 Thuật toán xác định giao các khóa trong LĐQH
Định lý 1.4
(Định lý về khóa duy nhất, Hồ Thuần, Lê Văn Bào)
Trang 29= K+ = U
T h í d ụ 1.13
Cho LĐQH a = (U, F), U = ABCDE, F = {AB C, AD B, B D}
Ta có, giao của các khóa là UI = ABCDE\BCD = AE, UI+ = (AE)+ = AE U nên
a có hơn một khóa Vì UI là giao các khóa nên ta có thể bổ sung cho UI một số thuộc tính để thu được các khóa Dễ xác định được a có hai khóa là K1 = ABE
và K2= ADE Ta còn có, tập các thuộc tính khóa là UK = ABDE, tập các thuộc tính không khóa là Uo = C
1.7.3 Thuật toán xác định một khóa của lược đồ quan hệ
Bước i : Ki = (Ki-1 - {Ai}) Nếu (Ki-1 - {Ai})+ = U với Ai∈ Ki-1
Ki-1 nếu ngược lại
Kết thúc khi Ki = Ki-1
Nếu muốn tìm các khóa khác (nếu có) của lược đồ quan hệ, ta có thể thay đổi thứ tự loại bỏ các phần tử của K0