1. Trang chủ
  2. » Luận Văn - Báo Cáo

CÀI ĐẶT PHẦN MỀM TÍNH BAO ĐÓNG (A+) VÀ KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ

77 986 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cài Đặt Phần Mềm Tính Bao Đóng (A+) Và Kiểm Tra Tính Bcnf Của Sơ Đồ Quan Hệ
Tác giả Hoàng Văn Thủy
Người hướng dẫn Thầy Giáo Vũ Đức Thi
Trường học Trường Đại Học Đông Đô
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận văn
Năm xuất bản 2000
Thành phố Hà Nội
Định dạng
Số trang 77
Dung lượng 7,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

MỞ ĐẦ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 2

tự độ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 3

MỤ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 4

2.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 5

KẾ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 6

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ẶTHÀNG

Trang 7

Mã 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 8

Khi đó 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 10

1.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 11

Có 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 12

Lớ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 13

r đượ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 15

Dễ 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 16

Cho 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  ij  | 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 17

3 1 1 3 1

5 1 0 3 0

Trang 18

Hoàng Văn Thủy 18

Trang 19

Trướ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ó EijV

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 20

Giả sử LFr(A) chứa thuộc tính c, cE 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

EijV

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 21

Ta 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 22

Tí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 24

Nhậ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 25

Tuy 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 27

cộ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 28

Bước 3: So sánh Nr1 và Nr2 Nếu Nr1 = Nr2 thì kết luận hai quan hệ tương

Trang 29

E34 = { 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 30

Fi = 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 31

Thuậ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 32

Ki-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 33

Ví dụ: Giả sử s = < R, F > là một sơ đồ quan hệ trong đó

Trang 34

Khó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 36

Input: 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 38

CHƯƠ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

Ngày đăng: 26/04/2013, 10:08

HÌNH ẢNH LIÊN QUAN

Bảng tổng kết bán hàng một ngày từ những hóa đơn bán ra (Đơn vị tính 1000 đ  ) - CÀI ĐẶT PHẦN MỀM TÍNH BAO ĐÓNG (A+) VÀ KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ
Bảng t ổng kết bán hàng một ngày từ những hóa đơn bán ra (Đơn vị tính 1000 đ ) (Trang 55)
Hình vẽ trên được căn cứ vào nghĩa của các cột. - CÀI ĐẶT PHẦN MỀM TÍNH BAO ĐÓNG (A+) VÀ KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ
Hình v ẽ trên được căn cứ vào nghĩa của các cột (Trang 57)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w