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... Vế phải của mỗi phụ th
Trang 1CHƯƠNG 5 Thiết kế CSDL quan hệ mức khái niệm
Tiến sĩ: Lê Thị Tú Kiên
Trang 2Giớ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
Trang 4 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
Trang 5Dư thừa và dị thường dữ liệu
5
Trang 6Dƣ thừa dữ liệu
NHAN_VIEN_PHONG(MSNV,HO_TEN,NG_SINH,
GIOI_TINH,LUONG,MA_DV,TEN_PHONG,MA_TP)
6
Trang 7Dị thường dữ liệu
Dị thường khi thêm bộ
7
Trang 8Dị thường dữ liệu
Dị thường khi xóa bộ
8
Trang 9Dị thường dữ liệu
Dị thường khi sửa bộ
9
Trang 10Cá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
Trang 11Cách giải quyết dị thường dữ liệu
11
Trang 12Phụ thuộc hàm
12
Trang 14Phụ thuộc hàm suy diễn
F: tập các phụ thuộc hàm trên R(U)
X Y được suy diễn logic từ F nếu r R(U), r thỏa F kéo theo r thỏa X Y
Kí hiệu: F ╞ (X Y)
Ví dụ: F={A B, B C} thì F ╞ (A C)
14
Trang 15Bao đóng của tập phụ thuộc hàm
F+={(X Y) | F ╞ (X Y)}
Nếu F+=F, thì F được gọi là họ phụ thuộc hàm đầy đủ
Ví dụ: Cho F={AC B, D E}, vì F=F+ nên F là tập PTH đầy đủ
15
Trang 16Hệ tiên đề Armstrong
16
Trang 17Hệ tiên đề Armstrong
Cho U, R(U), F, và X, Y, Z U Kí hiệu XY=X Y A1 Phản xạ (Reflexivity):
Nếu Y X thì F ╞ (X Y ) A2 Tăng trưởng (Augmentation)
Nếu F ╞ (X Y ) thì Z U, F╞ (XZ YZ) A3 Bắc cầu (Transitivity)
Nếu F ╞ (X Y ) và F ╞ (Y Z ) thì F ╞ (X Z)
17
Trang 18A3 Bắc cầu
Nếu F ╞ (XY ) và
F ╞ (YZ ) thì F ╞ (XZ)
Trang 20Ví dụ
Cho F={AB C, B D, CD E, CE GH, G A}
Chứng minh F╞ (AB EG)
20
Trang 21Ví dụ
Chứng minh {AB C, B D, CD E, CE GH, G A}╞ (AB EG)
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
Trang 22Bao đóng của tập thuộc tính
22
Trang 23Định nghĩa bao đóng của tập thuộc tính
X+ F ={A U| X A F+}
23
Trang 25 B1: X1 = X0 EG = BDEG vì PTH D EG có vế trái D X0 và vế phải EG X0
B2: X2 = X1 C = BDEGC vì PTH BE C có vế trái BE X1 và vế phải C X1
B3: X3 = X2 A = BDEGCA vì PTH C A 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
Trang 27Bổ đề về bao đóng của tập thuộc tính
F╞Arm(X Y) Y X+ F
27
Trang 29Phủ của tập các phụ thuộc hàm
29
Trang 30Sự 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
Trang 31Tậ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
Trang 32Thuật toán tìm tập PTH tối tiểu
Trang 33Thuậ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
Trang 34Thuậ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
Trang 35nê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
Trang 36 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
36
Trang 37Khoá của lƣợc đồ quan hệ
37
Trang 40Thuậ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
Trang 41 Cho R=<U, F> F ={Ti Pi| Ti,Pi U, 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
Trang 42Thuật toán xác định một khoá của LĐQH
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á
Bước 2: X + = U nên chuyển sang bước 3
42
Trang 43Thuật toán xác định một khoá của LĐQH
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á
Xét A X, vì X=X\{A} = BCDEG có
X + =ABCDEG=U nên X= BCDEG
43
Trang 44Thuật toán xác định một khoá của LĐQH
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á
Trang 45Thuật toán xác định một khoá của LĐQH
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á
Trang 46Thuật toán xác định một khoá của LĐQH
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á
- Xét G X, vì X=X\{G} = C có X + =CA U nên X= X {G} =CG;
Bước 5: Như vậy, CG là một khoá của lược đồ
46
Trang 47 Vào: Cho R=<U, F> F ={Ti Pi| Ti,Pi U,
Bước 4: Kết luận và kết thúc thuật
toán
Trang 48Hã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}
Trang 49 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
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
Trang 50EFG không là khóa mà chỉ là một
khóa BEFG, CEFG và HEFG nên chúng chỉ là siêu khóa, không là khóa
BEFG, CEFG và HEFG
Trang 51Chuẩn hóa lƣợc đồ quan hệ
51
Trang 52Chuẩ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:
Trang 53Dạ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
Trang 55StudentID Activity Fee
Trang 56Dạng chuẩn 2 (2NF)
Lược đồ quan hệ R 2NF 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
Trang 57Dạ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╞ (X Y) và ∄Z, Z X, Z X thỏa mãn F╞ (Z Y)
57
Trang 58StudentID Activity Fee
Trang 59Tách lược đồ ACTIVITY thành các lược đồ ở dạng chuẩn 2NF
Dạng chuẩn 2: Ví dụ 1
Trang 60Dạng chuẩn 2: Ví dụ 2
Chuần hóa 2NF
NHAVIEN_DUAN
Trang 61Dạng chuẩn 2: Lƣợc đồ thuộc 2NF chƣa?
NHAVIEN_PHONG
Trang 63Dạng chuẩn 3:Phụ thuộc hàm bắc cầu
Cho lược đồ quan hệ R(U,F), X U, A U
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, Y U, sao cho:
X Y, Y A, nhưng Y↛X với A XY
63
Trang 65Dạng chuẩn Boyce Codd (BCNF)
Trang 66Dạng chuẩn Boyce Codd: Ví dụ
Trang 67Cá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
Trang 68Bài toán xác định dạng chuẩn cho lƣợc đồ
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
Trang 69Bài toán xác định dạng chuẩn cho lƣợc đồ
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 AB DE và D C nên dựa theo luật suy diễn Armstrong ta có AB C Như vậy, C và
D đều PTH đầy đủ vào khóa AB
Tuy nhiên, do E AD và D C nên ta có
E C Như vậy, D và C đều không PTH đầy
đủ vào khóa BE Do đó R 2NF
Kết luận: R1NF