CHƢƠNG 5 kế CSDL quan hệ mức khái...
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