Xem mẫu
- 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. Giáo trình Cơ sở dữ liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM
3. Bộ slide bài giảng của Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM
4. 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 Nhanvien( MaNV, Ten, Vitri, Luong, MaPB)
Phongban(MaPB, TenPB)
Thiết kế 2 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 Vitri Luong MaPB Phongban
0111 Nguyen An Manager 30000 B005
MaPB TenPB
0112 Bui Liem Assistant 20000 B005
B003 Dieu hanh
0201 Le Van Assistant 15000 B004
B004 Nghien cuu
0202 Tran Mai Assistant 15000 B004
B005 To chuc
0203 Tran Tuan Manager 20000 B003
MaNV TeNV Vitri Luong MaPB TenPB
Nhanvien_PB
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
5
0203 Tran Tuan Manager 20000 B003 Dieu hanh
- 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ó
MaNV TeNV Vitri Luong MaPB TenPB
0111 Nguyen An Manager 30000 B005 To chuc
0112 Bui Liem Assistant 20000 B005 To chuc Mâu thuẫn với
0201 Le Van Assistant 15000 B004 Nghien cuu MaPB, TenPB
0202 Tran Mai Assistant 15000 B004 Nghien cuu
của các bộ đã có
0203 Tran Tuan Manager 20000 B003 Dieu hanh
Insert 0301 Pham Tin Assistant 20000 B005 TCHC
• Thêm một phòng ban mới là không thể, vì MaNV
không thể Null 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
Insert bộ này là không thể 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 Xóa nhân viên 0203
0202 Tran Mai Assistant 15000 B004 Nghien cuu sẽ dẫn tới xóa luôn
0203 Tran Tuan Manager 20000 B003 Dieu hanh 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 Sửa Tên PB (hay sửa
0111 Nguyen An Manager 30000 B005 To chuc Mã PB) mà không
0112 Bui Liem Assistant 20000 B005 Quan ly Nhan su sửa trên tât cả các bộ
0201 Le Van Assistant 15000 B004 Nghien cuu tương ứng sẽ dẫn
0202 Tran Mai Assistant 15000 B004 Nghien cuu đến mất tính nhất
0203 Tran Tuan Manager 20000 B003 Dieu hanh 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 ) XY
( 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, t2r , 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
14
0203 Tran Tuan Manager 20000 B003 Dieu hanh
- 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ì XY
Rule 2. Gia tăng: XY XZ YZ
Rule 3. Bắc cầu : XY và YZ X Z
Rule 4. Hợp : XY và XZ X YZ
Rule 5. Chiếu/phân rã: XYZ X Y và X Z
Rule 6. Bắc cầu giả: XY và YZW 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 = {AB, AC, BCD}
Hãy chứng minh các pth sau được suy dẫn từ F : AD, ACBCD ?
(hay chứng minh {AD, ACBCD} F+ )
F+
Chứng minh A D F+ :
AB và AC => A BC (luật hợp) F
AD
A BC và BCD => A D (bắc cầu)
Chứng minh AC BCD F+ : AB
ACBCD
AC
A B => AC BC (luật tăng) BCD …
AC BC và BCD => AC D (luật bắc cầu)
AC D => AC BCD (luật tăng)
20
nguon tai.lieu . vn