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

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

61 412 0

Đ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

Định dạng
Số trang 61
Dung lượng 534,09 KB

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

Nội dung

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

Trang 1

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

Trang 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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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:

XY XY (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 (xid, i= 1 n) id(i) = {x(i) xid }Tập các thuộc tính chỉ số của lược đồ khối

Trang 8

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

Trang 9

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

Trang 10

*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

Trang 11

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]

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)

Trang 12

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(A1), Dom(A2) Dom(An ),

kí hiệu Dom(Ai) = DAi được biểu diễn như sau:

D(A1) x D(A2) x x D(An) 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ố A1,A2,…,An để 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 = {A1, A2, , An} 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ộ {h1, h2, , hm} được gọi là quan hệ trên R với hj (j=1, 2, , m) là một hàm:

Trang 13

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 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ì h1, h2, , hm 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:

Trang 14

Chúng ta có thể quy định kích thước cho các thuộc tính (các trường) như sau:

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 DMã hàng là tập các xâu ký tự độ dài không quá 5

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

DTỉ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 = {h1, h2, h3, h4}, ở đây đối với bản ghi thứ nhất (dòng thứ nhất) chúng ta có

Trang 15

1.4 Khóa của lược đồ quan hệ.[5], [7]

Định nghĩa 1.3

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á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ộ h1, h2  r đều tồn tại một thuộc tính a  A sao cho h1(a) 

h2(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 t1(A)  t2(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

Trang 16

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 = { a1, a2, , an } là tập các thuộc tính, r = { h1, h2, , hm } 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:

(  hi, hj  r) (( a  A ) ( hi(a) = hj(a))  ( b  B ) ( hi(b) = hj(b) ))

Ta sẽ viết (A, B) hay A  B thay cho A B

Đặt Fr ={(A, B): A, B  R, A  B }

Lúc đó Fr đượ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

Trang 17

- 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

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 

1, Tính phản xạ

Nếu Y  X thì X  Y

Trang 18

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

Trang 19

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 Fr = Y

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ộc hàm được thể hiện bằng hình vẽ sau:

Trang 20

- 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 LF(A) = { a: a R: (A,{a}) F}

Thì LF 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 = LF F được chỉ ra theo cách sau:

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 >

Trang 21

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+}

Trang 22

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 = Ak   Ai = 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

Trang 23

* Xi = Xi-1  {A} nếu Y  Z  F, A Z và A Xi-1

* 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.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ó X0 =

Trang 24

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

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ó

Trang 25

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

Trang 26

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

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 = {h1, h2, , hm} là một quan hệ trên tập các thuộc tính R (R = {a1,

a2, , an})

Output: K là một khoá tối tiểu của r

Phương pháp:

Bước 1: Từ r = {h1, h2, , hm}, tính Er = {Eij :1i < j  m } là hệ bằng nhau Bước 2: Từ Er tính Mr là hệ bằng nhau cực đại

Mr = {B : có Eij để Eij = B và không có Est : B  Est ( Eij, Est Er)} Bước 3: Lần lượt tính các tập thuộc tính K0 , K1, , Kn theo quy tắc:

Trang 27

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

E34 = { shh }

Bước 2: Tính Mr = {{ shh, sluong },{ ngay, shmh }}

Bước 3: K0 = R = { ngay, shh, shmh, sluong }

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

Trang 28

có một khóa duy nhất K 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+ = U

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 f

r >R (ARF+, (A,R)Y) Chúng ta gọi A là một 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 Kr,(Ks, Ky) tương ứng là tập tất cả các khóa của r (s,Y)

Trang 29

- Chúng ta gọi K (ở đây K là một tập con của P(R)) là một hệ Sperner trên R nếu với mọi A, B K kéo theo AB

- Có thể thấy Kr,,Ks, Ky là các hệ Sperner trên R

ở đây, Ki (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 ( Ki  Kj ) thì K được gọi là một hệ Sperner

Dễ thấy Kr , Ks , Kv là hệ Sperner trên R

Định nghĩa 1.12

Cho K là hệ Sperner 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à Ks = 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ệ Sperner bất kỳ là 2NF

Cho K là một hệ Sperner trên R Đặt Kp=aR:  A K a: A  và Kn

=R-Kp.Kp(Kn) đượ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

BF là thừa nếu hoặc A=B hoặc có CDF sao cho CA và BD

Trang 30

Bây giờ ta giả thiết K là 2NF Ký pháp K-1 là tập các phản khóa của K

Từ K, K-1 ta xây dựng sơ đồ quan hệ sau:

Đối với mỗi AR ta có BK-1 sao cho AB Đặt C =  B K-1: AB  Ta lập AC Ký pháp T là tập tất cả các phụ thuộc hàm như thế Đặt F =  ER:EK (T-Q), ở đây Q =  XYT: XY là phụ thuộc hàm thừa  Từ định lý và định nghĩa của hệ Sperner ta thu được Ks =

K

Rõ ràng, với mỗi Sơ đồ quan hệ bất kỳ s1 =(R,F1) sao cho Ks1=K và

AR ta có A+s1A+s ở đây A+s1= a:A a F1+  Chúng ta đã chứng minh rằng  9 Kn là giao của phản khóa Trên cơ sở việc xây dựng s=<R,F>

và phù hợp với định nghãi của hệ Sperner 2NF ta có Kn=

Dễ thấy Sơ đồ quan hệ 3NF là 2NF và nếu tập các thuộc tính thứ cấp là rỗng thì Sơ đồ quan hệ này 3NF Do đó từ định lý ta có hệ quả sau

Hệ quả

Cho K là hệ Sperner trên R Khi đó K là 3NF nếu và chỉ nếu Kn= Định nghĩa 1.13

Cho K là hệ Sperner trên R Ta nói K là đơn nhất K xác định duy nhất

Sơ đồ quan hệ s = <R,F>, theo nghĩa đối với mọi Sơ đề quan hệ s’=

<R,F’>mà Ks’= K thì ta có F+=F’+

Từ định nghĩa hệ Sperner BCNF và định nghĩa (1.7.4) ta có

Mệnh đề 1.1

Ngày đăng: 10/09/2015, 16:35

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Bảng ví dụ quan hệ r  Nhận xét: - 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ảng 1.1 Bảng ví dụ quan hệ r Nhận xét: (Trang 13)
Bảng 1.2: Bảng cơ sở dữ liệu mặt hàng - 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ảng 1.2 Bảng cơ sở dữ liệu mặt hàng (Trang 13)
Hình 2.2: Biểu diễn khối nhân viên NV(R). - 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
Hình 2.2 Biểu diễn khối nhân viên NV(R) (Trang 34)
Hình 2.1: Một phần mô hình của khối BANHANG - 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
Hình 2.1 Một phần mô hình của khối BANHANG (Trang 34)
Hình 2.3: Biểu diễn lát cắt - 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
Hình 2.3 Biểu diễn lát cắt (Trang 37)

TỪ KHÓA LIÊN QUAN

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