Một số định nghĩa Định nghĩa 1: Cho U là một tập thuộc tính, RU là một lược đồ quan hệ trên U... Một số định nghĩa Định nghĩa 1: tiếp theo Cho tập F những phụ thuộc hàm trên lược
Trang 1CHƯƠNG IV: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
§1 Quá trình thiết kế cơ sở dữ liệu
§2 Phụ thuộc hàm
§3 Phép tính tách lược đồ quan hệ
§4 Chuẩn hoá lược đồ quan hệ
Trang 21 PHỤ THUỘC HÀM
1.1 Một số định nghĩa
1.2 Hệ tiên đề Armstrong
1.3 Tính đóng của tập thuộc tính X (X+F)
1.4 Phủ của tập phụ thuộc hàm Tập phụ thuộc hàm tối tiểu
Trang 31.1 Một số định nghĩa
Định nghĩa 1:
Cho U là một tập thuộc tính, R(U) là một lược đồ quan hệ trên
U Giả sử X, Y ⊆ U, Y được gọi là phụ thuộc hàm vào X trên lược đồ R(U), nếu ∀ r ∈ R(U) và ∀ t1, t2 ∈ r , t1[X]=t2[X] kéo theo t1[Y] = t2[Y] Kí hiệu: X → Y.
Một quan hệ r trên U được gọi là thoả mãn phụ thuộc hàm
X → Y nếu và chỉ nếu t1[X] = t2[X] => t1[Y] = t2[Y], ∀ t1, t2 ∈
r.
Trang 41.1 Một số định nghĩa
Định nghĩa 1: (tiếp theo)
Cho tập F những phụ thuộc hàm (trên lược đồ quan hệ R(U))
Ta nói (X → Y) được suy diễn từ F nếu
∀ r ∈ R(U), r thoả F kéo theo r thoả X → Y Kí hiệu F=(X → Y).
Bao đóng của tập phụ thuộc hàm F là tập phụ thuộc hàm được suy diễn từ F và kí hiệu F +
F + = {(X → Y) | F = (X → Y)}
Nếu F + = F thì F được gọi là họ phụ thuộc hàm đầy đủ.
Trang 51.1 Một số định nghĩa
Định nghĩa 2:(Khoá)
Giả sử U là một tập thuộc tính, R=R(U) là một lược đồ quan hệ trên U và K ⊆ U K là khoá của R nếu:
(K→U) ∈F + Nghĩa là (∀ r ∈ R) (∀t 1 , t 2 ∈ r) t 1 [K]=t 2 [K] => t 1 =t 2
Không có tập con thực sự nào của K xác định hàm U.
Trang 61.2 Hệ tiên đề Armstrong
Hệ tiên đề Armstrong gồm ba tính chất:
A1 Phản xạ:
Trang 7Các quy tắc suy diễn bổ sung
Quy tắc hợp: X→Y∧X→Z => X→YZ
Quy tắc bắt cầu giả: X→Y∧WY→Z => WX→Z
Quy tắc tách: {X→Y, Z⊆ Y} => X→Z
Trang 81.3 Bao đóng của tập thuộc tính X
Giả sử X là tập thuộc tính, F là tập phụ thuộc hàm Bao đóng của X đối với tập phụ thuộc hàm F là tập những thuộc tính A sao cho (X→A) được suy diễn từ F nhờ hệ tiên đề Armstrong
Nghĩa là X+F = {A | F =Arm (X→A)}
Trang 9nh lyù 1 Đị
F = Arm (X →Y) <=> Y ⊆ X+F
Trang 10Kiểm tra một PTH (X →Y) có được suy diễn từ F
không?
Ta có thể sử dụng bổ đề 3.3
F = Arm (X →Y) <=> Y ⊆ X+F
Trang 11Thuật toán (tìm X+
F)
Input: Tập hữu hạn thuộc tính U,
Tập phụ thuộc hàm F ={Li → Ri , i=1 m}
Tập X ⊆ U.
Output: X+F
Phương pháp:
Bước 1: Gán X0 = X
Bước 2: Giả sử tìm được Xk
Nếu tồn tại một L i → R i ∈F và L i ⊆ X k thì tính X k+1 = X k ∪ R i
Ngược lại, chuyển sang bước 3
Bước 3: Gán X +F = Xk và kết thúc thuật toán.
Trang 12 Chọn D → EG, ta có: X1= X0 ∪ EG = BDEG
Chọn BE → C, ta có: X2= X1 ∪ C = BCDEG
Chọn C → A, ta có: X3= X2 ∪ A = ABCDEG
Dừng X+F = ABCDEG
Trang 13Các tính chất của bao đóng của tập thuộc tính X+
Nếu X,Y là các tập con của tập thuộc tính Q thì ta có các tính chất sau đây:
Trang 141.4 Phủ của tập các phụ thuộc hàm
Tập phụ thuộc hàm tối tiểu
Cho F và G là hai tập PTH
Ta nói F phủ G nếu G + ⊆ F +
F và G được gọi là tương đương nhau nếu F phủ G và ngược lại, kí hiệu: F ~ G
Để kiểm tra hai tập PTH tương đương và tập nào phủ tập nào, ta sử dụng tính đóng của tập thuộc tính
Trang 15Ví dụ:
Kiểm tra xem hai tập PTH sau có tương đương không?
F ={A → B, B → A, A → C, C → A, B → C}.
G1= {A → B, B → C, C → A}
Trang 16Tập PTH hàm tối tiểu
Tập phụ thuộc hàm F là tối tiểu nếu:
Vế phải của mỗi PTH có đúng một thuộc tính
Không thể bỏ đị một PTH nào trong F mà vẫn thu được một tập PTH tương đương với nó
Không thể bỏ đi bất kì một thuộc tính nào ở vế trái của một PTH nào trong F mà vẫn thu được một tập phụ thuộc hàm tương đương với nó
Trang 17Thuật toán tìm tập PTH tối tiểu F.
1 Tách các PTH hàm của F về phải hơn một thuộc tính thành các PTH vế phải chỉ có một thuộc tính (được F1)
2 Loại bỏ những PTH của F1 dư thừa ta thu được F2
3 Loại bỏ những thuộc tính dư thừatrong vế trái của các PTH trong F2 ta được F3.
(F 3 chính là tập PTH tối tiểu tương đương với F.)
Trang 20Thuật toán tìm tập PTH rút gọn tự nhiên
B1. Loại bỏ các thuộc tính ở vế phải có mặt ở cả 2 vế trên cùng một PTH
B2. Nếu: Li→Ri và Lj→ Rj (vớ Li = Lj) thì thay 2 PTH này i
bởi PTH mới: Li → Ri ∪ Rj
Trang 22Cho một lược đồ quan hệ R= U, F), K ⊆ U, K được gọi
là khóa của R nếu K là siêu khóa nhỏ nhất (ít thuộc tính nhất) trong các siêu khóa S ( Not ∃ X ⊆ K | X+ = U)
Trang 232.3 Giải thuật tìm một khóa:
Endfor
Return K
Trang 24Ví dụ:
Cho U={ ABCDEGHI }
F={ A → BCDEGHI; B → IDGE; G → H; I → DEGB; BC→A}
Tìm khóa
K= ABCDEGHI
- Xét A: (k –A)+ = U => K= BCDEGHI
- Xét B: (k –B)+ = (CDEGHI)+ = U => K= CDEGHI
- Xét C: (k –C)+ = (DEGHI)+ = DEGHI <> U => K=CDEGHI
- Xét D: (k –D)+ = (CEGHI)+ = CEGHIBDA =U => K= CEGHI
- Xét E: (k –E)+ = (CGHI)+ = CGHIEDBA = U => K= CGHI
- Xét G: (k –G)+ = (CHI)+ = CHIDEGBA = U => K= CHI
- Xét H: (k –H)+ = (CI)+ = CIDEGBAH = U => K= CI
- Xét I: (k –I)+ = C+ = C <> U => K= CI
Khoá của lược đồ quan hệ trên là : CI
Trang 252.4 Giải thuật tìm tất cả các khóa
Bước 1: Đưa tập phụ thuộc hàm F về dạng rút gọn tự nhiên.
Bước 2:
Bước 3: Xác định lược đồ quan hệ R’ = R – U0 I; U’=U – U0 I
Trang 26Ví dụ:
F={AI →IECD, ADJ →GH, CDL → ABD, CDL→EHL }
Tìm khóa của α
- Bước 2: U0 = ABCDEGHIJL - ABCDEGH = IJL
- Bước 3: I= ABCDEGH – ACDIJL = BEGH
- Bước 4: U’ = ABCDEGHIJL – BEGHIJL = ACD
=> F’={ A→ CD, CD → A}
- Bước 5: Xác định khóa KR’ = {A, CD}
- Bước 6: xác định khóa KR = IJL ⊕ {A, CD} = {AIJ L, CDIJ L}
Trang 273 CHUẨN HÓA CƠ SỞ DỮ LIỆU
3 1 Chuẩn hóa lược đồ quan hệ của CSDL
Chuẩn hóa CSDL là quá trình áp dụng các qui tắc để chuyển các lược đồ
quan hệ thành các dạng chuẩn cao hơn nhằm hạn chế những bất thường khi thao tác trên CSDL.
Trang 283.2 D ng chu n 1 ạ ẩ (1NF)
Định nghĩa: Một lược đồ quan hệ R(A1, A2, …, An) được gọi là đạt
dạng chuẩn 1 nếu mọi thuộc tính A1, A2, …, An của nó đều có giá trị đơn.
Ví dụ: Cho lược đồ quan hệ VATTU(MAVT, TENVT,
SOLG_DONGIA)
Xét quan h trên l c đ quan h VATTU ệ ượ ồ ệ
MAVT TENVT SOLG_DONGIA
LT01 S t ắ 100; 500 LT2 Xi m ng ă 50;50000
Trang 29 Do thuộc tính SOLG_DONGIA của lược đồ VATTU có giá trị là danh sách
nên nó không phải lược đồ ở 1NF Để nó ở 1NF, ta tách thuộc tính SOLG_DONGIA thành các thuộc tính đơn sau:
VATTU(MAVT, TENVT, SOLG_DONGIA) → VATTU(MAVT, TENVT, SOLG, DONGIA)
MAVT TENVT SOLG DONGIA
LT01 S t ắ 100 500 LT2 Xi m ng ă 50 50000
Trang 303.3 D ng chu n 2 ạ ẩ (2NF)
a Phụ hàm đầy đủ: Một lược đồ quan hệ R(A1, A2, …, An) X,
Y là các tập con của R PTH X →Y trên R gọi là PTH đầy đủ nếu không tồn tại tập con X’ của X (X’⊂X) mà X’→Y
Ví dụ 1:
Cho lược đồ qhệ CTHD(SOHD, MAMH, SOLG, DONGIA)
SOHD,MAMH → SOLG là PTH đầy đủ Vì
SODH → SOLG
MAMH → SOLG
Trang 323.3 D ng chu n 2 ạ ẩ (2NF)
b Định nghĩa: Môt lược đồ quan hệ được gọi là đạt dạng chuẩn
phần của khóa đều phụ thuộc hàm đầy đủ vào khóa.
Trang 33CTHD(SOHD, MAMH, SOLG, DONGIA)
MATHANG(MAMH, TENMH)
Trang 343.4 D ng chu n 3 ạ ẩ (3NF)
a PTH bắc cầu: Cho lược đồ quan hệ R(A1, A2, …, An) X là một
tập con của R Thuộc tính Ai(i:1 n) được gọi là PTH bắc cầu vào X nếu tồn tại tập Y sao cho:
i X → Y và Y → Ai
ii Y → X
iii Ai ∉ X và Ai ∉ Y
X → Y → Ai
Trang 35Ví d : ụ
MAHV → MALOP → TENLOP
Trang 363.4 D ng chu n 3 ạ ẩ (3NF)
b Định nghĩa: Môt lược đồ quan hệ được gọi là đạt dạng
chuẩn 3 nếu:
Nó đạt dạng chuẩn 2
Mọi thuộc tính không phải là thành phần của khóa đều
không phụ thuộc bắc cầu vào khóa.
Trang 37Ví d : ụ
Cho lược đồ quan hệ:
HV(MAHV, HOTEN, MALOP, TENLOP)
Phụ thuộc hàm MAHV → TENLOP là PTH bắc cầu vì:
Nên HV vi pham dạng chuẩn 3 Để HV đạt 3NF ta tách nó thành hai lược
đồ sau:
LOP(MALOP, TENLOP)
HV(MAHV, HOTEN, MALOP)
MAHV → MALOP → TENLOP
Trang 383.5 Dạng chuẩn BCNF (Boye Codd)
Định nghĩa: Một lược đồ quan hệ R(A1, A2, …, An) gọi là đạt dạng chuẩn BCNF mà mọi thuộc tính Ai X mà X A → i thì X phải là khóa của R.
∉
Trang 40Tính chất
Một lược đồ quan hệ đạt dạng chuẩn BCNF thì nó đạt dạng chuẩn 3NF
Trang 414 PHÉP TÁCH CÁC LƯỢC ĐỒ QUAN HỆ
4.1 Khái niệm về phép tách
4.2 Phép tách với kết nối không thất thoát
4.3 Kiểm tra tính kết nối không thất thoát của một phép tách
4.4 Phép tách bảo toàn phụ thuộc hàm
Trang 424.1 Khái niệm về phép tách
,Cho U1, U2, …, Uk sao cho U = U1 ∪ U2 ∪, …,∪ Uk và không
nhất thiết các U1, U2, …, Uk rời nhau Việc thay thế lược đồ R=(U, F) bởi R1 = (U1, F1), …, Rk=(Uk, Fk) được gọi là phép tách lược đồ quan hệ đã cho (U, F) Kí hiệu là ρ=(R1, R2, …,
Rk) hay ρ=(U1,…, Uk)
Với: Fi là chiếu của F lên tập thuộc tính Ui
( π Z (F) = {(X → Y) ∈ F + , XY ⊆ Z} là chiếu của F lên Z.)
Trang 434.2 Phép tách với kết nối không thất thoát
(r).
Trang 454.3 Kiểm tra tính kết nối không thất thoát của một phép
Trang 46Phương pháp
Lập bảng k x n k dòng đại diện cho U 1 , …, U k ; và n cột đại diện cho A 1 , A 2 , …,
A n
Tại dòng i, cột j ghi là a j nếu A j ∈ U i , ngược lại ghi b ij
Với mỗi PTH (X Y), xét từng cặp dòng có giá trị bằng nhau trên X ta đổi các → ký hiệu trên các dòng này bằng nhau trên Y, theo quy tắc:
Nếu một trong hai ký hiệu là a j thì ký hiệu kia sẽ được đổi thành a i
Nếu cả hai ký hiệu là b ij thì lấy ký hiệu tùy ý gán cho cả hai.
Quá trình lặp trên sẽ kết thúc nếu không thay đổi được bảng nữa.
Nếu có một dòng toàn là ký hiệu a i thì phép tách là không thất thoát.
Trang 47Ví dụ
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b23 b24 b25 U3 b31 a2 b33 b34 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 b53 b54 a5
Cho U = ABCDE, U1=AD, U2=AB, U3=BE, U4=CDE, U5=AE
Tập phụ thuộc hàm là: A →C, B→C, C→D, DE→C, CE→A
Trang 48Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 b24 b25 U3 b31 a2 b33 b34 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 b13 b54 a5
Xeùt PTH: A → C
Trang 49Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 b24 b25 U3 b31 a2 b13 b34 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 b13 b54 a5
Xeùt PTH: B→ C
Trang 50Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 b24 b25 U3 b31 a2 b13 b34 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 b13 b54 a5
Xeùt PTH: B→ C
Trang 51Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 a4 b25 U3 b31 a2 b13 a4 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 b13 a4 a5
Xeùt PTH: C→ D
Trang 52Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 a4 b25 U3 b31 a2 a3 a4 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 a3 a4 a5
Xeùt PTH: DE→ C
Trang 53Ví duï
A B C D E U1 a1 b12 b13 a4 b15 U2 a1 a2 b13 a4 b25 U3 a1 a2 a3 a4 a5 U4 b41 b42 a3 a4 a5 U5 a1 b52 a3 a4 a5
Xeùt PTH: CE→ A
Trang 543.4 Phép tách bảo toàn phụ thuộc hàm
của lược đồ R=(U, F).
Trang 55Ví dụ:
Mỗi thành phố (City) có nhiều đường (Street), các đường có thể trùng tên ở hai thành phố khác nhau Mỗi đường của mỗi thành phố được có một mã (Zip code)
Như vậy ta có lựơc đồ quan hệ CSZ với:
U=CSZ
F= {CS Z, Z C} → →