CHƯƠNG VI:
CHUẨN HÓA CSDL
NỘI DUNG
Nguyên tắc thiết kế CSDL
Phép tách các lược đồ quan hệ
Các dạng chuẩn của lược đồ quan hệ
Cơ sở dữ liệu 2
I. Nguyên tắc thiết kế CSDL
Cơ sở dữ liệu 3
Cơ sở dữ liệu 4
II. Các dạng chuẩn của lược đồ quan hệ
Chuẩn hóa là q trình phân tích các quan hệ cho trước dựa trên
tập phụ thuộc hàm và khóa chính để:
- Tối thiểu việc dư thừa thông tin
- Tránh dị thường thơng tin
- Truy cập nhanh
Chuẩn hóa các bảng: là việc áp dụng một số quy tắc để đưa các
bảng từ dạng chuẩn thấp lên dạng chuẩn cao hơn quá trình
này thực hiện theo phương pháp trên xuống bằng việc đánh
giá mối quan quan hệ và tách quan hệ nếu cần
Cơ sở của chuẩn hóa dựa trên: phụ thuộc hàm, phụ thuộc đầy
đủ, khóa, thuộc tính khơng khóa,…
Cơ sở dữ liệu 5
Các loại dạng chuẩn gồm:
- Dạng chuẩn 1 (1NF – First Normal Form)
- Dạng chuẩn 2 (2NF – Second Normal Form)
- Dạng chuẩn 3 (3NF)
- Dạng chuẩn Boye Code (BCNF)
Cơ sở dữ liệu 6
1. Một số khái niệm cơ bản
Thuộc tính khố và khơng khố: Cho lược đồ quan
hệ R trên tập thuộc tính U={A1, .., An}.
- Thuộc tính A U được gọi là thuộc tính khố nếu A là một
thành phần thuộc một khố tối thiểu 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 khố
D là thuộc tính khơng khố
Cơ sở dữ liệu 7
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+
Y phụ thuộc hàm đầy đủ vào X nếu Y phụ thuộc
hàm vào X nhưng không phụ thuộc hàm vào
bất kỳ một tập con thực sự nào của X
Ví dụ: Cho tập F={AB->C; A->C} thì ta thấy AB->C
là phụ thuộc hàm khơng đầy đủ vì C cịn phụ thuộc
hàm vào A.
Cơ sở dữ liệu 8
Phụ thuộc bắc cầu: Cho lược đồ quan hệ R(U); X
U, A U, F là phụ thuộc hàm trên R
A được gọi là phụ thuộc bắc cầu vào X trên R nếu Y, Y
U sao cho X Y, Y A thuộc F+ nhưng Y X
khơng thuộc F+
Ngược lại, nói rằng A không phụ thuộc bắc cầu vào X hay
A phụ thuộc trực tiếp vào X
Ví dụ: Cho tập F={A->B; B->C; A->D}
=>C phụ thuộc bắc cầu vào A
Và D phụ thuộc trực tiếp vào A
Cơ sở dữ liệu 9
2. Dạng chuẩn 1NF
Định nghĩa: Quan hệ được gọi là ở chuẩn 1NF nếu
các giá trị của tất cả các thuộc tính đều phải là nguyên
tử (đơn, không phân chia được) => không chứa các
thuộc tính có giá trị lặp hoặc đa trị
Cách khác: bảng ở dạng 1NF là bảng có tồn tại PTH
có nguồn là một phần của khóa (phụ thuộc bộ
phận) .
Chú ý: khi xét dạng chuẩn nếu không nói gì thêm thì
dạng chuẩn đang xét ít nhất là đạt dạng chuẩn một
Biểu diễn sơ đồ: R(A1,A2,A3, A4, A5)
Cơ sở dữ liệu 10
VD: Cho bảng quan hệ GD (Ten_GV, MON_GD)
Ten_GV Mon_GD
Lan PASCAL, NM CSDN Không ở 1NF
Hà C, VISUAL BASIC, TK WEP ở 1NF
Ten_GV Mon_GD 11
Lan PASCAL
Lan NM CSDN
Hà C
Hà VISUAL BASIC
Hà TK WEP
Cơ sở dữ liệu
Kết luận: Để kiểm tra một lược đồ có là dạng
1NF không thực hiện kiểm tra nếu thỏa mãn:
- Khơng có thuộc tính là thuộc tính đa trị
- Khơng có thuộc tính là thuộc tính phức hợp
Cơ sở dữ liệu 12
2. Dạng chuẩn 2NF
Định nghĩa: Lược đồ quan hệ R ở 2NF khi và chỉ khi
- R đã là 1NF
- Mọi thuộc tính khơng khóa của R là phụ thuộc hàm đầy
đủ vào khóa chính
Cách khác: lược đồ quan hệ R được gọi là 2NF nếu tồn tại
phụ thuộc hàm bắc cầu vào khóa
Biểu diễn sơ đồ:
R(A1,A2,A3, A4, A5)
Mục đích:
- giản ước sự dư thừa dữ liệu
- tránh các dị thường cập nhật gây nên do sự dư thừa dữ
liệu này
Cơ sở dữ liệu 14
Cơ sở dữ liệu 15
Thuật toán kiểm tra dạng chuẩn 2
Bước 1: Tìm tất cả các khóa của 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
- Chú ý: nếu khóa có một thuộc tính đơn thì khơng cần phải
kiểm tra
Bước 3: nếu có bao đóng S+ chứa thuộc tính khơng khóa thì
quan hệ khơng đạt chuẩn 2 ngược lại thì 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ó 1 thuộc tính thì
R là 2NF
- R là 2NF X → A F+, với X K (K là khóa của R) thì:
hoặc A là thuộc tính khóa
hoặc A X (X → A là phụ thuộc hàm tầm thường)
Cơ sở dữ liệu 16
Ví dụ 1: Cho LĐQH R = {A,B,C,D,E,G} và
- F = { A → BC, C → DE, E → G }
Ta thấy A là khóa vì A+ = R (tập thuộc tính của quan
hệ).
Các thuộc tính khơng khóa là {B,C,D,E,G}.
Do khóa chỉ có một thuộc tính (các thuộc tính khác
phụ thuộc đầy đủ vào khóa) => quan hệ R ở 2NF.
Cơ sở dữ liệu 17
Ví dụ 2: Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ
thuộc hàm F = {AB C, B D, BC A}. Hỏi Q có đạt
chuẩn 2 khơng?
Khóa là K1 = AB và K2 = BC
Ta thấy B+ = BD
Vậy:
- D là thuộc tính khơng khóa
- thuộc tính khơng khóa D khơng phụ thuộc đầy đủ vào khóa
=> Q khơng đạt chuẩn 2
Cơ sở dữ liệu 18
Chú ý: nếu quan hệ không thỏa mãn điều kiện 2NF có thể chuẩn hóa
để có 2NF như sau:
- nhóm vào một quan hệ gồm các thuộc tính phụ thuộc hồn tồn vào
khố và giữ lại khố của quan hệ đó
- nhóm vào một quan hệ khác các thuộc tính phụ thuộc vào một phần
của khố, lấy phần đó làm khố chính cho quan hệ .
Ví dụ 1:
- Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc hàm F = {AB C, B D,
BC A} => Không đạt chuẩn 2
- Tách thành: Q1( B,D) và Q2( A, B, C)
Ví dụ 2:
- trong quan hệ R2 (Số hoá đơn, Số sản phẩm, Tên sản phẩm, Lượng yêu
cầu) có phụ thuộc hàm : Số sản phẩmTên sản phẩm trong đó Số sản
phẩm là một phần của khoá => quan hệ chưa ở dạng chuẩn 2
- ta tách R2 thành R3 và R4 như sau :
R3 (Số hoá đơn, Số sản phẩm, Lượng yêu cầu)
R4 (Số sản phẩm, Tên sản phẩm)
Cơ sở dữ liệu 19
Ví dụ: xét lược đồ quan hệ:
NHÂNVIÊN_DỰÁN( MãsốNV, MãsốDA, Sốgiờ, HọtênNV, TênDA,
ĐịađiểmDA)
với các phụ thuộc hàm:
- MãsốNV, MãsốDA → Sốgiờ
- MãsốNV → HọtênNV
- MãsốDA →TênDA, ĐịađiểmDA
NX: có những thuộc tính khơng khố phụ thuộc vào một bộ phận
của khố chính, như vậy nó khơng thoả mãn điều kiên 2NF.
Áp dụng phương pháp chuẩn hoá trên, lược đồ được tách thành
các lược đồ như sau:
- N_D1(MãsốDA, TênDA, ĐịađiểmDA)
- N_D2(MãsốNV , HọtênNV)
- N_D3(MãsốNV, MãsốDA, Sốgiờ)
Cơ sở dữ liệu 20
Ví dụ 3: cho R = {A, B, C, D, E, G}
F = { ABC, DEG, CA,BEC, BCD, CGBD,
ACDB, CEAG }
Kiểm tra lược đồ có ở dạng 2NF
Nếu chưa ở dạng chuẩn 2NF thì đưa về dạng 2NF
Cơ sở dữ liệu 21