SlideShare a Scribd company logo
Thiết kế CSDL quan hệ
Phạm Thị Phương Giang
giangptp@soict.hust.edu.vn
Bộ môn Hệ thống thông tin (http://is.hust.edu.vn/)
Viện CNTT&TT
Trường Đại học Bách Khoa Hà Nội
2
Đặt vấn đề
 Mục đích của chuẩn hoá là gi?
 Thế nào là chuẩn? Có bao nhiêu chuẩn?
3
Ví dụ
 1 CSDL về các hãng cung ứng.
Suppliers(sid, sname, city, NOE, product,quantity)
Sid Sname City NOE Product quantity
S1 Smith London 100 Screw 50
S1 Smith London 100 Nut 100
S2 J&J Paris 100 Screw 78
S3 Blake Tokyo 75 Bolt 100
 Các vấn đề đặt ra: dư thừa dữ liệu, không nhất quán, dị
thường khi thêm bộ, dị thường khi xóa bộ
 Đề xuất các giải pháp
4
Mục đích của chuẩn hoá
 Xác định được 1 tập các lược đồ quan hệ cho
phép tìm kiếm thông tin một cách dễ dàng,
đồng thời tránh được dư thừa dữ liệu
 Hướng tiếp cận:
Tách các lược đồ quan hệ “có vấn đề” thành những
lược đồ quan hệ “chuẩn hơn”
5
Ví dụ
Suppliers(sid, sname, city, NOE, product,quantity)
Sid Sname City NOE Product quantity
S1 Smith London 100 Screw 50
S1 Smith London 100 Nut 100
S2 J&J Paris 100 Screw 78
S3 Blake Tokyo 75 Bolt 100
Suppliers(sid, sname, city, noe)
Supply (sid, product, quantity)
6
Nội dung
 Phụ thuộc hàm
 Phép tách các sơ đồ quan hệ
 Các dạng chuẩn
 Phụ thuộc đa trị
 Kết luận
7
Phụ thuộc hàm
(Functional dependencies - FD)
 Đ/N: Phụ thuộc hàm trong 1 quan hệ
Cho
 R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.
 X, Y  U
X xác định hàm Y hay Y phụ thuộc hàm vào X nếu
 với quan hệ r xác định trên R(U) và với 2 bộ t1 và t2
bất kỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y]
 Ký hiệu: XY
8
Ví dụ
Suppliers(sid, sname, city, NOE, product,quantity,
price, amount)
sidsname
sid city
sidNOE
sid, productquantity
product  price
quantity, price amount
9
Hệ tiên đề Amstrong
Cho
 R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.
 X,Y,Z,W  U
(Ký hiệu: XY = X  Y)
 Phản xạ (reflexivity)
Nếu Y  X thì XY
 Tăng trưởng (augmentation)
Nếu XY thì XZYZ
 Bắc cầu (transitivity)
Nếu XY, YZ thì XZ
10
Hệ quả
 Luật hợp (union)
Nếu XY, XZ thì XYZ
 Luật tựa bắc cầu (pseudotransitivity)
Nếu XY, WYZ thì XWZ
 Luật tách (decomposition)
Nếu XY, Z  Y thì XZ
11
Bao đóng của 1 tập phụ thuộc hàm
 Đ/N : Bao đóng của tập phụ thuộc hàm F là tập
lớn nhất các phụ thuộc hàm có thể được suy
diễn logic từ F
 Ký hiệu là F+
 Suy diễn logic
X  Y được suy diễn logic từ F nếu với mỗi quan hệ
r xác định trên R(U) thoả các phụ thuộc hàm trong F
thì cũng thoả X  Y
 F là họ đầy đủ (full family) nếu
F = F+
12
Khoá tối thiểu
 Đ/N: Cho lược đồ quan hệ R(U), tập các phụ
thuộc hàm F. K  U, K được gọi là khóa tối thiểu
của R nếu như
 KU  F+
 với  K’  K thì K’U  F+
 Nhận xét: Nếu K là một khóa tổi thiểu thì
 K+ = U
 K là tập thuộc tính nhỏ nhất có tính chất như vậy
13
Bao đóng của 1 tập các thuộc tính
 Đ/N: Bao đóng của tập thuộc tính X là tập tất cả
các thuộc tính được xác định hàm bởi X thông
qua tập F
 ký hiệu là X+
X+ = {A  U| X  A F+}
14
Nhận xét
 Hệ tiên đề Amstrong là đúng đắn và đầy đủ
 XY được suy diễn từ hệ tiên đề Amstrong
 Y  X+
 Thiết kế CSDL ? Các khái niệm
 Phụ thuộc hàm
 Bao đóng của tập phụ thuộc hàm
 Khoá
 Bao đóng của 1 tập các thuộc tính
15
Tính bao đóng của 1 tập thuộc tính
 Vào: Tập hữu hạn các thuộc tính U
tập các phụ thuộc hàm F trên U
X  U
 Ra: X+
 Thuật toán
B0 X0 = X.
Bi Tính Xi từ Xi-1
Nếu  YZ  F
^ Y  Xi-1
^ A  Z ^ A  Xi-1
thì Xi = Xi-1  A
ngược lại, Xi = Xi-1 .
Nếu Xi  Xi-1
thì thực hiện Bi
ngược lai, thực hiện Bn
Bn X+ = Xi
16
Tính bao đóng của 1 tập thuộc tính
(ví dụ)
 Cho R(U) , U = {A, B, C, D, E, F}
F = {ABC, BCAD, DE, CFB}
Tính (AB)+
 Thực hiện:
 Bước 0: X0 = AB
 Bước 1: X1 = ABC ( do AB C)
 Bước 2: X2 = ABCD (do BCAD)
 Bước 3: X3 = ABCDE (do DE)
 Bước 4: X4 = ABCDE
17
Tìm khoá tối thiểu
 Vào: U = {A1, A2, …, An} , F
 Ra: khóa tối thiểu K xác định được trên U và F
 Thuật toán
B0 K0= U, n = |U|
Bi Nếu (Ki-1{Ai})U
thì Ki= Ki-1 {Ai}
ngược lại, Ki= Ki-1
Nếu i<n
thì i=i+1, thực hiện Bi
ngược lại, thực hiện Bn
Bn K = Ki
18
Ví dụ
 Cho R(U) trong đó U = {A,B,C,D,E,F,G}, F = {AB,
ACDE, EFG}
Tìm một khóa tối thiểu của R
K0 = ABCDEFG
K1 = K0 do nếu loại A thì (BCDEFG)+ U
K2 = K1 {B} = ACDEFG do (ACDEFG) +  U
K3 = K2 do nếu loại C thì (ADEFG) +  U
K4 = K3 do nếu loại D thì (ACEFG) +  U
K5 = K4 {E} = ACDFG do (ACDFG) +  U
K6 = K5 do nếu loại F thì (ACDG) +  U
K7 = K6 {G} = ACDF do (ACDF) +  U
Vậy khóa tối thiểu cần tìm là ACDF
19
Tìm khoá tối thiểu (2)
 Vào: U = {A1, A2, …, An} , F
 Ra: khóa tối thiểu K xác định được trên U và F
 Thuật toán
B0
VT = tập các thuộc tính nằm ở vế trái các phụ thuộc hàm
VP = tập các thuộc tính nằm ở vế phải của các phục thuộc hàm
X = U  VP: tập các thuộc tính chắc chắn nằm trong K
Y = VP  VT: tập các thuộc tính chắc chắn không nằm trong K
Z = VP  VT: tập các thuộc tính có thể nằm trong K
B2 Nếu (X)+ = U thì X là khóa tối thiểu: K = X. Kết thúc
B3 Nếu (X)+ ≠ U thì
- K0 = X  Z
- Lặp: lần lượt thử loại bỏ các thuộc tính trong Z (như slide 17)
- K = Ki
20
Nhận xét về phụ thuộc hàm
 từ một tập các phụ thuộc hàm có thể suy diễn
ra các phụ thuộc hàm khác
 trong một tập phụ thuộc hàm cho sẵn có thể có
các phụ thuộc hàm bị coi là dư thừa.
 Làm thế nào để có được một tập phụ thuộc
hàm tốt?
21
Tập phụ thuộc hàm tương đương
 Đ/N: Tập phụ thuộc hàm F là phủ của tập phụ thuộc
hàm G hay G là phủ của F hay F và G tương đương
nếu F+ = G +
 Ký hiệu là F  G
 Kiểm tra tính tương đương của 2 tập phụ thuộc hàm
B.1. Với mỗi YZ  F, Z  Y+ (trên G) thì YZ  G+
Nếu với f  F, f  G+ thì F+  G+
B.2. Tương tự, nếu  f  G, f  F+ thì G+  F+
B.3. Nếu F+  G+ và G+  F+ thì F  G
22
Tập phụ thuộc hàm không dư thừa
 Đ/N: Tập phụ thuộc hàm F là không dư thừa nếu !
XY F sao cho F  {XY}  F.
 Tìm phủ không dư thừa của 1 tập phụ thuộc hàm
 Vào: Tập thuộc tính U, F = {Li Ri: i = 1..n}
 Ra : Phủ không dư thừa F’ của F
 Thuật toán
B0 F0= F, n = |F|
Bi Nếu Fi-1 {LiRi}  Fi-1
thì Fi = Fi-1  {LiRi}
ngược lại, Fi = Fi-1
Nếu i <n
thì i=i+1, thực hiện Bi
ngược lại, thực hiện Bn
Bn F’ = Fi
23
Phủ tối thiểu của 1 tập phụ thuộc hàm
 Đ/N: Fc được gọi là phủ tối thiểu của 1 tập phụ
thuộc hàm F nếu thỏa mãn 3 điều kiện sau:
Đk1: Với  f  Fc, f có dạng X  A,
trong đó A là 1 thuộc tính
Đk2: Với  f = XY  Fc, ! A X (A là 1 thuộc tính):
(Fc  f) U {(X  A)Y}  Fc
Đk3: ! XA  Fc : Fc  {XA}  Fc
24
Tính phủ tối thiểu
 Vào: Tập thuộc tính U, F = {LiRi: i = 1..n}
 Ra: phủ tối thiểu Fc của tập phụ thuộc hàm F
 Thuật toán
B.1. Biến đổi F về dạng F1={Li  Aj}
trong đó Aj là 1 thuộc tính bất kỳ thuộc U (thoả mãn đk1)
B.2. Loại bỏ thuộc tính thừa trong vế trái của các phụ thuộc hàm
Lần lượt giản ước từng thuộc tính trong vế trái của từng
phụ thuộc hàm trong F1 thu được F1’. Nếu F1’  F1 thì
loại bỏ thuộc tính đang xét
Khi không có sự giản ước nào xảy ra nữa ta thu được
F2 thỏa mãn đk2
B.3. Loại bỏ phụ thuộc hàm dư thừa
Lần lượt loại kiểm tra từng phụ thuộc hàm f. Nếu F2  f  F2
thì loại bỏ f
Khi không cò phụ thuộc hàm nào có thể loại bỏ thi thu đươc
F3 thoả mãn đk3
B.4. Fc = F3
25
Tính phủ tối thiểu
 Vào: Tập thuộc tính U, F = {LiRi: i = 1..n}
 Ra: phủ tối thiểu Fc của tập phụ thuộc hàm F
 Thuật toán
B.1. Biến đổi F về dạng F1={Li  Aj}
trong đó Aj là 1 thuộc tính bất kỳ thuộc U (thoả mãn đk1)
B.2. F2 = F1
 fj: XAjB  F2 . Nếu B X+
F2 (hay là X+
F2  Aj ) thì Aj là dư thừa
và loại Aj khỏi fj. F2 = F2 {fj }  {X -> B}
Lặp B2
B.3. Loại bỏ phụ thuộc hàm dư thừa
B.4. Fc = F3
26
Tính phủ tối thiểu (ví dụ)
 U = {A,B,C}, F = {ABC, BC, AB, ABC}
Tìm phủ tối thiểu của F?
 F1 = {AB, AC, BC, ABC}
 Loại bỏ thuộc tính thừa ở vế trái:
Xét các pth trong F1 mà vế trái có nhiều hơn 1 thuộc tính ABC.
Giản ước A thì ta còn BC có trong F1, vậy A là thuộc tính thừa
 F2 = {AB, AC, BC}
 Bỏ pth thừa:
 Giả sử loại A B, F’2 = {AC, BC}, A+
F’2 = {A, C}
 AB  F’2+  pth hàm không dư thừa
 Giả sử loại AC: F’2 = {AB, BC}, A+
F’2 = {A, B, C}
 AC  F’2+  pth hàm dư thừa  loại A C
 Giả sử loại B C, F’2 = {AB}, B+
F’2 = {B}
 BC  F’2+  pth hàm không dư thừa
F3 = {AB, BC}
27
Mục đích của thiết kế CSDL –
nhắc lại
 Xác định được 1 tập các lược đồ quan hệ cho
phép tìm kiếm thông tin một cách dễ dàng,
đồng thời tránh được dư thừa dữ liệu (cf. slide
4)
 Phát biểu lại mục đích này sử dụng các khái
niệm vừa học ?
28
Phép tách các lược đồ quan hệ
 Mục đích
 Thay thế một sơ đồ quan hệ R(A1, A2, …, An) bằng
một tập các sơ đồ con {R1, R2, …, Rk} trong đó Ri R
và R = R1 U R2 U … U Rk
 Yêu cầu của phép tách
 Bảo toàn thuộc tính, ràng buộc
 Bảo toàn dữ liệu
29
Phép tách không mất mát thông tin
(Lossless join)
 Đ/N: Cho lược đồ quan hệ R(U) phép tách R
thành các sơ đồ con {R1, R2, …, Rk} được gọi là
phép tách không mất mát thông tin đ/v một tập
phụ thuộc hàm F nếu với mọi quan hệ r xác định
trên R thỏa mãn F thì:
r = R1(r) R2(r) …  Rk (r)
 Ví dụ:
Suppliers(sid, sname,city,NOE,
pname,colour,quantity)
S1(sid, sname, city, NOE)
SP1(sid,pname,colour,quantity)
30
Định lý tách đôi
 Cho lược đồ quan hệ R(U), tập pth F, phép tách
R thành R1(U1), R2(U2) là một phép tách không
mất mát thông tin nếu 1 trong 2 phụ thuộc hàm
sau là thỏa mãn trên F+:
U1 ∩ U2 U1 - U2
U1 ∩ U2 U2 - U1
 Hệ quả: Cho lược đồ quan hệ R(U) và phụ thuộc
hàm XY thỏa mãn trên R(U). Phép tách R thành
2 lược đồ con R1(U1), R2(U2) là một phép tách
không mất mát thông tin với:
U1 = XY
U2 = XZ với Z = U  XY
31
Kiểm tra tính không mất mát thông tin
 Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk}
 Ra: phép tách là mất mát thông tin hay không
 Thuật toán
B.1. Thiết lập một bảng k hàng, n cột
Nếu Aj là thuộc tính của Ri thì điền aj vào ô (i,j)
Nếu không thì điền bij
B.i. Xét f = XY F
Nếu  2 hàng t1, t2 thuộc bảng : t1[X] = t2[X]
thì t1[Y] = t2[Y], ưu tiên đồng nhất về giá trị a
Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng
B.n. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an
thì phép tách là không mất mát thông tin
ngược lại, phép tách không bảo toàn thông tin
32
Kiểm tra … (ví dụ)
 R = ABCD được tách thành R1=AB, R2 =BD, R3=ABC,
R4=BCD. F = {AC, BC, CDB, CD}
 B.1: Tạo bảng gồm 4 hàng, 4 cột
A B C D
R1 a1 a2 b31 b41
R2 b12 a2 b32 a4
R3 a1 a2 a3 b43
R4 b14 a2 a3 a4
33
Kiểm tra … (ví dụ)
 B.2 & 3:
 Từ A  C, ta có
 Từ B  C, ta có
A B C D
R1 a1 a2 a3 b41
R2 b12 a2 b32 a4
R3 a1 a2 a3 b43
R4 b14 a2 a3 a4
A B C D
R1 a1 a2 a3 b41
R2 b12 a2 a3 a4
R3 a1 a2 a3 b43
R4 b14 a2 a3 a4
34
Kiểm tra … (ví dụ)
 Từ C  D, ta có
 Vậy ta có 2 hàng có toàn các giá trị a. Chứng tỏ phép
tách đã cho là không mất mát thông tin
A B C D
R1 a1 a2 a3 a4
R2 b12 a2 a3 a4
R3 a1 a2 a3 a4
R4 b14 a2 a3 a4
35
Phép tách bảo toàn tập phụ thuộc hàm
 Hình chiếu của tập phụ thuộc hàm
Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách
{R1, R2, … , Rk} của R trên F
Hình chiếu Fi của F trên Ri là tập tất cả XY  F+ :
XY  Ri
 Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} là
một phép tách bảo toàn tập phụ thuộc hàm F nếu
(F1  F2 …  Fk)+ = F+
hay hợp của tất cả các phụ thuộc hàm trong các hình
chiếu của F lên các sơ đồ con sẽ suy diễn ra các phụ
thuộc hàm trong F.
36
Lưu ý
 Một phép tách có bảo toàn tập phụ thuộc hàm thì
không đảm bảo là nó sẽ không mất mát thông tin
và ngược lại
37
Bài tập
 Ví dụ 1: Cho R(U), U = {A, B, C} F = { AB, BC,
CA} được tách thành R1(A,B), R2(B,C).
Phép tách này có phải là bảo toàn tập phụ thuộc hàm
không?
 Ví dụ 2: Cho R(U), U = {A, B, C} , F = {ABC, CB}
được tách thành R1(A, B), R2(B, C). Phép tách này có
bảo toàn tập pth không, có mất mát thông tin không?
 Ví dụ 3: Cho R(U), U = { A, B, C, D} , F = {AB,
CD} được tách thành R1(A, B), R2(C, D). Phép tách
này có bảo toàn tập pth không, có mất mát thông tin
không?
38
39
Các dạng chuẩn
 Vấn đề đặt ra
 Có cần phải tinh chỉnh thiết kế nữa hay không?
 Thiết kế đã là tốt hay chưa?
 Định nghĩa về các dạng chuẩn.
 Mục đích:
Mỗi dạng chuẩn đảm bảo ngăn ngừa (giảm thiểu) một
số các dạng dư thừa hay dị thường dữ liệu
 Các dạng chuẩn hay sử dụng
 Dạng chuẩn 1 (1NF)
 Dạng chuẩn 2 (2NF)
 Dạng chuẩn 3 (3NF)
 Dạng chuẩn Boye-Code (BCNF)
 Dạng chuẩn 4 (4NF)
40
Dạng chuẩn 1 (1NF)
 Đ/N: Một sơ đồ quan hệ R được gọi là ở dạng
chuẩn 1 nếu tất cả các miền giá trị của các
thuộc tính trong R đều chỉ chứa giá trị nguyên
tố.
 Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra
được nữa
 Ví dụ: Quan hệ không ở 1NF và quan hệ sau
khi chuẩn hóa về 1NF
sname city product
name price
Blake London Nut 100
Blake London Bolt 120
Smith Paris Screw 75
sname city item price
Blake London Nut 100
Blake London Bolt 120
Smith Paris Screw 75
41
Dạng chuẩn 2 (2NF)
 Đ/N: Một sơ đồ quan hệ R được coi là ở dạng
chuẩn 2 nếu
 Sơ đồ quan hệ này ở 1NF
 Tất cả các thuộc tính không khóa đều phụ thuộc hàm
đầy đủ vào khóa chính
(Lưu ý: A là một thuộc tính khóa nếu A thuộc một
khóa tối thiểu nào đó của R. Ngược lại A là thuộc tính
không khóa)
42
Phụ thuộc hàm đầy đủ
 Đ/N: Cho lược đồ quan hệ R(U), F là tập phụ
thuộc hàm trên R. X, Y  U. Y được gọi là phụ
thuộc đầy đủ vào X nếu:
- XY thuộc F+
- ! X’  X : X’Y  F+
 Các phụ thuộc hàm không đầy đủ còn gọi là
phụ thuộc bộ phận
43
Ví dụ
Sales(sid, sname, city, item, price)
F = {sid  (sname,city), (sid, item)  price}
 Khóa chính (sid,item)
 sname, city không phụ thuộc hàm đầy đủ vào khóa chính
 Sales không thuộc 2NF
 Chuẩn hoá
S(sid, sname, city)
Sales (sid, item, price)
44
Dạng chuẩn 3 (3NF)
 Đ/N: Một sơ đồ quan hệ R được coi là ở dạng
chuẩn 3 nếu
 Sơ đồ quan hệ này ở 2NF
 Mọi thuộc tính không khóa đều không phụ thuộc bắc
cầu vào khóa chính
45
Ví dụ
S (sid, sname, city)
Sales(sid, item, price)
F = {sid  sname, city}
 S, Sales thuộc dạng chuẩn 3
ItemInfo(item, price, discount).
F = {itemprice, pricediscount}
 thuộc tính không khóa discount phụ thuộc bắc cầu vào
khóa chính item.
 Vậy quan hệ này không ở 3NF.
 Chuẩn hoá
ItemInfo(item, price)
Discount(price, discount)
46
Dạng chuẩn Boye-Codd
 Đ/N: Một sơ đồ quan hệ R(U) với một tập phụ
thuộc hàm F được gọi là ở dạng chuẩn Boye-Codd
(BCNF) nếu với  XA  F+ thì
 A là thuộc tính xuất hiện trong X hoặc
 X chứa một khóa của quan hệ R.
 Ví dụ
 R = {A,B,C} ; F = {ABC , CB}.
 R không phải ở BCNF vì  CB, C không phải là khóa
 Chú ý:
 Một quan hệ thuộc 3NF thì chưa chắc đã thuộc BCNF
 Nhưng một quan hệ thuộc BCNF thì thuộc 3NF
47
Tách bảo toàn tập phụ thuộc hàm về
3NF
 Vào: R(U), F (giả thiết F là phủ tối thiểu)
 Ra: Phép tách bảo toàn tập phụ thuộc hàm về 3NF
 Thuật toán
B1. Với các Ai  U, Ai  F thì loại Ai khỏi R và lập 1 quan hệ
mới cho các Ai
B2. Nếu  f  F, f chứa tất cả các thuộc tính của R thì kết
quả là R
B3. Ngược lại, với mỗi X A F, xác định một quan hệ
Ri(XA).
Nếu  XAi, XAj thì tạo một quan hệ chung R’(XAiAj)
48
Ví dụ
Cho R = {A,B,C,D,E,F,G}
F = {AB, ACDE, EFG}
 Xác định phép tách bảo toàn tập phụ thuộc hàm
về 3NF
[B0.Kiểm tra F có phải là phủ tối thiểu chưa]
B1. không lập được quan hệ nào mới.
B2. ! f  F: f chứa tất cả các thuộc tính của R
B3. AB  R1(AB)
ACDE  R2(ACDE)
EFG  R3(EFG)
49
Tách không mất mát thông tin và bảo
toàn tập phụ thuộc hàm về 3NF
 Yêu cầu:
 Bảo toàn tập phụ thuộc hàm (như thuật toán trên)
 Đảm bảo là có một lược đồ con chứa khóa của
lược đồ được tách
 Các bước tiến hành
B1. Tìm một khóa tối thiểu của lược đồ quan hệ R đã
cho
B2. Tách lược đồ quan hệ R theo phép tách bảo toàn
tập phụ thuộc hàm (cần phải tìm phủ tối thiểu của F)
B3. Nếu 1 trong các sơ đồ con có chứa khóa tối thiểu
thì kết quả của B2 là kết quả cuối cùng.
Ngược lại, thêm vào kết quả đó một sơ đồ quan hệ
được tạo bởi khóa tối thiểu tìm được ở 1.
50
Ví dụ
Cho R(A,B,C,D,E,F,G)
F = {AB, ACDE, EFG}
B1. Khóa tối thiểu cần tìm là ACDF (xem slide 18)
B2. Phép tách bảo toàn tập phụ thuộc hàm R cho 3 sơ đồ con
R1(AB), R2(ACDE), R3(EFG) (xem slide 47)
Lưu ý: ở đây F đã là phủ tối thiểu, nếu không cần phải xác định phủ tối
thiểu của tập phụ thuộc hàm F
B3. Do khóa ACDF không nằm trong bất kỳ một sơ đồ con
nào trong 3 sơ đồ con trên, ta lập một sơ đồ con mới
R4(ACDF)
Kết quả cuối cùng ta có phép tách R thành 4 sơ đồ con
{R1, R2, R3, R4} là một phép tách không mất mát thông tin
và bảo toàn tập phụ thuộc hàm
51
Tách không mất mát thông tin về BCNF
 Vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F
 Ra: phép tách không mất mát thông tin bao gồm một tập
các sơ đồ con ở BCNF với các phụ thuộc hàm là hình
chiếu của F lên sơ đồ đó.
 Cách tiến hành
B1. KQ = {R},
B2. Với mỗi S  KQ, S không ở BCNF, xét XA  FS,
với điều kiện X không chứa khóa của S và A  X
Thay thế S bởi S1, S2 với S1=A X, S2 = S  A
B3. Lặp (B2) cho đến khi S KQ đều ở BCNF
KQ gồm các sơ đồ con của phép tách yêu cầu
52
Tách không mất mát thông tin về BCNF
R = {A,B,C} ; F = {ABC , CB}
 KQ = {R}
 R không ở BCNF
 Xét CB  FR: C không chứa khóa của R và B  C
 Thay R bởi R1 = {C,B} và R2 = {A,C}
 KQ = {R1, R2}
 R1 = {C, B}, FR1 = {CB}: BCNF
 R2 = {A, C}, FR2 = {}: BCNF
Kết quả cuối cùng: R được tách thành
R1={C,B}, R2 = {A,C}
53
Phụ thuộc đa trị
 Đ/N: Cho R(U), X, Y U. X xác định đa trị Y
hay Y phụ thuộc đa trị vào X nếu với  r xác
định trên R và với hai bộ t1 và t2 bất kỳ mà
t1[X] = t2[X] thì  bộ t3 :
t3[X] = t1[X] = t2[X],
t3[Y] = t1[Y] và
t3[Z] = t2[Z] với Z = U XY
 Ký hiệu XY
54
Phụ thuộc đa trị - Ví dụ
 Lược đồ ở dạng chuẩn BCNF
 TênNVTênDA
 TeenNV TênConNV
NHÂN
VIÊN
TênNV TênDA TênConNV
Nam DA01 Hoa
Nam DA02 Hoa
Nam DA01 Lan
Nam DA02 Lan
t1
t2
t3
55
Hệ tiên đề đối với các phụ thuộc hàm
và phụ thuộc đa trị
Cho R(U), X, Y, Z, W  U (XY = X  Y)
 A1: Phản xạ đối với FD (reflexivity):
Nếu Y  X thì XY.
 A2: Tăng trưởng đối với FD (augmentation):
Nếu XY thì XZYZ.
 A3: Bắc cầu đối với FD (transitivity):
Nếu XY, YZ thì XZ.
 A4: Luật bù đối với MVD (complementation):
Nếu XY thì XU  XY.
56
Hệ tiên đề đối với các phụ thuộc hàm
và phụ thuộc đa trị (2)
Cho R(U), X, Y, Z, W  U (XY = X  Y)
 A5: Tăng trưởng đối với MVD (augmentation):
Nếu XY và VW thì WXVY.
 A6: Bắc cầu đối với MVD (transitivity):
Nếu XY, YZ thì XZ Y.
 A7:
Nếu XY thì XY.
 A8:
Nếu XY, WZ với Z  Y và WY=
thì XZ.
57
Các luật suy diễn bổ sung đối với các
phụ thuộc đa trị
 Luật hợp (union):
Nếu XY, XZ thì XYZ.
 Luật tựa bắc cầu (pseudotransitivity):
Nếu XY, WYZ thì WXZ  WY.
 Luật tựa bắc cầu hỗn hợp (mixed pseudotransitivity):
Nếu XY, XYZ thì XZ  Y.
 Luật tách (decomposition):
Nếu XY, XZ thì
XYZ, XY  Z, XZ  Y.
58
Bao đóng của tập phụ thuộc hàm và
phụ thuộc đa trị
 Đ/N: bao đóng của tập các phụ thuộc hàm và
phụ thuộc đa trị D là tập tất cả các phụ thuộc
hàm và các phụ thuộc đa trị được suy diễn logic
từ D
 Ký hiệu: D+
 Kiểm tra: XY  D+?
 Tính cơ sở phụ thuộc của X đối với D
 Kiểm tra YX có phải là hợp của vài tập hợp trong cơ
sở phụ thuộc của X hay không
59
Tính cơ sở phụ thuộc
 Vào: Tập các phụ thuộc đa trị M trên tập thuộc tính U và tập
thuộc tính X  U
 Ra: Cơ sở phụ thuộc của X đối với M
 Cách tiến hành:
B1. Đặt T là tập các tập con Z của U: với WY  M mà
WX thì Z là Y  X hoặc U  XY
B2. T được thiết lập cho tới khi là một tập các tập rời nhau,
nếu có một cặp Z1, Z2 không tách rời nhau thì thay
chúng bởi Z1 Z2, Z2  Z1, Z1 Z2 với điều kiện không
ghi nhận tập rỗng. Gọi S là tập thu được sau bước này.
B3. Tìm các phụ thuộc có dạng VW  M và một tập Y 
S : Y  W  , Y  V = 
Thay Y bằng YW và Y  W cho đến khi không thay đổi S
được nữa
B4. Tập S thu được sau bước này là cơ sở phụ thuộc của X
60
Phép tách không mất thông tin?
 Vào: R(A1, A2, …, An), F, M, phép tách {R1, R2, …, Rk}
 Ra: phép tách là mất mát thông tin hay không
 Thuật toán (tổng quát hoá thuật toán trình bày ở slide 28)
B.1. Thiết lập một bảng k hàng, n cột (xem B1. slide 28)
B.i. Xét f = XY F: thực hiện đồng nhất bảng (xem B2. slide 28)
Xét XY:
nếu  2 hàng t1, t2 thuộc bảng : t1[X] = t2[X]
thì thêm vào bảng đó một hàng mới u
u[X]=t1[X], u[Y]=t1[Y],
u[R  XY] = t2[R  XY]
Lặp cho tới khi không thể thay đổi được giá trị nào
trong bảng
B.n. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an
thì phép tách là không mất mát thông tin
ngược lại, phép tách không bảo toàn thông tin
61
Dạng chuẩn 4 (4NF)
 Đ/N: Một quan hệ R ở dạng chuẩn bốn
nếu có một phụ thuộc đa trị XY với Y,
Y  X và XY không chứa tất cả các thuộc tính của
R thì X chứa một khóa của R
 Chú ý: nếu R chỉ có các phụ thuộc hàm thì
dạng chuẩn bốn chính là dạng chuẩn Boye-
Codd và XY phải có nghĩa là XY
62
Tách không làm mất mát thông tin
về 4NF
 Tương tự như thuật toán tách về chuẩn Boye-
Codd nhưng áp dụng với phụ thuộc đa trị
 Ví dụ:
 Nhânviên (TênNV, TênDA, TênConNV)
 Khóa: Tên NV, Tên DA, TênConNV
 Quan hệ Nhânviên không ở dạng chuẩn 4
 Tách thành dạng chuẩn 4:
 TênNVTênDA 
 R1(TênNV, Tên DA) (4NF) và
 R2(TênNV, TênConNV) (4NF)
TênNVTênDA
TênNV TênConNV
63
Lưu ý:
 Rất hiếm các trường hợp mà 1 lược đồ ở
dạng chuẩn 3 mà lại không ở dạng chuẩn 4
 Hầu hết các lược đồ ở dạng chuẩn 3 thì cũng
ở dạng chuân Boye-Codd
64
Kết luận
 Tầm quan trọng của thiết kế CSDL
 ảnh hưởng đến chất lượng dữ liệu lưu trữ
 Hiểu quả của việc khai thác dữ liệu
 Mục đích của thiết kế CSDL: tránh
 Dư thừa dữ liệu
 Dị thường dữ liệu khi thêm/xoá/sửa đổi
 Hiểu quả trong tìm kiếm
 Đưa về các dạng chuẩn
 2NF: giản ước sự dư thừa để tránh các dị thuờng khi
cập nhật
 3NF: tránh các dị thường khi thêm/xoá
 BCNF: tránh các dị thường khi cập nhật
 4NF: giảm dư thừa dữ liệu do thuộc tính đa trị
65
66
Bài tập
 Cho lược đồ quan hệ R(U,F) với
U = {A, B, C, D, E, G, H, I}
F = {AB DE, BCH, GAI, DE}
1. Hãy xác định một khóa tối thiểu của lược đồ quan hệ trên.
2. Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở
trên
 Cho lược đồ quan hệ R(U,F) với
U = {A, B, C, D, E, G, H, I}
F = {BG E, HI, BCIH, ACD}
Hãy xác định một khóa tối thiểu của lược đồ quan hệ R.
Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở trên
67
Bài tập
 Cho lược đồ quan hệ R(U,F) với
U= {A,B,C,D,E,G, H}, tập các phụ thuộc hàm
F= {AB, EHB, CEB  G, AD  E}
1. Tìm một khóa tối thiểu của R(U,F)
2. Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở
trên
3. Tách bảo toàn tập phụ thuộc hàm lược đồ trên về dạng
chuẩn 3
4. Tách bảo toàn tập phụ thuộc hàm và bảo toàn thông tin
lược đồ trên về dạng chuẩn 3

More Related Content

PPT
csdl - buoi13-14
PDF
cơ sở dữ liệu aksjdiop;jfkldjasklfjadls;gjfil;adjklj
PDF
Hàm số một biến, đạo hàm và vi phân của hàm số một biến
PPT
Thiet Ke Co So Du Lieu5
PDF
Chapter-1.pdf c1 gt1 hcmut c1 gt1 hcmut c1 gt1 hcmut
PDF
chuong 1 - Tap hop va anh xa (11222).pdf
PDF
Đại-số-tuyến-tính.pdf
PPT
Csdl Nangcao
csdl - buoi13-14
cơ sở dữ liệu aksjdiop;jfkldjasklfjadls;gjfil;adjklj
Hàm số một biến, đạo hàm và vi phân của hàm số một biến
Thiet Ke Co So Du Lieu5
Chapter-1.pdf c1 gt1 hcmut c1 gt1 hcmut c1 gt1 hcmut
chuong 1 - Tap hop va anh xa (11222).pdf
Đại-số-tuyến-tính.pdf
Csdl Nangcao

Similar to Designing databases - THiết kế CSDL Slide (20)

PPT
Csdl Nangcao
PDF
cac-dang-bai-tap-tinh-don-dieu-va-cuc-tri-cua-ham-so-toan-12-knttvcs.pdf
PDF
cac-dang-bai-tap-tinh-don-dieu-va-cuc-tri-cua-ham-so-toan-12-knttvcs.pdf
PDF
chuong5DaiSoTuyetTinhabcdexysjkjskks.pdf
PDF
Thiết kế cơ sở dữ liệu _ chuẩn hóa .pdf
PDF
Phụ thuộc hàm và các dạng chuẩn - dhcntt
PDF
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
PDF
300 câu hỏi trắc nghiệm tích phân và ứng dụng - Nhóm Toán
PDF
Chuyên đề khảo sát hàm số dành cho lớp 10
PDF
Tích phân-1-Sử dụng nguyên hàm tích phân-pages-1-17
PDF
2013 9 dang chuan
PDF
Slide toán rời rạc lê văn luyện 2024 .pdf
PDF
Nguyen ham
PDF
Chương 1 - Phần 1gbfbgfgfvfdvfdgfftfh.pdf
PDF
Bài-8_Phụ-thuộc-hàm-và-chuẩn-hóa-CSDL.pdf
PDF
Homework 5 of QFT
PPTX
Chuong 2. Phep dem.pptxsssssssssssssssssssssssssss
PDF
Cơ sở dữ liệu PTIT slide 7
PDF
05 mat101 bai1_v2.3013101225
PPTX
Chap1_GiaiTich_SinhVien_Slide. (lí thuyết + ví dụ)pptx
Csdl Nangcao
cac-dang-bai-tap-tinh-don-dieu-va-cuc-tri-cua-ham-so-toan-12-knttvcs.pdf
cac-dang-bai-tap-tinh-don-dieu-va-cuc-tri-cua-ham-so-toan-12-knttvcs.pdf
chuong5DaiSoTuyetTinhabcdexysjkjskks.pdf
Thiết kế cơ sở dữ liệu _ chuẩn hóa .pdf
Phụ thuộc hàm và các dạng chuẩn - dhcntt
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
300 câu hỏi trắc nghiệm tích phân và ứng dụng - Nhóm Toán
Chuyên đề khảo sát hàm số dành cho lớp 10
Tích phân-1-Sử dụng nguyên hàm tích phân-pages-1-17
2013 9 dang chuan
Slide toán rời rạc lê văn luyện 2024 .pdf
Nguyen ham
Chương 1 - Phần 1gbfbgfgfvfdvfdgfftfh.pdf
Bài-8_Phụ-thuộc-hàm-và-chuẩn-hóa-CSDL.pdf
Homework 5 of QFT
Chuong 2. Phep dem.pptxsssssssssssssssssssssssssss
Cơ sở dữ liệu PTIT slide 7
05 mat101 bai1_v2.3013101225
Chap1_GiaiTich_SinhVien_Slide. (lí thuyết + ví dụ)pptx
Ad

Designing databases - THiết kế CSDL Slide

  • 1. Thiết kế CSDL quan hệ Phạm Thị Phương Giang giangptp@soict.hust.edu.vn Bộ môn Hệ thống thông tin (http://is.hust.edu.vn/) Viện CNTT&TT Trường Đại học Bách Khoa Hà Nội
  • 2. 2 Đặt vấn đề  Mục đích của chuẩn hoá là gi?  Thế nào là chuẩn? Có bao nhiêu chuẩn?
  • 3. 3 Ví dụ  1 CSDL về các hãng cung ứng. Suppliers(sid, sname, city, NOE, product,quantity) Sid Sname City NOE Product quantity S1 Smith London 100 Screw 50 S1 Smith London 100 Nut 100 S2 J&J Paris 100 Screw 78 S3 Blake Tokyo 75 Bolt 100  Các vấn đề đặt ra: dư thừa dữ liệu, không nhất quán, dị thường khi thêm bộ, dị thường khi xóa bộ  Đề xuất các giải pháp
  • 4. 4 Mục đích của chuẩn hoá  Xác định được 1 tập các lược đồ quan hệ cho phép tìm kiếm thông tin một cách dễ dàng, đồng thời tránh được dư thừa dữ liệu  Hướng tiếp cận: Tách các lược đồ quan hệ “có vấn đề” thành những lược đồ quan hệ “chuẩn hơn”
  • 5. 5 Ví dụ Suppliers(sid, sname, city, NOE, product,quantity) Sid Sname City NOE Product quantity S1 Smith London 100 Screw 50 S1 Smith London 100 Nut 100 S2 J&J Paris 100 Screw 78 S3 Blake Tokyo 75 Bolt 100 Suppliers(sid, sname, city, noe) Supply (sid, product, quantity)
  • 6. 6 Nội dung  Phụ thuộc hàm  Phép tách các sơ đồ quan hệ  Các dạng chuẩn  Phụ thuộc đa trị  Kết luận
  • 7. 7 Phụ thuộc hàm (Functional dependencies - FD)  Đ/N: Phụ thuộc hàm trong 1 quan hệ Cho  R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.  X, Y  U X xác định hàm Y hay Y phụ thuộc hàm vào X nếu  với quan hệ r xác định trên R(U) và với 2 bộ t1 và t2 bất kỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y]  Ký hiệu: XY
  • 8. 8 Ví dụ Suppliers(sid, sname, city, NOE, product,quantity, price, amount) sidsname sid city sidNOE sid, productquantity product  price quantity, price amount
  • 9. 9 Hệ tiên đề Amstrong Cho  R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.  X,Y,Z,W  U (Ký hiệu: XY = X  Y)  Phản xạ (reflexivity) Nếu Y  X thì XY  Tăng trưởng (augmentation) Nếu XY thì XZYZ  Bắc cầu (transitivity) Nếu XY, YZ thì XZ
  • 10. 10 Hệ quả  Luật hợp (union) Nếu XY, XZ thì XYZ  Luật tựa bắc cầu (pseudotransitivity) Nếu XY, WYZ thì XWZ  Luật tách (decomposition) Nếu XY, Z  Y thì XZ
  • 11. 11 Bao đóng của 1 tập phụ thuộc hàm  Đ/N : Bao đóng của tập phụ thuộc hàm F là tập lớn nhất các phụ thuộc hàm có thể được suy diễn logic từ F  Ký hiệu là F+  Suy diễn logic X  Y được suy diễn logic từ F nếu với mỗi quan hệ r xác định trên R(U) thoả các phụ thuộc hàm trong F thì cũng thoả X  Y  F là họ đầy đủ (full family) nếu F = F+
  • 12. 12 Khoá tối thiểu  Đ/N: Cho lược đồ quan hệ R(U), tập các phụ thuộc hàm F. K  U, K được gọi là khóa tối thiểu của R nếu như  KU  F+  với  K’  K thì K’U  F+  Nhận xét: Nếu K là một khóa tổi thiểu thì  K+ = U  K là tập thuộc tính nhỏ nhất có tính chất như vậy
  • 13. 13 Bao đóng của 1 tập các thuộc tính  Đ/N: Bao đóng của tập thuộc tính X là tập tất cả các thuộc tính được xác định hàm bởi X thông qua tập F  ký hiệu là X+ X+ = {A  U| X  A F+}
  • 14. 14 Nhận xét  Hệ tiên đề Amstrong là đúng đắn và đầy đủ  XY được suy diễn từ hệ tiên đề Amstrong  Y  X+  Thiết kế CSDL ? Các khái niệm  Phụ thuộc hàm  Bao đóng của tập phụ thuộc hàm  Khoá  Bao đóng của 1 tập các thuộc tính
  • 15. 15 Tính bao đóng của 1 tập thuộc tính  Vào: Tập hữu hạn các thuộc tính U tập các phụ thuộc hàm F trên U X  U  Ra: X+  Thuật toán B0 X0 = X. Bi Tính Xi từ Xi-1 Nếu  YZ  F ^ Y  Xi-1 ^ A  Z ^ A  Xi-1 thì Xi = Xi-1  A ngược lại, Xi = Xi-1 . Nếu Xi  Xi-1 thì thực hiện Bi ngược lai, thực hiện Bn Bn X+ = Xi
  • 16. 16 Tính bao đóng của 1 tập thuộc tính (ví dụ)  Cho R(U) , U = {A, B, C, D, E, F} F = {ABC, BCAD, DE, CFB} Tính (AB)+  Thực hiện:  Bước 0: X0 = AB  Bước 1: X1 = ABC ( do AB C)  Bước 2: X2 = ABCD (do BCAD)  Bước 3: X3 = ABCDE (do DE)  Bước 4: X4 = ABCDE
  • 17. 17 Tìm khoá tối thiểu  Vào: U = {A1, A2, …, An} , F  Ra: khóa tối thiểu K xác định được trên U và F  Thuật toán B0 K0= U, n = |U| Bi Nếu (Ki-1{Ai})U thì Ki= Ki-1 {Ai} ngược lại, Ki= Ki-1 Nếu i<n thì i=i+1, thực hiện Bi ngược lại, thực hiện Bn Bn K = Ki
  • 18. 18 Ví dụ  Cho R(U) trong đó U = {A,B,C,D,E,F,G}, F = {AB, ACDE, EFG} Tìm một khóa tối thiểu của R K0 = ABCDEFG K1 = K0 do nếu loại A thì (BCDEFG)+ U K2 = K1 {B} = ACDEFG do (ACDEFG) +  U K3 = K2 do nếu loại C thì (ADEFG) +  U K4 = K3 do nếu loại D thì (ACEFG) +  U K5 = K4 {E} = ACDFG do (ACDFG) +  U K6 = K5 do nếu loại F thì (ACDG) +  U K7 = K6 {G} = ACDF do (ACDF) +  U Vậy khóa tối thiểu cần tìm là ACDF
  • 19. 19 Tìm khoá tối thiểu (2)  Vào: U = {A1, A2, …, An} , F  Ra: khóa tối thiểu K xác định được trên U và F  Thuật toán B0 VT = tập các thuộc tính nằm ở vế trái các phụ thuộc hàm VP = tập các thuộc tính nằm ở vế phải của các phục thuộc hàm X = U VP: tập các thuộc tính chắc chắn nằm trong K Y = VP VT: tập các thuộc tính chắc chắn không nằm trong K Z = VP  VT: tập các thuộc tính có thể nằm trong K B2 Nếu (X)+ = U thì X là khóa tối thiểu: K = X. Kết thúc B3 Nếu (X)+ ≠ U thì - K0 = X  Z - Lặp: lần lượt thử loại bỏ các thuộc tính trong Z (như slide 17) - K = Ki
  • 20. 20 Nhận xét về phụ thuộc hàm  từ một tập các phụ thuộc hàm có thể suy diễn ra các phụ thuộc hàm khác  trong một tập phụ thuộc hàm cho sẵn có thể có các phụ thuộc hàm bị coi là dư thừa.  Làm thế nào để có được một tập phụ thuộc hàm tốt?
  • 21. 21 Tập phụ thuộc hàm tương đương  Đ/N: Tập phụ thuộc hàm F là phủ của tập phụ thuộc hàm G hay G là phủ của F hay F và G tương đương nếu F+ = G +  Ký hiệu là F  G  Kiểm tra tính tương đương của 2 tập phụ thuộc hàm B.1. Với mỗi YZ  F, Z  Y+ (trên G) thì YZ  G+ Nếu với f  F, f  G+ thì F+  G+ B.2. Tương tự, nếu  f  G, f  F+ thì G+  F+ B.3. Nếu F+  G+ và G+  F+ thì F  G
  • 22. 22 Tập phụ thuộc hàm không dư thừa  Đ/N: Tập phụ thuộc hàm F là không dư thừa nếu ! XY F sao cho F {XY}  F.  Tìm phủ không dư thừa của 1 tập phụ thuộc hàm  Vào: Tập thuộc tính U, F = {Li Ri: i = 1..n}  Ra : Phủ không dư thừa F’ của F  Thuật toán B0 F0= F, n = |F| Bi Nếu Fi-1 {LiRi}  Fi-1 thì Fi = Fi-1 {LiRi} ngược lại, Fi = Fi-1 Nếu i <n thì i=i+1, thực hiện Bi ngược lại, thực hiện Bn Bn F’ = Fi
  • 23. 23 Phủ tối thiểu của 1 tập phụ thuộc hàm  Đ/N: Fc được gọi là phủ tối thiểu của 1 tập phụ thuộc hàm F nếu thỏa mãn 3 điều kiện sau: Đk1: Với  f  Fc, f có dạng X  A, trong đó A là 1 thuộc tính Đk2: Với  f = XY  Fc, ! A X (A là 1 thuộc tính): (Fc f) U {(X A)Y}  Fc Đk3: ! XA  Fc : Fc {XA}  Fc
  • 24. 24 Tính phủ tối thiểu  Vào: Tập thuộc tính U, F = {LiRi: i = 1..n}  Ra: phủ tối thiểu Fc của tập phụ thuộc hàm F  Thuật toán B.1. Biến đổi F về dạng F1={Li  Aj} trong đó Aj là 1 thuộc tính bất kỳ thuộc U (thoả mãn đk1) B.2. Loại bỏ thuộc tính thừa trong vế trái của các phụ thuộc hàm Lần lượt giản ước từng thuộc tính trong vế trái của từng phụ thuộc hàm trong F1 thu được F1’. Nếu F1’  F1 thì loại bỏ thuộc tính đang xét Khi không có sự giản ước nào xảy ra nữa ta thu được F2 thỏa mãn đk2 B.3. Loại bỏ phụ thuộc hàm dư thừa Lần lượt loại kiểm tra từng phụ thuộc hàm f. Nếu F2 f  F2 thì loại bỏ f Khi không cò phụ thuộc hàm nào có thể loại bỏ thi thu đươc F3 thoả mãn đk3 B.4. Fc = F3
  • 25. 25 Tính phủ tối thiểu  Vào: Tập thuộc tính U, F = {LiRi: i = 1..n}  Ra: phủ tối thiểu Fc của tập phụ thuộc hàm F  Thuật toán B.1. Biến đổi F về dạng F1={Li  Aj} trong đó Aj là 1 thuộc tính bất kỳ thuộc U (thoả mãn đk1) B.2. F2 = F1  fj: XAjB  F2 . Nếu B X+ F2 (hay là X+ F2  Aj ) thì Aj là dư thừa và loại Aj khỏi fj. F2 = F2 {fj }  {X -> B} Lặp B2 B.3. Loại bỏ phụ thuộc hàm dư thừa B.4. Fc = F3
  • 26. 26 Tính phủ tối thiểu (ví dụ)  U = {A,B,C}, F = {ABC, BC, AB, ABC} Tìm phủ tối thiểu của F?  F1 = {AB, AC, BC, ABC}  Loại bỏ thuộc tính thừa ở vế trái: Xét các pth trong F1 mà vế trái có nhiều hơn 1 thuộc tính ABC. Giản ước A thì ta còn BC có trong F1, vậy A là thuộc tính thừa  F2 = {AB, AC, BC}  Bỏ pth thừa:  Giả sử loại A B, F’2 = {AC, BC}, A+ F’2 = {A, C}  AB  F’2+  pth hàm không dư thừa  Giả sử loại AC: F’2 = {AB, BC}, A+ F’2 = {A, B, C}  AC  F’2+  pth hàm dư thừa  loại A C  Giả sử loại B C, F’2 = {AB}, B+ F’2 = {B}  BC  F’2+  pth hàm không dư thừa F3 = {AB, BC}
  • 27. 27 Mục đích của thiết kế CSDL – nhắc lại  Xác định được 1 tập các lược đồ quan hệ cho phép tìm kiếm thông tin một cách dễ dàng, đồng thời tránh được dư thừa dữ liệu (cf. slide 4)  Phát biểu lại mục đích này sử dụng các khái niệm vừa học ?
  • 28. 28 Phép tách các lược đồ quan hệ  Mục đích  Thay thế một sơ đồ quan hệ R(A1, A2, …, An) bằng một tập các sơ đồ con {R1, R2, …, Rk} trong đó Ri R và R = R1 U R2 U … U Rk  Yêu cầu của phép tách  Bảo toàn thuộc tính, ràng buộc  Bảo toàn dữ liệu
  • 29. 29 Phép tách không mất mát thông tin (Lossless join)  Đ/N: Cho lược đồ quan hệ R(U) phép tách R thành các sơ đồ con {R1, R2, …, Rk} được gọi là phép tách không mất mát thông tin đ/v một tập phụ thuộc hàm F nếu với mọi quan hệ r xác định trên R thỏa mãn F thì: r = R1(r) R2(r) …  Rk (r)  Ví dụ: Suppliers(sid, sname,city,NOE, pname,colour,quantity) S1(sid, sname, city, NOE) SP1(sid,pname,colour,quantity)
  • 30. 30 Định lý tách đôi  Cho lược đồ quan hệ R(U), tập pth F, phép tách R thành R1(U1), R2(U2) là một phép tách không mất mát thông tin nếu 1 trong 2 phụ thuộc hàm sau là thỏa mãn trên F+: U1 ∩ U2 U1 - U2 U1 ∩ U2 U2 - U1  Hệ quả: Cho lược đồ quan hệ R(U) và phụ thuộc hàm XY thỏa mãn trên R(U). Phép tách R thành 2 lược đồ con R1(U1), R2(U2) là một phép tách không mất mát thông tin với: U1 = XY U2 = XZ với Z = U XY
  • 31. 31 Kiểm tra tính không mất mát thông tin  Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk}  Ra: phép tách là mất mát thông tin hay không  Thuật toán B.1. Thiết lập một bảng k hàng, n cột Nếu Aj là thuộc tính của Ri thì điền aj vào ô (i,j) Nếu không thì điền bij B.i. Xét f = XY F Nếu  2 hàng t1, t2 thuộc bảng : t1[X] = t2[X] thì t1[Y] = t2[Y], ưu tiên đồng nhất về giá trị a Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng B.n. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an thì phép tách là không mất mát thông tin ngược lại, phép tách không bảo toàn thông tin
  • 32. 32 Kiểm tra … (ví dụ)  R = ABCD được tách thành R1=AB, R2 =BD, R3=ABC, R4=BCD. F = {AC, BC, CDB, CD}  B.1: Tạo bảng gồm 4 hàng, 4 cột A B C D R1 a1 a2 b31 b41 R2 b12 a2 b32 a4 R3 a1 a2 a3 b43 R4 b14 a2 a3 a4
  • 33. 33 Kiểm tra … (ví dụ)  B.2 & 3:  Từ A  C, ta có  Từ B  C, ta có A B C D R1 a1 a2 a3 b41 R2 b12 a2 b32 a4 R3 a1 a2 a3 b43 R4 b14 a2 a3 a4 A B C D R1 a1 a2 a3 b41 R2 b12 a2 a3 a4 R3 a1 a2 a3 b43 R4 b14 a2 a3 a4
  • 34. 34 Kiểm tra … (ví dụ)  Từ C  D, ta có  Vậy ta có 2 hàng có toàn các giá trị a. Chứng tỏ phép tách đã cho là không mất mát thông tin A B C D R1 a1 a2 a3 a4 R2 b12 a2 a3 a4 R3 a1 a2 a3 a4 R4 b14 a2 a3 a4
  • 35. 35 Phép tách bảo toàn tập phụ thuộc hàm  Hình chiếu của tập phụ thuộc hàm Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách {R1, R2, … , Rk} của R trên F Hình chiếu Fi của F trên Ri là tập tất cả XY  F+ : XY  Ri  Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} là một phép tách bảo toàn tập phụ thuộc hàm F nếu (F1  F2 …  Fk)+ = F+ hay hợp của tất cả các phụ thuộc hàm trong các hình chiếu của F lên các sơ đồ con sẽ suy diễn ra các phụ thuộc hàm trong F.
  • 36. 36 Lưu ý  Một phép tách có bảo toàn tập phụ thuộc hàm thì không đảm bảo là nó sẽ không mất mát thông tin và ngược lại
  • 37. 37 Bài tập  Ví dụ 1: Cho R(U), U = {A, B, C} F = { AB, BC, CA} được tách thành R1(A,B), R2(B,C). Phép tách này có phải là bảo toàn tập phụ thuộc hàm không?  Ví dụ 2: Cho R(U), U = {A, B, C} , F = {ABC, CB} được tách thành R1(A, B), R2(B, C). Phép tách này có bảo toàn tập pth không, có mất mát thông tin không?  Ví dụ 3: Cho R(U), U = { A, B, C, D} , F = {AB, CD} được tách thành R1(A, B), R2(C, D). Phép tách này có bảo toàn tập pth không, có mất mát thông tin không?
  • 38. 38
  • 39. 39 Các dạng chuẩn  Vấn đề đặt ra  Có cần phải tinh chỉnh thiết kế nữa hay không?  Thiết kế đã là tốt hay chưa?  Định nghĩa về các dạng chuẩn.  Mục đích: Mỗi dạng chuẩn đảm bảo ngăn ngừa (giảm thiểu) một số các dạng dư thừa hay dị thường dữ liệu  Các dạng chuẩn hay sử dụng  Dạng chuẩn 1 (1NF)  Dạng chuẩn 2 (2NF)  Dạng chuẩn 3 (3NF)  Dạng chuẩn Boye-Code (BCNF)  Dạng chuẩn 4 (4NF)
  • 40. 40 Dạng chuẩn 1 (1NF)  Đ/N: Một sơ đồ quan hệ R được gọi là ở dạng chuẩn 1 nếu tất cả các miền giá trị của các thuộc tính trong R đều chỉ chứa giá trị nguyên tố.  Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra được nữa  Ví dụ: Quan hệ không ở 1NF và quan hệ sau khi chuẩn hóa về 1NF sname city product name price Blake London Nut 100 Blake London Bolt 120 Smith Paris Screw 75 sname city item price Blake London Nut 100 Blake London Bolt 120 Smith Paris Screw 75
  • 41. 41 Dạng chuẩn 2 (2NF)  Đ/N: Một sơ đồ quan hệ R được coi là ở dạng chuẩn 2 nếu  Sơ đồ quan hệ này ở 1NF  Tất cả các thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính (Lưu ý: A là một thuộc tính khóa nếu A thuộc một khóa tối thiểu nào đó của R. Ngược lại A là thuộc tính không khóa)
  • 42. 42 Phụ thuộc hàm đầy đủ  Đ/N: Cho lược đồ quan hệ R(U), F là tập phụ thuộc hàm trên R. X, Y  U. Y được gọi là phụ thuộc đầy đủ vào X nếu: - XY thuộc F+ - ! X’  X : X’Y  F+  Các phụ thuộc hàm không đầy đủ còn gọi là phụ thuộc bộ phận
  • 43. 43 Ví dụ Sales(sid, sname, city, item, price) F = {sid  (sname,city), (sid, item)  price}  Khóa chính (sid,item)  sname, city không phụ thuộc hàm đầy đủ vào khóa chính  Sales không thuộc 2NF  Chuẩn hoá S(sid, sname, city) Sales (sid, item, price)
  • 44. 44 Dạng chuẩn 3 (3NF)  Đ/N: Một sơ đồ quan hệ R được coi là ở dạng chuẩn 3 nếu  Sơ đồ quan hệ này ở 2NF  Mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào khóa chính
  • 45. 45 Ví dụ S (sid, sname, city) Sales(sid, item, price) F = {sid  sname, city}  S, Sales thuộc dạng chuẩn 3 ItemInfo(item, price, discount). F = {itemprice, pricediscount}  thuộc tính không khóa discount phụ thuộc bắc cầu vào khóa chính item.  Vậy quan hệ này không ở 3NF.  Chuẩn hoá ItemInfo(item, price) Discount(price, discount)
  • 46. 46 Dạng chuẩn Boye-Codd  Đ/N: Một sơ đồ quan hệ R(U) với một tập phụ thuộc hàm F được gọi là ở dạng chuẩn Boye-Codd (BCNF) nếu với  XA  F+ thì  A là thuộc tính xuất hiện trong X hoặc  X chứa một khóa của quan hệ R.  Ví dụ  R = {A,B,C} ; F = {ABC , CB}.  R không phải ở BCNF vì  CB, C không phải là khóa  Chú ý:  Một quan hệ thuộc 3NF thì chưa chắc đã thuộc BCNF  Nhưng một quan hệ thuộc BCNF thì thuộc 3NF
  • 47. 47 Tách bảo toàn tập phụ thuộc hàm về 3NF  Vào: R(U), F (giả thiết F là phủ tối thiểu)  Ra: Phép tách bảo toàn tập phụ thuộc hàm về 3NF  Thuật toán B1. Với các Ai  U, Ai  F thì loại Ai khỏi R và lập 1 quan hệ mới cho các Ai B2. Nếu  f  F, f chứa tất cả các thuộc tính của R thì kết quả là R B3. Ngược lại, với mỗi X A F, xác định một quan hệ Ri(XA). Nếu  XAi, XAj thì tạo một quan hệ chung R’(XAiAj)
  • 48. 48 Ví dụ Cho R = {A,B,C,D,E,F,G} F = {AB, ACDE, EFG}  Xác định phép tách bảo toàn tập phụ thuộc hàm về 3NF [B0.Kiểm tra F có phải là phủ tối thiểu chưa] B1. không lập được quan hệ nào mới. B2. ! f  F: f chứa tất cả các thuộc tính của R B3. AB  R1(AB) ACDE  R2(ACDE) EFG  R3(EFG)
  • 49. 49 Tách không mất mát thông tin và bảo toàn tập phụ thuộc hàm về 3NF  Yêu cầu:  Bảo toàn tập phụ thuộc hàm (như thuật toán trên)  Đảm bảo là có một lược đồ con chứa khóa của lược đồ được tách  Các bước tiến hành B1. Tìm một khóa tối thiểu của lược đồ quan hệ R đã cho B2. Tách lược đồ quan hệ R theo phép tách bảo toàn tập phụ thuộc hàm (cần phải tìm phủ tối thiểu của F) B3. Nếu 1 trong các sơ đồ con có chứa khóa tối thiểu thì kết quả của B2 là kết quả cuối cùng. Ngược lại, thêm vào kết quả đó một sơ đồ quan hệ được tạo bởi khóa tối thiểu tìm được ở 1.
  • 50. 50 Ví dụ Cho R(A,B,C,D,E,F,G) F = {AB, ACDE, EFG} B1. Khóa tối thiểu cần tìm là ACDF (xem slide 18) B2. Phép tách bảo toàn tập phụ thuộc hàm R cho 3 sơ đồ con R1(AB), R2(ACDE), R3(EFG) (xem slide 47) Lưu ý: ở đây F đã là phủ tối thiểu, nếu không cần phải xác định phủ tối thiểu của tập phụ thuộc hàm F B3. Do khóa ACDF không nằm trong bất kỳ một sơ đồ con nào trong 3 sơ đồ con trên, ta lập một sơ đồ con mới R4(ACDF) Kết quả cuối cùng ta có phép tách R thành 4 sơ đồ con {R1, R2, R3, R4} là một phép tách không mất mát thông tin và bảo toàn tập phụ thuộc hàm
  • 51. 51 Tách không mất mát thông tin về BCNF  Vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F  Ra: phép tách không mất mát thông tin bao gồm một tập các sơ đồ con ở BCNF với các phụ thuộc hàm là hình chiếu của F lên sơ đồ đó.  Cách tiến hành B1. KQ = {R}, B2. Với mỗi S  KQ, S không ở BCNF, xét XA  FS, với điều kiện X không chứa khóa của S và A  X Thay thế S bởi S1, S2 với S1=A X, S2 = S A B3. Lặp (B2) cho đến khi S KQ đều ở BCNF KQ gồm các sơ đồ con của phép tách yêu cầu
  • 52. 52 Tách không mất mát thông tin về BCNF R = {A,B,C} ; F = {ABC , CB}  KQ = {R}  R không ở BCNF  Xét CB  FR: C không chứa khóa của R và B  C  Thay R bởi R1 = {C,B} và R2 = {A,C}  KQ = {R1, R2}  R1 = {C, B}, FR1 = {CB}: BCNF  R2 = {A, C}, FR2 = {}: BCNF Kết quả cuối cùng: R được tách thành R1={C,B}, R2 = {A,C}
  • 53. 53 Phụ thuộc đa trị  Đ/N: Cho R(U), X, Y U. X xác định đa trị Y hay Y phụ thuộc đa trị vào X nếu với  r xác định trên R và với hai bộ t1 và t2 bất kỳ mà t1[X] = t2[X] thì  bộ t3 : t3[X] = t1[X] = t2[X], t3[Y] = t1[Y] và t3[Z] = t2[Z] với Z = U XY  Ký hiệu XY
  • 54. 54 Phụ thuộc đa trị - Ví dụ  Lược đồ ở dạng chuẩn BCNF  TênNVTênDA  TeenNV TênConNV NHÂN VIÊN TênNV TênDA TênConNV Nam DA01 Hoa Nam DA02 Hoa Nam DA01 Lan Nam DA02 Lan t1 t2 t3
  • 55. 55 Hệ tiên đề đối với các phụ thuộc hàm và phụ thuộc đa trị Cho R(U), X, Y, Z, W  U (XY = X  Y)  A1: Phản xạ đối với FD (reflexivity): Nếu Y  X thì XY.  A2: Tăng trưởng đối với FD (augmentation): Nếu XY thì XZYZ.  A3: Bắc cầu đối với FD (transitivity): Nếu XY, YZ thì XZ.  A4: Luật bù đối với MVD (complementation): Nếu XY thì XU XY.
  • 56. 56 Hệ tiên đề đối với các phụ thuộc hàm và phụ thuộc đa trị (2) Cho R(U), X, Y, Z, W  U (XY = X  Y)  A5: Tăng trưởng đối với MVD (augmentation): Nếu XY và VW thì WXVY.  A6: Bắc cầu đối với MVD (transitivity): Nếu XY, YZ thì XZ Y.  A7: Nếu XY thì XY.  A8: Nếu XY, WZ với Z  Y và WY= thì XZ.
  • 57. 57 Các luật suy diễn bổ sung đối với các phụ thuộc đa trị  Luật hợp (union): Nếu XY, XZ thì XYZ.  Luật tựa bắc cầu (pseudotransitivity): Nếu XY, WYZ thì WXZ WY.  Luật tựa bắc cầu hỗn hợp (mixed pseudotransitivity): Nếu XY, XYZ thì XZ Y.  Luật tách (decomposition): Nếu XY, XZ thì XYZ, XY Z, XZ Y.
  • 58. 58 Bao đóng của tập phụ thuộc hàm và phụ thuộc đa trị  Đ/N: bao đóng của tập các phụ thuộc hàm và phụ thuộc đa trị D là tập tất cả các phụ thuộc hàm và các phụ thuộc đa trị được suy diễn logic từ D  Ký hiệu: D+  Kiểm tra: XY  D+?  Tính cơ sở phụ thuộc của X đối với D  Kiểm tra YX có phải là hợp của vài tập hợp trong cơ sở phụ thuộc của X hay không
  • 59. 59 Tính cơ sở phụ thuộc  Vào: Tập các phụ thuộc đa trị M trên tập thuộc tính U và tập thuộc tính X  U  Ra: Cơ sở phụ thuộc của X đối với M  Cách tiến hành: B1. Đặt T là tập các tập con Z của U: với WY  M mà WX thì Z là Y X hoặc U XY B2. T được thiết lập cho tới khi là một tập các tập rời nhau, nếu có một cặp Z1, Z2 không tách rời nhau thì thay chúng bởi Z1 Z2, Z2 Z1, Z1 Z2 với điều kiện không ghi nhận tập rỗng. Gọi S là tập thu được sau bước này. B3. Tìm các phụ thuộc có dạng VW  M và một tập Y  S : Y  W  , Y  V =  Thay Y bằng YW và Y W cho đến khi không thay đổi S được nữa B4. Tập S thu được sau bước này là cơ sở phụ thuộc của X
  • 60. 60 Phép tách không mất thông tin?  Vào: R(A1, A2, …, An), F, M, phép tách {R1, R2, …, Rk}  Ra: phép tách là mất mát thông tin hay không  Thuật toán (tổng quát hoá thuật toán trình bày ở slide 28) B.1. Thiết lập một bảng k hàng, n cột (xem B1. slide 28) B.i. Xét f = XY F: thực hiện đồng nhất bảng (xem B2. slide 28) Xét XY: nếu  2 hàng t1, t2 thuộc bảng : t1[X] = t2[X] thì thêm vào bảng đó một hàng mới u u[X]=t1[X], u[Y]=t1[Y], u[R XY] = t2[R XY] Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng B.n. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an thì phép tách là không mất mát thông tin ngược lại, phép tách không bảo toàn thông tin
  • 61. 61 Dạng chuẩn 4 (4NF)  Đ/N: Một quan hệ R ở dạng chuẩn bốn nếu có một phụ thuộc đa trị XY với Y, Y  X và XY không chứa tất cả các thuộc tính của R thì X chứa một khóa của R  Chú ý: nếu R chỉ có các phụ thuộc hàm thì dạng chuẩn bốn chính là dạng chuẩn Boye- Codd và XY phải có nghĩa là XY
  • 62. 62 Tách không làm mất mát thông tin về 4NF  Tương tự như thuật toán tách về chuẩn Boye- Codd nhưng áp dụng với phụ thuộc đa trị  Ví dụ:  Nhânviên (TênNV, TênDA, TênConNV)  Khóa: Tên NV, Tên DA, TênConNV  Quan hệ Nhânviên không ở dạng chuẩn 4  Tách thành dạng chuẩn 4:  TênNVTênDA   R1(TênNV, Tên DA) (4NF) và  R2(TênNV, TênConNV) (4NF) TênNVTênDA TênNV TênConNV
  • 63. 63 Lưu ý:  Rất hiếm các trường hợp mà 1 lược đồ ở dạng chuẩn 3 mà lại không ở dạng chuẩn 4  Hầu hết các lược đồ ở dạng chuẩn 3 thì cũng ở dạng chuân Boye-Codd
  • 64. 64 Kết luận  Tầm quan trọng của thiết kế CSDL  ảnh hưởng đến chất lượng dữ liệu lưu trữ  Hiểu quả của việc khai thác dữ liệu  Mục đích của thiết kế CSDL: tránh  Dư thừa dữ liệu  Dị thường dữ liệu khi thêm/xoá/sửa đổi  Hiểu quả trong tìm kiếm  Đưa về các dạng chuẩn  2NF: giản ước sự dư thừa để tránh các dị thuờng khi cập nhật  3NF: tránh các dị thường khi thêm/xoá  BCNF: tránh các dị thường khi cập nhật  4NF: giảm dư thừa dữ liệu do thuộc tính đa trị
  • 65. 65
  • 66. 66 Bài tập  Cho lược đồ quan hệ R(U,F) với U = {A, B, C, D, E, G, H, I} F = {AB DE, BCH, GAI, DE} 1. Hãy xác định một khóa tối thiểu của lược đồ quan hệ trên. 2. Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở trên  Cho lược đồ quan hệ R(U,F) với U = {A, B, C, D, E, G, H, I} F = {BG E, HI, BCIH, ACD} Hãy xác định một khóa tối thiểu của lược đồ quan hệ R. Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở trên
  • 67. 67 Bài tập  Cho lược đồ quan hệ R(U,F) với U= {A,B,C,D,E,G, H}, tập các phụ thuộc hàm F= {AB, EHB, CEB  G, AD  E} 1. Tìm một khóa tối thiểu của R(U,F) 2. Hãy xác định phủ tối thiểu của tập phụ thuộc hàm F cho ở trên 3. Tách bảo toàn tập phụ thuộc hàm lược đồ trên về dạng chuẩn 3 4. Tách bảo toàn tập phụ thuộc hàm và bảo toàn thông tin lược đồ trên về dạng chuẩn 3