Tải bản đầy đủ (.pdf) (20 trang)

Bài giảng Phân tích thiết kế hệ thống thông tin: Chương 7 - Lê Nhị Lãm Thúy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 20 trang )

Chương 7

LÝ THUYẾT CHUẨN HÓA DỮ LIỆU
PHÂN TÍCH THIẾT KẾ THỐNG THÔNG TIN

Nội dung









Xét hóa đơn bán hàng như sau

Phụ thuộc hàm.
Bao đóng.
Khóa của lược đồ quan hệ.
Phủ tối thiểu.
Dạng chuẩn.
Chuẩn hóa cơ sở dữ liệu.
Phép tách lược đồ quan hệ.
Bài tập

1


Ví dụ
Số HD



NgàyHD

TênKH

TênNV

001

01/02/19

Nuyễn Ngọc Nga

Trần Thị Lan

Coca

TênHH

SL

2

DG

001

01/02/19

Nuyễn Ngọc Nga


Trần Thị Lan

Pepsi

1

7.000

7.000

001

01/02/19

Nuyễn Ngọc Nga

Trần Thị Lan

Ken

3

15.000

45.000

002

01/02/19


Nguyễn Thị An

Linh

Gạo

1

20.000

20.000

002

01/02/19

Nguyễn Thị An

Linh

Đường

2

21.000

42.000

003


01/02/19

Nguyễn Thị An

Linh

Sữa

1

25.000

25.000

8.000

TT

16.000

Nếu thêm một hóa đơn mới ???

Nếu thêm một kết quả thi của sinh viên mới ???

7.1 Phụ thuộc hàm (functional dependence-FD)

7.1 Phụ thuộc hàm (functional dependence-FD)

Định nghĩa:


Một thể hiện của R thỏa phụ thuộc hàm X  Ynếu

Phụ thuộc hàm là ràng buộc giữa 2 tập thuộc tính của 01 lược

t1, t2  R

đồ quan hệ

t1.X = t2.X  t1.Y = t2.Y

R(A1, A2,…, An) là lược đồ quan hệ.
X, Y là hai tập con của tập thuộc tính  ={A1, A2,…, An}.
Ta nói Y phụ thuộc hàm vào X: X → Y

Nếu t1.X = t2.X  t1.Y  t2.Y thì lược đồ vi phạm phụ thuộc
hàm XY

Với mỗi giá trị tại X trong R xác định duy nhất một giá trị của Y trong R

2


Ví dụ

sai

A

B


C

D

E

1

2

3

4

5

1

4

3

4

5

1

2


4

4

1

Kí hiệu nào là phụ thuộc hàm
MONHOC → DIEMTHI ???
HOTEN → DIEMTHI ???
MASV → DIEMTHI ???

I. AB →

C

II. B →

D

(T)

III. DE → A

Phụ thuộc hàm hiển nhiên

(T)

7.2 Hệ luật dẫn Armstrong



Nếu X  Y thì X → Y .

Phụ thuộc hàm được suy diễn logic từ F
 Phụ thuộc hàm X  Y được suy diễn logic từ F nếu một quan hệ r

bất kỳ thỏa mãn tất cả các phụ thuộc hàm của F thì cũng thỏa phụ
thuộc hàm X  Y.

 Với r là quan hệ bất kỳ, F là tập phụ thuộc hàm

thỏa trên r, ta luôn có

 Ký hiệu F|= X  Y.

F  {các phụ thuộc hàm hiển nhiên}


Bao đóng của F
đóng của F là tập
được suy diễn logic từ F.

 Bao

tất cả các

phụ

thuộc


hàm

 Ký hiệu: F+

Nếu F=F+ thì F là họ đầy đủ của các PTH

3


Thuật toán tìm bao đóng F+

7.2 Hệ luật dẫn Armstrong
 Các tính chất của tập F+

“Áp dụng hệ tiên đề Armstrong cho đến khi
không tìm ra thêm phụ thuộc hàm mới”

 Tính phản xạ: F  F+

 Tính đơn điệu: Nếu F  G thì F+  G+
 Tính lũy đẳng: (F+)+ = F+.
 Phần phụ của F: F- = G - F+

(G - tập tất cả các PTH có thể có của r)

7.2 Hệ luật dẫn Armstrong


Hệ luật dẫn Amstrong: Gọi R() là lược đồ quan hệ
với  ={A1, A2,…, An} là tập thuộc tính và X,Y,Z,W là

tập con của . (Kí hiệu: XY=XY)
 Ba luật của tiên đề Amstrong:
1. Luật phản xạ (reflexive rule):
Nếu Y  X thì X  Y
2. Luật tăng trưởng (augmentation rule):
Nếu X  Y, Z   thì XZ  YZ
3. Luật bắc cầu (Transivity Rule)
Nếu X  Y và Y  Z thì X  Z

CM: Tiên đề tăng trưởng

Giả sử quan hệ r thoả mãn X  Y.
Tồn tại hai bộ t, u  r sao cho t[XZ] = u[XZ] mà t[YZ]  u[YZ]
Vì t[Z] = u[Z] nên để có t[YZ]  u[YZ] thì t[Y]  u[Y] (1)
Mà ta có t[XZ] = u[XZ] nên t[X] = u[X] (2)
Từ (1) và (2) ta có t[X] = u[X] và t[Y]  u[Y] điều này là trái với
giả thiết quan hệ r thoả mãn X  Y.
Vậy t[YZ] = u[YZ] hay XZ  YZ là đúng trên quan hệ r.

4


7.2 Hệ luật dẫn Armstrong
 Ba hệ quả của tiên đề Amstrong:
1.

Luật hợp (Union Rule)
Nếu X  Y và X  Z thì X  YZ

2.


7.3 Bao đóng của tập thuộc tính X
(closures of attribute sets)
 Định nghĩa

Gọi F là tập các phụ thuộc hàm trên tập thuộc tính 
Bao đóng của F là tất cả các phụ thuộc hàm có thể
suy ra từ F dựa trên các tiên đề Armstrong

Luật bắc cầu giả (Pseudotransivity Rule)
Nếu X  Y và WY  Z thì XW  Z

3.

Luật phân rã (Decomposition Rule)
Nếu X  Y và Z  Y thì X  Z

7.3 Bao đóng của tập thuộc tính X
(closures of attribute sets)


Thuật toán tìm bao đóng:
 Tính liên tiếp tập các tập thuộc tính X0,X1,X2,... theo phương

pháp sau:
 Bước 1:

X0 = X

 Bước 2: lần lượt xét các phụ thuộc hàm của F

 Nếu
 Loại

YZ có Y  Xi thì Xi+1 = Xi Z
phụ thuộc hàm Y  Z khỏi F

 Bước 3: Nếu ở bước 2 không tính được Xi+1 thì Xi chính là

bao đóng của X
 Ngược lại lặp lại bước 2.

7.3 Bao đóng của tập thuộc tính X
(closures of attribute sets)

Ví dụ 1: Cho lược đồ quan hệ R(A,B,C,D,E,G,H) và
tập phụ thuộc hàm
F={BA; DACE; DH; GH C; ACD}.
Tìm bao đóng của X = {A,C} trên F? bao đóng
Giải: X(0) = {A,C} , {A,C}{D}
 X(1) = {A,C,D}, {A, D}{C,E}
 X(2) = {A,C,D,E}, {D}{H}
 X(3) = {A,C,D,E,H}
 X+= X(3)
Cho X = {B, D} ->X+?

5


7.3 Bao đóng của tập thuộc tính X
(closures of attribute sets)



Ví dụ 2: cho lược đồ quan hệ: Q(A,B,C,D,E,G)

 F = { f1: A → C;

f2: A → EG;
f3: B →D;
f4: G →E}
Tìm bao đóng:
- X+ với X = {A,B};
- Y+ với Y = {C,G,D}

Phủ tối thiểu

7.4 Phủ tối thiểu

Tập phụ thuộc hàm tối thiểu (minimal cover)

Một phủ tối thiểu của tập phụ thuộc hàm F là một tập phụ
thuộc hàm G
Trong đó:
- G tương đương với F (tức G+ = F+)
- Tất cả các phụ thuộc hàm trong G đều có dạng X  A
- Không thể làm G nhỏ hơn được nữa (nghĩa là không thể
xóa đi bất kỳ PTH nào trong G, hay xóa đi bất kỳ thuộc tính
nào bên phải, bên trái của mỗi phụ thuộc hàm mà G vẫn
tương đương với F)

F là một tập phụ thuộc hàm tối thiểu nếu thỏa mãn 3

điều kiện sau:
 F là tập phụ thuộc hàm có vế trái không dư thừa

 F là tập phụ thuộc hàm có vế phải một thuộc tính.
 F là tập phụ thuộc hàm không dư thừa

6


7.4 Phủ tối thiểu

Ví dụ

Thuật toán tìm phủ tối thiểu
Bước 1:

R(A, B, C, D, E, F, G, H)
T = {ABH → CK, A → D, C → E, BGH → F, F → AD, E → F, BH → E}
Tìm phủ tối thiểu

- Tách vế phải mỗi PTH trong F sao cho các vế phải mỗi
PTH chỉ chứa 1 thuộc tính
Bước 2:
- Tìm các PTH đầy đủ bằng cách loại bỏ các PTH dư thừa
ở vế trái của từng PTH
Bước 3:
- Loại bỏ các PTH dư thừa trong F

Bước 2


T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A,
F → D, E → F, BH → E}

Loại bỏ các thuộc tính dư thừa phía bên trái của mỗi
thuộc tính hàm:
T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A, F → D,
E → F, BH → E}

2.1. Xét ABH → C
- Loại A trong ABH → C:
Ta có (BH)+ = (BHEFADK) chứa A, nên A dư thừa.
- Loại B trong ABH → C:
Ta có (AH)+ = (AHD) không chứa B, nên B không dư thừa.
- Loại H trong ABH → C:
Ta có (AB)+ = (ABD) không chứa H, nên H không dư thừa.
 Kết quả: T = {BH → C, ABH → K, A → D, BGH → F, F → A, F
→ D, E → F, BH → E}

Bước 1:
Tách vế phải của các thuộc tính hàm thành các thuộc tính đơn lẻ:
ABH → C
ABH → K
A→D
C→E
BGH → F
F→A
F→D
E→F
BH → E


Bước 2

T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A,
F → D, E → F, BH → E}

2.2. Xét ABH → K
- Loại A trong ABH → K:
Ta có (BH)+ = (BHEFADK) chứa A, nên A dư thừa.
- Loại B trong ABH → K:
Ta có (AH)+ = (AHD) không chứa B, nên B không dư thừa.
- Loại H trong ABH → K:
Ta có (AB)+ = (ABD) không chứa H, nên H không dư thừa.
 Kết quả: T = {BH → C, BH → K, A → D, BGH → F, F → A, F →

D, E → F, BH → E}

7


Bước 2

T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A,
F → D, E → F, BH → E}

2.3. Xét BGH → F
- Loại B trong BGH → F: Ta có (GH)+ = (GH) không chứa B, nên
B không dư thừa.
- Loại G trong BGH → F: Ta có (BH)+ = (BHEFDACK) không
chứa G, nên G không dư thừa.
- Loại H trong BGH → F: Ta có (BG)+ = (BG) không chứa H, nên

H không dư thừa.
 Kết quả: T = {BH → C, BH → K, A → D, BGH → F, F → A, F
→ D, E → F, BH → E}
2.4. Xét BH → E
- Cả B và H đều không dư thừa.
Kết quả: T = {BH → C, BH → K, A → D, BGH → F, F → A, F →
D, E → F, BH → E}

Bước 3

T = {BH → C, BH → K, A → D, BGH → F, F → A, F → D,
E → F, BH → E}

3.3. Thử loại bỏ A → D:
Ta có: (A)+ = (A) không chứa D, nên A → D không dư thừa.
 Kết quả giữ nguyên.

3.4. Thử loại bỏ BGH → F:
Ta có: (BGH)+ = (BHEFDAKC) chứa F nên BGH → F dư
thừa.
 Kết quả: T = {BH → C, BH → K, A → D, F → A, F → D, E
→ F, BH → E}
3.5. Thử loại bỏ F → A:
Ta có: (F)+ = (FD) không chứa A, nên không dư thừa.
 Kết quả giữ nguyên.

Bước 3

T = {BH → C, BH → K, A → D, BGH → F, F → A, F → D,
E → F, BH → E}


Loại bỏ các phụ thuộc hàm dư thừa:
T = {BH → C, BH → K, A → D, BGH → F, F → A, F → D, E → F, BH → E}

3.1. Thử loại bỏ BH → C:
Ta có: (BH)+ = (BHEFDAK) không chứa C, nên BH → C
không dư thừa.
 Kết quả giữ nguyên.
3.2. Thử loại bỏ BH → K:
Ta có: (BH)+ = (BHCEFDA) không chứa K, nên BH → K
không dư thừa.
 Kết quả giữ nguyên.

Bước 3

T = {BH → C, BH → K, A → D, BGH → F, F → A, F → D,
E → F, BH → E}

3.6. Thử loại bỏ F → D:
Ta có: (F)+ = (FAD) chứa D, nên dư thừa.
 Kết quả: T = {BH → C, BH → K, A → D, F → A, E → F,
BH → E}
3.7. Thử loại bỏ E → F:
Ta có: (E)+ = (E) không chứa F, nên không dư thừa.
 Kết quả giữ nguyên.
3.8. Thử loại bỏ BH → E:
Ta có: (BH)+ = (BHCK) không chứa E, nên không dư thừa.
 Kết quả giữ nguyên.

8



Kết quả
T = {BH → C, BH → K, A → D, F → A, E → F, BH → E}

1. BH → C
2. BH → K
3. A → D
4. F → A
5. E → F
6. BH → E

Ví dụ
Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc F
={AB CD, B  C, C  D}. Tìm phủ tối thiểu của F.
Bước 1: AB  CD là phụ thuộc hàm có vế trái
dư thừa?
Xét B  CDF+ ?
Tính B+ =BCD  B  CD F+
Vậy AB  CD là phụ thuộc hàm có vế trái dư thừa A
 F={B  CD; B  C; C  D}

Ví dụ
Bước 2: tách các phụ thuộc hàm có vế phải nhiều
hơn 1 thuộc tính thành các phụ thuộc hàm có vế phải
1 thuộc tính
F={B  CD; B  C; C  D}
F={BD; B  C; C  D}=F1tt

Bài tập


Tìm phủ tối thiểu?

Bước 3:
Ta có: B  D là PTH dư thừa do {B  C;C  D}
Kết quả cho phủ tối thiểu:
F={B  C;C  D}=Ftt

9


7.5 Phụ thuộc hàm tương đương


Định Nghĩa: Hai tập phụ thuộc hàm F và G là
tương đương (Equivalent) nếu F+ = G+
 Ký hiệu: F  G (F ∼G).

7.5 Phụ thuộc hàm tương đương



phụ thuộc hàm:

F = {ABC, AD, CE}

 Thuật toán xác định F và G có tương đương không
Bước 1: Với mỗi phụ thuộc hàm XY của F ta xác định

G = {ABCE, AABD, CE}


xem XY có là thành viên của G không.
Bước 2: Với mỗi phụ thuộc hàm XY của G ta xác định
xem XY có là thành viên của F không.

a) F có tương đương với G không?
b) F có tương đương với G’={ABCE} không?

 Nếu cả hai bước trên đều đúng thì F G

7.5 Phụ thuộc hàm tương đương
Với mỗi phụ thuộc hàm YZ trong F
Tính Y+ trên tập phụ thuộc hàm G
Nếu Z  Y+ thì YZ trong G+ và ngược lại
F={ABC,AD,CE}
G = {ABCE,AABD,CE}
Giải:


Tính A+ , C+ dựa trên tập G
 A+G=ABCED BC (xét A  BC)
 C+G=CE  E (xét C  E)
+
 Các phụ thuộc hàm trong F đều được suy diễn từ G (1).
- Tính A+ , C+ dựa trên tậpF
 A+ =ABCED  BCE (xét ABCE)
F
 C+F = CE  E (xét C  E)
+
 Các phụ thuộc hàm trong G đều được suy diễn từ F (2)

 (1) và (2)  F+ = G+  F  G.

Ví dụ: Cho lược đồ quan hệ R(ABCDE) hai tập

Phụ thuộc hàm dư thừa
Tập các PTH có thể là dư thừa vì chúng có thể suy
diễn từ các PTH khác.
Ví dụ: AC là dư thừa đối
với F= (AB, BC, A C)
 Một phần của phụ thuộc hàm cũng có thể dư thừa.
 Ví dụ:
F=(A B, BC, AC,D) có thể được viết lại:
F=(A B, BC, AD)


10


Cho F = { A→C, AC→D, E→AD, E→H}
Y = {A→CD, E→AH}

Cách 1
Cho F = { A→C, AC→D, E→AD, E→H}
Y = {A→CD, E→AH}
Kiểm tra F và E có tương đương

A→C  A → AC
AC → D

A→D

A→C

A → CD

Vậy F chứa A → CD
Cách 1: Quy tắc suy diễn
Cách 2: Dùng bổ đề và bao đóng

E→AD  E → A
E→H

E → AH

Vậy F chứa E → AH

Cách 1

Cho F = { A→C, AC→D, E→AD, E→H}
Y = {A→CD, E→AH}

A→CD  A → C
A→CD  A → D  AC → D
E → AH E → A
A → D(do A → CD)
E → AH E → H

E → AD

Cách 2


Cho F = { A→C, AC→D, E→AD, E→H}
Y = {A→CD, E→AH}

Xét Y trong F
(A)+F = {ACD}
(E)+F = {ADEH}
Vậy F phủ Y
Xét F trong Y
(A)+Y = {ACD}
(AC)+Y = {ACD}
(E)+Y = {ACDEH}
Vậy Y phủ F

11


Bài tập:
1. Cho lược đồ quan hệ R và tập các phụ thuộc hàm:
F={AB  C, B  D, CD  E, CE GH, G A} trên R.
Chứng minh AB  EG
2. Cho lược đồ quan hệ R(A,B, C, D, E, G, H) và tập phụ thuộc hàm F,
F = {B → A; DA→ CE; D → H; GH→ C; AC→ D}
Hãy tính: B+; H+;BC+ và tìm PTT
3. Cho lược đồ quan hệ Q(ABC) hai tập phụ thuộc hàm:
F={ A→B; A→C; B→A; C→A; B→C}
G={ A→B; C→A; B→C}
F có tương đương với G không?

Bài tập:


Bài tập:
4. Cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc F như sau:
F = {A  C; C  A; CB  D; AD  B; CD  B; AB  D}
Hãy tìm phủ tối thiểu của F?
5. Cho G = {AB  C, A  B, B  C, A  C}và
F ={AB  C, A  B, B  C}.
Hai PTH trên có tương đương không?
6. Cho lược đồ quan hệ (A,B,C,D,E,G) và tập PTH:
F = {ABC; C  A; CB  D; ACD  B; D  EG, BE 
C; CG BD; CE AG }
a/ X={B,D}, X+=?
b/ Y={C,G}, Y+=?
c/ Hãy tìm phủ tối thiểu của F

Bài tập:

7. Cho lược đồ CSDL

8. Cho lược đồ CSDL

KeHoach(NGAY, GIO, PHONG, MOMHOC, GIAOVIEN):
F = {NGAY, GIO, PHONG MONHOC;
MONHOC, NGAY GIAOVIEN;
NGAY, GIO, PHONG  GIAOVIEN;
MONHOC  GIAOVIEN}

Q(LENTAU, LOAITAU, MACHUYEN, LUONGHANG, BENCANG, NGAY}
F = {TENTAU LOAITAU;
MACHUYEN TENTAU, LUONGHANG;
TENTAU, NGAY  BENCANG, MACHUYEN}


a/ Hãy tìm tập phủ tối thiểu của F?
b/ Tìm tất cả các khóa của Q?

a/ Tính {NGAY, GIO, PHONG}+; {MONHOC}+
b/ Tìm phủ tối thiểu của F.
c/ Tìm tất cả các khóa của KeHoach?

12


Bài tập:

Bài tập:

7. Hãy tìm tất cả các khóa cho lược đồ CSDL
Q(BROKER, OFFICE, STOCK, QUANTITY, INVESTOR,
DIVIDENT):
F = {STOCK DIVIDENT;
INVESTOR  BROKER;
INVESTOR, STOCK  QUANTITY;
BROKER  OFFICE}

1.Cho lược đồ quan hệ R(C,T,H,R,S,G) và tập phụ thuộc F như sau:
F = {C T; HR  C; HT  R; CS  G; HS  R}
Hãy tìm phủ tối thiểu của F?
2.Cho lược đồ quan hệ R(A,B,C,D,E,H) và tập phụ thuộc F như sau:
F = {A E; C  D; E  DH}
Chứng minh K={A,B,C} là khóa duy nhất của R?


3.Cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc F như sau:
F = {AB C; D  B; C  ABD}
Hãy tìm tất cả các khóa của R?
4.Cho lược đồ quan hệ R(A,B,C,D,E,G) và tập phụ thuộc F như sau:
F = {AB C; C  A; BC  D; ACD  B; D EG; BE  C; CG BD;
CE G}
Hãy tìm tất cả các khóa của R?

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)


Định Nghĩa: Cho lược đồ quan hệ R(A1,A2,…,An)
U

Dạng chuẩn

là tập thuộc tính của R.

F

là tập phụ thuộc hàm trên R.

K

là tập con của U

K là một khóa của R nếu thỏa 2 điều kiện sau:
 K+ = U
 Không


tồn tại K'  K sao cho K’+= U

13


KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)


Tập thuộc tính S được gọi là siêu khóa nếu S K



Thuộc tính A được gọi là thuộc tính khóa nếu
AK với K là khóa bất kỳ của R. Ngược lại A
được gọi là thuộc tính không khóa.



Một lược đồ quan hệ có thể có nhiều khóa và tập



Ví dụ: cho lược đồ quan hệ R(U) với U={A,B,C,D,E}
và tập PTH:
F={AB CE; B  D; BC  A}
 Các khóa của R là K1=AB, K2=BC.

Vậy: A,B,C là thuộc tính khóa còn Fn={D,E}

thuộc tính không khóa cũng có thể bằng rỗng.


KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)



Thuật toán tìm một khóa của một lược đồ quan hệ R
• Bước 1: gán K = U.
• Bước 2: A là một thuộc tính của K, đặt K’ = K - A.
 Nếu


K’+=

U thì gán K = K' thực hiện lại bước 2.

Nếu muốn tìm các khóa khác (nếu có) của lược đồ
quan hệ, ta có thể thay đổi thứ tự loại bỏ các phần tử
của K.

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
 Ví dụ 1: cho lược đồ quan hệ U = R(A,B,C,D,E) và tập

phụ thuộc hàm F như sau:
F={ABC, AC  B, BC  DE} tìm khóa K?
Giải:
B1: K=U  K=ABCDE
B2:(K\A)+ (BCDE)+=BCDE ≠ U  K=ABCDE
B3:(K\B)+ (ACDE)+= ABCDE = U  K=ACDE
B4: (K\C)+ (ADE)+ = ADE ≠ U  K=ACDE
B5: (K\D)+  (ACE)+ = ACEBD=U  K=ACE

B6: (K\E)+ (AC)+ = ACBDE =U  K=AC

14


KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)

 Ví dụ 2: cho lược đồ quan hệ R(A,B,C,D,E,G,H,I) và

 Thuật toán tìm tất cả khóa của lược đồ quan hệ:

tập phụ thuộc hàm
F={

 Bước 1: Xác định tất cả các tập con khác rỗng của U={X1,

AC B;
BI AC;

X2, …,Xn-1 }

ABC D;

 Bước 2: Tìm bao đóng của các Xi

H  I;
ACEBCG;
CG  AE}


 Bước 3: Siêu khóa là các Xi có Xi+= U

 Tìm K?



Giả sử ta đã có các siêu khóa là S = {S1,S2,…,Sm}

 Bước 4:

xét mọi Si, Sj con của S (i ≠ j), nếu Si  Sj thì loại Sj

(i,j=1..n), kết quả còn lại của S chính là tập tất cả các khóa
cần tìm.

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)

 Ví dụ: Tìm tất cả các khóa của lược đồ quan hệ

 Thuật toán (cải tiến) tìm tất cả khóa của một

với tập phụ thuộc hàm như sau:

lược đồ quan hệ
 Bước 1: tạo tập thuộc tính nguồn TN, tập thuộc tính

trung gian TG

 Bước 2:

TG =  thì lược đồ quan hệ chỉ có một khóa K=
TNkết thúc
 Ngược lại Qua bước 3
 Bước 3: tìm tất cả các tập con Xi của tập trung gian TG
 Nếu

15


KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Tập thuộc tính nguồn (TN) : bao gồm các thuộc tính chỉ xuất

tìm các siêu khóa Si bằng cách Xi
 if (TN  Xi)+ = U then Si = TN Xi
 Bước 5: tìm khóa bằng cách loại bỏ các siêu khóa
không tối thiểu.
  Si, Sj S
if Si Sj then Loại Sj ra khỏi tập siêu khóa S, S
còn lại chính là tập khóa cần tìm.
 Bước 4:

hiện ở vế trái, không xuất hiện ở vế phải của F( tập phụ
thuộc hàm) và các thuộc tính không xuất hiện ở cả vế trái
và vế phải của F.
Tập thuộc tính đích (TĐ) : Bao gồm các thuộc tính chỉ xuất
hiện ở R, không xuất hiện ở L.
Tập thuộc tính trung gian (TG) : Chứa các thuộc tính xuất


hiện ở cả L và R

Ví dụ : Cho một tập cơ sở dữ liệu R = <Q, F>
Với Q = {ABC} F = {AB –> C, C -> A}. Tìm tất cả các khóa
thuộc tập cơ sở dữ liệu trên.
Giải
L = {ABC}
R = {CA}
TN = {B}
TG = {AC} # 0 nên ta làm tiếp bước 3
Ta có tập con Xi của tập TG = {0, A,C,AC}
Ta lấy từng thuộc tính thuộc tập con Xi của tập TG hợp với TN
ta có các thuộc tính sau :

Q = {ABC}

F = {AB –> C, C -> A}.

TN = {B} TG = {0, A,C,AC}
S1 = TN U 0 = B Ta có B+ = B # Q nên S1 = A không là siêu khóa
S2 = TN U A = AB Ta có AB+ = ABC = Q nên S2 = AB là siêu khóa
S3 = TN U C = BC Ta có BC+ = ABC = Q nên S3 = BC là siêu khóa
S4 = TN U AC = ABC Ta có ABC+ = ABC = Q nên S4 = ABC là siêu khóa
Vậy ta có tập siêu khóa S = {AB,BC,ABC}.
Tuy nhiên, vì AB chứa trong ABC và BC chứa trong ABC nên loại bỏ siêu
khóa ABC ra khỏi tập siêu khóa
Vậy ta có, tập khóa K = {AB,BC} là khóa của lượt đồ quan hệ

16



7.5 Dạng chuẩn

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)

1.

Ví dụ: cho lược đồ quan hệ R(C,S,Z) và tập phụ thuộc hàm
F={CS Z; Z  C}.
Áp dụng thuật toán cải tiến:

 Phụ thuộc hàm riêng phần/bộ phận
X → A được gọi là phụ thuộc hàm riêng phần nếu
tồn tại Y ⊂X để cho Y → A.

N = {S}; TG ={C,Z}
Gọi Xi là các tập con của tập TG:
TNXi

Xi

(TNXi)+

TN = {S}

Siêu khóa

Khóa

S


S

C

SC

U

SC

SC

Z

SZ

U

SZ

SZ

CZ

SCZ

U

SCZ


7.5 Dạng chuẩn
1.

 Phụ thuộc hàm đầy đủ
X → A được gọi là phụ thuộc hàm đầy đủ nếu
không tồn tại Y ⊂X để cho Y → A.

=U



 Ví dụ
Cho lược đồ quan hệ R(A,B,C) và tập PTH
F={A → B; A → C; AB → C} thì A → B; A → C là các
PTH đầy đủ.
AB → C không là PTH đầy đủ vì có A → C.

7.5 Dạng chuẩn

Các loại PTH

7.5.1 Qui trình chuẩn hóa

 Phụ thuộc hàm bắc cầu
X → A được gọi là phụ thuộc hàm bắc cầu nếu tồn
tại Y để cho X →Y, Y → A, Y −/→ X và A∉ XY.

 Khi thiết kế và cài đặt các hệ
CSDL, chuẩn hoá là quá trình

khảo sát danh sách các thuộc
tính và áp dụng tập các quy tắc
phân tích vào danh sách đó, biến
đổi chúng thành nhiều tập nhỏ
hơn sao cho:

 Ví dụ
Cho lược đồ quan hệ R(A,B,C,D,E) và tập PTH
F={A → BCE; B → DC}

Thuộc tính D,C là PTH bắc cầu vào A.

6
7

Các loại PTH

 Tối thiểu việc lặp lại
 Tránh dị thường thông tin
 Xác định và giải quyết được
sự không rõ ràng, nhập nhằng
trong suy diễn.
6
8

17


7.5.2 Các dạng chuẩn


7.5.2 Các dạng chuẩn
Dạng chuẩn Một (1NF - first normal form)

Dạng chuẩn Một (2NF - second normal form)

Lược đồ quan hệ R ở dạng chuẩn 2 NF nếu R ở
dạng chuẩn 1 và mọi thuộc tính không khóa đều
phụ thuộc hàm đầy đủ vào mọi thuộc tính khóa
của R.

Lược đồ quan hệ R ở dạng chuẩn 1 nếu và chỉ nếu
toàn bộ các miền có mặt trong R đều chỉ chứa các giá
trị nguyên tố (không phân chia được nữa).

Ví dụ:
Cho lược đồ quan hệ R(ABCDEG) thỏa mãn phụ
thuộc hàm:
F={ A BC, C  DE, E G}
Kiểm tra R có thỏa dạng chuẩn 2NF không ?

6

Giải: Ta có: (A)+ =U K=A
Các thuộc tính không khóa { B, C, D, E,G}
Do khóa chỉ có 1 thuộc tính nên R ở dạng 2NF

 Đưa về dạng chuẩn 1:
Biến cột đa trị thành đơn trị
Điền đủ dữ liệu vào các cột khác


7
0

7.5.2 Các dạng chuẩn

Ví dụ 2:
Xét quan hệ CNHAN như sau:

Dạng chuẩn Một (3NF – third normal form)

Lược đồ quan hệ R ở dạng 3NF nếu có PTH X  A
thỏa trên R thì:

CNHAN(MACN, LOAINGHE, HESOTHUONG)

 Khóa của quan hệ là MACN
 Ta thấy có các PTH trong quan hệ:

 X là siêu khóa của R, hay
 A là thuộc tính khóa của R
Ví dụ:
Cho lược đồ quan hệ R (A, B, C, D) thỏa mãn phụ thuộc hàm:
F={ AB CD, D  A}
Kiểm tra R có thỏa dạng chuẩn 3NF không ?
Giải
Khóa của lược đồ quan hệ R là: K={AB,BD} Xét
DA: A là thuộc tính khóa
Vậy R thỏa dạng chuẩn 3NF

MACN → LOAINGHE MACN →

HESOTHUONG
LOAINGHE → HESOTHUONG

Dạng chuẩn cao nhất của quan hệ này?
Giải:
Ta có:
- Pth bắc cầu: MACN → LOAINGHE và
LOAINGHE → HESOTHUONG

Hệ quả: Một lược đồ quan hệ gọi là ở dạng chuẩn thứ 3 nếu
nó ở dạng chuẩn thứ 2 và không có phụ thuộc hàm bắc cầu
71

-Thuộc tính không khóa HESOTHUONG phụ thuộc bắc cầu
vào thuộc tính khóa MACN
Do đó: CNHAN không phải là 3NF.

18


\

7.5.2 Các dạng chuẩn
Dạng chuẩn BCNF (Boyce - Codd)
Lược đồ quan hệ R được gọi là BCNF nếu X  A
trên R (A  X) thì: X là một siêu khóa của R.
Ví dụ 1:
Cho lược đồ quan hệ R(A, B, C) thỏa mãn phụ thuộc
hàm F={AB  C, BC  A}
Kiểm tra R có thỏa dạng chuẩn BCNF không?

Giải: Khóa của R là : K={AB, BC}
Xét AB  C: Ta có AB là khóa, C  AB
Xét BC  A : Ta có BC là khóa, A BC
Vậy R thỏa dạng chuẩn BCNF

Định lý: Các lớp dạng chuẩn của 1 lược đồ quan hệ
có quan hệ lồng nhau nghĩa là lớp sau nằm trọn
trong lớp trước: BCNF3NF  2NF  1NF
VD: R là BCNF thì R là 3NF
Ví dụ:
Cho lược đồ quan hệ R ( A, B, C, D) và
F = { AB  C, D B, C  ABD}
Kiểm tra R có thuộc dạng chuẩn BCNF không? Giải thích?
Giải:
- Khóa của lược đồ quan hệ R là : K1=AB, K2=AD, K3=C
Nên R không có thuộc tính không khóa. Vậy R là dạng
chuẩn 3NF nhưng không là BCNF.

Ví dụ 2: Cho lược đồ của quan hệ PROJ(PNO, PNAME,
BUDGET) thỏa mãn phụ thuộc hàm duy nhất PNO(PNAME,
BUDGET),
Kiểm tra PROJ có thỏa dạng chuẩn BCNF không?

BTVN
Chú ý:
 Một quan hệ ở BCNF thì cũng đạt 3NF.
 Trong thực hành các quan hệ đạt chuẩn 3NF là đủ.
Tuy nhiên một quan hệ ở 3NF không đảm bảo đã loại
bỏ được tất cả các lỗi khi thao tác dữ liệu.


1/ Xét LĐQH R với U=ABCDE và tập PTH
F = {ABCE, E  AB, C  D}
Dạng chuẩn cao nhất của quan hệ này là gì?

Bài tập
1/ Cho lược đồ quan hệ R( A,B,C,D,E ) và tập phụ thuộc
hàm F:
F = { AB  C, AD  E, B  D}
Kiểm tra R có thuộc dạng chuẩn 3NF không? Giải thích?

75

19


Bài tập

1/ Cho lược đồ quan hệ HoaDon với HoaDon(SOHD,
KHACH, NGAYLAP, MATHANG, DONGIA, SOLUONG) và
tập các phụ thuộc hàm F như sau:
F={SOHD →KHACH, NGAYLAP,
SOHD,MATHANG
→DONGIA,SOLUONG}
Hãy cho biết lược đồ quan hệ HoaDon có đạt dạng chuẩn
nào ? Tại sao?

2/ Cho lược đồ quan hệ Q ( A, B, C, D, E ) và tập
phụ thuộc hàm F như sau:
F = {AD  C, AB  E, D  B }
a. Kiểm tra phụ thuộc hàm: AD  E có thuộc F+ ?

b. Kiểm tra R có thuộc dạng chuẩn 2NF không?
Tìm phủ tối thiểu của tập phụ thuộc hàm:
T = {ABH → CK, A → D, C → E, BGH → F, F → AD, E
→ F, BH → E}

2/ R = (A, B, C, D); F = {ABC→D, D→A}
a. Xác định tất cả khóa của R
b. Xác định dạng chuẩn cao nhất

77

78

Bài tập
3/ Cho lược đồ quan hệ HoaDon với HoaDon(SOHD, KHACH,
NGAYLAP, MATHANG, DONGIA, SOLUONG) và tập các phụ thuộc
hàm F như sau:
F = { SOHD→KHACH, NGAYLAP, SOHD, MATHANG → DONGIA ,
SOLUONG }
Hãy cho biết lược đồ quan hệ HoaDon có đạt dạng chuẩn nào ? Tại
sao?

Thank you!

4/ Cho LĐQH r(R) với R=ABCD
F= {A → C, D → B, C → ABD}
Xác định dạng chuẩn cao nhất?
5/Cho LĐQH r(R) với R={A, B, C, D} và tập PTH F={ABCD, B  C}.
R có là 2 NF?


79

20



×