Tải bản đầy đủ (.pdf) (54 trang)

Bài giảng môn học Hệ cơ sở dữ liệu: Chương 5 - Nguyễn Như Hoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.91 MB, 54 trang )

Chương 5

Chuẩn hóa cơ sở dữ liệu
(phụ thuộc hàm & dạng chuẩn)

Giáo trình & Tài liệu tham khảo:
1. Ramez Elmasri, Shamkant B. Navathe, 2011. Fundamentals of Database
systems, 6th edition, Addison-Wesley.

2.
3.
4.

Giáo trình Cơ sở dữ liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM

Bộ slide bài giảng của Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM
Bộ slide bài giảng của Trần Thị Kim Chi, Khoa CNTT, ĐH Công nghiệp TPHCM

Gv. Nguyễn Như Hoa
1


Nội dung
• Giới thiệu
• Phụ thuộc hàm
• Dạng chuẩn và quá trình chuẩn hóa CSDL

2


Giới thiệu


• Một thiết kế DB tốt là một thiết kế
– Đưa ra tập các quan hệ chứa các thuộc tính biểu
diễn được các dữ liệu mong muốn của bài toán
– Tối thiểu hoặc loại bỏ sự dư thừa dữ liệu trong
mỗi quan hệ

3


Giới thiệu
• Dư thừa dữ liệu trong thiết kế sẽ dẫn tới
– Tốn không gian lưu trữ
– Sai dữ liệu hay dị thường dữ liệu (update
anomalies) khi thực hiện Insert/Update/Delete

• Ví dụ: xét 2 thiết kế DB
Thiết kế 1

Thiết kế 2

Nhanvien( MaNV, Ten, Vitri, Luong, MaPB)
Phongban(MaPB, TenPB)
Nhanvien_PB(MaNV, Ten, Vitri, Luong, MaPB, TenPB)
4


Giới thiệu
Thiết kế 1 không dư thừa dữ liệu
Thiết kế 2 dư thừa dữ liệu : TenPB lặp lại ở nhiều dòng
Nhanvien

MaNV

TeNV

0111

Luong

MaPB

Nguyen An Manager

30000

B005

0112

Bui Liem

Assistant

20000

B005

0201

Le Van


Assistant

15000

B004

0202

Tran Mai

Assistant

15000

B004

0203

Tran Tuan

Manager

20000

B003

Nhanvien_PB

Vitri


Phongban
MaPB

TenPB

B003

Dieu hanh

B004

Nghien cuu

B005

To chuc

MaNV

TeNV

Vitri

Luong

MaPB

TenPB

0111


Nguyen An

Manager

30000

B005

To chuc

0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van

Assistant

15000


B004

Nghien cuu

0202

Tran Mai

Assistant

15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003

Dieu hanh

5



Giới thiệu
Bất thường khi I/U/D dữ liệu trong thiết kế 2
• Thêm một nhân viên mới (insert), phải đảm bảo
TenPB tương ứng với MaPB, khớp với các bộ đã có

Insert

MaNV

TeNV

Vitri

Luong

MaPB

TenPB

0111

Nguyen An

Manager

30000

B005


To chuc

0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van

Assistant

15000

B004

Nghien cuu

0202

Tran Mai


Assistant

15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003

Dieu hanh

0301

Pham Tin

Assistant

20000

B005


TCHC

Mâu thuẫn với
MaPB, TenPB
của các bộ đã có

• Thêm một phòng ban mới là không thể, vì MaNV
không thể Null

Insert bộ này là không thể

MaNV

TeNV

Vitri

Luong

MaPB

TenPB

0111

Nguyen An

Manager


30000

B005

To chuc

0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van

Assistant

15000

B004

Nghien cuu


0202

Tran Mai

Assistant

15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003

Dieu hanh

B001

Ke toan

6



Giới thiệu
Bất thường khi I/U/D dữ liệu trong thiết kế 2
• Xóa một nhân viên : nếu nhân viên này là nhân viên
duy nhất của một phòng ban , thao tác xóa sẽ dẫn
đến xóa luôn phòng ban -> mất thông tin
MaNV

TeNV

Vitri

Luong

MaPB

TenPB

0111

Nguyen An

Manager

30000

B005

To chuc


0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van

Assistant

15000

B004

Nghien cuu

0202

Tran Mai

Assistant


15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003

Dieu hanh

Xóa nhân viên 0203
sẽ dẫn tới xóa luôn
phòng ban B003

7


Giới thiệu
Bất thường khi I/U/D dữ liệu trong thiết kế 2
• Khi sửa tên một phòng ban : phải đảm bảo
sửa tên phòng ban ở tất cả các bộ tương ứng.
Nếu không sẽ mất tính nhất quán dữ liệu (sai

dữ liệu)
MaNV

TeNV

Vitri

Luong

MaPB

TenPB

0111

Nguyen An

Manager

30000

B005

To chuc

0112

Bui Liem

Assistant


20000

B005

Quan ly Nhan su

0201

Le Van

Assistant

15000

B004

Nghien cuu

0202

Tran Mai

Assistant

15000

B004

Nghien cuu


0203

Tran Tuan

Manager

20000

B003

Dieu hanh

Sửa Tên PB (hay sửa
Mã PB) mà không
sửa trên tât cả các bộ
tương ứng sẽ dẫn
đến mất tính nhất
quán

8


Giới thiệu
• Chuẩn hóa CSDL (normalization) ?
– Chuẩn hóa là kỹ thuật dựa trên “dạng chuẩn”, cho
phép người thiết kế đánh giá một lược đồ quan hệ
và điều chỉnh thiết kế để giảm thiểu hoặc loại bỏ
dư thừa dữ liệu
– Chuẩn hóa dựa trên các dạng chuẩn (normal form)

1NF, 2NF, 3NF, BCNF, …
• Các dạng chuẩn cao hơn thì giảm/loại bỏ dư thừa dữ
liệu mạnh hơn

9


Giới thiệu
• Phụ thuộc hàm (functional dependency)
– Mô tả mối quan hệ giữa các thuộc tính trong một
quan hệ
– Là khái niệm nền tảng để có thể hiểu “dạng chuẩn”

10


Phụ thuộc hàm
Nội dung








Khái niệm & Ví dụ
Định nghĩa khóa
Bao đóng của tập phụ thuộc hàm
Luật dẫn Amstrong

Bao đóng của tập thuộc tính
Thuật toán tìm tất cả các khóa
Phủ tối thiểu
11


Phụ thuộc hàm- Khái niệm
• Định nghĩa
Cho R(A1, A2, …, An ) là lược đồ quan hệ
X, Y là hai tập thuộc tính của R
r là quan hệ bất kỳ trên R
t1, t2 là hai bộ bất kỳ trên r
Phụ thuộc hàm X xác định Y :
( hay Y phụ thuộc hàm vào X )

XY

 ( t1.X = t2.X  t1.Y = t2.Y )
12


Phụ thuộc hàm - Khái niệm
• Lưu ý :

– X -> Y khi và chỉ khi : t1, t2r , t1.X = t2.X  t1.Y = t2.Y nhưng
không có chiều ngược lại
– (*) Nếu phụ thuộc hàm X -> Y tồn tại trong một lược đồ quan hệ
R, hay được xác định như thuộc tính của R, thì X -> Y phải
thỏa trên mọi thể hiện của R
– Các phụ thuộc hàm được nhận diện dựa vào các qui tắc nghiệp

vụ , hay ngữ nghĩa của các thuộc tính => Phụ thuộc hàm là một
loại ràng buộc toàn vẹn
– Ta bỏ qua các phụ thuộc hàm hiển nhiên (luôn luôn đúng)
• MaNV, TenNV -> TenNV
• MaNV, TenNV -> MaNV
• MaNV, Vitri -> MaNV
….
13


Phụ thuộc hàm - Ví dụ
• Các phụ thuộc hàm được nhận diện dựa vào các qui tắc
nghiệp vụ , hay ngữ nghĩa của các thuộc tính
– Mỗi mã phòng ban xác định duy nhất một tên phòng ban
MAPB  TENPB
– Mỗi mã NV xác định duy nhất một tên nv, một vị trí, tiền lương và phòng ban
MANV  TENNV, VITRI, LUONG, MAPB, TENPB
– Mỗi vị trí của một phòng ban xác định một mức lương
MAPB, VITRI  LUONG
NHANVIEN

MaNV

TeNV

Vitri

Luong

MaPB


TenPB

0111

Nguyen An

Manager

30000

B005

To chuc

0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van


Assistant

15000

B004

Nghien cuu

0202

Tran Mai

Assistant

15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003


Dieu hanh

14


Phụ thuộc hàm - Ví dụ
• Vd(tt) : Xác định có là phụ thuộc hàm không ? Tại sao ?





LUONG  MAPB, VITRI
VITRI  MANV
TENPB  MAPB
TENPB, VITRI  LUONG

NHANVIEN

MaNV

TeNV

Vitri

Luong

MaPB


TenPB

0111

Nguyen An

Manager

30000

B005

To chuc

0112

Bui Liem

Assistant

20000

B005

To chuc

0201

Le Van


Assistant

15000

B004

Nghien cuu

0202

Tran Mai

Assistant

15000

B004

Nghien cuu

0203

Tran Tuan

Manager

20000

B003


Dieu hanh
15


Phụ thuộc hàm - Ví dụ
Ví dụ - xác định các phụ thuộc hàm dựa trên các qui tắc nghiệp vụ sau :
• Mỗi máy bay có một giờ khởi hành duy nhất
• Một máy bay và ngày khởi hành sẽ xác định một phi công
• Một phi công và một ngày, giờ khởi hành sẽ xác định được máy bay
CHUYENBAY

PhiCong

Maybay

NgayKH

GioKH

MAYBAY -> GIOKH
MAYBAY, NGAYKH -> PHICONG
PHICONG, NGAYKH, GIOKH -> MAYBAY
Kiểm tra trên dữ liệu ?

16


Định nghĩa khóa
• Siêu khóa/Khóa dự tuyển/ khóa chính : là một loại phụ thuộc hàm
Cho R(A1, A2, … , An) , với Q+ là tập thuộc tính của R, K là tập con của Q+

K là khóa dự tuyển nếu thỏa :
– Tồn tại pth K-> Q+ trên R
– Không tồn tại K’ K mà K’ -> Q+ là một phụ thuộc hàm trên R

Siêu khóa S là tập thuộc tính thỏa K  S
• Cho NHANVIEN(MANV, TenNV, Vitri, Luong, MaPB, TenPB) và 2 pth
f1 : MANV, TENNV  MANV, TENNV, VITRI, LUONG, MAPB, TENPB
f2 : MANV  MANV, TENNV, VITRI, LUONG, MAPB, TENPB
 {MANV} là khóa dự tuyển
 {MANV, TENNV} là siêu khóa

17


Bao đóng của tập phụ thuộc hàm
• Dựa trên ngữ nghĩa của các thuộc tính của R,
ban đầu ta xác định được tập pth F
• Ta gọi f là pth được suy dẫn từ tập F, nếu với
mọi r(R) thỏa các pth thuộc F thì cũng thỏa f
• Tập phụ thuộc hàm chứa tất cả các phụ thuộc
hàm f suy dẫn từ tập F gọi là bao đóng của tập
phụ thuộc hàm F , ký hiệu F+
• Qui tắc suy dẫn ?
18


Bộ luật dẫn Armstrong
• Bộ luật dẫn Armstrong

Cho quan hệ R(Q+) . X,Y,Z,W là các tập con của Q+.

Rule 1. Phản xạ : Nếu X  Y thì XY
Rule 2. Gia tăng:

XY  XZ YZ

Rule 3. Bắc cầu :

XY và YZ  X Z

Rule 4. Hợp :

XY và XZ  X YZ

Rule 5. Chiếu/phân rã: XYZ  X Y và X Z
Rule 6. Bắc cầu giả:

XY và YZW  XZ W
19


Bộ luật dẫn Armstrong
• Cho R(A,B,C,D) và tập phụ thuộc hàm trên R
F = {AB, AC, BCD}
Hãy chứng minh các pth sau được suy dẫn từ F : AD, ACBCD ?
(hay chứng minh {AD, ACBCD}  F+ )

F+

Chứng minh A  D  F+ :
AB và AC => A  BC (luật hợp)

A  BC và BCD => A  D (bắc cầu)
Chứng minh AC  BCD  F+ :
A  B => AC  BC (luật tăng)
AC  BC và BCD => AC  D (luật bắc cầu)
AC  D => AC  BCD (luật tăng)

F
AD

AB
AC
BCD

ACBCD


20


Bao đóng của tập thuộc tính X
• Bao đóng của tập thuộc tính X , ký hiệu X+
– Ứng với mỗi tập thuộc tính X, ta xác định tập X+ chứa các
thuộc tính phụ thuộc hàm vào X dựa trên F
X+ =  Ai với X -> Ai là phụ thuộc hàm được suy diễn từ F
- Thuật toán xác định X + dựa trên F

21


Bao đóng của tập thuộc tính X

• Bao đóng của tập thuộc tính X , ký hiệu X+
– Ví dụ : cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc hàm F =
{
f1 : A -> B ;
f2 : B -> C ;
f3 : C -> D ; }
Tìm bao đóng của tập X = {A} dựa trên F ?
Giải :
X+ = {A}
X+ = X+  {B} = {A,B} , vì có A -> B , loại f1
X+ = X+  {C} = {A,B,C} , vì có B -> C , loại f2
X+ = X+  {D} = {A,B,C,D} , vì có C -> D , loại f3
Kết luận : bao đóng của tập {A} = {A,B,C,D}
Tương tự, bao đóng của tập {B} = {B,C,D}
Tương tự, bao đóng của tập {C} = {C,D}
Tương tự, bao đóng của tập {D} = {D}
22


Tìm tất cả các khóa của R
• Một định nghĩa về khóa (dựa trên bao đóng
của tập thuộc tính)
– Cho R (Q+), Q+ là tập thuộc tính của R, F là tập phụ
thuộc hàm trên R, K là một tập con của Q+
K là một khóa của R nếu :
K+ = Q+ và không tồn tại K’  K mà K’ + = Q+

23



Tìm tất cả các khóa của R
• Thuật toán tìm tất cả các khóa

24


Tìm tất cả các khóa của R
• Thuật toán tìm tất cả các khóa – Ví dụ :

Giải :

25


×