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

69
CHƢƠNG 5 Thiết kế CSDL quan hệ mức khái niệm Tiến sĩ: Lê Thị Tú Kiên

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

Page 1: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

CHƢƠNG 5

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

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

Page 2: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phâ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

Page 3: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

3

Page 4: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 5: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 6: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Dƣ thừa dữ liệu

NHAN_VIEN_PHONG(MSNV,HO_TEN,NG_SINH,

GIOI_TINH,LUONG,MA_DV,TEN_PHONG,MA_TP)

6

Page 7: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Dị thƣờng dữ liệu

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

7

Page 8: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Dị thƣờng dữ liệu

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

8

Page 9: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Dị thƣờng dữ liệu

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

9

Page 10: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 11: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 12: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Phụ thuộc hàm 12

Page 13: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Đị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

Page 14: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 15: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 16: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Hệ tiên đề Armstrong 16

Page 17: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 18: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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)

Page 19: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 20: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Ví dụ

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

Chứng minh F╞ (ABEG)

20

Page 21: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 22: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 23: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

X+F

={AU| XA F+}

23

Page 24: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 25: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 26: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 27: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

F╞Arm(XY) Y X+F

27

Page 28: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 29: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 30: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 31: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiớ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ậ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

Page 32: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 33: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 34: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 35: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 36: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 37: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 38: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Đị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

Page 39: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

Đị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

Page 40: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 41: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 42: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 43: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 44: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 45: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 46: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 47: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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.

Page 48: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phâ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}

Page 49: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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.

Page 50: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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.

Page 51: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 52: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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…

Page 53: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 54: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 55: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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?

Page 56: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 57: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 58: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 59: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiớ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 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

Page 60: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 61: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

TenNV MaNV NgaySinh DiaChi MaPhong TenPhong MaTP

NHAVIEN_PHONG

Page 62: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 63: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 64: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 65: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 66: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 67: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 68: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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

Page 69: CHƢƠNG 5 kế CSDL quan hệ mức khái niệmfit.hnue.edu.vn/~kienltt/HeCSDL/Chuong5-Phan1.pdfGiới thiệu Các bước thiết kế CSDL Tập hợp các yêu cầu và phân

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