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

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên) (Trang 98 - 104)

- HANGMUA(SOHD, MAHANG, TENHANG, DONVI,DONGIA,

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

2.5.1. Phép tách lược đồ quan hệ

Tách lược đồ quan hệ u là sự thay thế lược đồ đó bởi một tập các lược đồ con Uj với i=l,2,..,p sao cho:

UjỗU, |J/ =u

/=1

Gọi phép tách đó là ơ và ký hiệu là ơ={Ui,U2,...Up}

2.5.2. Phép tách - kết nổi bảo toàn thông tin

Cho lược đồ quan hệ R=<U,F> và một phép tách ơ={Ui,U2,...Up}.

Phép tách ơ được gọi là phép tách - kết nổi không mất thông tin nếu với mọi quan hệ R thoả tập phụ thuộc F thì ta có đẳng thức sau:

R=mơ(R) =R[U]]*R[U 2]*....*R [Up] Trong đó, * là phép kết nối tự nhiên.

Bổ đề 2.3

Giả sử rằng R là quan hệ trên u và Rj-R[Uj] với i -l,2,..,p Khi đó ta khẳng định sau:

1. RcR[U1]*R[U 2]*....*R[Up]=mơ(R)

2. S=mơ(R) thì S[U¡]=R[Ui], với i = 1 ,...,p

3. mơ(mơ(R))=mơ(R).

Chửng minh. Trước hết chứng minh với p = 2

1. Giả sử UbU2ỗU. Hin nhiên có RỗR[U]]*R[U 2]

2. Đặt S=R[Ui]*R[U 2], cần chỉ ra ràng S[U1]=R[U11

Ta thy S[U]]ỗR(U]], vỡ với ti sSfUj] thì có t eS sao cho t] = t.ub

DoteS suy rat.UieR[Ui]. VậytieR[Ui].

R[Ui]ỗS[U]J. Vi tieR[U]J thì có teR sao cho t.Ư!=ti.

Do phần 1 suy ra RỗzS, tức là teS . Vậy ti=t.UieS[Ui], do đó R[U1]=S[U!], phần cịn lại tương tự.

3. Đặt s = mơ(R). Ta cần chứng minh mơ(S) = s

mơ(S)=S[Ư1]*S[Ư 2]=R[Ư1]*R[U 2]=S

Với p>2 là sự mở rộng tự nhiên, có thể chứng minh bàng quy nạp.

Cho U={AbA2,....An}. Chúng ta xét V=VdoUn.

Trong đó vd={ab a2,.... an} được gọi là tập các biến phân biệt cịn vn={bbb2,...} được gọi là các biến khơng phân biệt.

Một bảng T(Ư) là một quan hệ trên u.

Với mỗi thuộc tính Ai, có Dom(Ai)={a1}oVn. Giả sử (U,F) là một lược đồ quan hệ và T là một bảng trên R. Với mỗi phụ thuộc hàm feF ta thực hiện một bước biến đổi bảng T thành một bảng mới, ký hiệu là T(f)

bằng việc áp dụng một F - qui tắc sau:

F - quì tắc: Giả sử f = X -> Y là một phụ thuộc hàm ưên u. Nếu u

cho mỗi thuộc tính A trong Y bởi việc thay một trong chúng bằng cái

khác như sau:

Giả sử U.A = db V.A = d2. Nếu một trong các đại lượng di và d2 là

biến phân biệt, chẳng hạn dỊ thì khi đó ta thay d2 bởi dp Neu cả hai thuộc

tính di và d2 là khơng phân biệt thì thuộc tính có chỉ số lớn hom sẽ được

thay thế bởi thuộc tính có chi số bé hơn.

Định lý 2.3

Cho lược đồ quan hệ u và một bảng T. Khi đó q trình áp dụng

các F-quy tắc để biến đổi bảng T sẽ được dừng lại sau một số hữu hạn bước, ký hiệu bảng cuối cùng thu được là CHASE(T). Bảng CHASE(T)

là duy nhất nếu không kể đến sự sai khác của các chỉ số của các biến không phân biệt.

2.5.3. Thuật toán kiểm tra phép tách - kết nối bảo tồn thơng tin

Vào: u với U={Ab...An} và một phép tách ơ={Ub...,Up}.

Ra: Hỏi rằng phép tách ơ có làm mất thơng tin hay không?

Phương pháp:

Bước 1: Xây dựng một bảng k hàng, n cột (k đại diện cho Rj, n đại

diện cho Aj)

o Nếu Aj là thuộc tính của Rj thì điền aj vào ơ (i j). o Nếu khơng thì điền bÿ.

Bước i: Xét làn lượt các PTH f = X—>Y g F, áp dụng cho bảng

theo cách sau:

o Nếu 2 hàng t|, t2 thuộc bảng: ti [X] = t2[X] thì làm bằng nhau fren các giá trị Y: tj[Y] = t2[Y] như sau:

► Nếu có giá trị một hàng thuộc Y là aj thì các giá trị khác thuộc Y

cũng gán bằng aj

o Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng.

Bước n: Nếu bảng có 1 hàng gồm các kí hiệu ab a2,..., a„ thì phép

tách là khơng mất mát thông tin. Ngược lại, phép tách không bảo tồn thơng tin.

Ví dụ 2.42:

Cho lược đồ quan hệ R=<U,F> với U=SNAIP và F={S->NA, SI->P}

Kiểm fra phép tách Ơ={SNA, SIP} có làm mất mát thơng tin hay

khơng?

Thực hiện thuật tốn:

Bước 1: Ta có k=2, n=5

s N A I p

SNA ai a2 a3 bi3 bi4

SIP 31 h22 b23 a4 a5

Bước 2:

Xét phụ thuộc hàm S->NA: từ phụ thuộc hàm S->NA ta tách ra thành hai phụ thuộc hàm là S->N và S->A.

Xét tại cột s ta có:

• Đối với phụ thuộc hàm S->N ta có ai a2 và ai i>22 nên ta phải thay đổi giá trị b22 = a2

• Đối với phụ thuộc hàm S->A ta có ai -> a3 và ai -> b^ nên ta

phải thay đổi giá trị b23 = a3

s N A I p

SNA 31 a2 a3 bi3 bi4

Bước 3: Sau khi đã thay đổi các giá trị ở bước 2 ta có bảng sau:

s N- A I p

SNA ai a2 a3 bi3 bi4

SIP ai a2 a3 a< a5

Như vậy, ta thấy dòng thứ 2 trong bảng xuất hiện tồn các kí hiệu kết thúc (ab a2, a3, a4, a5). Vậy phép tách Ơ={SNA, SIP} không làm mất

mát thơng tin.

Trên cơ sở đó ta có định lý sau:

Định lý 2.4

Cho lược đồ quan hệ R=<U,F> và một phép tách Ơ={U1,U2}. Phép

tách ơ không làm mất thông tin khi và chỉ khi ƯjnU2----->u1\u2.

Chứng minh'.

Giả sử U1nU2->U1.U2eF+. Ta xây dựng một quan hệ T có hai hàng ứng với phép tách ơ. Dễ thấy rằng khi áp dụng F-qui tắc cho UinU2->Ui-U2 ta sẽ thu được một hàng gồm chỉ có các biến phân biệt.

Hệ quả 2.1

Có phương pháp tách một lược đồ quan hệ R=<U,F> thành các

lược đồ con ở dạng Boye-Codd và đó là phép tách kết nối không mất mát thông tin.

Giả sử có u. Chọn một phụ thuộc trong F+ có dạng X->A với điều

kiện X khơng chứa khố, AểX. Đặt U1=XA, U2=Ư-Ă. Khi đó ta có

u,n u2=x và Uj-U2=A. Suy ra UinU2-»UrU2

Với UjnU2 khơng chứa khố của lược đồ ban đầu

Nhận xét:

- Sau mỗi bước số thuộc tính frong Ul, u2 đều giảm đi thực sự. - Tiếp tục cho đến khi tất cả các lược đồ đều ở dạng Boye-Codd.

Thuật toán tách một lược đồ thành các lược đồ con ờ dạng

BCNF

Vào: Lược đồ quan hệ R

Ra: Các Lược đồ quan hệ Rj có dạng BCNF Phương pháp: Sử dụng phương pháp lặp liên tiếp. Mỗị bước đàm bảo không mất thông tin.

Bước đầu áp dụng đối với u.

Giả sử ở một bước có Uj chưa ở dạng BCNF thì:

• Chọn X->A trong đó X khơng chứa khố của Ui và A khơng

thuộc X.

• Đặt Uị|=XA, Ưi2=Uj-A.

• Nhận thấy U¡1=XA, Ui2=UrA, UiinU^X, UirUi2=A

• Phép tách Uị thành Uịi và Uj2 là khơng làm mất thơng tin. • Trong đó uu có dạng BCNF.

• Tiếp tục phép tách đối với ui2 cho tới khi tất cả các lược đồ đều

có dạng BCNF.

Ví dụ 2.43:

Cho lược đồ quan hệ R=<U,F> với u=csz và F={CS-»Z, Z^C}. Tách lược đồ R thành các lược đồ con ở dạng chuẩn BCNF?

Ta có, khố của lược đồ quan hệ R là cs.

Xét phụ thuộc hàm z->c có z là thuộc tính khơng khố của R và c

khơng phải là con của thuộc tính z nên ta tách R thành hai lược đồ con:

• U2={R}-C=CSZ-C=SZ

• Xét 2 lược đồ quan hệ RI và R2 với Ul=zc và Ư2=sz ta có: o UI: Có khóa là z, phụ thuộc hàm z->zc (thỏa dạng chuẩn BCNF)

o U2: Có khóa là sz, phụ thuộc hàm SZ-> sz (thỏa dạng chuẩn

BCNF)

Vậy tách lược đồ quan hệ R=<R1,R2) với U1=ZC và U2=sz đã ở dạng chuẩn BCNF.

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên) (Trang 98 - 104)