You are on page 1of 37

Chủ biên: ThS.

Thái Thị Thanh Vân


Email: TTvanCNTT @gmail.com
DT: 0932320886

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
AX 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 AX đề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 AX 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Ệ

❑ Phân rã lược đồ nhằm mục đích tạo ra


các quan hệ mới thỏa mãn chuẩn đưa ra
mà vẫn bảo toàn sự phụ thuộc và không
làm mất mát thông tin.

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
XY đều được chứa trong Ri.
 Ký hiệu: Ri(F)={ X→Y  F+ với XY  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à AX  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

❑ Chuẩn hóa lược đồ quan hệ


❑Khái niệm
❑Các dạng chuẩn
❑Thuật toán kiểm tra các dạng chuẩn
❑Phân rã lược đồ:
❑Phân rã lược đồ bảo toàn sự phụ thuộc
❑Phân rã lược đồ bảo toàn thông tin
❑Phân rã về 3NF và BCNF

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 37

You might also like