Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 2)

Tóm tắt Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 2): ...LTER TABLE NHANVIEN DROP CONSTRAINT FK_NHANVIEN ALTER TABLE NHANVIEN ADD CONSTRAINT FK_NHANVIEN FOREIGN KEY (MaNQL) REFERENCES NHANVIEN (MaNV) Trang 71/109 5. Các thao tác cập nhật dữ liệu 5.1. Thêm Có thể thêm một bộ vào bảng bằng cách sử dụng: INSERT INTO [, ,, ] VALUES (, ,,) Ch..., trong đó K là khóa của Q. Ngược lại thuộc tính A được gọi là thuộc tính không khóa. K’ được gọi là siêu khóa nếu 'KK ⊆ . 2.2. Thuật toán tìm khóa 2.2.1. Thuật toán tìm một khóa Sử dụng đồ thị có hướng để tìm khóa như sau: Bước 1: • Mỗi nút của đồ thị là tên một thuộc tính của lược đồ...nh viên bằng trung bình của các môn mà sinh viên theo học • Bối cảnh: SINHVIEN(MaSV, HoSV, TenSV, Khoa, DTB) KETQUA (MaSV, MaMon, Diem) • Biểu diễn: ( )( )( )DiemkqAVGDTBsvMaSVkqMaSVsvKETQUAkqSINHVIENsv .... =⇒=∈∃∈∀ • Bảng tầm ảnh hưởng: RB9 Thêm Xóa Sửa SINHVIEN + - +(MaSV, DTB) KE...

pdf55 trang | Chia sẻ: havih72 | Lượt xem: 405 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
an hệ 
NHANVIEN, nếu một mã phòng (Phong) mà nhân viên trực thuộc xuất hiện, thì mã 
phòng này phải xuất hiện trong quan hệ PHONGBAN, cụ thể là thuộc tính (MaPhong). 
Như vậy: 
• Bối cảnh: NHANVIEN, PHONGBAN 
• Biểu diễn: ( ) ( )( )( )MaPhongpbPhongnvPHONGBANpbNULLPhongnvNHANVIENnv ... =∈∃∨=∈∀
• Bảng tầm ảnh hưởng: 
RB5 Thêm Xóa Sửa 
NHANVIEN + - +(Phong) 
PHONGBAN - + +(MaPhong) 
Ví dụ RBTV trên 1 quan hệ 
Người quản lý (MaNQL) của một nhân viên cũng phải là một nhân viên trong công ty 
• Bối cảnh: NHANVIEN 
• Điều kiện: ( ) ( )( )( )MaNVnvMaNQLnvNHANVIENnvNULLMaNQLnvNHANVIENnv .1.1. =∈∃∨=∈∀
• Bảng tầm ảnh hưởng: 
RB6 Thêm Xóa Sửa 
NHANVIEN + - +(MaNV, MaNQL) 
Ảnh hưởng của RBTV đối với các thao tác thêm, xóa, sửa dữ liệu 
Giả sử r2 có một khóa ngoại α tham chiếu đến K trong r1, khi đó: )()( 12 rr Kππα ⊆ 
Thêm 
Khi thêm một bộ t2 vào r2 thì phải bảo đảm tồn tại t1 trong r1 sao cho ][][ 21 αtKt = 
Trang 90/109 
Xóa 
Giả sử xóa t1 khỏi r1. Khi đó cần xử lý các bộ trong r2 tham chiếu tới t1, nghĩa là 
)( 2][1 rs Kt== ασ . Nếu ∅≠s thì 
• Không thực hiện hành động xóa dữ liệu, hoặc 
• Xóa dây chuyền, nghĩa là xóa tất cả các bộ trong s 
Sửa 
Trường hợp cập nhật t2 trong r2 
• Cập nhật t2 trong r2, sửa khóa ngoại α 
• Tương tự như trường hợp thêm dữ liệu 
• Kiểm tra )(][ 1'2 rt Kπα ∈ 
Trường hợp cập nhật t1 trong r1 
• Cập nhật t1 trong r1 
• Tương tự như trường hợp xóa dữ liệu 
• Kiểm tra ∅== )( 2][1 rKtασ 
3.2.2.2. RBTV liên bộ - liên quan hệ 
Quy định về từng nhóm các bộ của nhiều quan hệ bối cảnh khác nhau. 
Ví dụ Một hóa đơn bán hàng phải có ít nhất một mặt hàng, nghĩa là một chi tiết hóa đơn 
bán hàng phải có ít nhất một mặt hàng. 
• Bối cảnh: HOADON, CTIETHD 
• Biểu diễn: ( )( )MaHDcthdMaHDhdCTIETHDcthdHOADONhd .. =∈∃∈∀ 
• Bảng tầm ảnh hưởng: 
RB7 Thêm Xóa Sửa 
HOADON + - +(MaHD) 
CTIETHD - + +(MaHD) 
Trang 91/109 
3.2.2.3. RBTV liên thuộc tính - liên quan hệ 
Quy định về mối liên hệ giữa các thuộc tính trên nhiều quan hệ bối cảnh khác nhau. 
Ví dụ Giả sử cho phép thanh toán tiền nhiều lần và thanh toán sau khi mua hàng, khi đó 
ngày thanh toán tiền theo một hóa đơn mua hàng phải bằng hoặc sau ngày mua hàng. 
• Bối cảnh: HOADON(MaHD, MaKH, NgayHD, TriGia), 
 THANHTOAN(MaHD, NgayTToan, LanTToan, SoTienTToan) 
• Biểu diễn: 
( )( )NgayTToanttNgayHDhdMahDttMaHDhdTHANHTOANttHOADONhd .... ≤⇒=∈∀∈∀
• Bảng tầm ảnh hưởng: 
RB8 Thêm Xóa Sửa 
HOADON + - +(MaHD, NgayHD) 
THANHTOAN + - +(MaHD, NgayTToan) 
3.2.2.4. RBTV do thuộc tính tổng hợp 
Quy định về mối liên hệ giữa các thuộc tính do sự có mặt của thuộc tính tính toán. 
Ví dụ Điểm trung bình của sinh viên bằng trung bình của các môn mà sinh viên theo học 
• Bối cảnh: SINHVIEN(MaSV, HoSV, TenSV, Khoa, DTB) 
 KETQUA (MaSV, MaMon, Diem) 
• Biểu diễn: 
( )( )( )DiemkqAVGDTBsvMaSVkqMaSVsvKETQUAkqSINHVIENsv .... =⇒=∈∃∈∀ 
• Bảng tầm ảnh hưởng: 
RB9 Thêm Xóa Sửa 
SINHVIEN + - +(MaSV, DTB) 
KETQUA + + +(MaSV, Diem) 
3.2.2.5. RBTV do chu trình 
Trang 92/109 
Xảy ra khi có sự hiện diện của chu trình. Để nhận diện chu trình, người ta biểu diễn lược 
đồ CSDL như sau: 
Nút thể hiện lược đồ 
Nút thuộc tính kết 
Cung nối giữa nút lược đồ và nút thuộc 
tính kết 
Ví dụ Một nhân viên chỉ được phân công vào các đề án do phòng mình chủ trì 
• Bối cảnh: NHANVIEN, DEAN, PHANCONG 
Đồ thị thể hiện chu trình như sau: 
• Biểu diễn: 
( )( )MaDApcMaDAnvdaMaNVpcMaNVnvdaDANVnvdaPHANCONGpc ...._ =∧=∈∃∈∀
với: DEANNHANVIENDANV MaPhongPhong=← ><_ 
• Bảng tầm ảnh hưởng: 
RB10 Thêm Xóa Sửa 
NHANVIEN
NHANVIEN
MaNV=MaNV
MaNV=MaNV 
PHANCONG NHANVIEN
DEAN 
MaNV=MaNV
Phong=Phong 
MaDA=MaDA 
Trang 93/109 
NHANVIEN - + +(MaNV, Phong) 
DEAN - + +(MaDA, Phong) 
PHANCONG + - +(MaDA, MaNV) 
4. Bài tập 
Bài tập 1 
• Hãy chứng minh 3 tính chất phân rã, kết hợp và tựa bắc cầu. 
• Hãy tìm hiểu các tính chất của bao đóng tập thuộc tính, phủ tối thiểu 
Bài tập 2 
Cho lược đồ quan hệ R(A, B, C, D, E, G) và tập phụ thuộc hàm 
F={AÆC , AÆEG, BÆD, GÆE } 
Tìm +++ FFF ACGDAB ,, 
Bài tập 3 
Cho lược đồ quan hệ R(A, B, C, D, E, G) và tập phụ thuộc hàm 
F={BÆC , AÆEG, BÆA, GÆE } 
Tìm +++ FFF ACGDAB ,, 
Bài tập 4 
Cho lược đồ quan hệ R(A, B, C, D, E) và tập phụ thuộc hàm 
F={AÆC , BCÆD, DÆE, EÆA } 
Tìm +++ FFF DBDAB ,, 
Bài tập 5 
Cho lược đồ quan hệ R(A, B, C, D, E) và tập phụ thuộc hàm 
F={BÆC , ACÆD, DÆG, AGÆE } 
Cho biết EAC → có thuộc F+ không? 
Cho biết ADBD → có thuộc F+ không? 
Trang 94/109 
Với các bài tập 7, 8, 9: 
• Tìm một khóa (theo thuật toán tìm một khóa) 
• Tìm mọi khóa (theo thuật toán tìm mọi khóa) 
• Tìm phủ tối thiểu 
Bài tập 7 
Cho lược đồ quan hệ R(A, B, C, D) và tập phụ thuộc hàm 
F={ABÆCD, BÆC,CÆD} 
Bài tập 8 
Cho lược đồ quan hệ R {ABCDEFGHKLM} và tập phụ thuộc hàm 
F={ A Æ B, C ÆD, EÆ F, G ÆAHK, AH Æ G, GLC Æ M } 
Bài tập 9 
Cho lược đồ quan hệ R {ABCDEFGHKL} và tập phụ thuộc hàm 
F={A ÆB, AC ÆD, F Æ G, FK Æ LEH, E Æ FH} 
Bài tập 10 
Với hai bài toán tình huống là quản lý đề án và quản lý ngân hàng, ngoại trừ các ràng 
buộc khoá chính và khoá ngoại, hãy tìm tất cả các RBTV theo yêu cầu: bối cảnh, biểu 
diễn, tầm ảnh hưởng. Với những RBTV tìm được, hãy phân theo từng loại RBTV. 
Trang 95/109 
Chương 8 
Dạng chuẩn và chuẩn hóa cơ sở dữ liệu 
Chương này giới thiệu các dạng chuẩn, phân rã bảo toàn thông tin, bảo toàn phụ thuộc 
hàm, qua đó cũng trình bày cách phân rã bảo toàn bảo toàn thông tin và bảo toàn phụ 
thuộc. 
1. Dạng chuẩn của lược đồ quan hệ 
Để dễ dàng trình bày các dạng chuẩn, cần nắm rõ các khái niệm: 
Thuộc tính khoá: 
Cho lược đồ quan hệ ( )nAAAQ ,...,, 21 , thuộc tính B được gọi là thuộc tính khoá nếu B là 
một thuộc tính thành phần trong một khoá nào đó của Q, ngược lại B được gọi là thuộc 
tính không khoá 
Ví dụ: R(A, B, C, D), F={ABÆC, BÆD, BCÆA} 
Trong ví dụ trên, lược đồ R có 2 khoá là AB, BC. Khi đó A, B, C là thuộc tính khoá, D là 
thuộc tính không khoá. 
Giá trị nguyên tố 
Giá trị nguyên tố là giá trị không phân nhỏ được nữa. 
Ví dụ: Giá trị ChiTietMua: “Bánh Orion 1 gói, Kẹo mút 2 cây” không phải là giá trị 
nguyên tố vì có thể phân thành: tên hàng, số lượng, đơn vị tính. 
1.1. Dạng chuẩn 1 
Lược đồ Q ở dạng chuẩn 1 nếu mọi thuộc tính đều mang giá trị nguyên tố. 
Trong bài toán xét dạng chuẩn, dạng chuẩn thấp nhất là dạng chuẩn 1. 
Ví dụ. Cho lược đồ HOADON(MaHD, MaKH, NgayHD, CtietMua, SoTien), và có thể 
hiện như sau 
Trang 96/109 
CtietMua MaHD MaKH NgayHD 
Tên hàng Số lượng ĐVT 
SoTien 
Bánh Orion 1 Gói 25.000 HD01 KH01 15-10-05 
Kẹo mút 2 Cây 2.000 
HD02 KH01 18-10-05 Gạo 2 Kg 30.000 
Đường 1 Kg 15.000 HD03 KH02 24-10-05 
Bánh AFC 2 Gói 24.000 
Nhận thấy rằng CTiếtMua không mang giá trị nguyên tố, do đó HOADON không đạt 
dạng chuẩn 1. 
1.2. Dạng chuẩn 2 
1.2.1. Định nghĩa 
Lược đồ Q ở dạng chuẩn 2 nếu thoả: 
(1) Q đạt dạng chuẩn 1 
(2) Mọi thuộc tính không khóa của Q đều phụ thuộc đầy đủ vào khóa 
1.2.2. Kiểm tra dạng chuẩn 2 
Để kiểm tra dạng chuẩn 2 thực hiện: 
Bước 1: Tìm mọi khóa của Q 
Bước 2: Với mỗi khóa K, tìm bao đóng của tập tất cả các tập con thực sự Si của K 
Bước 3: Nếu tồn tại bao đóng Si+ chứa thuộc tính không khóa thì Q không đạt dạng chuẩn 
2, ngược lại Q đạt dạng chuẩn 2. 
Ví dụ 1. Cho Q1 (A, B, C, D), F={AÆB, BÆDC} 
Lược đồ chỉ có một khóa là A, nên mọi thuộc tính đều phụ thuộc đầy đủ vào khóa. Do 
vậy Q1 đạt dạng chuẩn 2. 
Ví dụ 2. Cho Q2 (A, B, C, D), F={ABÆD, CÆD} 
Lược đồ có khóa là ABC, ngoài ra còn có C⊂ABC mà CÆD, trong đó D là thuộc tính 
không khóa (nghĩa là thuộc tính D không phụ thuộc đầy đủ vào khóa). Do vậy Q2 không 
đạt dạng chuẩn 2. 
Trang 97/109 
Ví dụ 3: 
Xem ví dụ đơn giản bằng CSDL gồm 2 quan hệ MONHOC, SINHVIEN như sau: 
MONHOC (MaMH, TenMH, STC, Loai) 
Tân từ: Mỗi môn học có mã môn học (MaMH) duy nhất để phân biệt với các môn học 
khác, có tên môn học (TenMH), số tín chỉ (STC), và loại bắt buộc hay tự chọn (Loai) 
MaMH TenMH STC Loai 
CT101 Nhập môn tin học 4 BB 
CT102 TH kỹ năng máy tính 5 BB 
TN311 Xác suất thống kê 3 BB 
CT103 Thiết kế Web 4 TC 
CT110 Nguyên lý lập trình 2 5 BB 
SINHVIEN (MSSV, MaMH, TenSV, DiaChi, Diem) 
Tân từ: Mỗi sinh viên (MSSV) khi thi một môn học (MaMH) được ghi nhận lại điểm 
(Diem), ngoài ra còn có thông tin liên quan đến sinh viên như họ tên (TenSV), địa chỉ 
(DiaChi) 
MSSV MaMH TenSV DiaChi Diem 
0310677 CT101 Nguyễn Thị Hoa 11 Nguyễn Công Trứ, Đà Lạt 6 
0310678 CT101 Trần Hoàng 20 Bùi Thị Xuân, Đà Lạt 4 
0310679 CT101 Lê Thanh Sơn 2 Nhà Chung, Đà Lạt 7 
0310677 CT102 Nguyễn Thị Hoa 11 Nguyễn Công Trứ, Đà Lạt 8 
0310678 CT102 Trần Hoàng 20 Bùi Thị Xuân, Đà Lạt 8 
0310678 TN311 Trần Hoàng 20 Bùi Thị Xuân, Đà Lạt 3 
0310679 TN311 Lê Thanh Sơn 2 Nhà Chung, Đà Lạt 6 
0310677 CT103 Nguyễn Thị Hoa 11 Nguyễn Công Trứ, Đà Lạt 9 
0310678 CT103 Trần Hoàng 20 Bùi Thị Xuân, Đà Lạt 7 
Trang 98/109 
0310000 CT110 Nguyễn Ngọc 1 Lê Hồng Phong, Đà Lạt 9 
Ở quan hệ SINHVIEN có thể nhận thấy các phụ thuộc: 
MSSV, MaMH Æ Diem 
MSSVÆTenSV, DiaChi 
Vậy quan hệ SINHVIEN không đạt dạng chuẩn 2 vì thuộc tính TenSV, DiaChi là thuộc 
tính không khoá chỉ phụ thuộc vào MSSV: như vậy không phụ thuộc đầy đủ vào khoá. 
Trong quá trình cập nhật và lưu trữ dữ liệu xuất hiện những vấn đề sau: 
• Ở quan hệ SINHVIEN, việc lưu trữ thông tin một sinh viên bị lặp lại (tên, địa chỉ) 
• Quá trình cập nhật: 
o Sửa đổi: Khi cần sửa đổi địa chỉ của một sinh viên (ví dụ như Nguyễn Thị 
Hoa) cần phải sửa đổi 3 lần vì trùng lắp thông tin, hơn nữa, khi sửa đổi thông 
tin của về một sinh viên lại không liên quan đến thông tin về thi cử. 
o Thêm: Nếu chèn thêm một bộ vào quan hệ SINHVIEN mà sinh viên chưa thi 
môn nào thì không được vì khoá MSSV, MaMH là không đầy đủ. Vấn đề này 
chỉ được khắc phục khi loại bỏ những thông tin về kết quả thi cử ra khỏi quan 
hệ. 
o Xoá: Giả sử rằng cần xóa bỏ môn CT110 mà danh sách sinh viên vẫn giữ 
nguyên. Khi đó xóa bộ {‘CT110’, ‘Nguyên lý lập trình 2’, 5, ‘BB’} trong 
quan hệ MONHOC và xoá bộ {‘0310000’, ‘CT110’, ‘Nguyễn Ngọc’, ‘1 Lê 
Hồng Phong, Đà Lạt’, 9} trong quan hệ SINHVIEN. Khi đó thông tin về sinh 
viên sẽ bị mất. 
Để khắc phục những bất lợi trên, quan hệ SINHVIEN có thể tách thành 2 quan hệ 
SINHVIEN (MSSV, TenSV, DiaChi) và KETQUATHI (MSSV, MaMH, Diem). Như 
vậy, 3 quan hệ trên đều đã ở dạng chuẩn thứ 2. 
Trang 99/109 
1.3. Dạng chuẩn 3 
1.3.1. Định nghĩa 
Định nghĩa 1 
Với một lược đồ Q; X, Y là hai tập con của Q+; A là một thuộc tính. Khi đó A được gọi 
là phụ thuộc bắc cầu vào X nếu thỏa: 
(1) XÆY, YÆA 
(2) Y X 
(3) A ∉ XY 
Lược đồ Q ở dạng chuẩn 3 nếu mọi thuộc tính không khóa đều không phụ thuộc bắc cầu 
vào khóa. 
Việc kiểm tra dạng chuẩn 3 theo định nghĩa trên sẽ khó cài đặt. Ta có thể thực hiện kiểm 
tra dạng chuẩn 3 theo định nghĩa sau: 
Định nghĩa 2 
Lược đồ Q ở dạng chuẩn 3 nếu mọi phụ thuộc hàm XÆA∈F+, với A ∉ X đều có: 
(1) X là siêu khóa, hoặc 
(2) A là thuộc tính khóa 
1.3.2. Kiểm tra dạng chuẩn 3 
Từ định nghĩa 2, để kiểm tra dạng chuẩn 3 thực hiện các bước sau: 
Bước 1: Tìm mọi khóa của Q 
Bước 2: Phân rã vế phải của mọi phụ thuộc hàm trong F để tập F trở thành tập phụ thuộc 
hàm có vế phải một thuộc tính 
Bước 3: Nếu mọi phụ thuộc hàm XÆA ∈F, mà A ∉ X đều thỏa 
(1) X là siêu khóa (vế trái chứa một khóa), hoặc 
(2) A là thuộc tính khóa (vế phải là tập con của khóa) 
thì Q đạt dạng chuẩn 3, ngược lại Q không đạt dạng chuẩn 3. 
Ví dụ. Cho Q (A, B, C, D), F={ABÆD, CÆD} 
Bước 1: Q có một khóa là ABC 
Trang 100/109 
Bước 2: Mọi phụ thuộc hàm trong F đều đã có vế phải một thuộc tính. 
Bước 3: Với ABÆD, nhận thấy rằng D ∉ ABC có 
• Vế trái (AB) không phải là siêu khóa. 
• Hơn nữa vế phải (D) không là thuộc tính khóa 
Vậy Q không đạt dạng chuẩn 3. 
1.4. Dạng chuẩn BC (Boyce Codd) 
1.4.1. Định nghĩa 
Lược đồ Q ở dạng chuẩn BC nếu mọi phụ thuộc hàm XÆA∈F+, với A ∉ X đều có X là 
siêu khóa. 
1.4.2. Kiểm tra dạng chuẩn BC 
Từ định nghĩa, để kiểm tra dạng chuẩn BC thực hiện các bước sau: 
Bước 1: Tìm mọi khóa của Q 
Bước 2: Phân rã vế phải của mọi phụ thuộc hàm trong F để tập F trở thành tập phụ thuộc 
hàm có vế phải một thuộc tính 
Bước 3: Nếu mọi phụ thuộc hàm XÆA ∈F, mà A ∉ X đều thỏa X là siêu khóa (vế trái 
chứa một khóa), thì Q đạt dạng chuẩn BC, ngược lại Q không đạt dạng chuẩn BC. 
Ví dụ. Cho Q (A, B, C, D, E, I), F={ACDÆEBI, CEÆAD} 
Bước 1: Q có hai khóa là {ACD, CE} 
Bước 2: Phân rã vế phải của các phụ thuộc hàm trong F, ta có: 
F={ACDÆE, ACDÆB, ACDÆI, CEÆA, CEÆD} 
Bước 3: Mọi phụ thuộc hàm trong F đều có vế trái là một siêu khóa 
Vậy Q đạt dạng chuẩn BC. 
1.5. Kiểm tra dạng chuẩn 
Kiểm tra dạng chuẩn của lược đồ quan hệ Q 
Bước 1: Tìm mọi khóa của Q 
Bước 2: Kiểm tra dạng chuẩn BC, nếu đúng thì Q đạt dạng chuẩn BC, 
Trang 101/109 
 ngược lại qua bước 3. 
Bước 3: Kiểm tra dạng chuẩn 3, nếu đúng thì Q đạt dạng chuẩn 3, 
 ngược lại qua bước 4. 
Bước 4: Kiểm tra dạng chuẩn 2, nếu đúng thì Q đạt dạng chuẩn 2, 
 ngược lại Q đạt dạng chuẩn 1. 
Kiểm tra dạng chuẩn của lược đồ CSDL 
Dạng chuẩn của một lược đồ CSDL là dạng chuẩn thấp nhất trong các dạng chuẩn của các 
lược đồ quan hệ con. 
2. Phép phân rã 
Mục tiêu của việc thiết kế CSDL quan hệ là tạo ra một tập các lược đồ quan hệ cho phép 
chúng ta lưu trữ thông tin không có những dư thừa không cần thiết và truy tìm thông tin 
một cách dễ dàng, chính xác. Việc phân rã một lược đồ thành những lược đồ con đều 
mong muốn đạt được bảo toàn thông tin và bảo toàn phụ thuộc. 
2.1. Phân rã bảo toàn thông tin 
Cho lược đồ quan hệ Q (TenNCC, DiaChiNCC, SanPham, DonGia) 
Phân rã Q thành Q1 và Q2 như sau: 
Q1 (TenNCC, SanPham, DonGia) 
Q2 (TenNCC, DiaChiNCC) 
Khi đó ta có các thể hiện sau: 
Q TenNCC DiaChiNCC SanPham DonGia 
 Nguyễn Mai 10 Nguyễn Công Trứ Bánh xốp 10.000 
 Nguyễn Mai 10 Nguyễn Công Trứ Kẹo mè 20.000 
 Nguyễn Mai 20 Nguyễn Văn Trỗi Kẹo mè 20.000 
Q1 TenNCC SanPham DonGia 
 Nguyễn Mai Bánh xốp 10.000 
Trang 102/109 
 Nguyễn Mai Kẹo mè 20.000 
Q2 TenNCC DiaChiNCC 
 Nguyễn Mai 10 Nguyễn Công Trứ 
 Nguyễn Mai 20 Nguyễn Văn Trỗi 
21 QQ >< TenNCC DiaChiNCC SanPham DonGia 
 Nguyễn Mai 10 Nguyễn Công 
Trứ 
Bánh xốp 10.000 
 Nguyễn Mai 10 Nguyễn Công 
Trứ 
Kẹo mè 20.000 
 Nguyễn Mai 20 Nguyễn Văn Trỗi Bánh xốp 10.000 
 Nguyễn Mai 20 Nguyễn Văn Trỗi Kẹo mè 20.000 
Như vậy kết quả thể hiện Q và 21 QQ >< là khác nhau, khi đó ta nói phép phân rã gọi là 
không bảo toàn thông tin (mất mát thông tin). 
Định nghĩa 
Q là lược đồ quan hệ, Q1, Q2 là hai lược đồ con có: 
+++
++
=∪
=∩
QQQ
XQQ
21
21
Khi đó Q được phân rã thành hai lược đồ con Q1, Q2 là phép phân rã bảo toàn thông tin 
nếu với r là thể hiện bất kỳ của Q ta có: 
 21 .. QrQrr ><= 
(r là kết quả của phép kết tự nhiên của các hình chiếu của nó trên Q1, Q2) 
2.2. Phân rã bảo toàn phụ thuộc hàm 
Một vấn đề cần quan tâm khi phân rã lược đồ Q thành các lược đồ con Qi với tập các Fi 
tương ứng được tính từ tập phụ thuộc hàm F. Phép phân rã bảo toàn phụ thuộc (giữ lại 
Trang 103/109 
phụ thuộc) nếu với ri là thể hiện của Qi thoả điều kiện: ri chỉ thoả những phụ thuộc hàm 
XÆY ∈F+ với XY⊆Qi+ 
Định nghĩa 
Gọi Q1, Q2,, Qn là phân rã của lược đồ quan hệ Q, tập phụ thuộc hàm F trên Q. Hình 
chiếu của F trên một tập các thuộc tính Qi+ ký hiệu ΠQi+(F) là tập các phụ thuộc hàm 
XÆY ∈F+ với XY⊆Qi+ 
ΠQi+(F) = Fi+={XÆY | XÆY ∈F+ và XY⊆Qi+ } 
Khi đó phân rã là bảo toàn tập phụ thuộc hàm F nếu 
F ≡ ∪ ΠQi+(F) 
3. Thiết kế CSDL bằng cách phân rã 
3.1. Phân rã thành dạng chuẩn BC (hoặc dạng chuẩn 3) bảo toàn thông tin 
3.1.1. Thuật toán 
Bước 1: Tìm tất cả các khóa của Q 
Bước 2: Tìm phụ thuộc hàm XÆY ∈F có X không là siêu khóa và Y không chứa thuộc 
tính khóa. 
• Nếu tìm thấy thì tách Q thành Q1 và Q2 theo cách: 
o Q1 = Q[XY]; F1 ≡ ΠQ1(F) (tìm bao đóng của tất cả các tập con của XY để tính 
F1). Tiếp tục phân rã (Q1, F1). 
o Q2 = Q[Q+ - Y]; F2 ≡ ΠQ2(F) (tìm bao đóng của tất cả các tập con của (Q+ - Y) 
để tính F2). Tiếp tục phân rã (Q2, F2). 
• Nếu không tìm thấy thì xét dạng chuẩn Qi: 
o Nếu mọi phụ thuộc hàm trong Fi đều có vế trái là siêu khóa thì Qi đạt dạng 
chuẩn BC 
o Nếu có phụ thuộc hàm trong Fi có vế trái không là siêu khóa và vế phải là 
thuộc tính khóa thì Qi đạt dạng chuẩn 3 
3.1.2. Ví dụ 
Ví dụ 1 
Cho Q (SDIM), F={SIÆD, SDÆM} 
Trang 104/109 
Bước 1: Q có một khóa là {SI} 
Bước 2: Phụ thuộc hàm SDÆM có SD không là siêu khóa nên tách: 
Q1 = (SDM); F1 = {SDÆM} 
Q2 = (SDI); F2 = {SIÆD} 
Để tìm tập phụ thuộc hàm F1, F2 cần tính bao đóng của mọi tập con. 
Tìm F1: với Q1 = (SDM): bao đóng của mọi tập con 
SSF =+ 
DDF =+ 
MM F =+ 
SDMSDF =+ 
SMSM F =+ 
DMDM F =+ 
SDMSDM F =+ 
F1 = ΠQ1(F) = {SDÆM, SDÆSM, SDÆDM, SDÆSDM } 
⇒ F1 = {SDÆM} 
Tìm F2: với Q2= (SDI): bao đóng của mọi tập con 
SSF =+ 
DDF =+ 
II F =+ 
SDMSDF =+ 
SIDMSI F =+ 
DIDI F =+ 
SDIMSDI F =+ 
Trang 105/109 
F2 = ΠQ2(F) = {SIÆD, SIÆSD, SIÆDI, SIÆSDI } 
⇒ F2 = {SIÆD} 
Bước 3: Mọi phụ thuộc hàm trong F1và F2 đều có vế trái là một siêu khóa nên Q1 và Q2 
đạt dạng chuẩn BC. 
Ví dụ 2 
Cho Q (ABCDE), F = {BCÆA, CÆD, AEÆB, BÆD, BÆE} 
Bước 1: 2 khóa là {CB, CAE} 
Bước 2: Từ CÆ D tách thành: 
• Q1(CD), F1= {CÆD}, Khóa C. Đạt dạng chuẩn BC. 
• Q2(CABE), F2= {BÆE, CBÆA, AEÆB} 
Chi tiết tính F1, F2 như sau: 
Tìm F1: với Q1 = (CD) 
CDCF =+ 
DDF =+ 
CDCDF =+ 
Vậy F1 = {CÆD} 
Tìm F2: với Q2(CABE): 
 CDCF =+ 
AAF =+ 
BDEBF =+ 
EEF =+ 
CADCAF =+ 
CBADECBF =+ 
CEDCEF =+ 
Trang 106/109 
ABDEABF =+ 
AEBDAEF =+ 
BEDBEF =+ 
CABDECABF =+ 
CAEBDCAEF =+ 
CBEADCBEF =+ 
ABEDABEF =+ 
CABEDCABEF =+ 
F2= {BÆE, CBÆAE, ABÆE, AEÆB, CABÆE, CAEÆB, CBEÆA} 
Vậy F2= {BÆE, CBÆA, AEÆB} 
Xét dạng chuẩn Q2: 
Khoá Q2: {CB, CAE}. Vậy Q2 đã đạt dạng chuẩn 3. 
3.1.3. Cải tiến thuật toán 
Nhận thấy rằng trong tìm phụ thuộc hàm hình chiếu trên Qi, xét tập một con Xi, nếu 
( ) ++ = QX Fi , khi đó nếu tiếp tục xét các tập XjXiXj ⊂: , thì hiển nhiên ( ) ++ = QX Fj , và 
cuối cùng thì phụ thuộc hàm có vế trái Xj cũng sẽ bị loại để chỉ chọn phụ thuộc hàm có 
vế trái Xi. 
Do đó, khi tìm phụ thuộc hàm hình chiếu trên Qi, xét tập một con Xi, nếu ( ) ++ = QX Fi , 
thực hiện loại bỏ các tính toán cho các trường hợp XjXiXj ⊂: . 
Ví dụ: với tìm F2 như ví dụ trên: 
Q2(CABE), F = {BCÆA, CÆD, AEÆB, BÆD, BÆE} 
 CDCF =+ 
AAF =+ 
BDEBF =+ 
EEF =+ 
Trang 107/109 
CADCAF =+ 
CBADECBF =+ , loại các tập CAB, CBE, CABE 
CEDCEF =+ 
ABDEABF =+ 
AEBDAEF =+ 
BEDBEF =+ 
ABEDABEF =+ 
F2= {BÆE, CBÆAE, ABÆE, AEÆB} 
Vậy F2= {BÆE, CBÆA, AEÆB} 
3.2. Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc 
hàm 
Bước 1: Tìm phủ tối thiểu của F. 
Bước 2: Loại bỏ tất cả các thuộc tính của Q không liên quan đến một phụ thuộc hàm nào 
của PTT(F). 
Bước 3: Nếu có một phụ thuộc hàm trong PTT(F) liên quan đến mọi thuộc tính của Q thì 
không thể phân rã. Ngược lại, qua bước 4. 
Bước 4: Gom nhóm những phụ thuộc hàm có cùng vế trái. Với mỗi nhóm phụ thuộc hàm 
có cùng vế trái, tạo thành một lược đồ con. 
Bước 5: Kiểm tra các lược đồ con có thoả dạng chuẩn 3 chưa, nếu chưa thì áp dụng bước 
4 để phân rã tiếp. 
Ví dụ. Cho Q (CTHRSG), F={CÆT, HRÆC, HTÆR, CSÆG, HSÆR} 
PTT(F) = F = {CÆT, HRÆC, HTÆR, CSÆG, HSÆR} 
Ta có kết quả phân rã Q1(CT), Q2(HRC), Q3(HTR), Q4(CSG), Q5(HRS) 
4. Bài tập 
Bài tập 7, 8, 9 trong chương 7, với yêu cầu: 
- Phân rã thành dạng chuẩn BC hoặc dạng chuẩn 3 bảo toàn thông tin 
Trang 108/109 
- Phân rã thành dạng chuẩn 3 bảo toàn thông tin và bảo toàn phụ thuộc hàm 
Trang 109/109 
Tài Liệu Tham Khảo 
1. Bài giảng Cơ sở dữ liệu, Nguyễn Hữu Tân, Đại Học Đà Lạt, 2004. 
2. Bài tập cơ sở dữ liệu, Nguyễn Xuân Huy – Lê Hoài Bắc, NXB thống kê, 2003. 
3. Giáo trình Cơ sở dữ liệu, Nguyễn Đăng Tỵ - Đỗ Phúc, Đại Học Quốc gia Tp. Hồ Chí 
Minh, 2001. 
4. Nhập môn Cơ sở dữ liệu quan hệ, Lê Tiến Vương, NXB Khoa học và Kỹ thuật, 1994. 
5. David Maier, The theory of Relational Databases, Computer Science Press, 
Rockville, 1983. 

File đính kèm:

  • pdfgiao_trinh_co_so_du_lieu_cao_thi_nhan_phan_2.pdf