37
1 Chương 2: Chun hoá lược đồ quan h

K3 Chuong 2 ChuanHoa

Embed Size (px)

Citation preview

Page 1: K3 Chuong 2 ChuanHoa

1

Chương 2:Chuẩn hoá lược đồ quan hệ

Page 2: K3 Chuong 2 ChuanHoa

2

Phép tách ( decomposition)Cho LĐQH R, tập PTH FMột phép tách trên LĐQH R là một phépthay R bằng một tập các lược đồ R1,R2,…Rnvới Ri ⊆ R,i=1..m và

∪ Ri = R, i=1,…,kKý hiệu phép tách ρ = (R1, R2,...,Rn)

Page 3: K3 Chuong 2 ChuanHoa

3

Phép tách không tổn thất thôngtin( lossless join decomposition)Phép tách ρ một LĐQH R thành R1, R2,...,Rn được

gọi là không tổn thất (hoặc không mất mát thôngtin) đối với tập PTH F nếu

r = ∏R1( r ) ⋈ ∏R2( r ) ⋈…⋈ ∏Rn( r )

Ngược lại, nếu không tồn tại đẳng thức thì ta gọi ρ làphép tách tổn thất.

Page 4: K3 Chuong 2 ChuanHoa

4

Ví dụ về phép tách Xét quan hệ :CT ( GVCT Ngay Thang Phong Monhoc GiangVien )

A 2 1 P101 GT XB 2 2 P102 CTDL YC 2 2 P101 CTDL YD 2 1 P103 GT X

Page 5: K3 Chuong 2 ChuanHoa

5

Ta tách thành ba quan hệ : LCT ( GVCT Ngay Thang Monhoc )

A 2 1 GT B 2 2 CTDL C 2 2 CTDL D 2 1 GT

CT ( Ngay Thang Phong Monhoc )2 1 P101 GT 2 2 P102 CTDL 2 1 P103 GT

GIANGDAY(Monhoc GiangVien)GT XCTDL Y

Kết nối LCT ⋈ CT ⋈ GIANGDAY chứa nhiều bộ hơn quan hệ ban đầu.

Vấn đề là tìm phép tách ρ để tách R thành R1,R2, . . ., Rn không mất mát thôngtin

Page 6: K3 Chuong 2 ChuanHoa

6

Thuật toán kiểm tra phép tách khôngmất mát thông tin (1/2)

Vào: LĐQH R ={A1, A2, . . . , An}, tập các PTH F và phéptách ρ( R1,R2, . . . , Rk) Ra: Kết luận phép tách ρ không mất mát thông tin.Các buớc của thuật toán: Thiết lập một bảng với n cột( thuộc tính) và k dòng (quanhệ), cột thứ j ứng với thuộc tính Aj, dòng thứ i ứng vớiLĐQH Ri . Tại dòng i và cột j , ta điền ký hiệu aj nếu thuộc tinh Aj ∈Ri. Ngược lại ta điền ký hiệu bij.

Page 7: K3 Chuong 2 ChuanHoa

7

Thuật toán kiểm tra phép táchkhông mất mát thông tin (2/2)

Xét các phụ thuộc hàm trong F và áp dụng cho bảngtrên. Giả sử ta có PTH X→Y∈F, xét các dòng có giá trịbằng nhau trên thuộc tính X thì làm bằng các giá trịcủa chúng trên Y. Chú ý khi làm bằng giá trị trên Y, nếu một trong haigiá trị là aj thì ưu tiên làm bằng ký hiệu aj. Nguợc lạilàm bằng chúng bằng một trong hai ký hiệu bij. Tiếptục áp dụng các PTH cho bảng ( kể cả việc lặp lại cácpth đã áp dụng) cho tới khi không còn áp dụng đượcnữa.Xem xét bảng kết quả. Nếu xuất hiện một dòng chứatoàn giá trị a1, a2 , . . . , an thì phép tách ρ khôngmất mát thông tin.

Page 8: K3 Chuong 2 ChuanHoa

8

Ví dụ về phép tách không tổn thất

Cho R=ABCDE Tập PTH F={A→C, B →C,C →D,DE →C,CE →A}Phép tách ρ={AD,AB,BE,CDE,AE}Dùng thuật toán trên để kiểm tra phép tách ρ không mấtmát thông tin?.

Page 9: K3 Chuong 2 ChuanHoa

9

Phép tách bảo toàn phụ thuộcPhép tách ρ = (R1, R2,...,Rn) trên tập thuộc tính U được trên tập PTH F là bảo toàn phụ thuộc nếu cóthể suy ra được F từ các hình chiếu của F trên∏Ri(F ). Hình chiếu của F trên một tập các thuộc tính Z, kýhiệu là ΠZ(F) là tập các PTH X → Y thuộc F+

sao cho XY ⊆ Z ( chú ý X → Y có thể khôngthuộc F mà thuộc F+). Ta nói phân rã ρ bảo toàn phụ thuộc nếu hợp tất cảcác PTH trong ΠRi(F) với i=1,…,k thì có thể suydẫn logic các PTH trong F.

Page 10: K3 Chuong 2 ChuanHoa

10

Thuật toán kiểm tra phép táchbảo toàn phụ thuộc

Vào: Phép tách ρ=(R1,R2, . . ., Rk) và tập PTH FRa: Đúng nếu ρ bảo toàn phụ thuộc và sai nếungược lại

Gọi G là hợp của các ΠRi(F), i=1,…,nDùng thuật toán EQUIVALENCE để xem xétG≡ F ?

Page 11: K3 Chuong 2 ChuanHoa

11

Ví dụ phép tách bảo toàn phụ thuộc

Cho R=ABCD Tập PTH F={A→B, B →C,C →D,D →A}Phép tách ρ={AB,BC,CD}Dùng thuật toán trên để kiểm tra phép tách ρ bảo toàn phụthuộc.

Page 12: K3 Chuong 2 ChuanHoa

12

Dạng chuẩn 1 (1NF)Môt quan hệ R được gọi là ở dạng chuẩn 1 (1NF) nếu và chỉ nếu các giá trị của tất cảthuộc tính trong quan hệ R là nguyên tử(atom).

Page 13: K3 Chuong 2 ChuanHoa

13

Ví dụ về quan hệ không phải là 1NF

{435}1311DienVo Ngoc1311

{312,400,435}1311MocLe Son1412

{312,512}1311DienTran An1235

MANOILAM)MACBPTLOAINGHEHOTEN(MACNCNHAN

Lý do là thuộc tính MANOILAM có các giá trị không phải là nguyêntử.

Page 14: K3 Chuong 2 ChuanHoa

14

Dạng chuẩn 2 (2NF)Quan hệ R được gọi là ở 2NF nếu và chỉ nếu cảhai điều kiện dưới đây cùng được thỏa:R đã ở dạng chuẩn 1 (1NF).Không có thuộc tính không khóa nào phụ thuộcmột phần vào khóa, hay nói cách khác, các thuộctính không khóa trong R phải phụ thuộc đầy đủvào mọi khóa.

i) Ki → Bii) Không tồn tại Ki’ ⊂ Ki sao cho Ki’ → B ∈ F.

Lưu ý: 2NF có thể bị vi phạm khi quan hệ cókhóa gồm hơn một thuộc tính.

Page 15: K3 Chuong 2 ChuanHoa

15

Xét quan hệ ở DC2Tìm tất cả các khóa K của quan hệ và suy ra tập các thuộctính không khóa.Xem xét có PTH K’ → x với K’ là tập con của khóa.

Ví dụ: Cho lược đồ quan hệ R = {A,B,C,D,E,G } vàF = { A → BC, C → DE, E → G }Ta thấy {A} là khóa vì {A}+ = {A,B,C,D,E,G } Các thuộc tính không khóa là {B,C,D,E,G}. Do khóa chỉ có một thuộc tính nên quan hệ r ở 2NF.

Page 16: K3 Chuong 2 ChuanHoa

16

Dạng chuẩn 3 (3NF)Cho LĐQH R, X ⊆ R. A là một thuộc tính, A ∈RA được gọi là phụ thuộc bắc cầu vào X trên R nếu tồn tại một tập con Y⊆ R sao cho:

X → Y, Y → A nhưng Y → X với A ∉XY.Một quan hệ R ở 3NF nếu các điều kiện dướiđây cùng được thỏa:

R đã ở 2NF.R không chứa các phụ thuộc hàm bắc cầu giữa cácthuộc tính không khóa vào khoá của quan hệ.

Page 17: K3 Chuong 2 ChuanHoa

17

Lược đồ quan hệ không ở 3NFCho :R=CHUYEN_BAY(MACHBAY, MAPHICONG,TENPC)F={MACHBAY→ MAPHICONG,TENPC

MAPHICONG→TENPCTENPC →MAPHICONG }

Ta có: MACHBAY là khóa, MAPHICONG,TENPC không phải là thuộc tínhkhóa. Ta có các PTH:

MACHBAY → MAPHICONGMAPHICONG→TENPCVậy thuộc tính không khóa TENPC phụ thuộc bắc cầu vào thuộc tính khóaMACHBAY .Nên lược đồ quan hệ không ở 3NFLưu ý: 3NF ⇒ 2NF ⇒ 1NF

Page 18: K3 Chuong 2 ChuanHoa

18

Dạng chuẩn BCNF (Boyce-Codd)Cho LĐQH R và tập PTH F. Quan hệ R ở dạngchuẩn BCNF nếu không tồn tại một phụ thuộchàm X → A ∈ F, A ∉ X thì X phải là siêu khóa({X}+ = R). Ở 3NF, ta không cho phép các thuộc tính khôngkhóa phụ thuộc bắc cầu vào khóa.Còn BCNF, ta không cho phép có các PTH có cácthuộc tính phụ thuộc vào các thuộc tính khôngkhóa của quan hệ.

Page 19: K3 Chuong 2 ChuanHoa

19

Ví dụ BCNF 1) Xét lược đồ quan hệ R(A,B,C,D) và tập PTH F=

{A,B→C; C→A,B,D}Tập các thuộc tính không phải là khóa của R gồm {A}, {B},

{D}, {A,D}, {B,D}.Trong quan hệ trên không có PTH nào vi phạm định nghĩa

của BCNF nên R ở BCNF.2) Xét quan hệ R(CSZ) và tập PTH F = {C,S→Z; Z→C}Ta nhận thấy quan hệ này ở 3NF (ví dụ trên), tuy nhiên R

không ở BCNF vì phụ thuộc hàm Z→C và Z không phảilà khóa của quan hệ R.

Page 20: K3 Chuong 2 ChuanHoa

20

Các định lýĐịnh lý Delobel (1973)

Cho lược đồ quan hệ R gồm các thuộc tính A,B,C và tập pthF.

Nếu A →B ∈ F+ thì tách R={R1,R2} sao cho R1 = ∏AB (R) và R2=∏AC (R)

Định lý Risanen (1977)Cho ρ(R1,R2) là một phép tách của R,F thành hai lược đồ

R1,R2. Phép phân rã ρ là phép tách không tổn thất nếu và chỉ nếu

có PTH :R1 ∩ R2 → R1 \ R2 hoặc R2 ∪ R1 → R2 \ R1

Page 21: K3 Chuong 2 ChuanHoa

21

Chuẩn hóaThuật ngữ chuẩn hóa (được E. F. Codd đưa ranăm 1971) dùng để mô tả quá trình từng bước vàcó thể đảo ngược, trong đó, 1 tập các quan hệ sẽđược thay thế bằng một tập các quan hệ khác códạng đơn giản và cấu trúc cân bằng hơn.Vì đây là một quá trình có thể đảo ngược nên tậpquan hệ gốc ban đầu có thể được khôi phục lạimà không làm mất thông tin.

Page 22: K3 Chuong 2 ChuanHoa

22

Quan hệ được chuẩn hóaQuan hệ được chuẩn hóa là quan hệ mà trong đómiền giá trị của các thuộc tính tương ứng trongquan hệ chỉ chứa các giá trị nguyên tố. Quan hệ chứa các miền giá trị của các thuộc tínhlà không nguyên tố thì được gọi là quan hệ khôngchuẩn hóa. Khi một quan hệ không thoả điều kiện của mộtdạng chuẩn nào đó, nó phải được tách thành mộtquan hệ nhỏ hơn thỏa điều kiện đang kiểm tra.

Page 23: K3 Chuong 2 ChuanHoa

23

Mục đích của chuẩn hóaTận dụng được sức mạnh của các thuậttoán quan hệ dựa trên các phép toán quanhệ cơ bản.Để giải phóng quan hệ khỏi các thao tácchèn, cập nhật và xóa dự liệu sai.

Page 24: K3 Chuong 2 ChuanHoa

24

Thuật toán tách một lược đồ quan hệthành các lược đồ con ở 3NF (1/2)

Vào: Lược đồ quan hệ R, tập các pth F, ( F là phủ tối tiểu).Ra: Phép phân rã không mất mát thông tin và bảo toàn PTH trên R sao cho các lượcđồ con ở 3NF.

Page 25: K3 Chuong 2 ChuanHoa

25

Thuật toán tách một lược đồ quan hệthành các lược đồ con ở 3NF (2/2)

Bước 1: Nếu có 1 PTH nào đó của F mà liên quan đến tất cả các thuộctính của R thì kết quả chính là R. Chấm dứt thuật toánBước 2: FD:= F Trong khi FD ≠∅ thực hiện

-Nếu có PTH X→A ∈ FD tìm tất cả các PTH có vế trái là X (ví dụ X→A1, X→A2 , …, X→An) thì tạo ra các lược đồ con RX(X,A1, A2,…, An) -Loại bỏ các PTH X→Ai , i,…,n) khỏi FDFD:= FD \ {X→Ai , i,…,n }

Bước 3: Gọi RF là tập các thuộc tính không tham gia vào các PTH trong F, xây dựng lược đồ RK(K,RF) ( K là một khóa của S=<R,F>)( RX1(),RX2(),…,RXm(),RK(K,RF), K) là phép tách cần tìm

Page 26: K3 Chuong 2 ChuanHoa

26

Ví dụ:Cho R(ABSC)F={AB → S, S → B, S → C}Theo thuật toán trên ta có kết quả: R1(ABS)R2(SBC) R3(AB)

Page 27: K3 Chuong 2 ChuanHoa

27

Thuật toán tách lược đồ quan hệthành BCNF

Vào: LĐQH R và tập pth F.Ra: Phép tách của R không mất mát thông tin sao cho mỗiLĐQH trong phép tách đều ở BCNF đối với phép chiếu của F trên lược đồ đó.

Các buớc của thuật toán:Ban đầu phép tách ρ chỉ bao gồm R.Các bước tiếp: Nếu S là một lược đồ thuộc ρ và S chưa ởBCNF thì chọn PTH X → A thỏa trong S, trong đó X không chứa khóa của S và A∉ X. //PTH vi phạm địnhnghĩa BCNF.

Page 28: K3 Chuong 2 ChuanHoa

28

Thuật toán tách lược đồ quan hệthành các lược đồ ở BCNF(tt)

Thay thế S trong ρ bởi S1 và S2 với S1 = XA , S2 = S \ A.

Theo định lý Risanen, phép tách S thành S1 và S2 là phép tách không mất thông tin đối với tập PTH trên S vì

S1 ∩ S2 =X, X → S1 \ S2 = A (PTH X→A)Quá trình tiếp tục cho đến khi tất cả các lược đồđều ở BCNF

Page 29: K3 Chuong 2 ChuanHoa

29

Ví dụ: Cho lược đồ R(CTHRSG) Trong đó C: course ;T: teacher; H:hour; R: room; S:student; G:group ).Ta có tập pth F: C → T : Mỗi course có một thầy (teacher) duy nhất.HR → C : Tại một thời điểm ( hour) ở tại phòng học (room) chỉcó một course duy nhất.HT→ R : Tại một thời điểm ( hour) và một teacher chỉ ở mộtroom duy nhất CS → G : Một sinh viên học một course thì chỉ ở một lớp duynhất.HS → R: Một sinh viên, ở một thời điểm nhất định chỉ ở trongmột phòng duy nhất.Khóa của R là HS.Tách lược đồ R thành các lược đồ con ở dạng BCNF.

Page 30: K3 Chuong 2 ChuanHoa

30

Biểu diễn quá trình tách BCNF

Page 31: K3 Chuong 2 ChuanHoa

31

Chuẩn hóa qua phép tổng hợp Điều khác biệt giữa phép tổng hợp và phéptách là trong phép tổng hợp thông tin ban đầu gồm một tập các thuộc tính và tập cácPTH, còn trong phép tách, thông tin ban đầulà tập các lược đồ cụ thể.Phép tổng hợp cho kết quả là một tập cáclược đồ ở 3NF.

Page 32: K3 Chuong 2 ChuanHoa

32

Thuật toán tổng hợp thành 3NF

Vào: Tập các thuộc tính {A1, A2, . . . , An} và tậpPTH F.Ra: Tập các lược đồ ở dạng chuẩn 3.

Các buớc của thuật toán: Tìm phủ không dư H của F nghĩa là loại khỏi F các PTH dư thừaChia tập H thành các nhóm con, sao cho các PTH trong cùng một nhóm là có cùng vế trái.

Page 33: K3 Chuong 2 ChuanHoa

33

Thuật toán tổng hợp thành 3NF (tt)Mỗi cặp nhóm,ví dụ H1 và H2 có vế trái là X và Y và tồn tại các PTH X→Y và Y→X thì hòa hainhóm đó lại với nhau. Với mỗi A∈Y và nếu X→A∈H thì loại bỏ nókhỏi H tương tự với Y→B∈H với B∈XỞ mỗi nhóm sẽ thu được cấu trúc các lược đồquan hệ bao gồm các thuộc tính xuất hiện trongtrong nhóm đó. Mỗi tập thuộc tính xuất hiện ở vếtrái của tập PTH trong nhóm là một khóa của lượcđồ quan hệ. Các khóa tìm được gọi là khóa tổng hợp

Page 34: K3 Chuong 2 ChuanHoa

34

Ví dụ: Cho tập các thuộc tính{A,B,C,D,E,G,H,I,J,K,L} và tập PTH F.

F={ f1:A→B , C, D, E, G, H, I,J, K, L f2:B,C,D→A, E,G,H,J,K,Lf3:B,C,E→A, D, G, H,I,J,Kf4:H → I,J,Kf5:D, G→Lf6:E ,G → L f7:I:,J → Kf8:J, K → If9:I,J →K

}

Rõ ràng F là tối tiểu nhưng dư thừa. Gọi H là một phủkhông dư thừa của FCần chỉ ra rằng Z→Ai xuất hiện trong H là dư thừa. Đềlàm điều này cần chỉ ra có Z→X và X→Ai

Page 35: K3 Chuong 2 ChuanHoa

35

Với tập PTH F ở trên ta có:a) PTH f4:H → I,J,K là dư thừa vì ta có H → I,J ( luậtphân rã ) và I,J → K do vậy H→K ( luật bắc cầu) ngoàira H → I,J và H→K , luật hợp cho H → I,J,K. b) PTH f2:B,C,D→A, E,G,H,J,K,L là dư thừa vì ta cóB,C,D→A và A→E,G,H,J,K,L ( luật tách từ f1) vàB,C,D→E,G,H,J,K,L ( luật bắc cầu). Ngoài ra ta có B,C,D→A và B,C,D→E,G,H,J,K,L nên tacó f2:B,C,D→A, E,G,H,J,K,L ( luật hợp).

Page 36: K3 Chuong 2 ChuanHoa

36

Tóm lại ta có các PTH không dư thừa sau:F={A→B , C, D, E, G, H

B,C,D→AB,C,E→AH → I,JD, G→LE ,G → LI,J → KJ, K → II,K →J

}

Page 37: K3 Chuong 2 ChuanHoa

37

Thiết lập các lược đồ với khóa như sau:R1 = (A, B , C, D, E, G, H ) với khóa {A, BCD, BCE}R2 = (H, I,J) với khóa (H)R3 = (D, G, L) với khóa (D,G)R4= (E ,G , L) với khóa (E,G)R5 = (I,J , K) với khóa (I J,JK,KI)Đây là các lược đồ con ở 3NF.