Professional Documents
Culture Documents
LÝ THUYẾT CƠ SỞ DỮ LIỆU
Chuẩn hóa dữ liệu (Data normalization)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 1
Author: Tran Minh Quang
Chuẩn hóa dữ liệu
Mục tiêu: tránh sự dị thường (anomaly)
trong các thao tác cập nhật dữ liệu
Insert anomalies
Deletion anomalies
Modification anomalies
Luật cơ bản: Mỗi bảng không nên thuộc về
nhiều hơn 1 kiểu thực thể (hay kiểu quan
hệ)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 2
Author: Tran Minh Quang
Sự dị thường trong các phép cập nhật
Cho lược đồ quan hệ:
Sv_mhoc(Ma_sv, ten, ngay_sinh, ten_mh, ngay_kt, diem)
Ma_sv Ten Ngay_sin ten_m Ngay_kt D
Sv01 An h
01/01/19 h
C 20/07/200 iem
7
Sv01 An 78
01/01/19 0
C++ 25/07/200 8
Sv01 An 78
01/01/19 0
Java 30/07/200 5
Sv02 Bình 78
15/04/19 0
Lisp 20/07/200 6
78 0
Insert: Quan tâm đến nhiều thông tin lặp lại
Delete: Xóa Sv02 -> mất thông tin về môn học Lisp
Modify: Sửa tên của Sv01 thì phải sửa ở cả 3 records
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 3
Author: Tran Minh Quang
Sự dị thường trong các phép cập nhật
Tách quan hệ trên thành 2 quan hệ:
SV Hoc
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 5
Author: Tran Minh Quang
Phụ thuộc hàm (Functional dependency - FD)
Lưu ý:
Khóa trong quan hệ xác định hàm mọi thuộc tính
khác
Nếu có X->Y chưa hẳn là Y->X
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 8
Author: Tran Minh Quang
Khóa của lược đồ quan hệ
Siêu khóa (seuperkey)
Là một hay một tập thuộc tính xác định duy nhất một
hàng trong bảng
SK là siêu khóa của R khi với mọi t1, t2 thuộc bất kỳ thể
hiện r của R ta luôn có t1[SK] ≠ t2[SK]
SK là siêu khóa của R <=> SK xác định hàm mọi thuộc
tính của R (SK -> R)
Siêu khóa tối tiểu (minimal superkey)
Siêu khóa tối tiểu K là một siêu khóa kèm thêm tính chất
là nếu loại bỏ khỏi K bất kỳ một thuộc tính nào đó thì K
không còn là siêu khóa nữa
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 9
Author: Tran Minh Quang
Khóa của lược đồ quan hệ (2)
Định nghĩa khóa dựa trên tập phụ thuộc hàm
Cho R(U,F), U là tập thuộc tính, F là tập phụ thuộc hàm
trong R
Với X ⊂ U, X là một khóa của R nếu:
X->U∈F+ , và
¬∃Y ⊂ X, Y ≠ X, mà Y->U∈F+
R phải có ít nhất 1 khóa và có thể có nhiều khóa
Chú ý:
Cho R(U), ta luôn có U->U. Nếu U thỏa điều kiện 2 ở
trên thì U là khóa
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 10
Author: Tran Minh Quang
Khóa của lược đồ quan hệ (3)
Khóa chính (primary key): Là một siêu khóa tối
tiểu được người phân tích chọn để cài đặt
Khóa dự tuyển (candidate key): Là các siêu khóa
tối tiểu khác không được chọn làm khóa chính
Khi cài đặt vào CSDL, khoá dự tuyển trở thành
khóa duy nhất (unique key) và còn được gọi là
khóa thứ cấp (secondary key)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 11
Author: Tran Minh Quang
Khóa của lược đồ quan hệ (4)
Khóa giúp cho việc nhận biết và tìm record một
cách nhanh chóng trong các quan hệ
Ràng buộc đối với khóa chính: NOT NULL và
UNIQUE
Ràng buộc đối với khóa dự tuyển: UNIQUE
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 12
Author: Tran Minh Quang
Bao đóng của tập thuộc tính
Bao đóng của tập thuộc tính X tương ứng tập phụ thuộc
hàm F (ký hiệu là XF+) là tất cả các thuộc tính A sao cho
X->A có thể được suy dẫn logic từ F X->A∈ F+ <=>A ∈XF+
Thuật toán tìm XF+
Input: R(U, F), X ⊂ U
Output: XF+
Phương pháp:
X0 = X;
∈ ⊂
Lặp: Xi+1 = Xi Z sao cho ∃(Y->Z) F và Y Xi cho đến khi Xi+1 = Xi
Ta có XF+ = Xi
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 13
Author: Tran Minh Quang
Thuật toán tìm khoá
Cho R(U,F), các ký hiệu trong thuật toán tìm khoá:
U
right(ULeft): Các thuộc tính ở vế phải của tất cả các PTH
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 15
Author: Tran Minh Quang
Phân rã các lược đồ quan hệ
Phân rã (decomposition) một lược đồ quan hệ R(U) là thay R bằng
tập các lược đồ quan hệ con R1, R2, .., Rk của R sao cho
U1∪ U2 ∪… ∪Uk = U, với Ui là tập thuộc tính của Ri, trong đó giao của
các Ui không nhất thiết phải rỗng
• Khi muốn khôi phục lại r (thể hiện của R) ta thực hiện phép kết
của các ri ( thể hiện của Ri tương ứng)
• Hỏi:
• Dữ liệu lưu tại các ri có phản ánh trung thực r hay không?
• Khi cần có thể khôi phục lại được r từ các ri hay không?
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 16
Author: Tran Minh Quang
Phân rã bảo toàn nội dung
Cho R(U,F). Nếu R được phân rã bởi phép phân rã ρ thành các Ri,
sao cho với mọi thể hiện r(R) thoả tập phụ thuộc hàm F, ta có được
r = s (với s có được bằng cách kết các ri), lúc đó ρ được gọi là một
phân rã bảo toàn nội dung.
• Khi phân rã bảo toàn nội dung, r ban đầu luôn được tái tạo một
các trung thực bằng cách kết nối các ri
• Kết trong trường hợp này gọi là kết không mất thông tin (lossless
join)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 17
Author: Tran Minh Quang
Phân rã bảo toàn nội dung (2)
Định lý:
Cho R(U,F). Phân rã R thành R1, R2 là bảo toàn nội dung (btnd)
tương ứng với F nếu và chỉ nếu
R ∩ R -> R - R hay R ∩ R -> R - R
1 2 1 2 1 2 2 1
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 18
Author: Tran Minh Quang
Phân rã bảo toàn phụ thuộc hàm
• Chiếu của một tập pth F trên tập thuộc tính Z, ký hiệu ¶Z(F), là
tập các phụ thuộc hàm X -> Y trong F+ sao cho XY⊂ Z
• Khi phân rã R(U, F) thành các Ri(Ui, Fi) thì:
∪
Ui = U và Fi = ¶Ui (F)
• Phép phân rã ρ là bảo toàn pth nếu:
∪
Fi suy dẫn được tất cả các pth trong F
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 19
Author: Tran Minh Quang
Phân rã bảo toàn phụ thuộc hàm (2)
• Các pth trong F là các ràng buộc toàn vẹn trên R
• Khi phân rã btnd nhưng không bảo toàn pth thì dữ liệu có thể
được phục hồi giống như ban đầu nhưng không đảm bảo ràng
buộc toàn vẹn dữ liệu
• Những pth không được bảo toàn trong phép phân rã cần được
kiểm tra, thông qua việc kết nối một số ri, trong quá trình cập nhật
dữ liệu
• Trường hợp lý tưởng là phân rã vừa btnd vừa bảo toàn pth
• Chỉ những phép phân rã bảo toàn nội dung mới được cài đặt
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 20
Author: Tran Minh Quang
Chuẩn hoá dữ liệu và các dạng chuẩn
Định nghĩa:
Dạng chuẩn (normal form): Là trạng thái của
một quan hệ có được do áp dụng những quy
tắc liên quan đến pth của quan hệ đó.
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 23
Author: Tran Minh Quang
Dạng chuẩn 1 (First normal form – 1NF)
Lược đồ quan hệ đạt 1NF nếu mọi hàng trong quan hệ
tương ứng có cùng số thuộc tính và các thuộc tính này chỉ
chứa các trị nguyên tố
VD: Lược đồ quan hệ sau không đạt 1NF
Family Name Children Cars
John {Mike, Smith} {PP001}
Paul {PP002,
PP003}
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 25
Author: Tran Minh Quang
Dạng chuẩn 2 (Second normal form – 2NF)
Lược đồ quan hệ R đạt 2NF nếu:
R đạt 1NF
Mọi thuộc tính không nguyên tố A trong R phụ thuộc hàm đầy đủ
vào R
Định nghĩa khác:
Lược đồ quan hệ R đạt 2NF nếu với mọi FD X->Y đúng trong
R thì:
1) A ⊂ X hoặc
2) A là thuộc tính nguyên tố trong R hoặc
3) X không là tập con của một khoá nào hoặc
4) X là siêu khoá trong R
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 26
Author: Tran Minh Quang
Dạng chuẩn 2 (2)
VD: Lược đồ quan hệ sau không đạt 2NF
Inventory Part Warehouse Quantity WHouse-
address
Bolt King Bros. 20 Long St. 20
But King Bros. 30 Long St. 20
Screw Lucid Ltd. Null Compton Pl.10
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 27
Author: Tran Minh Quang
Dạng chuẩn 2 (3)
Lược đồ Inventory nên được phân rã thành các lược
đồ sau:
P(part, warehouse, quantity)
F = {part, warehouse -> quantity}
W(warehouse, WHouse-address)
F = {warehouse -> WHouse-address}
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 28
Author: Tran Minh Quang
Phụ thuộc hàm bắc cầu (transitive FD)
Phụ thuộc hàm X->A đúng trong R là bắc cầu nếu tồn tại tập con
khác rỗng của R, Z không phải là tập con của một khoá nào trong R,
và các pth X->Z và Z->A là đúng trong R
Đọc là: “A phụ thuộc bắc cầu vào X trong R” hay “X->A là
pth bắc cầu”
Định nghĩa khác:
Nếu X->Z
Z ->X Thì X->A là pth bắc cầu
Z->A
A ⊂ (X ∪ Z)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 29
Author: Tran Minh Quang
Dạng chuẩn 3 (Third normal form – 3NF)
Lược đồ quan hệ R đạt 3NF nếu:
R đạt 2NF
Không có thuộc tính không nguyên tố nào của R phụ thuộc hàm
bắc cầu vào khoá của R
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 31
Author: Tran Minh Quang
Dạng chuẩn 3 (3)
Ví dụ: LOACATION(city, street, zip-code)
F = {city, street -> zip-code, zip-code -> city}
Khoá 1: city, street
Khoá 2: street, zip-code
Lược đồ Location dạt 3NF vì thuộc tính city ở vế phải
của FD zip-code -> city là thuộc tính nguyên tố.
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 32
Author: Tran Minh Quang
Dạng chuẩn 3 (4)
Ví dụ: LOACATION(city, street, zip-code)
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 33
Author: Tran Minh Quang
Dạng chuẩn Boyce-Codd (BCNF)
Lược đồ quan hệ R đạt BCNF nếu nếu với mọi FD X -> A
đúng trong R thì X là siêu khóa:
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 35
Author: Tran Minh Quang
Chuẩn hoá CSDL
Chuẩn hoá các lược đồ quan hệ
Ví dụ:
S(s#, city, status, p#, qty)
F = { s# -> city, s# -> status, city -> staus,
(s#, p#) -> qty, (s#, p#) -> city, (s#, p#) -> status}
Khoá 1: s#, p#
- Đạt 1NF
- Không đạt 2NF vì có các FD: s# -> city; s# -> status
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 36
Author: Tran Minh Quang
Chuẩn hoá CSDL (2)
Phân rã S(s#, city, status, p#, qty) thành các lược đồ:
SP(s#, p#, qty) BCNF
SUPPLIER(s#, city, status) 2NF
F = { s# -> city, city -> staus, s# -> status}
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 37
Author: Tran Minh Quang
Tổng kết về chuẩn hoá CSDL
Mục tiêu của các dạng chuẩn trên quan hệ là hạn chế
những dư thừa trong dữ liệu lưu trữ.
Những dư thừa dữ liệu là do phát sinh từ mối liên
quan giữa các mục dữ liệu thể hiện qua các phụ
thuộc hàm.
Dư thừa dữ liệu dẫn đến những dị thường khi thêm,
xoá, cập nhật dữ liệu.
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 38
Author: Tran Minh Quang
Tổng kết về chuẩn hoá CSDL (2)
Trong 2NF và 3NF vẫn còn dư thừa dữ liệu
2NF: loại được sự phụ thuộc riêng phần vào khoá,
vẫn tồn tại phụ thuộc bắc cầu vào khoá.
3NF: loại được sự phụ thuộc bắc cầu vào khoá đối với
những thuộc tính không nguyên tố.
BCNF: loại bỏ mọi dư thừa dữ liệu mà phụ thuộc hàm
có thể tạo ra (không thể suy ra giá trị tại một ô nào
trong bảng bằng cách chỉ sử dụng các phụ thuộc hàm
cùng với các số liệu đang có trong bảng).
Dạng chuẩn của 1 lược đồ csdl bằng với dạng chuẩn
của lược đồ quan hệ có dạng chuẩn thấp nhất
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 39
Author: Tran Minh Quang
Tổng kết về chuẩn hoá CSDL (3)
Để đạt được dạng chuẩn cao (ít dư thừa dữ liệu), một
lược đồ quan hệ thường được phân rã thành nhiều
lược đồ quan hệ con.
Một lược đồ quan hệ luôn có thể được phân rã thành
các lược đồ quan hệ con đạt 3NF vừa bảo toàn nội
dung vừa bảo toàn phụ thuộc hàm.
Một lược đồ quan hệ luôn có thể được phân rã thành
các lược đồ quan hệ con đạt BCNF bảo toàn nội
dung nhưng có thể không bảo toàn được tập phụ
thuộc hàm.
Database course
Department of Information Technology (DIT)
Chapter 5: Logical Database Design and The Relational Model
HCM city Polytechnics University Slide 40
Author: Tran Minh Quang