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

Chương 10 Phân rã lược đồ (Decomposition)

63 655 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 63
Dung lượng 1,23 MB

Nội dung

Mục đích của phân rã lược đồ quan hệ  Được xem như 1 công cụ bổ sung vào phương pháp ER để loại trừ dư thừa dữ liệu  Phụ thuộc hàm được xem như là sự khái quát hóa các ràng buộc ch

Trang 1

Chương 10: Phân rã lược

đồ (Decomposition)

Trang 2

Nội dung

Mục đích phân rã

Định nghĩa phân rã

◦ Phân rã không mất thông tin

◦ Phân rã bảo toàn phụ thuộc

Trang 3

Mục đích của phân rã lược đồ

quan hệ

Được xem như 1 công cụ bổ sung vào

phương pháp ER để loại trừ dư thừa dữ

liệu

Phụ thuộc hàm được xem như là sự khái

quát hóa các ràng buộc chính (key

constraint) Các FD được dùng để xác định các dang chuẩn (normal form) Viêệc phân

rã lược đồ sẽ dựa theo các dạng chuẩn

này

Trang 4

Tính chất của phân rã lược đồ

Vì chuẩn BCNF không có dư thừa và chuẩn 3NF tuy có dư thừa nhưng cũng hạn chế, nên viêệc phân rã lược đồ sẽ chỉ tâệp trung vào hai dạng này.

Trang 5

Phân rã lược đồ –

Decomposition

Phân rã 1 lược đồ R = (U,F) với U là tập

các thuộc tính, F là tập phụ thuộc hàm sẽ cho ra 1 tập hợp các lược đồ

Trang 7

Phân rã không mất mát

( Lossless decomposition)

Khảo sát quan hệ r và các phân rã của nó

r 1 ,…, r n

Sau phân rã, CSDL không còn lưu trữ

quan hệ r nữa mà chỉ lưu lại các quan hệ chiếu của nó r 1 , , r n CSDL phải có khả

năng khôi phục lại quan hệ gốc r từ các

quan hệ chiếu này.

Nếu không khôi phục lại được quan hệ r

thì việc phân rã không biểu diễn cùng 1

thông tin với CSDL gốc Phân rã mất

mát (lossy decomposition)

Trang 8

Phân rã kết nối không mất

Trang 9

Phân rã không mất mát

( Lossless-join decomposition)

Thực tế sẽ nhận được nhiều bộ (tuple) từ phép kết các r1, r2,…,rn hơn là các bộ gốc ban đầu Vậy tại sao lại gọi là mất mát (lossy)??

Tuy nhiều bộ hơn nhưng lại thiếu thông

tin và không có cách nào biết được bộ nào

là đúng, bộ nào là không đúng với bộ gốc.

Nhiều bộ hơn nhưng không đúng thông tin thì sẽ đồng nghĩa với mất mát thông tin

Trang 10

Ví dụ phân rã kết nối không mất

Cho quan hêệ r

Phân rã thành 2 quan hêệ

Trang 11

Ví dụ phân rã kết nối không mất

Kết nối tự nhiên 2 quan hêệ phân rã này:

Có những bôệ không thuôệc quan hêệ gốc

ban đầu

Trang 12

Phân rã nhị phân

( Binary Decomposition)

Cho lược đồ R = (U,F) và R 1 = (U 1 ,F 1 ) ,

R 2 = (U 2 , F 2 ) là một phân rã nhị phân của

R

Sự phân rã này không mất thông tin nếu

và chỉ nếu thỏa mãn một trong các điều

kiện sau:

◦ (U1 ∩ U2)  U1 ∈ F +

◦ (U1 ∩ U2)  U2 ∈ F +

Trang 13

Phân rã nhị phân

( Binary Decomposition)

Các thuôệc tính chung của U1 và U2 phải

chứa khóa của hoăệc R1 hoăệc R2

Kiểm tra này là cần thiết để bảo đảm

phân rã có kết nối không bị mất

Ví dụ: Cho R(SNLRWH) có FD R W vi

phạm chuẩn 3NF, nên tách thành SNLRH and RW Phân rã này có bị mất kết nối

không???

Trang 14

Ví dụ

 Xét lược đồ quan hệ

PERSON(SSN, Name, Address,Hobby)

Trang 16

Ví dụ

Vì PERSON1 HOBBY = {SSN} mà SSN

là khóa chính của PERSON1, do đó

PERSON1 HOBBY PERSON1

Phân rã này không mất thông tin

Trang 17

If an FD XY holds over a relation R and

X Y is empty, the decomposition of R

into R − Y and XY is lossless.

Phát biểu này có luôn luôn đúng không??

I

Trang 18

Phân rã bảo toàn phụ thuộc hàm

Cho lược đồ R = (U,F) và R 1 = (U 1 ,F 1 ) ,

R 2 = (U 2 , F 2 ), , R n = (U n , F n ) là phân rã của R.

Phân rã được gọi là bảo toàn phụ thuộc

hàm nếu và chỉ nếu F và là tương

Trang 19

Phân rã bảo toàn phụ thuộc hàm

(Dependency-Preseving Decomposition)

Khảo sát lược đồ quan hệ sau:

HASACCOUNT(ClientId, OfficeId, AccountNumber)

ACCTOFFICE (AccountNumber, OfficeId)

ACCTCLIENT (AccountNumber, ClientId)

Phân rã trên có mất mát thông tin không???

Trang 20

Phân rã bảo toàn phụ thuộc hàm

Phân rã trên không mất mát thông tin vì:

ACCTOFFICE ACCTCLIENT ={AccountNumber}

Mà AccountNumber là khóa chính của

Trang 21

Phân rã bảo toàn phụ thuộc hàm

Phụ thuộc hàm gốc ClientId, OfficeId

AcountNumber (1) không tồn tại trong các phụ thuộc hàm của các lược đồ phân rã

vì:

◦ Cả hai phân rã đều không chứa đủ các thuộc

tính khóa của phụ thuộc hàm gốc (1) nên

không thể suy diễn lại được phụ thuộc hàm này

Trang 22

Phân rã bảo toàn phụ thuộc hàm

Nếu 1 phụ thuộc hàm f F nhưng không thuộc bất kỳ Fi nào không có nghĩa là

phân rã không bảo toàn phụ thuộc hàm

nếu f có thể được suy diễn từ

◦ Chỉ khi nào f không suy diễn được từ

thì lúc đó phân rã mới không bảo toàn phụ

thuộc  để duy trì f đòi hỏi phải có kết nối các lược đồ phân rã trước, kiểm tra phụ thuộc hàm sau

Trang 23

Ví dụ

Phân rã quan hệ HASACCOUNT

Trang 25

Phép chiếu của tập phụ thuộc hàm

Khảo sát lược đồ R =(U,F), một quan hệ r trên R và 1 tập thuộc tính S U

Phép chiếu của tập F lên tập các thuộc tính

S được định nghĩa như sau:

πS (F)={XY|XY F+ and X Y S}

Phép chiếu này được ký hiêệu F S

Trang 26

Ví dụ về phép chiếu tâập FD

Cho R=(U,F) với U={A,B,C}, R={AB,

Trang 27

Ví dụ về phép chiếu tâập FD

Trang 28

Phân rã lược đồ quan hệ

2 tính chất của phân rã:

◦ Lossless ( không mất thông tin)

◦ Dependency-preserving (bảo toàn phụ thuộc

hàm)

Tính chất nào quan trọng hơn???

Lossless là bắt buộc (mandatory) trong khi dependency-preserving là tùy chọn

(optional)

Trang 29

Giải thuật phân rã BCNF

R=(U,F) là 1 lược đồ quan hệ không ở

chuẩn BCNF.

Giải thuật: thực hiện lặp lại việc phân chia

R thành những lược đồ nhỏ hơn sao cho

các lược đồ mới có ít FD vi phạm BCNF

hơn Giải thuật kết thúc khi tất cả lược đồ kết quả đều ở dạng BCNF

Trang 30

Giải thuật phân rã BCNF

Input R = (U,F)

Decomposition = R

While có lược đồ S= (V,F’) trong

Decomposition không phải BCNF

/*Nếu có XY F sao cho X Y S và vi phạm BCNF, dùng FD này để phân rã*/

◦ Thay S trong Decomposition với S1 = (XY, F1)

◦ S2=( (S-Y) ∪ X, F2) với F1,F2 là tất cả các FD của F’

End

Return Decomposition

Trang 32

Ví dụ 1

Trang 33

Ví dụ 2

Cho R= (U,F), U={ABCDEFGH}, F= {ABH

C, ADE, BGH F, F ADH, BH GE}

Trang 34

Ví dụ 2

Sau khi phân rã, chú ý đến 2 phụ thuộc

hàm gốc F ADH, BH GE

◦ Chia FADH thành {FAH, FD}

◦ Chia BHGE thành {BHG, BHE}

FD, BHE không có chỗ trong các phân

rã mới (vì không có ràng buộc nào có đủ thuộc tính cho các FD này)

Trang 35

từ các FD của R21, R22 và R1

Phân rã R2 không bảo toàn phụ thuộc

Trang 36

R1,R2 cũng ở chuẩn BCNF và 1 số FD gốc

cũng bị mất, không thể suy diễn được

Trang 37

Tính chất của giải thuật phân

rã BCNF

Không mất mát thông tin

Nhưng có thể không bảo toàn phụ thuộc

hàm

Là giải thuật không xác định

(nondeterministic), phụ thuộc vào thứ tự các FD được chọn để xét phân rã

Trang 38

Phủ tối thiểu – Minimal cover

Cho 1 tập FD F Phủ tối thiểu của F là 1

tập FD G có các tính chất sau:

◦ G tương đương với F

◦ Tất cả các FD trong G có dạng X A với A là 1 thuộc tính đơn

◦ Không thể làm cho G nhỏ hơn (mà vẫn còn

thỏa mãn 2 tính chất đầu) bằng một trong 2

cách sau:

 Xóa 1 FD

 Xóa 1 thuộc tính khỏi 1 FD

Trang 39

Giải thuật tìm phủ tối thiểu

Input: tập phụ thuộc hàm F

Output: G là 1 phủ tối thiểu của F

Bước 1: G:=F, tất cả FD đều được biến đổi thành thuộc tính đơn bên phía phải

Bước 2: Xóa tất cả thuộc tính dư thừa khỏi phía trái của FD trong G

Bước 3: Xóa tất cả các FD dư thừa khỏi G

Return G

Trang 40

Thuật toán để loại các FD có vế trái dư thừa

Bước 1: lần lượt thực hiện bước 2 cho các

FD XY của F

Bước 2: Với mỗi tập con thật sự X’≠ ∅ của

X Nếu X'Y F+ thì thay XY trong F

bằng X'Y, thực hiện lại bước 2

Trang 42

Ví dụ (tt)

Bước 1: xác định G với tất cả các FD có vế phải thuộc tính đơn

Trang 43

Bước 2: Xóa tất cả thuộc tính dư thừa khỏi phía trái của FD trong G

Trang 44

Bước 3: Xóa tất cả các FD dư thừa khỏi G

Trang 46

Cách 1: Phân rã thành chuẩn 3NF

Cho R(U,F) với F là phủ tối thiểu Giả sử

đã phân rã không mất mát R thành R1;

R2; … ; Rn Mỗi Ri đều đã ở dạng chuẩn

3NF Để bảo đảm phân rã này bảo toàn

phụ thuôệc hàm, cần thực hiêện thêm 2

bước sau:

Xác định tâệp N chứa các FD không đuợc bảo

toàn (not preserved) nghĩa là không có trong

bao đóng của hợp các Fi

◦ Với mỗi FD trong N, tạo thêm 1 lược đồ quan

(UF i)+

Trang 47

Cách 1: Phân rã thành chuẩn 3NF (tt)

Để tối ưu, nếu tâệp N chứa nhiều FD có

cùng vế trái X A1; XA2; …X An, có

thể thay thế chúng thành FD đơn tương

đương X A1A2 An Vì vâệy chỉ cần tạo

thêm 1 lược đồ quan hêệ mới (X A1A2 An) thay vì phải tạo nhiều lược đồ (XAi)

Trang 48

Ví dụ: phân rã lược đồ thành 3NF

Xét lược đồ (CSJDPQV) và phủ tối thiểu

{JP C, SD P, J S}

Nếu ta phân rã thành SDP và CSJDQV, thì SDP ở chuẩn BCNF nhưng CSJDQV không đạt được chuẩn 3NF Vì vâệy tiếp tục phân

rã thành JS và CJDQV.

Các lược đồ quan hêệ SDP, JS và CJDQV

đều đạt chuẩn 3 Phân rã kết nối không

mất (lossless join) nhưng JPC không

được bảo toàn (not preserved) bổ sung

Trang 49

Cách 2: dùng phương pháp synthesis

Xuất phát từ phủ tối thiểu của FD F, tạo 1 lược đồ quan hêệ mới Ri cho mỗi FD trong

F Tất cả lược đồ này đều ở 3NF và bảo

toàn phụ thuôệc.

Nếu phân rã này làm kết nối bị mất

(lossless-join) thì bổ sung thêm 1 lược đồ chỉ chứa toàn bôệ các thuôệc tính khóa

Trang 50

thể suy diễn được từ hợp các FD của R1,

R2.Bổ sung thêm lược đồ R3(AC)

Trang 51

Tính chất của giải thuật phân

rã 3NF

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

Không mất thông tin

Trang 52

Ví dụ

Phủ tối thiểu G của tập F ví dụ trước:

G={BHC,AD,CE,FA,EF}

Phân rã thành 5 lược đồ:

Trang 53

Phân rã BCNF thông qua phân

rã 3NF

Vì giải thuật phân rã BCNF có thể không

bảo toàn phụ thuộc hàm nên phân rã

BCNF thông qua phân rã 3NF Nếu lược đồ sau phân rã là BCNF thì dừng, nếu không thì dùng lúc đó mới dùng giải thuật BCNF

để phân rã tiếp

Trang 54

Ví dụ

Xét tập thuộc tính sau: St (Student), C

(course), Sem (semester), P (Professor),

T (time) và R(room) và tập FD như sau:

Trang 55

Tìm phủ tối thiểu của F

Bước 1: Tách vế phải thành các thuộc tính đơn

Trang 56

Tìm phủ tối thiểu của F

Bước 2: xóa các thuộc tính dư thừa ở vế

trái

Vì (St Sem)+ = {St,Sem}

(St C)+ = {St,C}

(C Sem)+ = {C Sem}

FD thứ nhất không dư thừa vế trái

Tương tự cho các FD còn lại

Riêng P Sem C T R có C dư thừa

Trang 57

Tìm phủ tối thiểu của F

Trang 58

Tìm phủ tối thiểu của F

Bước 3: loại bỏ FD dư thừa

◦ Vì (ST C Sem)+{F-FD1}={ST C Sem} nên FD1

không dư thừa

◦ Tương tự cho FD2, FD3, FD4

◦ FD5 dư thừa nên bị loại bỏ

Trang 59

Tìm phủ tối thiểu của F

Phủ tối thiểu của F:

St C Sem P

P Sem C

C Sem T P

P Sem T R

Trang 60

Phân rã 3NF bảo toàn FD

Phân rã thành 4 FD như sau:

(St C Sem P; {St C Sem P}) (P Sem C; {P Sem C})

(C Sem T P; {C Sem T P}) (P Sem T R; {P Sem T R})

Vì không có phân rã nào hình thành siêu

khóa cho lược đồ gốc, nên bổ sung thêm lược đồ mới (bước 4)

( St T Sem P; {})

Trang 61

Phân rã thành BCNF

Các phân rã 1 và 3 không phải là BCNF vì

P Sem C nằm trong phân rã 2

Phân rã 1 được tách thành 2 lược đồ mới

◦ (P Sem C; {P Sem  C})

◦ (St Sem P; {})

Phân rã tuy không mất mát thông tin

nhưng không bảo toàn FD St C Sem P

Trang 62

Phân rã thành BCNF

Phân rã lược đồ 3 thành

◦ (P Sem C; {P Sem  C})

◦ (P Sem T; {})

Không mất mát thông tin nhưng cũng

không bảo toàn FD C Sem T P

Trang 63

Phân rã thành BCNF

Kết quả cuối cùng:

(P Sem C; {P Sem C}) (P Sem St)

(P Sem T) (P Sem T R; {P Sem T R}) (St T Sem P)

Ngày đăng: 12/05/2014, 12:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w