1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 17. Phép Tách Lược Đồ Quan Hệ

36 3K 55
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 đề Phép Tách Lược Đồ Quan Hệ
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa học Máy Tính
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 241,19 KB

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

Nội dung

nội dung: Tách lược đồ quan hệ Phép tách bảo toàn phụ thuộc hàm Thuật toán tách lược đồ thành 3NF Tách không mất thông tin thành các lược đồ ở dạng BCNF Tổng kết... nội dung: Tách

Trang 1

BÀI 17:

PHÉP TÁCH LUỢC ĐỒ QUAN HỆ

Trang 2

nội dung:

Tách lược đồ quan hệ

Phép tách bảo toàn phụ thuộc hàm

Thuật toán tách lược đồ thành 3NF

Tách không mất thông tin thành các

lược đồ ở dạng BCNF

Tổng kết

Trang 3

nội dung:

Tách lược đồ quan hệ

Phép tách bảo toàn phụ thuộc hàm

Thuật toán tách lược đồ thành 3NF

Tách không mất thông tin thành các

lược đồ ở dạng BCNF

Tổng kết

Trang 4

mδ(R) =R[U1]*[U2]*…*[Uk]

Trang 5

17.1 Tách lược đồ quan hệ

Định nghĩa:

Phép tách kết nối không mất thông tin

( lossless-join decomposition) Cho lược đồ quan hệ α =( U, F)

và phép tách δ ={ U1, U2, …, Uk } đối với lược đồ đó.

Phép tách δ được gọi nối không mất thông tin nếu mọi

quan hệ R trên U thì ta có mδ(R) =R,

Ngược lại nếu mδ(R) R thì phép tách δ là phép tách mất

thông tin.

Trang 6

17.1 Tách lược đồ quan hệ

Bổ đề:

Cho lược đồ quan hệ α =( U, F)

và phép tách δ ={ U1, U2, …, Uk } đối với lược đồ đó,

R là một quan hệ trên U, gọi Ri=R[Ui] thì:

R mδ(R)

Nếu S= mδ(R) thì S[Ui]=Ri

mδ(mδ(R))= mδ(R)

Trang 7

b) Ta có RS =>R[Ui] S[Ui] hay Ri S[Ui]

Cần chỉ ra rằng S[Ui] Ri giả sử với một i mà tiS[Ui]

Khi đó t=<t1, t2, …, tk> S sao cho t[Ui]=ti.

Trang 8

17.1 Tách lược đồ quan hệ

Chứng minh:

Cũng vì tS sao cho t[Ui]=vj

=>có vj Ri sao cho t[Ui]=vj.

Trong trường hợp này t[Ui] Ri

Nhưng vì t[Ui]=ti và do đó S[Ui] Ri từ đó Ri= S[Ui].

c) Nếu S= mδ(R) thì theo b) có S[Ui] = Ri

Trang 9

17.1 Tách lược đồ quan hệ

Bài toán:

Cho lược đồ quan hệ α =( U, F) và phép tách δ, hỏi rằng

phép tách đó có mất thông tin hay không, hay với phép

tách δ cần kiểm tra xem đẳng thức mδ(R)=R, với mọi

R(U)

Trang 11

17.1 Tách lược đồ quan hệ

Thuật toán:

Bước 1: Giả sử U ={ A1, A2, …, An }

Ta xây dựng một bảng gồm k+1 dòng, n+1 cột (n=|U|, k=| δ|).

Cột thứ i (i=1 n) của bảng ứng với thuộc tính Ai

Hàng thứ j (j=1 k) của bảng ứng với lược đồ con

αj=(Uj,Fj) Tại cột i (i=1 n) và hàng j (j=1 k) ta điền ký

hiệu aj ( ta gọi ký hiệu aj là tín hiệu chính) nếu thuộc tính

AjUi

Ngược lại ta điền bji ( ta gọi bji là tín hiệu phụ).

Trang 12

17.1 Tách lược đồ quan hệ

Thuật toán:

Bước 2: Biến đổi bảng như theo quy tắc như sau:

Với mỗi phụ thuộc hàm X→Y F, nếu trong bảng có

hai hàng giống nhau trên tập thuộc tính X thì ta cần làm

chúng giống nhau trên tập thuộc tính Y theo quy tắc sau:

- Nếu một trong hai giá trị là tín hiệu phụ thì ta sửa lại tín hiệu phụ thành tín hiệu chính tức là bji thành aj.

- Nếu cả hai là tín hiệu phụ thì ta sửa lại nột trong hai

tín hiệu đó bằng một trong các ký hiệu bji, tức là chỉnh lại chỉ số cho giống nhau.

Trang 13

Quan sát trong bảng cuối cùng:

- Nếu xuất hiên ít nhất một hàng gồm toàn tín hiệu

chính (hàng gồm toàn ký hiệu a) thì phép tách δ có kết nối không mất thông tin.

- Ngược lại thì phép tách δ là phép tách có kết nối mất thông tin.

Trang 14

17.1 Tách lược đồ quan hệ

Ví dụ:

Cho lược đồ quan hệ α =( U, F) với

U={A1, A2, A3, A4, A5}

F={A1→A2A3, A2A4→A5, A2→A3}

δ ={A1A2A4, A2A3, A1A4A5}

Hỏi rằng phép tách δ trên có kết nối không mất thông tin

không?

Trang 16

17.1 Tách lược đồ quan hệ

Giải:

Xây dựng bảng gồm 3 hàng, 5 cột:

Biến đổi bảng trên dựa vào tập phụ thuộc hàm F:

- Sử dụng phụ thuộc hàm A1→A2A3 ta biến đổi bảng

Trang 20

17.1 Tách lược đồ quan hệ

Chứng minh:

Giả sử U={A1, A2, …, An }, U1={A1, A2, …, Am },

U2={A1, A2, …, An }, U1U2={Ak, Ak+1, …, Am },

Ta lập bảng gồm 2 hàng, n cột và điền vào các tín hiệu:

U1 \ U2 U1U2 U2 \ U1

Trang 21

17.1 Tách lược đồ quan hệ

Giả sử (1) là đúng Ta thấy hai hàng của bảng trên giống nhau trên miền U1U2={Ak, Ak+1, …, Am }

=>Nên chúng phải giống nhau trên miền U1 \ U2.

Trên miền U2 \ U1 :

=>Tất cả các tín hiệu phụ trên miền U2 \ U1 đều được thay

bằng các tín hiệu chính tương ứng trên hàng 2.

Sau khi thay thì toàn bộ dòng 1 gồm toàn các tín hiệu chính.

=>Do vậy phép tách δ là phép tách có kết nối không mất

Trang 22

17.1 Tách lược đồ quan hệ

Hệ quả: Cho lược đồ α =( U, F), X, YU.

Nếu X→YF+ thì phép δ={U1,U2} với U1=XY, U2=XZ

trong đó Z=U\XY.

=>Phép tách δ là phép tách có kết nối không mất thông tin Thật vậy:

Ta có U1U2=X, U1 \ U2=Y

Theo giả thiết thì X→Y nên U1U2→ U1 \ U2

Theo định lý trên thì phép tách δ là phép tách có kết nối

không mất thông tin.

Trang 24

17.1 Tách lược đồ quan hệ

Bổ đề:

Mọi lược đồ quan hệ chỉ có hai thuộc tính đều ở dạng

BCNF

Giả thiết α và δ như trong phần a) gọi:

σ ={ U1, U2, …, Uk, Uk+1, …, Un} là phép tách của α

thành tập các lược đồ con bao gồm cả δ

=>σ cũng là phép tách không mất thông tin đối với F.

Trang 25

nội dung:

Tách lược đồ quan hệ

Phép tách bảo toàn phụ thuộc hàm

Thuật toán tách lược đồ thành 3NF

Tách không mất thông tin thành các

lược đồ ở dạng BCNF

Tổng kết

Trang 27

Để tìm hình chiếu của F lên Z ta lấy các tập con thực sự X

của Z, đóng vai trò là vế trái của các phụ thuộc hàm.

Tính X+

Gán Y=( X+Z)\X

Khi đó X→Y là một phụ thuộc hàm F/Z

Trang 28

17.2 Phép tách bảo toàn phụ

thuộc hàm

Bảo toàn phụ thuộc hàm:

Cho lược đồ quan hệ α =( U, F)

Và δ ={ U1, U2, …, Un } là một phép tách của α.

Gọi Fi là hình chiếu của F lên Ui

Phép tách δ được gọi là phép tách bảo toàn phụ thuộc hàm

F nếu như :

( )+= F+n

i

Fi

Trang 29

nội dung:

Tách lược đồ quan hệ

Phép tách bảo toàn phụ thuộc hàm

Thuật toán tách lược đồ thành 3NF

Tách không mất thông tin thành các

lược đồ ở dạng BCNF

Tổng kết

Trang 30

17.3 thuật toán tách lược đồ

thành 3NF

Thuật toán tách lược đồ thành 3NF:

Input: Cho lược đồ quan hệ α =( U, F)

Output: Các lược đồ ở dạng 3NF

α1 =( U1, F1), α2 =( U2, F2),…, αn =( Un, Fn) thảo

mãn:

quan hệ R trên U => R[U1]*R[U2]*…*R[Un]=R

K1, K2,…, Kn lá các khóa của lược đồ tương ứng

Trang 31

17.3 thuật toán tách lược đồ

thành 3NF

Thuật toán:

Bước 1: Tìm một khóa K của lược đồ α

Bước 2: Tìm một phủ G của tối thiểu của F

G={K1→A1, K2→A2,…, Kp→Ap}

Bước 3: Gép các phụ thuộc hàm có cùng vế trái trong G để thu được phủ

G={K1→X1, K2→X2,…, Kn→Xn}

Bước 4: Phép tách δ={K1X1, K2X2,…, KnXn} nếu khóa K không có mặt trong thành phần nào của δ thì them thành

phần K vào δ.

Trang 32

17.4 Tách không mất thông tin thÀnh các

lược đồ ở dạng BCNF

Cho lược đồ quan hệ α =( U, F),

và phép tách δ ={ U1, U2, …, Uk }, phép tách một lược đồ thành một tập các lược đồ ở dạng BCNF là phép tách thỏa mãn:

Phép tách δ là phép tách kết nối không mất thông tin.

Tất cả các lược đồ con αi =( Ui, Fi) đều ở dạng BCNF.

Trang 33

17.4 Tách không mất thông tin thÀnh các

lược đồ ở dạng BCNF

Phương pháp:

Xuất phát từ một phụ thuộc hàm X→A nào đó của F, phụ thuộc hàm X→A này vi phạm điều kiện BCNF

=> Ta xây dựng phép tách δ ={ U1, U2}, tương ứng với

lược đồ α1 và α2 sao cho:

Phép tách đó là phép tách kết nối không mất thông tin.

Phụ thuộc hàm X→A là phụ thuộc hàm của lược đồ α1

và nó thỏa mãn điều kiên của BCNF trong lược đồ này.

Trang 34

17.4 Tách không mất thông tin thÀnh các

lược đồ ở dạng BCNF

Nếu như lược đồ α1 và α2 vẫn chưa ở dạng BCNF thì

tiếp tục quá trình đó, vì các điều vi phạm BCNF đều bị loại

bỏ, cuối cùng ta thu được một tập các lược đồ con đếu ở

dạng BCNF và quá trình tách cuối luôn luôn đảm bảo

phép tách kết nối không mất thông tin.

Ví dụ:

Cho lược đồ quan hệ α =( U, F) với U=CRHTSG và C: Course, T: Teacher, H: Hour, R: Room, S: Student, G: Group

F={C→T, HR→C, CH→R, CS→G, HS→R}

Trang 35

17.4 Tách không mất thông tin thÀnh các

lược đồ ở dạng BCNF

Nhận xét:

Lược đồ này có duy nhất một khóa là SH

Lược đồ này chưa ở dạng BCNF

Ta thấy lược đồ α=( U, F) có phụ thuộc hàm CS→G vi

phạm điều kiện BCNF nên ta tách lược đồ thành các lược U1=CGS, U2=CTHRS

Ta thấy lược đồ α2=( U2, F2) có phụ thuộc hàm C→T vi phạm điều kiện BCNF nên ta tách lược đồ thành các lược U3=CT, U4=CHRS

Ta thấy lược đồ α4=( U4, F4) có phụ thuộc hàm CH→R

vi phạm điều kiện BCNF nên ta tách lược đồ thành các

Trang 36

17.4 Tách không mất thông tin thÀnh các

lược đồ ở dạng BCNF

α=( U, F)

U1=CGS F1={ CS→G}

K=CS

U2=CTHRS F2={C→T, HR→C, CH→R, HS→R} K=HS

U6=CHS

U3= CT F3={C→T}

K=C

U5=CHR

U4=CTHRS F2={HR→C, CH→R, HS→R}

K=HS

Ngày đăng: 14/10/2013, 18:11

HÌNH ẢNH LIÊN QUAN

Hình chiếu của một phụ thuộc hàm trên một tập        thuộc - Bài 17. Phép Tách Lược Đồ Quan Hệ
Hình chi ếu của một phụ thuộc hàm trên một tập thuộc (Trang 26)

TỪ KHÓA LIÊN QUAN

w