Uploaded by Huỳnh thuận

chuong 3 - Thiet ke o muc Vatly

advertisement
HỆ CƠ SỞ DỮ LIỆU
GV: Nguyễn Phương Tâm
CHƯƠNG 3. - LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU Ở MỨC VẬT LÝ
1
2
3
4
5
6
Phụ thuộc hàm và khóa
Bao đóng của tập phụ thuộc hàm
Bao đóng của tập thuộc tính
Khóa và siêu khóa
Quy trình chuẩn hóa
Cài đặt CSDL
Mục đích của việc chuẩn hoá
 Chuẩn hoá là một kỹ thuật để tạo ra một tập hợp các quan
hệ thích hợp để hỗ trợ các yêu cầu dữ liệu của một hoạt
động
 Về cơ bản, các quy tắc chuẩn hoá loại bỏ các dư thừa dữ
liệu và những quan hệ phụ thuộc mâu thuẫn nhau giữa các
bảng
Dư thừa thông tin và cập nhật dị thường
 Dư thừa dữ liệu là sự trùng lặp thông tin trong cơ sở dữ
liệu
 Các dị thường cập nhật dữ liệu
 Dị thường do dữ liệu lặp: Một số thông tin có thể được lặp
lại một cách vô ích
 Dị thường chèn bộ: Không thể chèn bộ mới vào quan hệ,
nếu không có đầy đủ dữ liệu
 Dị thường xoá bộ: Trường hợp này ngược với dị thường
chèn bộ. Việc xoá bộ có thể kéo theo mất thông tin
 Dị thường sửa bộ: Việc sửa đổi dữ liệu dư thừa có thể dẫn
đến sự không tương thích dữ liệu
Dư thừa thông tin và cập nhật dị thường
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
 Xét quan hệ EMP: tên (ENAME), chức vụ (TITLE), và
lương (SAL) của nhân viên được lặp lại trong mỗi dự án
mà họ tham gia  Dị thường do dữ liệu lặp
 Xét quan hệ EMP: một nhân viên mới được nhận vào công
ty và chưa được phân công vào dự án nào cả thì không
thể nhập tên, chức vụ, lương của nhân viên này  Dị
thường chèn bộ
Dư thừa thông tin và cập nhật dị thường
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
 Xét quan hệ EMP: một nhân viên làm việc trong một dự án
duy nhất. Khi dự án chấm dứt, chúng ta không thể xoá
thông tin về dự án đó trong EMP được, vì nếu làm thế ta
sẽ mất luôn thông tin về nhân viên đó  Dị thường xoá
bộ
 Xét quan hệ EMP: Giả sử một nhân viên làm việc trong
nhiều dự án. Khi có sự thay đổi về lương, rất nhiều bộ phải
cập nhật sự thay đổi này  Dị thường sửa bộ
Phụ thuộc hàm
 Cơ sở lý thuyết về chuẩn hoá dữ liệu dựa trên các khái
niệm phụ thuộc hàm và khoá của quan hệ
 Phụ thuộc hàm là khái niệm được xây dựng để mô tả các
ràng buộc trong cơ sở dữ liệu
 Định nghĩa:
Cho lược đồ quan hệ R=(A1, A2, ..., An)
và X, Y là các tập con của {A1, A2, ..., An}
Ta nói rằng X xác định hàm Y, hay Y phụ thuộc hàm X, ký
hiệu XY, nếu mọi quan hệ bất kỳ r của lược đồ R thoả
mãn:
u, v r : u(X) = v(X)  u(Y) = v(Y)
Phụ thuộc hàm
Ví dụ:
Lược đồ quan hệ DMVT(MaVT, TenVT,DonGia) có phụ
thuộc hàm:
MaVT  TenVT, DonGia
Ví dụ:
Lược đồ quan hệ CTVT(SoCT, Khach, Hang, SoLuong) có
phụ thuộc hàm:
SoCT  Khach
SoCT, Khach, Hang  SoLuong
Phụ thuộc hàm
Ví dụ: Xét các quan hệ:
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
- Đối với quan hệ PROJ: Ta có thể chấp nhận rằng mỗi dự án có tên và
kinh phí xác định
PNO  PNAME, BUDGET
- Trong quan hệ EMP ta có
ENO, PNO  ENAME, TITLE, SAL, RESP, DUR
ENO  ENAME, TITLE, SAL
- Chúng ta có thể cho rằng lương của mỗi chức vụ là cố định, do đó sẽ
tồn tại phụ thuộc hàm
TITLE  SAL
Các qui tắc phụ thuộc hàm
 Hệ tiên đề Armstrong cho các phụ thuộc hàm
Cho Ω:= {A1 , A2 ,.. , An} là tập thuộc tính khác rỗng
Gọi F là tập các phụ thuộc hàm thỏa trên các quan hệ R trên
tập các thuộc tính Ω
Khi đó nếu ∀ A, B, C, D ⊆ Ω thì
- Phản xạ: Nếu với mọi B ⊆ A ⇒ A → B
- Gia tăng: Nếu A → B ⇒ AC → B , AC → BC
- Bắc cầu: Nếu A → B và B → C thì suy ra A → C
- Giả bắc cầu: Nếu A → B và BC → Z ⇒ AC → Z
- Hợp: Nếu A → B và A → C ⇒ A → BC
- Tách: Nếu A → BC ⇔ A → B và A → C
Các qui tắc phụ thuộc hàm
 Các tính chất của phụ thuộc hàm
- Tính phản xạ: Nếu B ⊆ A khi đó A → B
- Tính gia tăng: Nếu A → B và C ⊆ Ω khi đó AC → BC
- Tính bắc cầu: Nếu A → B và B → C khi đó A → C
- Quy tắc hợp: Nếu A → B và A → C khi đó A → BC
- Quy tắc tách: Nếu A → B và C ⊆ B khi đó A → C
Các qui tắc phụ thuộc hàm
Ví dụ:
Cho lược đồ R=ABC và F={ABC, CA}
Hãy chứng minh rằng BCABC
1. CA
(theo giả thiết)
2. BCAB
(luật 1 thêm B)
3. ABC
(giả thiết)
4. ABABC (luật 3 thêm AB)
5. BCABC (luật bắc cầu từ 2 đến 4)
Các qui tắc phụ thuộc hàm
Ví dụ:
Cho {AB  E, AG  I, BE  I, E  G, GI  H}
Chứng minh AB  GH
1. AB  E; E  G  AB  G
2. AB  G  AB  AG mà AG  I  AB  I
AB  G, AB  I  AB  GI, mà GI  H  AB  H
Từ (1) và (2): AB  GH
Suy diễn lô-gíc
 Định nghĩa:
Giả sử F là tập các phụ thuộc hàm trên lược đồ quan hệ R,
X và Y là các tập con thuộc tính của R
Ta nói rằng F suy diễn lôgic phụ thuộc hàm XY hay phụ
thuộc hàm XY được suy diễn lôgic từ F
Ký hiệu F |= XY
nếu mọi quan hệ r thoả các phụ thuộc hàm trong F cũng
thoả phụ thuộc hàm XY
Ví dụ: {AB, BC} |= AC
Bao đóng của tập phụ thuộc hàm
 Định nghĩa: Bao đóng của tập phụ thuộc hàm F, ký hiệu là
F+, là tập hợp tất cả các phụ thuộc hàm suy diễn lôgic từ F:
F+ = {XY  F |= XY}
 Ví dụ:
Cho F = {A → B, B → C, A → D, B → D }. Tìm F+?
- Từ A → B, B → C, suy ra A → C ∈ F+
- Vì B → C và B →D, suy ra B→ DC ∈ F+
- Vì A → B và A → C ∈ F+, suy ra A→ BC ∈ F+
- Vì A → B và A → D, suy ra A →BD ∈ F+
- Vì A → B và B → D, suy ra A → D ∈ F+
Bao đóng của tập phụ thuộc hàm
 Ví dụ:
Cho F = {A → B, C → X, BX → Z}. Khi đó AC → Z ∈ F+ ?
- Vì A → B ⇒ AX → BX
- Từ AX → BX , kết hợp BX →Z, suy ra AX → Z
- Từ C → X ⇒ AC → AX
- Áp dụng tính chất bắc cầu, AC → AX và AX → Z
suy ra AC → Z ∈ F+
Bao đóng của tập phụ thuộc hàm
Ví dụ:
Cho F = {A → B, C → D}, C ⊂ B
Chứng tỏ rằng A → D ∈ F+ ?
- Vì C ⊂ B, áp dụng tính chất phản xạ, suy ra B → C
- Từ A → B và B → C suy ra A → C
- Từ A → C và C → D suy ra A → D ∈ F+
Bao đóng của tập phụ thuộc hàm
Kiểm tra PTH suy diễn
 Cho F = {AB  C, A  D, D  E, AC  B}
 Hai PTH AB  E và D  C có được suy diễn từ F hay
không?
XF+
X
AB
ABCDE
D
DE
Được suy diễn từ F
Bao đóng của tập phụ thuộc hàm
Các tập PTH tương đương
Tập PTH F được nói là phủ tập PTH G nếu G 
F+.
Hai tập PTH F và G là tương đương nếu
 F phủ G và
 G phủ F.
Nhận xét
 X  Y  G, nếu Y  XF+ thì F phủ G.
 F và G tương đương nếu và chỉ nếu F+ = G+.
Tập PTH tối thiểu (1)
 Thừa PTH
 {A  B, B  C, A  C}, vì A  C được suy diễn từ {A  B, B  C}
A  B, B  C  A  C (luật bắc cầu).
 Thừa thuộc tính
 {A  B, B  C, A  CD}, vì A  CD được suy diễn từ {A  B, B 
C, A  D}
A  B, B  C  A  C (luật bắc cầu)
A  C, A  D  A  CD (luật hợp).
 {A  B, B  C, AC  D}, vì AC  D được suy diễn từ {A  B, B 
C, A  D}
A  B, A  D  A  BD (luật hợp)
A  BD  AC  BCD (luật tăng trưởng)
AC  BCD  AC  D (luật phân rã).
Tập PTH tối thiểu (2)
Tập PTH F là tối thiểu nếu thỏa các điều kiện
sau
 Mọi PTH của F chỉ có một thuộc tính ở vế phải.
 Không thể thay X  A thuộc F bằng Y  A với Y  X mà
tập mới tương đương với F.
 Nếu bỏ đi một PTH bất kỳ trong F thì tập PTH còn lại
không tương đương với F.
Phủ tối thiểu của tập PTH E là tập PTH tối thiểu
F tương đương với E.
Nhận xét
 Mọi tập PTH có ít nhất một phủ tối thiểu.
Thuật toán tìm phủ tối thiểu
 Nhập: tập PTH E.
 Xuất: phủ tối thiểu F của E.
 Thuật toán 7.2
 B1: F := .
 B2: Với mọi X  Y  E, Y = {A1, …, Ak}, Ai  U
F := F  {X  {Ai}}.
 B3: Với mỗi X  {A}  F, X = {B1, …, Bl}, Bi  U
Với mỗi Bi, nếu A  (X - {Bi})F+ thì
F := (F - {X  {A}})  {(X - {B})  {A}}.
 B4: Với mỗi X  {A}  F
G := F - {X  {A}}
Nếu A  XG+ thì F := F - {X  {A}}.
Ví dụ tìm phủ tối thiểu
Tìm phủ tối thiểu của E = {A  BC, A  B, B 
C, AB  C}
 B1: F = .
 B2: F = {A  B, A  C, B  C, AB  C}.
 B3: Xét AB  C
(B)F+ = BC
F = {A  B, A  C, B  C}.
 B4: A  C thừa.
F = {A  B, B  C}.
Bao đóng của tập thuộc tính
 Bao đóng của tập thuộc tính XR (đối với tập phụ thuộc
hàm F), ký hiệu là X+, là tập hợp tất cả các thuộc tính phụ
thuộc hàm vào X: X+ = {A  XAF+}
 Ví dụ:
Cho R=(A,B,C)
F = {AB, BC}
Khi đó B+ = {B,C}
Bao đóng của tập thuộc tính
 Ví dụ:
Cho bảng Chúng từ vật tư có các trường như sau
CTVT(A, B, C, D, E, F)
Và các phụ thuộc hàm:
A  B, C
CD
A, C, E  F
Với tập thuộc tính X = {A, C, E} thì:
X+ = {A, B, C, D, E, F} = CTVT
Thuật toán tìm bao đóng
 Đầu vào: Tập các thuộc tính R, tập các phụ thuộc hàm F
trên R và tập X  R
 Đầu ra: X+ (Bao đóng X+ của X đối với F)
 Phương pháp: Ta tính lần lược dãy các tập thuộc tính X0,
Xi1, ..., Xn như sau:
 Đặt X0 = X
 Tính Xi như sau: Xi = Xi-1 A nếu có Xi-1  A, nếu không
Xi = Xi-1
 Kiểm tra điều kiện kết thúc: Xi = R hoặc không có phụ
thuộc hàm nào thỏa mãn
Thuật toán tìm bao đóng
 Ví dụ:
Cho R=ABCDEF
F = {ABC, CD, ACF}, X= ACE. Hãy tính X+
Ta có:
X0= ACE
X1=ACEB vì A  BC
X2=ABCED vì C  D
X3=ABCDE vì ACE  F
Vậy X+ = ABCDEF
Khóa và siêu khóa
 Định nghĩa:
 Cho lược đồ quan hệ R(A1, A2, …, An), R+ là tập
thuộc tính của quan hệ R, F là tập phụ thuộc hàm trên
R, K là tập con của R+. Khi đó K gọi là một khóa của R
nếu:
• (i) K+F = R+
• (ii) Không tồn tại K’ K sao cho K’+F = R+
 Thuộc tính A được gọi là thuộc tính khóa nếu A  K,
trong đó K là khóa của R. Ngược lại thuộc tính A được
gọi là thuộc tính không khóa.
 K’ được gọi là siêu khóa nếu K  K’
Khóa và siêu khóa
 Ví dụ:
Xét lược đồ quan hệ R=(A,B,C)
với tập phụ thuộc hàm F={AB, BC}
Ta có khóa duy nhất là (A), vì A(A,B,C). Mọi tập thuộc
tính chứa A là siêu khóa
THUẬT TOÁN TÌM KHÓA
Thuật toán tìm một khóa của lược đồ
quan hệ
Thuật toán tìm tất cả các khóa của
lược đồ quan hệ
THUẬT TOÁN TÌM 1 KHÓA
 Bước 1:
 Mỗi nút của đồ thị là tên một thuộc tính của lược đồ
quan hệ R
 Cung nối hai thuộc tính A và B thể hiện phụ thuộc
hàm A  B
 Thuộc tính chỉ có các mũi tên đi ra (nghĩa là chỉ nằm
trong vế trái của phụ thuộc hàm) được gọi là nút gốc
 Thuộc tính chỉ có các mũi tên đi tới (nghĩa là chỉ nằm
trong vế phải của phụ thuộc hàm) được gọi là nút lá
THUẬT TOÁN TÌM 1 KHÓA
 Bước 2:
 Xuất phát từ tập các nút gốc (K), dựa trên tập các phụ
thuộc hàm F, tìm bao đóng K+F
 Nếu K+F = R+ thì X là khóa, ngược lại bổ sung một
thuộc tính không thuộc nút lá vào X rồi thực hiện tìm
bao đóng của K. Dừng khi tìm được một khóa của R.
THUẬT TOÁN TÌM 1 KHÓA
 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 một khóa của R.
THUẬT TOÁN TÌM 1 KHÓA
 Nút B và G là nút gốc. Khóa của R
phải chứa thuộc tính B hoặc G,
trong ví dụ này chọn B.
 B+F = BA
 Vì B+F ≠ R+ nên B không là khóa.
Nhận thấy D là thuộc tính ở vế trái
của ba phụ thuộc hàm trong F nên
bổ sung thuộc tính D vào để xét
khóa.
 Vì BD+F = BDACEH, vì BD+F ≠ R+
nên BD không là khóa. Bổ sung
thuộc tính G.
 BDG+F = BDGACEH, vì BDG+F = R+
nên BDG là khóa.
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
 Một số khái niệm:
 Tập thuộc tính nguồn (TN) : bao gồm các thuộc tính
chỉ xuất hiện ở vế trái, không xuất hiện ở 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 ở vế bên phải của F, không xuất hiện ở vế
trái của F.
 Tập thuộc tính trung gian (TG) : Chứa các thuộc tính
xuất hiện ở cả vế trái và vế phải của tập thuộc tính
 S(supperkey) là tập các siêu khóa
 K(key) là tập các khóa
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
 Bước 1 :
 Tìm tập thuộc tính nguồn TN, Nếu TN+F = R , thì lược
đồ có 1 khóa TN và kết thúc thuật toán
 Bước 2 :
 Tìm tập thuộc tính trung gian TG:
 Tìm tất cả các tập con Xi của TG, sang bước 3
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
 Bước 3:
 Tìm tất cả các siêu khóa(Si) bằng cách với mọi Xi ,
nếu (TN U Xi)+ = R thì khi đó Si = TN U Xi
 Bước 4 :
 Tìm Khóa(Ki) bằng cách loại bỏ các siêu khóa không
tối thiểu:
• Với mọi Si Sj thuộc S
• Nếu Si chứa trong Sj thì loại bỏ Sj ra khỏi tập siêu
khóa. Khi đó, tập S còn lại chính là tập khóa K cần
tìm
• Si, Sj  S, nếu Si  Sj thì S = S - Sj
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
 Ví dụ:
 Cho lược đồ quan hệ R = {ABC} và F = {AB –> C, C -> A}
Hãy tìm tất cả các khóa của lược đồ quan hệ đã cho.
B1:
- TN = {B}; TN+ = {B} ≠ R
B2: TG = {AC}
Xi là tập con của TG, Xi = {, A, C, AC}
B3: Tìm tập siêu khóa
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
Xi
(TN U Xi) (TN U Xi)+

B
B
A
BA
BAC
C
BC
BCA
AC
BAC
BAC
Vậy S = {AB, BC, ABC}
(TN U Xi)+ = R
sai
đúng
đúng
đúng
B5: Loại bỏ các siêu khóa không tối thiểu: ABC có
chứa {AB} hoặc {AC}, nên ABC là siêu khóa không tối
thiểu.
Vậy tập khóa còn lại là: K = {AB, AC}
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
Bài 1:
 Cho lược đồ quan hệ R(A, B, C, D)
 Tập phụ thuộc hàm F={AB→CD, B→C,C→D}
 a. Tìm một khóa (theo thuật toán tìm một khóa)
 b. Tìm mọi khóa (theo thuật toán tìm mọi khóa)
Bài 2: Cho lược đồ quan hệ R(A, B, C, D, E, F, G, H, K,
L, M)
Tập phụ thuộc hàm F={ A→B, C→D, E→F, G →AHK,
AH→G, GLC →M}
a. Tìm một khóa (theo thuật toán tìm một khóa)
b. Tìm mọi khóa (theo thuật toán tìm mọi khóa)
THUẬT TOÁN TÌM TẤT CẢ CÁC KHÓA
Bài 3: Cho lược đồ quan hệ R(A, B, C, D, E, F, G, H, K, L)
Tập phụ thuộc hàm F={A→B, AC→D, F→G, FK→LEH,
E→FH}
a. Tìm một khóa (theo thuật toán tìm một khóa)
b. Tìm mọi khóa (theo thuật toán tìm mọi khóa)
Phép tách lược đồ quan hệ
 Định nghĩa: Cho lược đồ quan hệ R = A1A2…An.
Tách lược đồ quan hệ R là thay thế R bằng các lược đồ
con R1, R2, …, Rm sao cho R1  R2  ...  Rm = R
và Ri ≠ Rj khi i ≠ j
Phép tách bảo toàn thông tin
 (R) = (R1, R2,…Rm) bảo toàn thông tin
 r(R) = R1(r) * R2(r) *...*Rm(r)
Thuật toán kiểm tra phép tách bảo toàn thông tin
 Đầu vào: R = A1A2...An và (R) = (R1, R2,…Rm)
 Đầu ra: (R) bảo toàn thông tin hay không?
 Phương pháp:
 Bước 1:
• Lập bảng gồm m dòng và n cột. Dòng thứ i tương ứng lược đồ
con Ri, cột thứ j tương ứng thuộc tính Aj
• Tại vị trí (i,j) ta ký hiệu aj nếu Aj  Ri, ngược lại ký hiệu b(i,j)
 Bước 2: Dựa vào các phụ thuộc hàm để làm bằng theo nguyên tắc:
Xét X→Y, nếu trên các dòng mà giá trị X bằng nhau ưu tiên cho ký
hiệu aj
 Lặp lại bước 2 cho đến khi
• Có một dòng chứa toàn ký hiệu aj. Khi đó kết luận (R) bảo toàn
thông tin
• Không áp dụng được phụ thuộc hàm nào nữa. Khi đó kết luận
(R) mất thông tin
Thuật toán kiểm tra phép tách bảo toàn thông tin
 Ví dụ:
Cho R = ABCDE và F= {A→BC, ACD→E}
(R) =(ABC, ADE) có bảo toàn thông tin hay không?
Vậy (R) bảo toàn thông tin
Thuật toán kiểm tra phép tách bảo toàn thông tin
 Ví dụ:
Cho R = ABCD và F= {A→B, AC→D}
(R) =(AB, ACD) có bảo toàn thông tin hay không?
Vậy (R) bảo toàn thông tin
Qui trình chuẩn hoá
 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:
 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
Dạng chuẩn một (1NF)
 Định nghĩa: Một lược đồ quan hệ R được gọi là ở dạng
chuẩn thứ nhất 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)
Chưa ở dạng chuẩn 1
Dạng chuẩn một (1NF)
 Đư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
Dạng chuẩn thứ 2 (2NF)
 Giả sử K là khóa của lược đồ R
Khi đó mọi thuộc tính không khóa A của R đều phụ thuộc
hàm vào khóa K: KA
Nếu A không phụ thuộc đầy đủ vào K thì tồn tại tập con
thực sự H của K xác định A, tức HA. Khi đó phụ thuộc
hàm HA gọi là phụ thuộc hàm bộ phận
 Định nghĩa: Một lược đồ quan hệ R là ở dạng chuẩn thứ 2
nếu nó ở dạng chuẩn thứ 1 và không có phụ thuộc hàm bộ
phận, tức là mọi thuộc tính không khóa đều phụ thuộc đầy
đủ vào các khóa của lược đồ
Dạng chuẩn thứ 2 (2NF)
 Chú ý:
 Chỉ kiểm tra các quan hệ có đạt 2NF nếu quan hệ đó
có khoá chính gồm 2 thuộc tính trở lên
 Để chuyển quan hệ từ dạng 1NF sang dạng 2NF,
chúng ta dùng phép chiếu
Dạng chuẩn thứ 2 (2NF)
 Ví dụ: Xét các lược đồ quan hệ sau:
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
Lược đồ của EMP có khóa là (ENO, PNO)
- Phụ thuộc hàm ENOENAME, TITLE là phụ thuộc hàm
bộ phận vì vế phải là tập con thực sự của khóa.Vậy EMP
không ở dạng chuẩn thứ 2
- Lược đồ của PROJ không có phụ thuộc hàm bộ phận,
vậy nó ở dạng chuẩn 2
Dạng chuẩn thứ 2 (2NF)
 Ví dụ: Bảng R có các phụ thuộc hàm sau:
MF → Tenfim, NSX, Giathue, HSX, NPP
MaKH → TenKH, Diachi
MF, MaKH → Ngaydat
Khóa chính: MF, MaKH.
Các thuộc tính Tenfim, Giathue, TenKH, Diachi,...là các
thuộc tính không khóa, chỉ phụ thuộc vào một bộ phận của
khóa
→ R không đạt chuẩn 2
Dạng chuẩn thứ 2 (2NF)
 Để chuyển về dạng chuẩn 2, sử dụng phép chiếu:
Dạng chuẩn thứ 3 (3NF)
 Phụ thuộc hàm XA gọi là phụ thuộc hàm bắc cầu, nếu
nó là phụ thuộc hàm nguyên tố, A là thuộc tính không
khóa, AX, và X chứa thuộc tính không khóa. Khi đó với
mọi khóa K ta có các phụ thuộc hàm không tầm thường
KX & XA. Mặt khác không thể có XK vì X chứa các
thuộc tính không khóa và không chứa khóa (vì XA là
nguyên tố)
 Định nghĩa: 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
Dạng chuẩn thứ 3 (3NF)
 Ví dụ:
Xét lược đồ quan hệ EMP(ENO, ENAME, TITLE, SAL,
PNO, RESP, DUR)
Lược đồ của quan hệ có TITLESAL là phụ thuộc hàm
bắc cầu. Vậy EMP không ở dạng chuẩn thứ 3
Lược đồ của quan hệ PROJ(PNO, PNAME, BUDGET)
không có phụ thuộc hàm bắc cầu, vậy nó ở dạng chuẩn 3
Thuật toán đưa về dạng chuẩn 3 bảo toàn thông tin
 Thuật toán 1:
 Đầu vào: <R, F>
 Đầu ra: (R) thoả 3NF bảo toàn thông tin
 Phương pháp:
• Bước 1: Loại bỏ trong R những thuộc tính không thuộc về phụ thuộc
hàm nào
• Bước 2: Thu gọn các phụ thuộc hàm
Nếu X  A1, X  A2, X  An Thì X  A1A2…An
• Bước 3: Mọi phụ thuộc hàm chuyển thành một lược đồ con
 Ví dụ:
R=ABCDEGHIJ và F={A BC, D  AF, DG  H, G  IJ}
A BC  R1=ABC
D  AF R2=DAF
DG  H  R3=DGH
G  IJ  R4=GIJ
 (R) = (ABC, DAF, DGH, GIJ)
Thuật toán đưa về dạng chuẩn 3 bảo toàn thông tin
 Thuật toán 2:
 Đầu vào: <R, F>
 Đầu ra: (R) thoả 3NF bảo toàn thông tin
 Phương pháp:
• Bước 1: Tìm khoá của R và giả sử F là đầy đủ và không dư thừa
• Bước 2: Nếu X  A và X không chứa khoá của R: R=(XA, R\A)
Lặp lại bước 2 với R\A cho đến khi không tách được
 Ví dụ:
R = MTGPSL, F = {M T, GP  M, GT  P, MS  L, GS  P}
Khoá của R là GS
Ta có:
M T  R1 = MT, R = MGPSL
MS  L  R2 = MSL, R=MGPS
GP  M  R23= GPM, R=GPS
 (R) = (MT, MSL, GPM, GPS)
Dạng chuẩn Boyce-Codd (BCNF)
 Định nghĩa: Lược đồ quan hệ s = <R, F> được gọi là lược
đồ dạng chuẩn Boyce - Codd (BCNF), nếu với mọi phụ
thuộc X → Y ∈ F+ , thì khi đó hoặc Y ⊆ X (phụ thuộc tầm
thường), hoặc X là một khoá của lược đồ quan hệ. Tức là
nếu X →Y ∈ F+, Y ∉ X thì X+ = R
 Từ định nghĩa trên có thể suy ra rằng:
 Các thuộc tính không khoá phụ thuộc hoàn toàn vào
khoá
 Các thuộc tính khoá phụ thuộc hoàn toàn vào tất cả khoá
khác
Dạng chuẩn Boyce-Codd (BCNF)
 Ví dụ:
Lược đồ của quan hệ PROJ(PNO, PNAME, BUDGET) chỉ
có phụ thuộc hàm duy nhất PNO(PNAME, BUDGET),
vậy nó ở dạng chuẩn Boyce-Codd
 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
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
 Đầu vào: < R, F >
 Đầu ra: (R) thoả BCNF bảo toàn thông tin
 Phương pháp:
 Phương pháp chủ yếu của thuật toán là tách lược đồ
s = <R, F > thành 2 lược đồ
 Chọn bất kỳ X → A ∈ F+ sao cho X không là khoá và A  X.
Khi đó lược đồ có tập các thuộc tính XA sẽ có dạng chuẩn
BCNF và phụ thuộc hàm X → A sẽ thoả trên nó. Lược đồ thứ
2 có tập các thuộc tính R\A. Hiển nhiên, khi kết nối lược đồ có
tập thuộc tính R\A với lược đồ có tập thuộc tính XA không tổn
thất thông tin. Tiếp tục tách R\A cho đến trở thành lược đồ có
dạng chuẩn BCNF
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
Ví dụ:
Cho Ω = CTHRSG, trong đó:
C : Khoá học, T: Thầy giáo, H: Giờ học R: Phòng học, S : Sinh viên G:
Lớp
Biết rằng:
- Mỗi khoá học chỉ có một thầy dạy
- Một phòng học tại giờ xác định chỉ có một khoá học
- Thầy dạy tại giờ học cụ thể xác định phòng học cụ thể
- Khoá học với một sinh viên cụ thể xác định lớp học cụ thể
- Mỗi một sinh viên học trong một giờ xác định tại phòng học cụ thể
Khi đó F = {C → T, HR → C, HT → R, CS → G, HS → R}
Hiển nhiên, s = < Ω, F > không là Boyce Codd, khoá của nó là thuộc tính
HS
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
 Bước 1: Xét CS → G: CS không phải là khóa, có thể tách s
= < Ω, F > thành 2 lược đồ quan hệ có dạng như sau:
s1 = < Ω1, F1 > ở dạng Boyce Codd, s2 = < Ω2, F2 > ở
dạng 3NF nhưng vẫn chưa ở dạng Boyce Codd
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
 Bước 2: Xét C → T: T không phải là thuộc tính khóa, tách
s2 = < Ω2, F2 > thành 2 lược đồ quan hệ sau:
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
 Bước 3: Xét HR → C: HR không phải là thuộc tính khóa,
tách s22 = <Ω22, F22 > thành 2 lược đồ quan hệ sau:
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
 Kết quả:
Ω1 = { C, S, G }, F1 = { CS → G}
Ω21 = { C , T }, F 21 = {C → T}
Ω221 = {C ,H, R}, F221 = {HR → C}
Ω222 = { H, S, R}, F 222 = {HS → R}
Thuật toán đưa về dạng chuẩn Boyce-Codd bảo toàn thông tin
Sơ đồ chuẩn hoá
Lược đồ quan hệ
Tìm tập các phụ thuộc hàm
(Dựa vào các thông tin có được
và các quy tắc suy diễn)
Q (ABCDEG)
F = {A→BC, C→DE, E→G}
Khoá là AC
vì (AC)+=ABCDEG
Tìm khoá
(Dựa vào bao đóng của tập thuộc tính)
Q1(ABC)
Q2(CDEG)
F={A→BC}
F2 = {C→DE, E→G}
Đưa về dạng chuẩn 2
(Loại các phụ thuộc hàm bộ phận, kiểm tra
tách có bảo toàn thông tin hay không)
Đưa về dạng chuẩn 3 bảo toàn thông tin
(Loại các phụ thuộc hàm bắc cầu)
R2(CDE)
R3(EG)
F = {C→DE}
F = {E→G}
(Thỏa Boyce Codd)
Tìm khoá
X0 = AC
Vì A→BC nên X1=ABC
Vì C→DE nên X2=ABCE
Vì E→G nên X3=ABCEG
Vì (AC)+=ABCEG nên AC là khoá của lược đồ
Kiểm tra tách bảo toàn thông tin
A
B
C
D
E
G
ABC
a1
a2
a3
b14
b15
b16
CDEG
b21
b22
a3
a4
a5
a6
C→DE
A
B
C
D
E
G
ABC
a1
a2
a3
a4
a5
b16
CDEG
b21
b22 a3
a4
a5
a6
E→G
A
B
C
D
E
G
ABC
a1
a2
a3
a4
a5
a6
CDEG
b21
b22 a3
a4
a5
a6
Đưa về dạng chuẩn 3
 Từ Q(ABCDEG) tách thành R1(ABC) và R2(CDEG)
 R2(CDEG) chưa đạt chuẩn 3 do có phụ thuộc hàm bắc
cầu C→DE, E→G
 Đưa R2(CDEG) về chuẩn 3:
R2(CDEG) có F = {C→DE, E→G}
C→DE  Q1(CDE)
E→G  Q2(EG)
Kết quả
Q(ABCDEG)
Q1(ABC)
Q2(CDEG)
R1(CDE)
R1(EG)
Cài đặt CSDL
 Lựa chọn hệ QTCSDL
 Cài đặt CSDL
Download