CÀI ĐẶT PHẦN MỀM TÍNH BAO ĐÓNG (A+) VÀ KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ
Trang 1MỞ ĐẦU
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được tập trung nghiên cứu của tin học nhằm giải quyết các vấn đề về quản lý, tìm kiếm và xử
lý thông tin trên các hệ thống thông tin lớn, đa dạng và phức tạp Cùng với
sự phát triển mạnh mẽ của tin học và máy tính trong đời sống kinh tế, văn hoá, xã hội, việc nghiên cứu CSDL ngày một phát triển rộng rãi và hoàn thiện hơn.
Hiện nay có rất nhiều loại mô hình cho các hệ CSDL như:
Mô hình mạng (Network model)
Mô hình phân cấp (Hierachical model)
Mô hình quan hệ (Relational model)
Từ những năm 1970, mô hình dữ liệu quan hệ do E.F Codd đưa ra đã tạo ra cơ sở toán học chặt chẽ với cấu trúc hoàn chỉnh làm nền tảng cho các vấn đề nghiên cứu lý thuyết về CSDL Với ưu điểm về tính cấu trúc và khả năng hình thức phong phú, CSDL quan hệ dễ dàng mô phỏng các hệ thông tin đa dạng trong thực tiễn tạo điều kiện lưu trữ thông tin tiết kiệm, có tính độc lập và nhất quán cao, dễ sửa đổi, bổ sung cũng như khai thác dữ liệu,
mô hình quan hệ có sự phát triển mạnh mẽ về lý thuyết và ngày càng được sử dụng rộng rãi trong việc thiết kế các CSDL lớn và phức tạp Ngôn ngữ quản trị dữ liệu cho mô hình quan hệ khá trong sáng và tự nhiên, do đó dễ học, dễ
sử dụng, điều này lý giải cho sự phát triển mạnh mẽ không ngừng của các hệ quản trị CSDL trên máy tính IBM-PC như: Dbase, Foxbase, Foxpro, Access, SQL Forwin, Oracle,
Mô hình dữ liệu quan hệ đặt trọng tâm hàng đầu không phải tính hiệu quả của máy tính, mà sự mô phỏng trực quan dữ liệu theo quan điểm người dùng, cung cấp mô hình dữ liệu đơn giản, dễ hiểu, chặt chẽ và có khả năng
Trang 2tự động hoá thiết kế Trong bản luận văn này em đã trình bầy một số kiến thức cơ bản về cơ sở dữ liệu và áp dụng kiến thức này xây dựng chương trình:
+ Tính bao đóng (A + ).
+ Kiểm tra một sơ đồ quan hệ có phải là BCNF hay không ?
Em xin chân thành cảm ơn thầy giáo Vũ Đức Thi đã tận tình hướng
dẫn em trong quá trình làm luận văn, và em cũng xin chân thành cảm ơn Khoa Công Nghệ Thông Tin - Trường Đại Học Đông Đô đã tạo điều kiện thuận lợi cho em hoàn thành luận văn này.
Do luận văn này được xây dựng trong thời gian eo hẹp với vốn kiến thức hạn chế, cho nên luận văn này không tránh khỏi những thiếu sót Em mong nhận được những ý kiến đóng góp để kiến thức cũng như chương trình được hoàn thiện hơn.
Hà Nội, Ngày 28 tháng 5 năm 2000
Người viết
Hoàng Văn Thủy
Trang 3MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG I: NHỮNG KHÁI NIỆM CƠ BẢN VỀ MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 5
1.1 Quan hệ 5
1.2 Phụ thuộc hàm 8
1.3 Hệ tiên đề Armstrong
9 1.4 Hàm đóng 11
1.5 Sơ đồ quan hệ 11
1.6 Bao đóng 12
1.7 Khoá của quan hệ, lược đồ quan hệ, họ f
13 1.8 Tập các phản khóa 15
1.9 Nửa dàn giao 15
1.10 Hệ bằng nhau 16
1.11 Thể hiện 17
1.12 Sơ đồ quan hệ tương đương 20
1.13 Thuộc tính cơ bản, thuộc tính thứ cấp
22 1.14 Một số thuật toán liên quan 22
CHƯƠNG II: DẠNG CHUẨN ĐỐI VỚI QUAN HỆ VÀ SƠ ĐỒ QUAN HỆ 37
Trang 42.1 Các khái niệm cơ bản
37 2.2 Dạng chuẩn 2NF 40
2.3 Dạng chuẩn 3NF 43
2.4 Dạng chuẩn BCNF 45
2.5 Các thuật toán liên quan 46
CHƯƠNG III: CHUẨN HÓA DỮ LIỆU TRONG THỰC TẾ
52 3.1 Dạng chuẩn thứ nhất (1NF) .53
3.2 Dạng chuẩn 2 (2NF ) .55
3.3 Dạng chuẩn 3 (3NF) 58
3.4 Dạng chuẩn Boyce Codd (BCNF) .60
CHƯƠNG IV: CÀI ĐẶT PHẦN MỀM TÍNH BAO ĐÓNG (A + ) VÀ KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ 63
4.1 Các Thuật toán được sử dụng trong chương trình .
63 4.1.1 Thuật toán tính bao đóng (A+) 63
4.1.2 Thuật toán kiểm tra một sơ đồ quan hệ có là BCNF hay không 63
4.2 Phân tích thông tin đầu vào
64 4.3 Phân tích thông tin đầu ra 64
4.4 Thiết kế chương trình 65
Trang 5KẾT LUẬN 74 TÀI LIỆU THAM KHẢO 75
CHƯƠNG I NHỮNG KHÁI NIỆM CƠ BẢN VỀ MÔ HÌNH
CƠ SỞ DỮ LIỆU QUAN HỆ
Trong mục này trình bầy những khái niệm cơ bản nhất về mô hình dữliệu quan hệ của E.F.Codd Những khái niệm cơ bản này gồm các khái niệm
về quan hệ, phụ thuộc hàm, hệ tiên đề Armstrong, khoá,
Những khái niệm này đóng vai trò rất quan trọng trong mô hình dữ liệuquan hệ Chúng được dùng nhiều trong việc thiết kế hệ quản trị cơ sở dữ liệu(CSDL) như: Dbase, Foxbase, Foxpro, Oracle, Mega,
1.1 Quan hệ
Định nghĩa 1.
Cho R={a1,a2, ,an} là một tập hữu hạn không rỗng các tập thuộc tính
{h1,h2, ,hm} được gọi là một quan hệ trên R với hj (j =1, 2, ,m) là một hàm:
hj: R Dai
Trang 6Ví dụ: Để lưu dữ thông tin về các mặt hàng, người ta sử dụng bảng sau:
MẶTHÀNG
Trang 7Mã hàng Tên hàng Màu sắc Trọng lượng Tỉ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}
DTên hàng là tập các xâu ký tự độ dài không quá 30
DMàu sắc là tập các xâu ký tự độ dài không quá 15
DTrọng lượng là tập các xâu ký tự độ dài không quá 10
Trang 8Khi đó chúng ta có các quan hệ r = {h1, h2, h3, h4}, ở đây đối với bản ghi thứnhất (dòng thứ nhất) chúng ta có
Định nghĩa 2 (phụ thuộc hàm)
Cho R = { a1, a2, , an } là tập các thuộc tính, r = { h1, h2, , hm } là mộtquan hệ trên R, và A, B R ( A, B là tập cột hay tập thuộc tính ) Khi đó tanói A xác định hàm cho B hay B phụ thuộc hàm vào A trong r
Trang 9- 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ácgiá trị trên tập thuộc tính B cũng phải bằng nhau từng cặp một.
- 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ệ
THISINH
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
rf
Trang 101.3 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 3 (Hệ tiên đề Armstrong)
Hệ quả 4 (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ệ rsao cho Fr = Y
r r
r
Trang 11Có thể thấy rằng r1 và r2 khác nhau nhưng Fr1 = Fr2.
Như vậy là tương quan giữa các lớp quan hệ với các lớp họ phụ thuộchàm được thể hiện bằng hình vẽ sau:
Nếu F là một họ f và chúng ta đặt LF(A) = { a: a R: (A,{a}) F}
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:
Trang 12Lớp các họ phụ thuộc hàm Lớp các hàm đóng
1.5 Sơ đồ quan hệ.
Định nghĩa 7.
Cho trước R = {a1, a2, , an} là tập các thuộc tính
Khi đó s là một sơ đồ quan hệ, s = < R, F >
Định nghĩa 8 (Bao đóng của các tập phụ thuộc hàm)
Giả sử F là tập các phụ thuộc hàm trên sơ đồ quan hệ s = < R, F > Gọi
Định nghĩa 9 (Bao đóng của tập các thuộc tính)
Giả sử s = < R, F > là sơ đồ quan hệ trên tập các thuộc tính R, A R
Trang 13r được gọi là bao đóng của A trên r
1.7 Khóa của quan hệ, sơ đồ quan hệ, họ f.
Định nghĩa 11.
Giả sử r = { h1, h2, , hm} là một quan hệ, s = < R, F > là một sơ đồquan hệ, trong đó R = {a1, a2, , an} là tập các thuộc tính, F là tập tất cả cácphụ 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ộtkhoá 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:
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 đượccá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ệunhầm lẫn
Chúng ta gọi A ( A R) là một khoá tối tiểu của r ( tương ứng của s,của Y) nếu:
fr
f r
Trang 14+ Bất kỳ một tập con thực sự của A không là khoá của r (s, Y) haykhông tồn tại A' tập con thực sự A' A mà A' R.
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ìmkhó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 sosá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, thậm chí còn có nhiều khoátối tiểu
ở đây, Ki (i = 1, , t) là các tập con của R, nếu có tính chất sau:
Sperner
Trang 15Dễ thấy Kr , Ks , Kv là hệ Sperner trên R.
1.8 Tập các phản khoá
Tập phản khóa đóng vai trò quan trọng trong quá trình nghiên cứu cấutrúc logic của các họ phụ thuộc hàm, khóa, dạng chuẩn, quan hệ Armstrong,đặc biệt đối với các bài toán tổ hợp trong mô hình dữ liệu quan hệ
Đinh nghĩa 12.
Giả sử K = {K1, K2, , Kt} là một hệ Sperner trên R = {a1, a2, , an} Ta
Nhận xét:
Nếu K đóng vai trò là một tập các khoá tối tiểu của một sơ đồ quan hệ
nhất
- Ở đây ta luôn giả thiết rằng nếu một hệ Sperner đóng vai trò tập các khoátối tiểu (tập các phản khóa), thì hệ Sperner không rỗng ( Không chứaR)
- Demertovics.J đã chứng tỏ rằng nếu K là một hệ Sperner tuỳ ý, thì tồn tại
1.9 Nửa dàn giao
Định nghĩa13.
Trang 16Cho I P(R) Khi đó I được gọi là nửa dàn giao nếu
R I và A, B I A B I
Định nghĩa 14.
Giả sử I là một nửa giàn giao Giả sử M P(R) Ký hiệu
Chú ý: R M+ nhưng không thuộc M vì nó là giao của một họ rỗng các tậphợp
1.10 Hệ bằng nhau
Định nghĩa 15.
Giả sử r = { h1, h2, , hm } là một quan hệ trên R = { a1, a2, , an }
Đặt Er = { Eij : 1 ij | r | } trong đó Eij = {a R: hi(a) = hj(a)},
Er được gọi là hệ bằng nhau của r
Ví dụ: Cho quan hệ r.
a1 a2 a3 a4 a5
1 1 0 1 0
1 0 0 3 0
Trang 173 1 1 3 1
5 1 0 3 0
Trang 18Hoàng Văn Thủy 18
Trang 19Trước hết ta sẽ chứng minh rằng nếu r là một quan hệ trên
R và A R:
Eij nếu tồn tại Eij Er: A Eij
LFr (A) =
R ngược lại
mọi hi, hj r tồn tại a A : hi(a) hj(a) Do đó theo định nghĩa phụ thuộchàm ta có A R
+ Nếu V = Er thì mọi Eij đều chứa A và E, do đó a A, i,j :
hi(a) = hj(a) b E i,j : hi(b) = hj(b) Vậy ta có thể nói A E
hay (A, E) Fr
+ Nếu V Er thì
Eij V bao giờ cũng tồn tại a A sao cho hi(a) hj(a) Do đó hi(a) =
hj(a) a A chỉ có thể xẩy ra với các i,j có EijV
Khi ấy b E : hi(b) = hj(b) với những i, j có Eij V (do định nghĩacủa E)
A E ij
Trang 20Giả sử LFr(A) chứa thuộc tính c, cE Khi đó tồn tại Eij V mà c Eij
do đó tồn tại cặp hi, hj r mà b E: hi(b) = hj(b) nhưng hi(c) hj(c) Như vậy theo định nghĩa phụ thuộc hàm, c không phụ thuộc hàm vào E,
trái với (1).
Ta có thể kết luận LFr(A) = E = Eij
EijV
Cho F là một họ f trên R, (A, B) là một phần tử của F
Ta nói (A, B) là một phụ thuộc có vế phải cực đại của F nếu với mọi B' (B
B') và (A, B') F kéo theo B = B'
Ta ký hiệu M(F) là tập tất cả các phụ thuộc có vế phải cực đại của F
Định nghĩa 21.
Trang 21Ta nói rằng B là vế phải cực đại của F nếu có A sao cho (A, B) M(F) và ta ký hiệu I(F) là tập tất cả các vế phải cực đại của F.
1.12 Sơ đồ quan hệ tương đương.
Định nghĩa 22.
Giả sử s = <R, F> và t = <R, G> là hai lược đồ quan hệ trên R Ta
s là phủ định của t hoặc t là phủ định của s
Nhận xét:
Dễ dàng kiểm tra xem t và s có tương đương không, bằng cách sau:
Xét từng phụ thuộc hàm trong F Hai phụ thuộc hàm sau đã nằm trong G
Trang 22Tính {a, b}+ đối với G
A0 = {a, b}
A1 = {a, b, d} = R do {a} {d}
A2 = {a, b, c, d} = R do {a, b, d} {c}
Ta tìm được {a, b}+ ={a, b, c, d}
Xét từng phụ thuộc hàm trong G Hai phụ thuộc hàm sau đã nằm trong F Xét phụ thuộc hàm {a, b, d} {c, d} G Kiểm tra xem phụ thuộc hàm
Tính {a, b, d}+ đối với G:
A0 = {a, b, d}
A1 = {a, b, c, d} = R do {a, b}{c}
Ta tìm được {a, b, d}+ ={a, b, c, d}
Vậy c, d {a, b, d}+ đối với F, tức là {a, b, d}{c, d} F+
Định nghĩa 23 (Hai quan hệ tương đương với nhau)
Giả sử r1 và r2 là hai quan hệ trên R Khi đó r1 tương đương với r2
Trang 23Định nghĩa 25 (Thuộc tính cơ bản, thuộc tính thứ cấp)
Giả sử r = { h1, h2, , hm } là một quan hệ trên R = { a1, a2, , an } và Kr
là tập tất cả các khóa tối tiểu của r Ta nói a là một thuộc tính cơ bản của r
Nếu a không là thuộc tính cơ bản, a sẽ được gọi là thuộc tính thứ cấp
1.14 Một số thuật toán liên quan
Thuật toán 1 (Tìm tập các thuộc tính cơ bản của một quan hệ trên R) Input: r = { h1, h2, , hm} là một quan hệ trên R
Output: V là tập tất cả các thuộc tính cơ bản của r
Trang 24Nhận xét:
Ta thấy m( m-1) Er M Mr )
bằng thời gian đa thức theo số hàng và số cột của r
Như thế mọi thuộc tính của r đều là cơ bản
Định lý 27.
Tồn tại một thuật toán để xác định một thuộc tính bất kỳ của mộtquan hệ có là cơ bản hay không với thời gian đa thức theo số hàng và sốcột của r
Một vấn đề thường xuyên xảy ra là đối với một sơ đồ quan hệ chotrước (s = <R, F>), và một phụ thuộc hàm A B, chúng ta muốn biết
Trang 25Tuy nhiên tính F+ trong trường hợp tổng quát là rất khó khăn và tốn
lại không khó Theo kết quả đã trình bầy ở trên thì việc kiểm tra A B
F+ không khó hơn việc tính A+
Thuật toán 2 (Tính bao đóng của một tập các thuộc tính trên tập các phụ thuộc hàm đối với sơ đồ quan hệ)
Input : s = < R, F > là một sơ đồ quan hệ trong đó
R = (a1, a2, , an) là tập hữu hạn các thuộc tính
F là tập các phụ thuộc hàm và A R
Output : A+ là bao đóng của A đối với F
Phương pháp: Lần lượt tính các tập thuộc tính Ao, A1 như sau:
1) A0 = A
cho Ai = Ai+1
Ví dụ: Xét sơ đồ quan hệ s = < R, F > trong đó
Trang 26để tính bao đóng cho một tập bất kỳ trên quan hệ r.
Thuật toán 3 (Tính bao đóng cho một tập bất kỳ trên quan hệ r)
Input : r = {h1, h2, , hm} là một quan hệ trên R = { a1, a2, , an }, A R
Output : A+
r
A E ij
Trang 27cột nào trùng nhau về giá trị, có nghĩa rằng chúng khác nhau hoàn toàn, cóthể xẩy ra một số các tập bằng nhau trùng nhau.
vì nếu xẩy ra thì có hai dòng trùng nhau, theo định nghĩa quan hệ thì khôngcho phép có hai dòng trùng nhau
Trang 28Bước 3: So sánh Nr1 và Nr2 Nếu Nr1 = Nr2 thì kết luận hai quan hệ tương
Trang 29E34 = { A }
Nr2 = {{ A, B }, { A, D, E }, { B, E }, { C, E }}
Như vậy Nr1 Nr2 Hai quan hệ r1 và r2 là không tương đương
Định nghĩa 29.
Chúng ta nói một sơ đồ quan hệ s = < R, F >là chính tắc nếu:
- Vế phải của mỗi phụ thuộc hàm trong F là thuộc tính đơn
- Không có X a nào ở trong F để F \ {X a} tương đương với F
- Không có X a và một tập con Z của X để F \ { X A} {Z a}tương đương với F
Chúng ta sẽ chỉ ra rằng có thuật toán để tìm một phủ chính tắc chomột sơ đồ quan hệ bất kỳ
Trước tiên chúng ta đưa ra mệnh đề sau
Mệnh đề 30.
Mỗi một sơ đồ quan hệ s = < R, F > đều có một phủ tương đương
t = < R, G > sao cho vế phải của mỗi phụ thuộc hàm trong G không có hơnmột thuộc tính
Ta đặt G là tập phụ thuộc hàm có dạng X a, với X Y nằmtrong F và a là một phần tử của Y Trên cơ sở hệ tiên đề của Armstrong, ta
dễ thấy t tương đương với s
Thuật toán dưới đây để tìm phủ chính tắc cho một sơ đồ quan hệ cho trước
Trang 30Fi = Fi-1 \ {Ai Bi} nếu Fi-1 \ {Ai Bi} tương đương với Fi Trong trườnghợp ngược lại thì Fi = Fi-1.
David Maier đã chứng minh định lý sau
Trang 31Thuật toán 6 (Tìm một khóa tối tiểu của sơ đồ quan hệ)
Input: Sơ đồ quan hệ s = < R, F > trong đó
R = {a1, a2, , an} là tập các thuộc tính
F là tập các phụ thuộc hàm
Output: K là một khoá tối tiểu của R.
Trang 32Ki-1 nếu ngược lại.
K= Kn là khoá tối tiểu
Nhận xét:
việc sàng lọc này là bỏ đi những cột thừa với điều kiện bỏ đi những phầncòn lại bao đóng của nó bằng R Nếu bỏ đi mà bao đóng phần còn lạikhông là khóa thì không bỏ đi được ( vì nó không đảm bảo tính khóa)
này cũng có độ phức tạp là đa thức
Có thể thấy rằng thay đổi thứ tự các thuộc tính của R ta lại có thểtìm được một khoá tối tiểu khác
Nếu đã biết một khoá A ( không chắc chẵn là khoá tối tiểu ) tại
tính được một khoá tối tiểu khác và rõ ràng số bước tính là ít hơn so vớicách đặt K0 = R
Trang 33Ví dụ: Giả sử s = < R, F > là một sơ đồ quan hệ trong đó
Trang 34Khóa của sơ đồ quan hệ s = < R,F > là {h, s}.
Thuật toán 7 (Tìm một khoá tối tiểu của một quan hệ)
Input: r = {h1, h2, , hm} là một quan hệ trên tập các thuộc tính R (R = {a1,
K0 = R = { a1 , a2 , , an } hoặc K0 là một khóa ( chưa chắc tối tiểu) đã biết
Ki = Ki-1\ { ai} nếu không tồn tại B Mr sao cho Ki-1\ { ai} B hoặc Ki =
Ki-1 trong trường hợp còn lại
Bước 4: Đặt Ki = Ki-1 Khi ấy Kn là một khóa tối tiểu
Nhận xét:
Trang 35- Việc tính Mr là dễ dàng vì số lượng phần tử của Mr nhỏ hơn rấtnhiều so với Er
- 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ấymột khoá tổi tiểu khác
Ví dụ: Xét quan hệ chuyen_hang trong bảng sau:
shh: Số hiệu 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
Vậy khoá tối tiểu của quan hệ chuyen_hang: K={shmh, sluong }
Thuật toán 8 (Tìm tập các phản khoá xuất phát từ một hệ Sperner)
Trang 36Input: K = {B1, B2, , Bm} là một hệ Sperner trên R
Output: K -1
Phương pháp;
Bước 1: Đặt K1 = { R\ {a}: a B1} Rõ ràng K1 = {B1}-1
Bước q+1: (q < m) Giả thiết rằng Kq = Fq { X1, X2, , Xtq} ở đây Xi,
i = 1, 2, , tq, chứa Bq+1 và Fq = {A Kq: Bq+1 A} với mỗi i = 1, ,tq ta
bước 1 ta được {{f, g}, {d, g}}, trong đó có tập {d, g} không là tập concủa Fq Vậy K2 = {{e, f, g}, {d, g}} Đây chính là tập K-1
Định lý 33.
Với mọi q (1 q m-1), Kq = {B1 , , Bq}-1, tức là Km = K-1
Nhận xét:
Bm Ký hiệu Kq = Fq {X1, ,Xtq} và lq (1 lq m-1) là số phần tử của Kq
Mệnh đề 34.
Trong trường hợp sấu nhất độ phức tạp của thuật toán 8 là
Trang 37Đã có kết quả rằng kích cỡ của một hệ Sperner trên R không thể lớn hơn
Cn[n/2] , ở đây n = |R| có thể xấp xỉ 2n+1/2/ ( n1/2) Từ đó, trong trường hợpsấu nhất độ phức tạp của thuật toán không lớn hơn một hàm số mũ theo số
độ phức tạp của thuật toán không lớn hơn O(|R|2 |K| |K-1|2)
của K nhỏ thì thuật toán 8 rất hiệu quả Nó chỉ đòi hỏi thời gian đa thức
theo |R|
q=
1
Trang 38CHƯƠNG II DẠNG CHUẨN ĐỐI VỚI QUAN HỆ VÀ SƠ ĐỒ QUAN HỆ
Việc chuẩn hoá các quan hệ cũng như các sơ đồ quan hệ đóng mộtvai trò quan trọng trong việc thiết kế các hệ quản trị cơ sở dữ liệu trên môhình dữ liệu của E.F.Codd Nhờ có chuẩn hoá các quan hệ và các sơ đồquan hệ chúng ta tránh được việc dư thừa dữ liệu và tăng tốc độ các phéptoán xử lý quan hệ
2.1 Các khái niệm cơ bản
Chúng ta định nghĩa các dạng chuẩn như sau:
Có thể thấy rằng thuộc tính NGOAINGU còn có thể được chia nhỏhơn ra thành từng ngoại ngữ một và sau đó có thể phân thành hai bộ phận