1. Giới thiệu chung
1.1. Chuẩn hoá Trong một số trường hợp quan hệ có thể chứa các thông tin trùng lặp (dư thừa), nên việc cập nhật dữ liệu (thêm, sửa, huỷ) gây ra những dị thường.
Các quan hệ trên cần thiết phải biến đổi thành các dạng phù hợp hơn được gọi là chuẩn hoá.
Cơ sở dữ liệu
2
1. Giới thiệu chung
1.2. Quan hệ được chuẩn hoá Là quan hệ trong đó mỗi miền của một thuộc tính chỉ chứa những giá trị nguyên tố tức là không phân nhỏ được nữa
1.3. Quan hệ không chuẩn hoá Quan hệ có chứa các miền giá trị là
không nguyên tố
Cơ sở dữ liệu
3
Mỗi quan hệ thuộc một trong các dạng
Không chuẩn hoá
Chuẩn 1
Chuẩn 2
Chuẩn 3
Chuẩn Boyce codd
Cơ sở dữ liệu
4
2. Dạng chuẩn 1
Định nghĩa
Quan hệ R ở dạng chuẩn 1 (1NF - First Normal Form) nếu mọi thuộc tính của R đều chứa các giá trị nguyên tố (atomic value), giá trị này không là một danh sách các giá trị hoặc các giá trị phức hợp (composite value).
Các thuộc tính của quan hệ R Không là thuộc tính đa trị
(multivalued
attribute).
Không là thuộc tính phức hợp (composite
attribute).
Cơ sở dữ liệu
5
Ví dụ:
Cho lược đồ quan hệ: CHUYEN_MON(MaGV,MonGD) MonGD là chuỗi gồm môn học mà
giáo viên có khả năng giảng dạy
Xét thể hiện sau: CHUYEN_MON(MaGV,MonGD)
GV1, CTDL,CSDL,C GV2, Pascal, VB, C
MonGD không phải
là thuộc tính
nguyên tố.
Cơ sở dữ liệu
6
2. Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp Điểmthi
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Quan hệ R không ở dạng chuẩn 1 vì thuộc tính Điểmthi là thuộc tính phức hợp.
Cơ sở dữ liệu
7
2. Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Quan hệ R ở 1NF vì các thuộc tính của R không là thuộc tính đa trị, không là thuộc tính phức hợp.
Cơ sở dữ liệu
8
2. Dạng chuẩn 1
Các bất thường của quan hệ ở 1NF
Thêm vào
Không thể thêm thông tin của sinh viên mới có mã là S4, tên là Thành, thuộc lớp có mã là L1 nếu sinh viên này chưa đăng ký học môn học nào cả. Cập nhật
Sửa tên của sinh viên có tên là Tiến với tên mới là Thành sẽ phải sửa tất cả các hàng của sinh viên này.
Xóa bỏ
Xóa thông tin sinh viên S3 đăng ký môn học M1
sẽ làm mất thông tin của sinh viên này.
Nguyên nhân
Tồn tại thuộc tính không khóa phụ thuộc hàm
riêng phần vào khóa.
Cơ sở dữ liệu
9
3. Dạng chuẩn 2
Định nghĩa
Quan hệ R ở dạng chuẩn 2 (2NF - Second Normal Form) nếu R ở dạng chuẩn 1 và mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào mọi khóa của R.
Cơ sở dữ liệu
10
3. Dạng chuẩn 2
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Khóa của R: {Mãsv, Mônhọc}
Các phụ thuộc hàm: Mãsv {Họtên, Mãlớp} Mãlớp Tênlớp {Mãsv, Mônhọc} Điểm
Lược đồ quan hệ R không ở 2NF vì thuộc tính không khóa Họtên phụ thuộc hàm riêng phần vào khóa {Mãsv, Mônhọc}.
Cơ sở dữ liệu
11
3. Dạng chuẩn 2
R2 R1
Mãsv Mônhọc Điểm Mãsv Họtên Mãlớp Tênlớp
S1 M1 9 S1 Tiến L1 MT01
S1 M2 7 S2 Trúc L1 MT01
S1 M3 8 S3 Hiền L2 MT02
S2 M1 9 Khóa của R1: Mãsv
S2 M2 8
S3 M1 5
Khóa của R2: {Mãsv, Mônhọc}
Lược đồ quan hệ R1 và R2 đều ở 2NF vì các thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa.
Cơ sở dữ liệu
12
3. Dạng chuẩn 2
Các bất thường của quan hệ ở 2NF
Thêm vào
Không thể thêm thông tin của lớp L3 có tên là MT03 nếu chưa có sinh viên nào học lớp này.
Cập nhật
Sửa tên của lớp có mã L1 với tên mới là MT_1 sẽ
phải sửa tất cả các hàng của lớp này.
Xóa bỏ
Xóa thông tin của sinh viên có mã S3 sẽ làm mất
thông tin của lớp L2.
Nguyên nhân
Tồn tại thuộc tính không khóa phụ thuộc bắc
cầu vào khóa.
Cơ sở dữ liệu
13
4. Dạng chuẩn 3
Định nghĩa
Quan hệ R ở dạng chuẩn 3 (3NF- Third Normal Form) nếu R ở dạng chuẩn 1 và 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 của R.
Cơ sở dữ liệu
14
4. Dạng chuẩn 3
R1
Mãsv Họtên Mãlớp Tênlớp
S1 Tiến L1 MT01
S2 Trúc L1 MT01
S3 Hiền L2 MT02
Lược đồ quan hệ R1 không ở 3NF vì thuộc tính không khóa Tênlớp phụ thuộc bắc cầu vào khóa Mãsv. Mãlớp Tênlớp Mãsv Mãlớp Tênlớp {Mãsv, Mãlớp} Mãlớp / Mãsv
Cơ sở dữ liệu
15
4. Dạng chuẩn 3
R11 R12
Mãsv Họtên Mãlớp Mãlớp Tênlớp
S1 Tiến L1 L1 MT01
S2 Trúc L1 L2 MT02
S3 Hiền L2 Khóa của R11: Mãlớp
Khóa của R12: Mãsv
Lược đồ quan hệ R11 và R12 đều ở 3NF vì các thuộc tính không khóa đều không phụ thuộc bắc cầu vào khóa.
Cơ sở dữ liệu
16
Tóm tắt 3 dạng chuẩn 1-3
NF Nhận biết
Cách chuẩn hóa
1 Quan hệ ko có thuộc tính đa trị và quan hệ lặp
Chuyển tất cả quan hệ lặp hoặc đa trị thành 1 quan hệ mới
2
Phụ thuộc 1 phần vào thuộc tính khóa
Tách thuộc tính phụ thuộc 1 phần thành lược đồ mới, đảm bảo quan hệ với lược đồ liên quan
3
Tách các thuộc tính đó thành lược đồ mới
Phụ thuộc ẩn, tồn tại phụ thuộc hàm giữa các thuộc tính ko phải là khóa
Ví dụ:
MaSV Hoten
Mamon
Tenmon Sodvht
1
Hoa
M1
CSDL
5
2
Tuấn
M1
CSDL
5
3
Lan
M2
TTNT
6
4
Hương
M2
TTNT
6
Ví dụ:
R1
MaSV Hoten 1 2 3 4 1
Hoa Tuấn Lan Hương Hoa
Mamon M1 M1 M2 M2 M2
R2
Mamon M1 M2
Tenmon Sodvht CSDL TTNT
5 6
Ví dụ 2:
MaSV Mamon
Tenmon Diem
1
M1
CSDL
5
R3
2
M1
CSDL
4
3
M2
TTNT
7
4
M2
TTNT
6
Ví dụ 2:
R4
MaSV Mamon 1 2 3 4
M1 M1 M2 M2
Diem 5 4 7 6
Mamon
Tenmon
M1
CSDL
R5
M2
TTNT
5. Dạng chuẩn Boyce-Codd
5.1. Định nghĩa Lược đồ quan hệ R với tập các phụ thuộc hàm F được gọi là ở dạng chuẩn Boyce-Codd nếu X A đúng trên R, với A là thuộc tính không thuộc X thì X là một khoá bao hàm.
Nhận xét: (1) Ta phải xét mọi phụ thuộc hàm không tầm
thường X A của F+
(2) X là một khoá bao hàm (siêu khoá) nghĩa là
X phải chứa một khoá nào đó của R
5. Dạng chuẩn Boyce-Codd
5.1. Định nghĩa Lược đồ quan hệ R với tập các phụ thuộc hàm F được gọi là ở dạng chuẩn Boyce-Codd nếu X A đúng trên R, với A là thuộc tính không thuộc X là một khoá bao hàm.
5.2. Nhận xét: (1) Ta phải xét mọi phụ thuộc hàm không tầm
thường X A của F+
(2) X là một khoá bao hàm (siêu khoá) nghĩa là
X phải chứa một khoá nào đó của R
5. Dạng chuẩn Boyce-Codd
Ví dụ: Cho lược đồ R(CSZ) với các phụ thuộc
hàm:
CS Z và Z C Lược đồ R có 2 khoá là SC và SZ Các thuộc tính đều là thuộc tính khoá,
do đó lược đồ đạt 3NF.
5. Dạng chuẩn Boyce-Codd
Ví dụ: Vì Z C đúng trong CSZ nhưng Z không
phải là khoá của CSZ
Lược đồ quan hệ CSZ không có dạng
BCNF
Dạng chuẩn Boyce-Codd(tt)
Nếu một lược đồ quan hệ không thoả mãn điều kiện
BCNF, thủ tục chuẩn hóa bao gồm: – Loại bỏ các thuộc tính khóa phụ thuộc hàm vào
thuộc tính không khóa ra khỏi quan hệ
– tách chúng thành một quan hệ riêng có khoá chính là
thuộc tính không khóa gây ra phụ thuộc.
Ví dụ trên: R (A1,A2,A3,A4,A5) Với các phụ thuộc hàm: – A1,A2 A3,A4,A5 – A4 A2
lược đồ được tách ra như sau:
– R1( A4, A2) – R2(A1, A4, A3, A5)
Dạng chuẩn Boyce-Codd(tt)
Ví dụ
Phụ thuộc vào cả 2 MaSV, MaDA
SV_MH_GV(MaSV, MONHOC, GIANGVIEN)
Phụ thuộc vào MONHOC
6. Ý nghĩa dạng chuẩn
Mục đích của dạng chuẩn BCNF là loại bỏ dư thừa mà các phụ thuộc hàm có thể gây ra.
7. Thiết kế cơ sở dữ liệu
7.1. Phân rã một lược đồ quan hệ Xét quan hệ SINHVIEN
MaSV TenSV DiaChi MaLop TenLop
11
Lan
X
CNA1
Cu nhan A1
12
Hai
Y
CNA1
Cu nhan A1
13
Tu
Z
CNA2
Cu nhan A2
7.1. Phân rã một lược đồ quan hệ
Lược đồ vi phạm 3NF do phụ thuộc bắc
cầu:
MaSV MaLop TenLop
7.1. Phân rã một lược đồ quan hệ
Các phụ thuộc hàm: - Biết MaSV xác định duy nhất tên, địa chỉ, mã
lớp.
MASV TENSV,Diachi,Malop - Biết MaLop TenLop Khoá của lược đồ là {MaSV} Lược đồ đạt 2NF Do khoá chỉ có một thuộc tính nên luôn thoả điều kiện: “phụ thuộc đầy đủ vào khoá”
7.1. Phân rã một lược đồ quan hệ
Phân rã (tách) lược đồ quan hệ SINHVIEN
thành hai lược đồ SV và LOP
LOP
SV
MaSV TenSV DiaChi MaLop
Malop Tenlop
11
Lan
X
CNA1
CNA1 Cu nhan A1
12
Hai
Y
CNA1
CNA2 Cu nhan A2
13
Tu
Z
CNA2
7.1. Phân rã một lược đồ quan hệ
Kết luận: Mục đích của phép phân rã là tạo ra một
lược đồ cơ sở dữ liệu mới có dạng chuẩn cao hơn lược đồ cơ sở dữ liệu ban đầu.
Phép phân rã đạt hai yêu cầu: + Có nối không mất (bảo toàn thông tin) + Bảo toàn phụ thuộc (bảo toàn phụ
thuộc hàm)
7.2. Kiểm tra tính chất nối không mất
Thuật toán: Input: - Lược đồ quan hệ R=A1…An - Một tập phụ thuộc hàm F - Một phân rã = {R1, … ,Rk} Output: Một khẳng định có phải là một phân
rã có nối không mất hay không.
7.2. Kiểm tra tính chất nối không mất
Phương pháp: Bước 1: Có n thuộc tính và k lươc đồ con, xây
dựng bảng gồm n cột, k hàng: – Cột j tương ứng với thuộc tính Aj – Hàng i ứng với lược đồ quan hệ Ri Ở vị trí hàng i cột j đặt ký hiệu:
- aj nếu Aj thuộc Ri - bij nếu Aj không thuộc Ri
7.2. Kiểm tra tính chất nối không mất
Phương pháp: Bước 2: Xét lặp đi lặp lại mỗi phụ thuộc - X Y trong F cho đến khi không còn thay đổi
nào nữa trong bảng.
- Mỗi lần xét X Y tìm những hàng giống nhau
trên X thay thế ký hiệu giống nhau trên Y
Kết luận Nếu sau khi sửa đổi các hàng của bảng như trên thu được một hàng a1…an (chứa toàn a) thì phân rã có nối không mất
7.2. Kiểm tra tính chất nối không mất
Kết luận Ngược lại đây không phải là phân rã có nối
không mất.
Ví dụ:
Lược đồ: R={MASV, TENSV, DIACHI, MALP, TENLP} Và F = {f1, f2} trong đó: f1: MASV TENSV, DIACHI, MALP f2: MALP TENLP Phân rã = {R1, R2} R1={MASV, TENSV, DIACHI, MALP} R2={MALP, TENLP}
Kiểm tra xem phân rã có đặc tính có
nối mất hay không? Bước 1:
R MASV TENSV DIACHI MALP TENLP a3 R1 a1 b23 R2 b21
a2 b22
b15 a5
a4 a4
Bước 2
f2: MALP TENLP
R MASV TENSV DIACHI MALP TENLP a3 R1 a1 b23 R2 b21
a2 b22
a5 a5
a4 a4
Ví dụ:
Kết luận: Đây là một phân rã có nối không mất.
Ví dụ 2:
Xét phân rã R = SAIP thành R1=SA và R2=SIP Các phụ thuộc hàm: S A, SI P Phân rã có nối không mất hay mất?
S a1 a1
A a2 b22
I b13 a3
P b14 a4
R R1 R2
Vì S A là hai hàng giống nhau ở cột S suy ra giá trị cột A bằng nhau
S a1 a1
A a2 a2
I b13 a3
P b14 a4
R R1 R2
Ví dụ 2:
Vì hàng 2 toàn a, đây là kết nối
không mất
Ví dụ 3:
Xét phân rã R = SAIP thành R1=SAP và R2=SI Các phụ thuộc hàm là: S A, SI P
S a1 a1
A a2 b22
I b13 a3
P a4 b24
R R1 R2
Vì S A là hai hàng giống nhau ở cột S suy ra giá trị cột A bằng nhau
S a1 a1
A a2 a2
I b13 a3
P a4 b24
R R1 R2
Quan hệ này cũng thoá SI P bởi vì giá trị các thuộc tính ở vế trái phụ thuộc hàm SI của hai bộ là khác nhau
Ta thấy quan hệ này thoả mãn tất các các phụ thuộc hàm nhưng không có dòng nào gồm toàn a, nên đây không phải là phân rã có nối không mất.
Ví dụ 4:
Cho R = ABCDE R1=AD, R2=AB, R3=BE, R4=CDE, R5=AE Các phụ thuộc hàm: A C, B C, C D, DE C, CE A
7.3. Phép tách lược đồ quan hệ thành BCNF
Vào: Lược đồ quan hệ R và tập phụ thuộc hàm F Ra: Phép tách của R không mất mát thông tin cho mỗi lược đồ quan hệ trong phép tách đều ở BCNF đối với phép chiếu của F trên lược đồ đó.
7.3. Phép tách lược đồ quan hệ thành BCNF
Phương pháp: Cấu trúc phép tách trên R theo phương pháp lặp liên tiếp. Tại mỗi bước phép tách là bảo đảm không mất mát thông tin đối với F. Bước đầu: chỉ bao gồm R Các bước tiếp: Nếu S là một lược đồ thuộc , S chưa ở BCNF chọn X A là phụ thuộc hàm thoả mãn trên S Trong đó X không chứa khoá của S, A X
7.3. Phép tách lược đồ quan hệ thành BCNF
Thay thế S trong bởi S1 và S2: S1= XA, S2=S-A Quá trình tiếp tục cho tới khi tất cả các lược đồ đều ở BCNF
Ví dụ:
Cho lược đồ R(CTHRSG) Trong đó: C: Giáo trình T: Thầy giáo H: Giờ R: Phòng học S: Sinh viên G: Lớp
Ví dụ: Tập phụ thuộc hàm F: C T: Mỗi giáo trình chỉ có một thầy dạy HR C: Chỉ có một môn học ở một phòng học tại một thời điểm HT R: Tại mỗi thời điểm mỗi thầy giáo chỉ có thể dạy ở một phòng học CS G: Mỗi sinh viên chỉ hoc ở một lớp theo học mỗi giáo trình HS R: Mỗi sinh viên chỉ có thể ở một phòng học tại một thời điểm. Khoá của R là HS
Ví dụ:
Tách lược đồ R thành BCNF: Xét CS G vi phạm điều kiện BCNF vì CS không chứa khoá. Do vậy tách R thành: R1(CSG), R2(CTHRS)
C T CS G HR C HS R HT R
R(CTHRSG) Khoá = HS
C T HT R HR C HS R
R1(CSG) Khoá = cS
R2(CTHRS) Khoá = SH
CS G
C T
R21(CT) Khoá = C
R22(CHRS) Khoá = HS
CH R HS R HR C
R222(CHS) Khoá = SH
R221(CHR) Khoá = CH,HR
HS C
CH R HR C
7.4. Phép tách lược đồ quan hệ thành 3NF
Vào: Lược đồ quan hệ R và tập phụ thuộc hàm F Ra: Phép tách của R không mất mát thông tin cho mỗi lược đồ quan hệ trong phép tách đều ở 3NF với phép chiếu của F trên lược đồ đó.
7.4. Phép tách lược đồ quan hệ thành 3NF
Phương pháp: 1) Loại bỏ tất cả các thuộc tính của R nếu thuộc tính đó không liên quan đến một phụ thuộc hàm nào của F 2) Nếu có một phụ thuộc hàm nào của F mà liên quan tới tất cả thuộc tính của R thì kết quả chính là R 3) Phép tách đưa các lược đồ quan gồm các thuộc tính XA cho phụ thuộc hàm X A thuộc F
7.4. Phép tách lược đồ quan hệ thành 3NF
Phương pháp: 3) Nếu X A1, X A2,…,X An thay thế thuộc tính XA1A2…An cho Xai Quá trình tiếp tục
7.4. Phép tách lược đồ quan hệ thành 3NF
Ví dụ: Cho lược đồ quan hệ R(CTHRSG) với tập phụ thuộc hàm: C T, HR C, HT R, CS G, HS R Dùng thuật toán trên tập lược đồ có dạng: R1(CT), R2(CHR), R3(HRT), R4(CGS), R5(HRS)
8. Cơ sở dữ liệu phân tán
Định nghĩa 1
Cơ sở dữ liệu phân tán (distributed database) là sự tập hợp dữ liệu mà về mặt luận lý chúng thuộc cùng một hệ thống nhưng được đặt ở nhiều nơi (site) của một mạng máy tính. Sự phân tán dữ liệu (data distribution): dữ
liệu phải được phân tán ở nhiều nơi.
Sự tương quan luận lý (logical correlation): dữ liệu của các nơi được sử dụng chung để cùng giải quyết một vấn đề.
Cơ sở dữ liệu
59
Cơ sở dữ liệu phân tán
Ví dụ
Một ngân hàng có ba chi nhánh ở các vị trí
địa lý khác nhau.
Tại mỗi chi nhánh có một máy tính và một cơ sở dữ liệu tài khoản, tạo thành một nơi (site) của cơ sở dữ liệu phân tán.
Các máy tính được kết nối với nhau thông
qua một mạng máy tính truyền thông.
Một khách hàng có thể gửi tiền và rút tiền tại
các chi nhánh.
Cơ sở dữ liệu
60
Cơ sở dữ liệu phân tán
Cơ sở dữ liệu 1
Cơ sở dữ liệu 2
Terminal T T
T T T
Máy tính 1
Máy tính 2
Chi nhánh 1
Chi nhánh 2
Mạng truyền thông
Chi nhánh 3
Máy tính 3
Cơ sở dữ liệu 3
T T T
Hình 1.1. Cơ sở dữ liệu phân tán trên một mạng phân tán địa lý.
Cơ sở dữ liệu
61
Cơ sở dữ liệu phân tán
Trung tâm máy tính
Chi nhánh 2 T T T
Chi nhánh 1 T T T
Cơ sở dữ liệu 1
Cơ sở dữ liệu 2
Máy tính 2
Máy tính 1
Mạng cục bộ
Máy tính 3
Cơ sở dữ liệu 3
Chi nhánh 3 T T T
Hình 1.2. Cơ sở dữ liệu phân tán trên một mạng cục bộ.
Cơ sở dữ liệu
62
Cơ sở dữ liệu phân tán
Trung tâm máy tính
Cơ sở dữ liệu 1
Cơ sở dữ liệu 2
Cơ sở dữ liệu 3
Chi nhánh 1 T T T
Chi nhánh 2 T T T
Máy tính phía sau 1
Máy tính phía sau 2
Máy tính phía sau 3
Mạng cục bộ
Máy tính ứng dụng (phía trước)
Chi nhánh 3 T T T
Hình 1.3. Hệ thống đa xử lý (multiprocessor system).
Cơ sở dữ liệu
63
Cơ sở dữ liệu phân tán
Định nghĩa 2
Cơ sở dữ liệu phân tán là sự tập hợp dữ liệu được phân tán trên các máy tính khác nhau của một mạng máy tính.
Mỗi nơi của mạng máy tính có khả năng xử lý tự trị và có thể thực hiện các ứng dụng cục bộ.
Mỗi nơi cũng tham gia thực hiện ít nhất một ứng dụng toàn cục, mà nơi này yêu cầu truy xuất dữ liệu ở nhiều nơi bằng cách dùng hệ thống truyền thông con.
Cơ sở dữ liệu
64
Cơ sở dữ liệu phân tán
Định nghĩa 2
Sự phân tán dữ liệu (data distribution): dữ