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ữ

liệu phải được phân tán ở nhiều nơi.

 Ứng dụng cục bộ (local application): ứng dụng được chạy hoàn thành tại một nơi và chỉ sử dụng dữ liệu cục bộ của nơi này.

(global

/

 Ứng dụng toàn cục (hoặc ứng dụng phân tán) distributed application application): ứng dụng được chạy hoàn thành và sử dụng dữ liệu của ít nhất hai nơi.

Cơ sở dữ liệu

65