Professional Documents
Culture Documents
Bộ môn Khoa Học Máy tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 1
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 2
1. Nắm được khái niệm chuẩn hóa, các
dạng chuẩn, thuật toán kiểm tra các
dạng chuẩn.
2. Nắm được khái niệm về phân rã lược
đồ, các thuật toán phân rã về 3NF và
NCNF.
3. Sử dụng được các khái niệm đã học để
thiết kế và từng bước chuẩn hóa lược đồ
CSDL cho bài toán thực tế.
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 3
Chuẩn hóa là một quá trình từng bước để thay thế tập các quan hệ
cho trước thành các quan hệ có cấu trúc đơn giản hơn và chuẩn hơn.
Mục đích của chuẩn hóa là loại bỏ các bất thường của một quan hệ để
có được các quan hệ có cấu trúc tốt hơn, nhỏ hơn.
Quan hệ có cấu trúc tốt là quan hệ có sự dư thừa dữ liệu tối thiểu và cho phép
người dùng thêm sửa xóa dữ liệu mà không gây ra sự mâu thuẫn dữ liệu.
Chuẩn hóa là một kỹ thuật tiếp cận từ dưới lên – bắt đầu từ mối liên
hệ giữa các thuộc tính.
Chú ý: một hướng tiếp cận để thiết kế CSDL khác (từ trên xuống) đã
được đề cập trong chương 2 (mô hình thực thể liên kết).
4 2/22/2023
Chuẩn hóa thường được thực hiện qua nhiều bước, mỗi bước tương
ứng với một dạng chuẩn. Có bốn dạng chuẩn:
Dạng chuẩn 1 – 1NF (First Normal Form)
Dạng chuẩn 2 – 2NF
Dạng chuẩn 3 – 3NF
Dạng chuẩn Boyce-Codd - BCNF
Khi một yêu cầu chuẩn hóa không được thỏa mãn thì quan hệ vi phạm
sẽ được phân rã thành các quan hệ mới sao cho các quan hệ mới này
thỏa mãn yêu cầu chuẩn hóa (gọi là phân rã các dạng chuẩn).
5 2/22/2023
A được gọi là thuộc tính khoá nếu A là một thành phần
thuộc một khoá nào đó của R, ngược lại A được gọi là
thuộc tính không khóa
Ví dụ: Cho lược đồ R = <U,F>
U = { A, B, C, D }
F = { AB → C, B → D, BC → A }
Ta thấy AB và BC là khoá.
A, B, C là thuộc tính khoá
D là thuộc tính không khoá
6
2/22/2023
Phụ thuộc hàm đầy đủ: Cho lược đồ quan hệ R(U) với U = { A1, ... , Ak
}. X,Y U, và X ≠ Y. Nói rằng, Y là phụ thuộc hàm đầy đủ vào X nếu: X
→ Y thuộc F+ với mọi tập con thực sự X’ của X thì X’ → Y không thuộc
F+.
VD: {AB→C, A→C}, C không phụ thuộc hàm đầy đủ vào AB
Phụ thuộc bắc cầu: Một phụ thuộc hàm X→Y trong một lược đồ
quan hệ R là một phụ thuộc hàm bắc cầu nếu có một tập hợp thuộc
tính không khoá Z (không phải là một khoá hay tập con của một
khoá nào) mà X→Z và Z→Y đều đúng.
7
2/22/2023
Định nghĩa: Lược đồ quan hệ R được gọi là 1NF nếu và chỉ nếu
tất cả các thuộc tính của R thoả mãn cả hai điều kiện sau:
- là nguyên tố.
- giá trị của các thuộc tính trên các bộ là đơn trị.
▪ Cách đưa một bảng chưa chuẩn hóa về dạng chuẩn 1:
▪ Một bảng ở dạng chưa chuẩn hóa nếu bảng này chứa một hoặc nhiều
nhóm lặp lại, hoặc chứa các giá trị phức hợp.
▪ Ví dụ: Emp_ID Name Dept_ID Dept_name Course Grade
100 Margaret Simpson D01 Marketing SPSS 10
Surveys 9
140 Alan Beeton D02 Accounting TaxACC 8
110 Chris Lucero D03 Information System SPSS 10
C++ 7
190 Lorenze Davis D04 Finance Java 9
150 Susan Martin D01 Marketing SPSS 8
Java 8
8
2/22/2023
▪ Để đưa một bảng chưa chuẩn hóa về dạng chuẩn 1, ta có hai cách:
▪ Loại bỏ các nhóm lặp lại bằng cách điền dữ liệu thích hợp vào các cột trống của hàng chứa
dữ liệu lặp lại. Ví dụ:
Emp_ID Name Dept_ID Dept_name Course Grade
100 Margaret Simpson D01 Marketing SPSS 10
100 Margaret Simpson D01 Marketing Surveys 9
140 Alan Beeton D02 Accounting TaxACC 8
110 Chris Lucero D03 Information System SPSS 10
110 Chris Lucero D03 Information System SPSS 7
190 Lorenze Davis D04 Finance Java 9
150 Susan Martin D01 Marketing SPSS 8
150 Susan Martin D01 Marketing Java 8
▪ Tạo bảng mới chứa các dữ liệu lặp lại. Ví dụ:
Emp_ID Name Dept_ID Dept_name Emp_ID Course Grade
100 Margaret Simpson D01 Marketing 100 SPSS 10
140 Alan Beeton D02 Accounting 100 Surveys 9
110 Chris Lucero D03 Information System 140 TaxACC 8
190 Lorenze Davis D04 Finance 110 SPSS 10
150 Susan Martin D01 Marketing 110 SPSS 7
190 Java 9
150 SPSS 8
150 Java 8
9
2/22/2023
Định nghĩa: Lược đồ quan hệ R được gọi là đạt chuẩn 2NF nếu
R là 1NF và mọi thuộc tính không khóa đều phụ thuộc hàm
đầy đủ vào khóa.
Ví dụ: Lược đồ quan hệ sau có ở dạng 2NF không?
ChitietHĐ(SốHĐ, Mãhàng, Tênhàng, Sốlượng) có các phụ
thuộc hàm sau:
{SốHĐ, Mãhàng} → Sốlượng
Mãhàng → Tênhàng
10
2/22/2023
Cho lược đồ quan hệ:
NHANVIEN (MNV, HT, NS, HSL, MACV, PC)
Tập các phụ thuộc hàm:
F = {MNV → HT, NS, HSL, MACV, MCV→ PC}
Lược đồ quan hệ có ở dạng 2NF không?
11
2/22/2023
Thuật toán:
Bước 1: Tìm tất cả các khóa của lược đồ quan hệ
Bước 2: Với mỗi khóa K, tìm bao đóng của tất cả các tập con thực sự S
của K
Bước 3: Nếu tồn tại bao đóng S+ chứa thuộc tính không khóa thì lược
đồ quan hệ không đạt chuẩn 2, ngược lại thì lược đồ quan hệ đạt chuẩn 2.
Nhận xét: Nếu mọi khóa của lược đồ quan hệ R chỉ có một
thuộc tính thì R là 2NF.
12
2/22/2023
Ví dụ 1: Cho R(U,F), U={A,B,C,D}, F= {AB → C, B → D, BC
→ A}. R có đạt chuẩn 2 không?
Ví dụ 2: Cho R(U,F), U = {A,B,C,D,E,G} và F = { A → BC,
C → DE, E → G }. Lược đồ quan hệ ở dạng chuẩn nào?
13
2/22/2023
Định nghĩa 1: Lược đồ R ở 3NF nếu:
- R ở dạng chuẩn 2
- Mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào một khóa bất kỳ
của R.
Định nghĩa 2: Lược đồ ở dạng 3NF nếu: xét mọi pth X → A F+ với
AX thì:
Hoặc X là siêu khóa
Hoặc A là thuộc tính khóa.
Ví dụ: Cho NHANVIEN (MaNV, TenNV, NgSinh, Diachi,
MaP,TenPhong, NgayNC) và các phụ thuộc hàm:
MaNV → TenNV, NgSinh, Diachi, MaP
MaP→ TenPhong, NgayNC
Lược đồ quan hệ có ở dạng 3NF không?
14
2/22/2023
Thuật toán:
- Bước 1: tìm tất cả khóa của R
- Bước 2: từ F tạo tập phụ thuộc hàm tương đương F’ có vế phải một
thuộc tính
- Bước 3: Kiểm tra
Nếu mọi phụ thuộc hàm X→A F’ với AX đều có X là siêu
khóa hoặc A là thuộc tính khóa thì R đạt chuẩn 3
Ngược lại R không đạt chuẩn 3
Nhận xét: Nếu lược đồ quan hệ R không chứa thuộc tính không khoá
thì R là dạng chuẩn ba.
15
2/22/2023
Ví dụ 1: Cho lược đồ quan hệ R(U,F); U= {A,B,C,D} và
F = { AB →C, D →B, C →ABD}. Hỏi R có đạt chuẩn 3
không?
Ví dụ 2: Xét LĐQH R (U,F) với U={A, B, C, D, E} và F
= {AB→CE, E→AB, C→D}. Xác định dạng chuẩn cao
nhất của lược đồ.
16
2/22/2023
Lược đồ quan hệ R được gọi là ở dạng chuẩn Boye_Codd
nếu với mọi pth X→A F với AX thì X là một siêu
khóa.
Ví dụ:
HOCVIEN(maHV, khoahoc, bienlai)
F={ maHV, khoahoc→ bienlai; bienlai → khoahoc}
➔ có khoá: {maHV,khoahoc}
Quan hệ trên ở dạng BCNF không?
17
2/22/2023
Thuật toán:
Bước 1: Tìm tất cả các khóa của quan hệ R
Bước 2:
- Nếu mọi pth X→A F đều có X là siêu khóa thì R đạt chuẩn BCNF
- Ngược lại R không đạt chuẩn BCNF ( X → A mà X không là siêu khóa)
▪ Chú ý: mọi phụ thuộc hàm đều có vế trái là khóa thì đạt chuẩn
BCNF.
Ví dụ: Cho R(U,F); U = {A,B,C,D,E,I} và F = { ACD → EBI, CE
→AD}. R có đạt chuẩn BCNF hay không?
18
2/22/2023
Thuật toán:
Bước 1: Tìm tất cả các khóa của lược đồ
Bước 2: Kiểm tra chuẩn BCNF, nếu đúng thì R ở dạng BCNF, kết
thúc và ngược lại sang bước tiếp theo
Bước 3: Kiểm tra chuẩn 3NF, nếu đúng thì R ở dạng 3NF, kết thúc và
ngược lại sang bước tiếp theo
Bước 4: Kiểm tra chuẩn 2NF, nếu đúng thì R ở dạng 2NF, kết thúc và
ngược lại R đạt 1NF.
Ví dụ: Cho R(A,B,C,D,E) và F = {AB→CE, E→AB, C→D}.
Xác định dạng chuẩn cao nhất của R?
19
2/22/2023
II. PHÂN RÃ LƯỢC ĐỒ QUAN HỆ
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 20
Định nghĩa: Phép tách lược đồ quan hệ R= {A1, A2, .. An}
là việc thay thế lược đồ quan hệ R bằng tập các lược đồ
con {R1, R2, .., Rk}, trong đó
Ri R, i = 1,..,k - Ri là các lược đồ con
và R = R1 R2 ... Rk
Không đòi hỏi các Ri phải là phân biệt
21
2/22/2023
Cho lược đồ quan hệ: CT ( MaCTY, MH , ĐC, GIA) và tập
PTH: F = { MaCTY→ DC; {MACTY,MH} → GIA }
22
2/22/2023
Định nghĩa tập phụ thuộc hàm của các lược đồ con trong
phép tách:
Cho trước một tập hợp các phụ thuộc hàm F trên R(A1,A2,...,An), D =
(R1, R2, ..., Rm) là một phép tách. Phép chiếu của F trên Ri, ký hiệu là
một tập các phụ thuộc hàm X→Y F+ sao cho các thuộc tính trong
XY đều được chứa trong Ri.
Ký hiệu: Ri(F)={ X→Y F+ với XY Ri}
Thuật toán tìm hình chiếu của F trên Ri
Bước 1: Tìm các tập con của Ri
Bước 2: Tính bao đóng của các tập con.
Bước 3: Fi = {Tập các pth X->Y mà X Y Ri}
23
2/22/2023
Cho lược đồ quan hệ R(A,B,C) và F={A→B,
B→C, C→A }. Phép tách D={R1,R2} tách R thành
hai lược đồ R1(A,B) và R2 (B,C). Xác định hình
chiếu của F trên R1 và R2 ( hay tính các tập phụ
thuộc hàm F1 , F2 của R1 và R2).
24
2/22/2023
Phép tách D = (R1, R2, ..., Rm) bảo toàn phụ thuộc hàm đối
với F nếu hợp của các phép chiếu của F trên mỗi Ri trong D là
tương đương với F. Điều đó có nghĩa là (Ri(F))+ =F+.
Nhận xét: Để xác định phép tách D = (R1, R2, ..., Rm) có bảo
toàn phụ thuộc hàm hay không thì xét xem mỗi phụ thuộc
hàm X→Y F có phải là thành viên của tập phụ thuộc hàm
G=(Ri(F)) hay không.
Ví dụ: Cho lược đồ quan hệ R{A,B,C} và F={AB→C,
C→A}. Phép tách D={R1,R2} tách R thành hai lược đồ
R1{B,C} và R2{A,C}. Hỏi phép tách D có bảo toàn phụ thuộc
hàm không?
25
2/22/2023
Giả sử R tách thành các lược đồ con R1, R2, .., Rk và F là
một tập phụ thuộc hàm.
Nói rằng phép tách R thành các lược đồ con R1, R2, …, Rk
là tách - kết nối không mất mát thông tin đối với F nếu
với mỗi quan hệ r trên R thoả F thì
r = R1(r) * R2 (r) * ... * Rk(r)
tức là r được tạo nên từ phép kết nối tự nhiên của các
hình chiếu của nó trên các Ri, i= 1..,k
26
2/22/2023
Input:
- R = {A1, A2, .., An} – n thuộc tính tập pth F và
- phép tách p = (R1, R2, .., Rk) – k lược đồ con
Output: Kiểm tra phép tách có mất mát thông tin hay
không ?
27
2/22/2023
Bước 1: Lập bảng với n+1 cột và k+1 hàng
- Cột thứ j thuộc tính thứ j của lược đồ
- Hàng thứ i lược đồ Ri.
- Tại ô (i,j) điền kí hiệu aj nếu Aj Ri, ngược lại điền kí hiệu bij
Bước 2: Lần lượt xét các pth (X→Y) F, thay đổi giá trị cho bảng theo
nguyên tắc: Nếu tồn tại các hàng mà tất cả các cột tương ứng với thuộc tính X
có giá trị như nhau thì đồng nhất giá trị cho các thuộc tính ở Y
- nếu có một giá trị aj trong các cột tương ứng với các thuộc tính của Y
thì thay thế hết thành aj, nếu không thay thế hết bằng ký hiệu bij
- Lặp lại bước 2 (kể cả lặp lại các phụ thuộc hàm đã áp dụng) cho tới khi
không làm thay đổi gì bảng nữa
Bước 3: Đánh giá kết quả
- Nếu xuất hiện một hàng gồm toàn kí hiệu a1, a2, .. , an thì phép tách-kết nối là
không mất mát thông tin,
- Ngược lại là phép tách-kết nối mất mát thông tin.
28
2/22/2023
R={MSNV,TenNV,MaSoDA,TenDA, DiadiemDa, Sogio}
F = { MSNV → TenNV,
MasoDA → {TenDA, DiadiemDA},
{MaSoDA, MSNV} → Sogio }
Kiểm tra phép tách thành
- R1 = { MSNV, TenNV}
- R2 = { MaSoDa, TenDA, DiadiemDA}
- R3 = { MSNV, MasoDA, Sogio}
Có mất mát thông tin?
29
2/22/2023
Cho quan hệ R = ABCDE,
Tập phụ thuộc hàm F:
- A→C B→C
- C→D DE → C
- CE → A
Tách thành các quan hệ: R1 = AD, R2 = AB, R3 = BE, R4 =
CDE, R5 = AE
Kiểm tra phép tách trên có mất mát thông tin không?
30
2/22/2023
Input: Quan hệ R và tập PTH F
Output: tách thành các lược đồ đạt BCNF
Các bước:
- Ban đầu phép tách S chỉ là R
- Chọn pth X→A trong đó X không là siêu khóa của S và AX PTH
vi phạm BCNF
- Thay thế S bởi S1 và S2
S1 = XA
S2 = S \ A (loại thuộc tính A khỏi S)
- Quá trình trên tiếp túc cho đến khi tất cả các lược đồ quan hệ đều ở
BCNF
31
2/22/2023
Cho R = { C, S, Z}, Phụ thuộc hàm: CS→Z, Z →C
Tìm dạng chuẩn cao nhất của lược đồ. Nếu R chưa là BCNF thì tách
R thành các lược đồ đạt chuẩn BCNF.
32
2/22/2023
Input: Lược đồ R và tập các phụ thuộc hàm F
Output: Tách thành các lược đồ ở 3NF
Thuật toán:
- Tìm phủ tối thiểu Ftt của F.
- Nếu có một phụ thuộc hàm nào của Ftt mà liên quan tới tất cả các thuộc
tính của R thì kết quả phép tách chính là R (R không thể tách được).
- Ngược lại,
Với mỗi vế trái X của một phụ thuộc hàm xuất hiện trong Ftt hãy tạo
một lược đồ trong D với các thuộc tính {X{A1}{A2}...{Ak}},
trong đó X→A1, X→A2,..., X→Ak là các phụ thuộc hàm trong Ftt với
X là vế trái (X sẽ là khoá của quan hệ này).
Nếu có một lược đồ con chứa một khoá K của R thì kết thúc thuật
toán. Ngược lại, tạo một lược đồ con chứa các thuộc tính tạo nên một
khoá của R.
33
2/22/2023
Cho lược đồ quan hệ R= < U, F> với U = {A,
B, C, D} và tập phụ thuộc hàm F= {B→CD,
AB→C, C→D}.
Xác định dạng chuẩn cao nhất? Tách R về dạng
3NF vừa bảo toàn thông tin vừa bảo toàn PTH.
34
2/22/2023
BÀI 1. Cho lược đồ quan hệ R= <U , F> với tập thuộc tính U =
ABCDEHG và tập phụ thuộc hàm F={ DE→ G, E→ A, H→ C,
CG→ H, DG→ EA, D→ B }
a. Xác định khoá của lược đồ quan hệ trên.
b. Xác định dạng chuẩn cao nhất của lược đồ quan hệ trên.
BÀI 2. Xác định dạng chuẩn cao nhất của lược đồ quan hệ với các
thuộc tính ABCDEF và tập phụ thuộc hàm { AB→C, C→B,
ABD→E, F→A }
BÀI 3. Cho W= < R,F> R = { A, B, C, D }
F= { B → D, A → C, C → ABD }. Hỏi W có là 2NF, 3NF không ?
35
2/22/2023
BÀI 4. Cho lược đồ R = (BOISQD) và
F = { S→D, I→B, IS→Q, B→O }
a. Chứng tỏ rằng phép tách: R = (SD, IB, ISQ, BO) là phép
tách không mất mát thông tin.
b. Chứng tỏ phép tách trên là ở dạng 3NF.
BÀI 5. Xác định dạng chuẩn cao nhất của lược đồ quan hệ sau: H =
(U,F); U=ABCD;
F = { CD→B, A →C, B→ACD }
36
2/22/2023
Tóm tắt nội dung bài học
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 37