CHƢƠNG 5 kế CSDL quan hệ mức khái...

Post on 19-Jan-2020

4 views 0 download

Transcript of CHƢƠNG 5 kế CSDL quan hệ mức khái...

CHƢƠNG 5

Thiết kế CSDL quan hệ mức khái niệm

Tiến sĩ: Lê Thị Tú Kiên

Giới thiệu

Các bước thiết kế CSDL

Tập hợp các yêu cầu và phân tích

Thiết kế khái niệm

Thiết kế logic

Thiết kế vật lí

2

3

Nội dung

Dư thừa và dị thường dữ liệu

Phụ thuộc hàm

Hệ tiên đề Armstrong

Bao đóng của tập thuộc tính

Phủ của một tập PTH

Xác định khóa của lược đồ quan hệ

Chuẩn hóa lược đồ quan hệ

Các phép tách lược đồ quan hệ

Chuyển đổi mô hình thực thể liên kết sang mô hình quan hệ

4

Dƣ thừa và dị thƣờng dữ liệu 5

Dƣ thừa dữ liệu

NHAN_VIEN_PHONG(MSNV,HO_TEN,NG_SINH,

GIOI_TINH,LUONG,MA_DV,TEN_PHONG,MA_TP)

6

Dị thƣờng dữ liệu

Dị thường khi thêm bộ

7

Dị thƣờng dữ liệu

Dị thường khi xóa bộ

8

Dị thƣờng dữ liệu

Dị thường khi sửa bộ

9

Cách giải quyết dị thƣờng dữ liệu

Tách lược đồ NHAN_VIEN_PHONG thành hai lược đồ:

NHAN_VIEN(MSNV,HO_TEN,NG_SINH,GIOI_TINH,LUONG,MA_DV)

PHONG(MA_DV,TEN_PHONG,MA_TP)

10

Cách giải quyết dị thƣờng dữ liệu 11

Phụ thuộc hàm 12

Định nghĩa phụ thuộc hàm

U: tập thuộc tính

R(U): lược đồ quan hệ xác định trên U

X, Y U

Y phụ thuộc hàm vào X trên R(U) nếu:

r R(U), t1, t2 r

t1[X]=t2[X] t1[Y]=t2[Y]

Ký hiệu XY

13

A B C D

a1 b1 c1 d1

a1 b1 c1 d2

a1 b2 c2 d1

a2 b1 c1 d3

ABC là PTH

Phụ thuộc hàm suy diễn

F: tập các phụ thuộc hàm trên R(U)

XY được suy diễn logic từ F nếu rR(U), r thỏa F kéo theo r thỏa XY

Kí hiệu: F ╞ (XY)

Ví dụ: F={AB, BC} thì F ╞ (AC)

14

Bao đóng của tập phụ thuộc hàm

F+={(XY) | F ╞ (XY)}

Nếu F+=F, thì F được gọi là họ phụ thuộc hàm đầy đủ

Ví dụ: Cho F={ACB, DE}, vì F=F+ nên F là tập PTH

đầy đủ.

15

Hệ tiên đề Armstrong 16

Hệ tiên đề Armstrong

Cho U, R(U), F, và X, Y, Z U. Kí hiệu XY=XY

A1. Phản xạ (Reflexivity):

Nếu Y X thì F ╞ (XY )

A2. Tăng trưởng (Augmentation)

Nếu F ╞ (XY ) thì Z U, F╞ (XZYZ)

A3. Bắc cầu (Transitivity)

Nếu F ╞ (XY ) và F ╞ (YZ ) thì F ╞ (XZ).

17

Ví dụ

Cho F={ABC, CA}.

Chứng minh: F ╞ (BCABC)

Giải:

Do CA nên theo tiên đề tăng

trưởng ta có: BCAB (1)

Do ABC nên cũng theo tiên đề

tăng trưởng ta có: ABABC (2)

Từ (1) và (2), áp dụng tiên đề bắc

cầu ta được: BCABC. Suy ra

đpcm.

18

A1. Phản xạ

Nếu Y X thì F ╞ (XY )

A2. Tăng trưởng

Nếu F ╞ (XY )

thì Z U, F╞ (XZYZ)

A3. Bắc cầu

Nếu F ╞ (XY ) và

F ╞ (YZ ) thì F ╞ (XZ)

Hệ tiên đề Armstrong mở rộng

A4. Quy tắc hợp (Union)

{XY, XZ}╞ (XYZ)

A5. Quy tắc giả bắc cầu (Pseudotransivity)

{XY, WYZ}╞ (WXZ)

A6. Quy tắc tách (Decomposition)

Nếu XY đúng và Z Y thì XZ đúng

19

Ví dụ

Cho F={ABC, BD, CDE, CEGH, GA}.

Chứng minh F╞ (ABEG)

20

Ví dụ

Chứng minh {ABC, BD, CDE, CEGH, GA}╞ (ABEG)

Giải:

Do CEGH nên theo luật tách ta có: CEG (1)

Áp dụng luật tăng trưởng với (1) ta được CEEG (2)

Do CDE nên theo luật tăng trưởng ta có: CDCE (3)

Từ (2) và (3), áp dụng luật bắc cầu ta được: CDEG(4)

Do BD nên theo luật tăng trưởng ta có: BCCD (5)

Từ (4) và (5), áp dụng luật bắc cầu ta được: BCEG(6)

Do ABC nên theo luật tăng trưởng ta có: ABBC (7)

Từ (6) và (7), áp dụng luật bắc cầu ta được: ABEG. Suy ra đpcm.

21

Bao đóng của tập thuộc tính 22

Định nghĩa bao đóng của tập thuộc tính

X+F

={AU| XA F+}

23

Thuật toán tính X+F

Vào: U, F , X U;

Ra: X+F

Phương pháp:

Bước 0: Đặt X0=X

Bước i: Xi=Xi-1A nếu tồn tại (YZ)F mà YXi -1 với AZ và

AXi-1

Vì X=X0 X1 …U, do U hữu hạn nên sẽ tồn tại một chỉ số i nào

đó mà Xi=Xi+1, khi đó: X+F=Xi và dừng thuật toán.

24

Ví dụ tính X+F

F={ABC, DEG, ACDB, CA, BEC, CEAG, BCD, CGBD}

Tính (BD)+F

Giải

B0: Đặt X0 = BD

B1: X1 = X0EG = BDEG vì PTH DEG có vế trái D X0 và vế phải EGX0

B2: X2 = X1C = BDEGC vì PTH BEC có vế trái BE X1 và vế phải CX1

B3: X3 = X2A = BDEGCA vì PTH CA có vế trái C X2 và vế phải A X2

B4: X4 = X3 = ABCDEG = U

Kết luận: (BD)+F = U= ABCDEG

25

Ví dụ tính X+F

NhanVien_DuAn(MaNV,HoTen,MaDA,TenDA,DiaDiemDA,SoGio)

F= {MaNVHoTen,

MaDA{TenDA, DiaDiemDA},

{MaNV, MaDa}SoGio

}

Ta có:

{MaNV}+F

= {MaNV,HoTen}

{MaDA}+F

= {MaDA,TenDA,DiaDiemDA}

{MaNV,MaDA}+F

= {MaNV,MaDA,HoTen,TenDA,DiaDiemDA,SoGio}

26

Bổ đề về bao đóng của tập thuộc tính

F╞Arm(XY) Y X+F

27

Ví dụ

Chứng minh {ABC, BD, CDE, CEGH, GA}╞ (ABEG)

Giải:

Áp dụng thuật toán tính bao đóng của một tập thuộc tính ta có:

(AB)+F=ABCDEGH=U có chứa EG, do vậy PTH ABEG suy diễn

được từ tập PTH đã cho.

28

Phủ của tập các phụ thuộc hàm 29

Sự tƣơng đƣơng của các tập PTH

F, G: các phụ thuộc hàm

F phủ G nếu G F+

F tương đương G nếu F+=G+

30

Tập phụ thuộc hàm tối tiểu

F tối tiểu nếu:

i. Vế phải của mỗi phụ thuộc hàm trong F gồm đúng một thuộc tính.

ii. Không thể bỏ đi bất kỳ một thuộc tính nào ở vế trái của một phụ

thuộc nào trong F mà vẫn thu được một tập phụ thuộc tương đương

với nó.

iii. Không thể bỏ đi một phụ thuộc hàm nào trong F mà vẫn thu được

một tập phụ thuộc tương đương với nó (F không dư thừa).

31

Thuật toán tìm tập PTH tối tiểu

Vào: F

Ra: Tập PTH tối tiểu G của F

Phƣơng pháp:

Bước 0: Đặt G = F

Bước 1: Thay thế mỗi PTH dạng X{A1,A2,…,An} thành n PTH dạng

XA1, XA2,…, XAn

32

Thuật toán tìm tập PTH tối tiểu

Vào: F

Ra: Tập PTH tối tiểu G của F

Phƣơng pháp (tiếp)

Bước 2: Loại bỏ thuộc tính dư thừa ở vế trái các PTH

Với mỗi PTH X→A trong G

Với mỗi thuộc tính BX

Nếu {(X\B)→A} G+ thì thay thế X→A bằng (X\B)→A

33

Thuật toán tìm tập PTH tối tiểu

Vào: F

Ra: Tập PTH tối tiểu G của F

Phƣơng pháp (tiếp)

Bước 3: Loại bỏ các PTH dư thừa

Với mỗi PTH X→A còn lại trong G

Nếu X→A {G\{X→A}}+ thì loại bỏ X→A khỏi G

Bước 4: Kết luận G là tập PTH tối tiểu của F

Chú ý: Có thể tráo hai bước 2 và bước 3 cho nhau.

34

Ví dụ tìm tập PTH tối tiểu

Cho tập PTH F={B→A,D→A,AB→D}.

Tìm tập PTH tối tiểu của F.

Giải

Bƣớc 0: Đặt G = F

Bƣớc 1: Do các PTH trong G đều có về phải bao gồm một thuộc tính

nên điều kiện thứ nhất thỏa mãn.

Bƣớc 2: Loại bỏ các thuộc tính dư thừa ở vế trái các PTH trong F

Do các PTH B→A và D→A có vế trái chỉ gồm 1 thuộc tính nên không có

thuộc tính dư thừa vế trái.

Xét PTH AB→D: do B→A nên ta có BB→AB hay B→AB, mà AB→D nên theo

luật suy diễn bắc cầu suy ra B→D. Vì vậy, AB→D dư thừa thuộc tính A nên

ta thay AB→D bằng B→D.

35

Ví dụ tìm tập PTH tối tiểu

Cho tập PTH F={B→A,D→A,AB→D}.

Tìm tập PTH tối tiểu của F.

Giải

Bƣớc 2: Loại bỏ các thuộc tính dư thừa ở vế trái các PTH trong G

Do vậy, ta có tập PTH G={B→A,D→A,B→D}

Bƣớc 3: Loại bỏ các PTH dư thừa trong G

Xét B→A: Do B→D và D→A nên theo luật suy diễn bắc cầu ta có B→A. Vì

vậy, {B→A}{G\{B→A}}+ nên ta loại B→A khỏi G. Suy ra G={D→A,B→D}

Do D→A không thể suy diễn ra từ PTH B→D và ngược lại nên ta không thể

loại chúng khỏi G.

Bƣớc 4: Vậy G={D→A,B→D} là tập PTH tối tiểu của F.

36

Khoá của lƣợc đồ quan hệ 37

Định nghĩa khóa

U: tập các thuộc tính

R(U): xác định trên U

KU

K là khóa của R nếu K thỏa mãn hai điều kiện sau:

i) (KU)F+: r R, t1, t2 r

Nếu t1[K] = t2[K] t1[U]=t2[U]

ii) ∄ K’ K mà (K’ U) F+

Chú ý: Nếu K chỉ thỏa mãn điều kiện i) thì K là siêu khóa

38

Định nghĩa khóa

Ví dụ

NHAN_VIEN(MSNV,HOTEN,NG_SINH,GIOI-TINH,MA_DV,LUONG)

MSNV là khóa

MSNVHOTEN, NG_SINH, GIOI-TINH, MA-DV, LUONG là PTH

39

Thuật toán xác định một khoá của LĐQH

Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U, Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi

Bước 1: X:=U\P

Bước 2: Nếu X+=U thì chuyển sang bước 5

Bước 3: X:=(U\P)(T∩P);

Bước 4: Với mỗi Ai(T∩P) thực hiện:

X:=X\{Ai}

Nếu X+ U thì X:=X{Ai};

Bước 5: Kết luận X là khoá

40

Cho R=<U, F> F ={TiPi| Ti,PiU, Ti∩Pi= , i=1,2,…,p}

P = Pi: Tập các thuộc tính vế bên phải các PTH trong F.

T= Ti : Tập các thuộc tính vế bên trái các PTH trong F.

U\P: tập các thuộc tính chỉ xuất hiện vế bên trái các PTH và là một phần

của khóa.

U\T: tập các thuộc tính chỉ xuất hiện vế bên phải các PTH và không

thuộc khóa.

T∩P: tập các thuộc tính có thể thuộc vào khóa hoặc không.

Gọi K là khóa của lược đồ, khi đó K phải thỏa mãn điều kiện:

U\P K (U\P) (T∩P)

Các dấu hiệu nhận biết khóa 41

Thuật toán xác định một khoá của LĐQH

Thuật toán Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U,

Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bước 1: X = U\P

Bước 2: Nếu X+ =U thì chuyển sang

bước 5

Bước 3: X = (U\P) (T∩P);

Bước 4: Với mỗi Ai (T∩P) thực hiện:

X=X\{Ai} nếu X+U thì X=X{Ai};

Bước 5: Kết luận X là khoá

Ví dụ

Vào:

Cho R=<U, F>, U = ABCDEG,

F={ABC, DEG, ACDB, CA,

BEC, CEAG, BCD, CGBD}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P=Pi = CEGBAD= ABCDEG = U

T=Ti = ABDCEG= ABCDEG = U

Bước 1: X = U\P =

Bước 2: X+ = U nên chuyển sang

bước 3.

42

Thuật toán xác định một khoá của LĐQH

Thuật toán

Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U,

Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bước 1: X = U\P

Bước 2: Nếu X+ =U thì chuyển sang

bước 5

Bước 3: X = (U\P) (T∩P);

Bước 4: Với mỗi Ai (T∩P) thực hiện:

X=X\{Ai} nếu X+U thì X=X{Ai};

Bước 5: Kết luận X là khoá

Ví dụ

Vào:

Cho R=<U, F>, U = ABCDEG,

F={ABC, DEG, ACDB, CA,

BEC, CEAG, BCD, CGBD}

Ra: Một khoá X của R

Bước 3:

X = (U\P)(T∩P) = U = ABCDEG

Bước 4:

Xét AX, vì X=X\{A} = BCDEG có

X+=ABCDEG=U nên X= BCDEG

43

Thuật toán xác định một khoá của LĐQH

Thuật toán Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U,

Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bước 1: X = U\P

Bước 2: Nếu X+ =U thì chuyển sang

bước 5

Bước 3: X = (U\P) (T∩P);

Bước 4: Với mỗi Ai (T∩P) thực hiện:

X=X\{Ai} nếu X+U thì X=X{Ai};

Bước 5: Kết luận X là khoá

Ví dụ

Vào:

Cho R=<U, F>, U = ABCDEG,

F={ABC, DEG, ACDB, CA,

BEC, CEAG, BCD, CGBD}

Ra: Một khoá X của R

Bước 4:

- Xét BX, vì X=X\{B}=CDEG có

X+=CDEGAB=U nên X=CDEG

- Xét CX, vì X=X\{C}=DEG có

X+=DEGU nên X=X{C}=CDEG

44

Thuật toán xác định một khoá của LĐQH

Thuật toán Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U,

Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bước 1: X = U\P

Bước 2: Nếu X+ =U thì chuyển sang

bước 5

Bước 3: X = (U\P) (T∩P);

Bước 4: Với mỗi Ai (T∩P) thực hiện:

X=X\{Ai} nếu X+U thì X=X{Ai};

Bước 5: Kết luận X là khoá

Ví dụ

Vào:

Cho R=<U, F>, U = ABCDEG,

F={ABC, DEG, ACDB, CA,

BEC, CEAG, BCD, CGBD}

Ra: Một khoá X của R

Bước 4:

- Xét D X, vì X=X\{D} = CEG có

X+=CEGABD=U nên X= CEG

- Xét E X, vì X=X\{E} = CG có

X+=CGBDEA=U nên X= CG

45

Thuật toán xác định một khoá của LĐQH

Thuật toán Vào: Cho R=<U, F> F ={TiPi| Ti,Pi U,

Ti ∩Pi= , i=1,2,…,p}

Ra: Một khoá X của R

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bước 1: X = U\P

Bước 2: Nếu X+ =U thì chuyển sang

bước 5

Bước 3: X = (U\P)(T∩P);

Bước 4: Với mỗi Ai (T∩P) thực hiện:

X=X\{Ai} nếu X+U thì X=X{Ai};

Bước 5: Kết luận X là khoá

Ví dụ

Vào:

Cho R=<U, F>, U = ABCDEG,

F={ABC, DEG, ACDB, CA,

BEC, CEAG, BCD, CGBD}

Ra:Một khoá X của R

Bước 4:

- Xét GX, vì X=X\{G} = C có X+=CAU

nên X= X{G} =CG;

Bước 5: Như vậy, CG là một khoá của

lược đồ.

46

Vào: Cho R=<U, F> F ={TiPi| Ti,PiU,

Ti∩Pi= , i=1,2,…,p}

Ra: Tất cả các khóa của lược đồ

Phƣơng pháp:

Đặt P = Pi , T= Ti

Bƣớc 1: X=U\P

tập các thuộc tính chỉ xuất hiện vế bên

trái các PTH

là một phần của khóa.

Bƣớc 2: Nếu X+F=U thì X là một khóa

tối tiểu và lược đồ chỉ có một khóa duy

nhất là X. Chuyển sang bƣớc 4.

Thuật toán tìm tất cả các khoá của LĐQH 47

Bƣớc 3: Với mỗi tập con N của

T∩P, tính {XN}+, nếu {XN}+=U thì

{XN} là khóa.

Bƣớc 4: Kết luận và kết thúc thuật

toán.

48

Thuật toán tìm tất cả các khoá của LĐQH

Cho R xác định trên:

U = {A, B, C, D, E, F, G, H}

F = {CD→A, EC→H, GHB→AB,

C→D, EG→A, H→B, BE→CD,

EC→B}

Hãy tìm tất cả các khóa của lược

đồ R?

Giải

Đặt P=Pi = {AHBDC} = {ABCDH}

T= Ti ={CDEGHB}={BCDEGH}

Bước 1: X=U\P = {EFG}

Bước 2: EFG+ = EFGA ≠ U nên EFG không là khóa mà chỉ là một phần của các khóa.

Bước 3: Ta có T∩P = {BCDH}, các tập con của T∩P bao gồm: {B, C, D, H, BC, BD, BH, CD, CH, DH, BCD, BCH, BDH, CDH, BCDH}

49

Thuật toán tìm tất cả các khoá của LĐQH

Giải

Đặt P=Pi = {AHBDC} = {ABCDH},

T= Ti ={CDEGHB}={BCDEGH}

Bước 1: X=U\P = {EFG}

Bước 3: EFG+ = EFGA ≠ U nên EFG không là khóa mà chỉ là một phần của các khóa.

Bƣớc 3: Ta có T∩P = {BCDH}, các tập con của T∩P bao gồm: {B, C, D, H, BC, BD, BH, CD, CH, DH, BCD, BCH, BDH, CDH, BCDH}

Vì BEFG+ = ABCDEFGH = U ( từ

BE→CD, EG→A, EC→H) nên

BEFG là một khóa của R.

Vì CEFG+ = ABCDEFGH = U (từ

EG→A, EC→H, H→B, BE→CD)

nên CEFG là một khóa.

Vì DEFG+ = ADEFG ≠ U (từ

EG→A) nên DEFG không là khóa.

Vì HEFG+ = ABCDEFGH = U (từ

EG→A, H→B, BE→CD) nên

EFGH là một khóa.

50

Thuật toán tìm tất cả các khoá của LĐQH

Giải

Đặt P=Pi = {AHBDC} = {ABCDH},

T= Ti ={CDEGHB}={BCDEGH}

Bƣớc 1: X=U\P = {EFG}

Bƣớc 2: EFG+ = EFGA ≠ U nên EFG không là khóa mà chỉ là một phần của các khóa.

Bƣớc 3: Ta có T∩P = {BCDH}, các tập con của T∩P bao gồm: {B, C, D, H, BC, BD, BH, CD, CH, DH, BCD, BCH, BDH, CDH, BCDH}

BEFG là một khóa của R.

CEFG là một khóa.

DEFG không là khóa.

HEFG là một khóa.

Vì các tập con còn lại khi kết hợp với EFG sẽ tạo thành các tập có chứa một trong các khóa BEFG, CEFG và HEFG nên chúng chỉ là siêu khóa, không là khóa.

Bƣớc 4: Lược đồ có 3 khóa BEFG, CEFG và HEFG.

Chuẩn hóa lƣợc đồ quan hệ 51

Chuẩn hoá dữ liệu 52

Quá trình đánh giá và chỉnh sửa cấu trúc của các quan hệ

nhằm

tối thiểu hoá dư thừa dữ liệu

loại trừ dị thường dữ liệu.

Thực hiện qua một dãy các bước được gọi là các dạng chuẩn:

Dạng chuẩn 1 (1NF)

Dạng chuẩn 2 (2NF)

Dạng chuẩn 3 (3NF)

Dạng chuẩn BCNF

V.v…

Dạng chuẩn 1 (1NF) 53

Miền giá trị của mỗi thuộc tính trong R:

phải là kiểu nguyên tố

không phải là một kiểu cấu trúc phức hợp, đa giá trị hay quan hệ

con

Ví dụ dạng chuẩn 1

MSNV LAMVIEC

MSDA GIOCONG

123456 1 65

2 15

668844 3 62

453453 1 40

2 45

334455 2 25

MSNV MSDA GIOCONG

123456 1 65

123456 2 15

668844 3 62

453453 1 40

453453 2 45

334455 2 25

Dạng chuẩn 1

54

Dạng chuẩn 0

StudentID Activity Fee

222-22-2020 Swimming 30

232-22-2111 Golf 100

222-22-2020 Golf 100

255-24-2332 Hiking 50

StudentID

ACTIVITY

Activity Fee

Khóa: {StudentID, Activity}

F= {StudentID,Activity Fee;

Activity Fee}

Lƣợc đồ ACTIVITY thuộc 1NF chƣa?

Dạng chuẩn 2 (2NF)

Lược đồ quan hệ R2NF khi và chỉ khi:

R1NF

Mọi thuộc tính không khóa của R đều phụ thuộc hàm đầy đủ vào khóa

Chú ý: Thuộc tính không khóa là những thuộc tính không thuộc vào

khóa nào (Khóa chính /Khóa tuyển) của lược đồ.

56

Dạng chuẩn 2: Phụ thuộc hàm đầy đủ

Cho lược đồ quan hệ R=<U, F>; X, Y U.

Y phụ thuộc hàm đầy đủ vào X

nếu F╞ (XY) và ∄Z, Z X, ZX

thỏa mãn F╞ (ZY).

57

StudentID Activity Fee

222-22-2020 Swimming 30

232-22-2111 Golf 100

222-22-2020 Golf 100

255-24-2332 Hiking 50

StudentID

ACTIVITY

Activity Fee

Khóa: {StudentID, Activity}

F= {StudentID,Activity Fee;

Activity Fee}

Dạng chuẩn 2:Ví dụ 1

Tách lược đồ ACTIVITY thành các lược đồ ở dạng chuẩn 2NF

Student_ID Activity

222-22-2020 Swimming

232-22-2111 Golf

222-22-2020 Golf

255-24-2332 Hiking

Activity Fee

Swimming 30

Golf 100

Hiking 50

StudentID

STUDENT_ACTIVITY

Activity Khóa: {StudentID,Activity}

ACTIVITY_COST

Activity Fee

Khóa: Activity

Activity Fee

Dạng chuẩn 2: Ví dụ 1

Dạng chuẩn 2: Ví dụ 2

MaNV MaDA SoGio TenNV TenDA DiaDiemDA

MaNV MaDA SoGio MaNV TenNV MaDa TenDA DiaDiemDA

Chuần hóa 2NF

NHAVIEN_DUAN

Dạng chuẩn 2: Lƣợc đồ thuộc 2NF chƣa?

TenNV MaNV NgaySinh DiaChi MaPhong TenPhong MaTP

NHAVIEN_PHONG

Dạng chuẩn 3 (3NF)

Lược đồ quan hệ R=<U, F> 3NF nếu:

R 2NF

mỗi thuộc tính không khóa của R không phụ thuộc bắc cầu vào khóa

62

Dạng chuẩn 3:Phụ thuộc hàm bắc cầu

Cho lược đồ quan hệ R(U,F), XU, AU.

A phụ thuộc hàm bắc cầu vào X trên R

nếu tồn tại tập Y, YU, sao cho:

XY, YA, nhưng Y↛X với AXY.

63

Dạng chuẩn 3: Ví dụ

TenNV MaNV NgaySinh DiaChi MaPhong TenPhong MaTP

Chuần hóa 3NF

NHAVIEN_PHONG

TenNV MaNV NgaySinh DiaChi MaPhong MaPhong TenPhong MaTP

NP1 NP2

Dạng chuẩn Boyce Codd (BCNF)

Cho R=<U, F>

RBCNF nếu:

A U

XA thỏa trên R

AX

thì X là siêu khóa của R

65

Dạng chuẩn Boyce Codd: Ví dụ

Các dạng chuẩn khác

Phụ thuộc đa trị Dạng chuẩn 4

Phụ thuộc kết nối Dạng chuẩn 5

67

Bài toán xác định dạng chuẩn cho lƣợc đồ

Cho lược đồ xác

định trên:

U = ABCDE

F = {ABDE,

EAD, DC}

Xác định R ở dạng

chuẩn nào?

68

Giải

Bước 1: Kiểm tra R có thuộc dạng chuẩn 1NF

không?

Nếu chúng ta giả thiết các thuộc tính trong R

đều chứa giá trị nguyên tố thì R thuộc 1NF.

Bước 2: Kiểm tra R 2NF?

Xác định tất cả các khóa của R: Áp dụng thuật

toán tìm tất cả khóa của lược đồ R có 2 khóa

AB và BE

Bài toán xác định dạng chuẩn cho lƣợc đồ

Cho lược đồ xác

định trên:

U = ABCDE

F = {ABDE,

EAD, DC}

Xác định R ở dạng

chuẩn nào?

69

Bước 2: Kiểm tra R2NF?

Các thuộc tính không khóa bao gồm C và D.

Do ABDE và DC nên dựa theo luật suy

diễn Armstrong ta có ABC. Như vậy, C và

D đều PTH đầy đủ vào khóa AB.

Tuy nhiên, do EAD và DC nên ta có

EC. Như vậy, D và C đều không PTH đầy

đủ vào khóa BE. Do đó R2NF.

Kết luận: R1NF