Chuẩn hóa lược đồ quan hệ - Pdf 62

H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 31
DẠNG 9: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ
Bài toán: Cho quan hệ R(U, F). Hãy chuẩn hóa quan hệ về 3 NF (hoặc BCNF).
Các kiến thức liện quan:
Thuộc tính khóa:
A là thuộc tính khóa của R nếu nó nằm trong 1 khóa tối thiểu
của R. Ngược lại A gọi là thuộc tính không khóa.
Thuộc tính suy diễn:
Thuộc tính A được gọi là suy diễn nếu giá trị của nó được
tính toán ra từ giá trị của các thuộc tính khác. Ví dụ: ĐơnGiá, SốLượng, ThànhTiền thì
ThànhTiền là thuộc tính suy diễn. NgàySinh, Tuổi thì Tuổi là suy diễn…
Thuộc tính lặp: với 2 bản ghi bất kỳ trong quan hệ, nếu hai bản ghi đó trùng
nhau về giá trị trên trường khóa mà có thể có giá trị khác nhau trên trường A thì A là
thuộc tính lặp.
Ví dụ: xét quan hệ SinhVien(MaSV, TenSV, GioiTinh, MaMon, TenMon,
Diem) Với MaSV là khóa. Để xác định thuộ tính lặp ta làm như sau:
Đánh chỉ số cho các thuộc tính: Khóa có chỉ số 1.
TênSV có chỉ số 1 do một MaSV chỉ xác định 1 tên SV.
GioiTinh có chỉ số 1 do một MaSV chỉ xác định 1 giới tính.
MaMon có chỉ số ∞ do một MaSV có thể có nhiều MaMon (do 1 SV học nhiều
môn)… TenMon, Diem có chỉ số ∞ do một MaSV có thể có nhiều TenMon va Diem.
Vậy ta thu được:
1 1 1 ∞ ∞ ∞
SinhVien(MaSV, TenSV, GioiTinh, MaMon, TenMon, Diem)
Các thuộc tính có chỉ số

là thuộc tính lặp !
Phụ thuộc bộ phận, phụ thuộc toàn thể: Nếu AB → C ta nói C phụ thuộc toàn
thể vào AB, nhưng nếu trong chỉ có B → C thì C chỉ phụ thuộc toàn thể vào B và phụ
thuộc bộ phận vào AB.

R
2
(Khóa + Các thuộc tính lặp). Khóa của R
2
là khóa của R và 1 thuộc tính lặp
nào đó. R
1
và R
2
đã ở 1NF.
VD: Bảng SinhVien(MaSV, TenSV, GioiTinh, MaMon, TenMon, Diem) được
tách thành:
R
1
(MaSV, TenSV, GioiTinh). Khóa là MaSV
R
2
(MaSV, MaMon, TenMon, Diem). Khóa là MaSV, MaMon.
F Chuẩn hóa về 2NF:
B1. Tìm phủ tối thiểu của F (nếu F chưa tối thiểu).
B2. Tìm khóa tối thiểu của R.
B3. Vẽ đồ thị phụ thuộc hàm
B4. Nhìn vào đồ thị phụ thuộc hàm, nếu tồn tại thuộc tính không khóa, phụ thuộc
bộ phận vào khóa thì tách R thành:
R
1
(Khóa tạo sự phụ thuộc bộ phận + thuộc tính không khóa phụ thuộc bộ
phận vào khóa). Khóa của R
1
là "Khóa tạo sự phụ thuộc bộ phận".

2
đã ở 3NF.
F Chuẩn hóa về BCNF:
B1: Vẽ đồ thị phụ thuộc hàm.
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 33
B2: Nhìn vào đồ thị phụ thuộc hàm, nếu có phụ thuộc hàm X → Y mà không có
dạng Khóa → Không khóa thì tách R thành:
R
1
(XY). Khóa của R
1
là X ; tập phụ thuộc hàm F
1
={X → Y}
R
2
(X+Khóa của R + các thuộc tính không khóa còn lại). Khóa của R
2
là khóa
của R+ {X} .
R
1
và R
2
đã ở BCNF.
Ví dụ:


4
= {AB} vì AB → CD và AB ∈ K
2

K
5
≡ K
4

Vậy khóa của R là {AB}.
Thuộc tính khóa: A, B.
Thuộc tính không khóa: C, D, E, G.
B3: Vẽ đồ thị phụ thuộc hàm: (vẽ trên tập F đã tối thiểu) A B C D E G H

Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 34
B4: R chưa chuẩn 2 NF do tồn tại E và G là thuộc tính không khóa phụ thuộc bộ
phận vào khóa. (vì B → E và E → G nên ở đây mặc dù không còn B → G ta vẫn có thể
xem như có B → G). Tách R thành:
R
1
(B E G). Khóa B ; F
1
= {B → E, E → G}
R

12
={B → E}
R
11
và R
12
đã ở 3NF.
Xét R
2:
đồ thị phụ thuộc hàm:

A B C D H R
2
chưa ở 3NF do tồn tại H là thuộc tính không khóa lại phụ thuộc bắc cầu vào
khóa. Tách R
2
thành:
R
21
(C H). Khóa C ; F
21
={C → H}
R
22
(A B C D). Khóa AB ; F
22
={AB → CD}

Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 35
hàm để loại bỏ thuộc tính lạ đó ra khỏi tập phụ thuộc hàm. Thao tác này gọi là: chiếu
thuộc tính "lạ" lên quan hệ.
Một phương pháp chuẩn hóa nhanh khác cũng có thể được sử dụng. Tuy nhiên
phương pháp nhanh này không phải bao giờ cũng cho ta phép tách (cách chuẩn hóa) ít
quan hệ nhất.
Phương pháp chuẩn hóa nhanh như sau :
B1. Loại bỏ tất cả các phụ thuộc hàm dư thừa và thuộc tính vế trái dư thừa trong F.
B2. Tách quan hệ R theo các phụ thuộc hàm : Nếu F có bao nhiêu phụ thuộc hàm
thì tách R thành bấy nhiêu quan hệ con.
Với quan hệ R trong ví dụ trên, ta xét tập F :
F= {AB→C, B → EG, C→H, E → G, BC→ H}
Loại bỏ BC → H và thuộc tính G trong B → EG ta còn :
F= {AB→C, B → E, C→H, E → G}
Và tách R thành :
R
1
(ABC) Khóa AB, F
1
= {AB → C}
R
2
(BE) Khóa B, F
2
= {B → E}
R
3

= {B → DE}
R
3
(GH) Khóa G, F
3
= {G → H}
Quan hệ R
3
không thể kết nối tới 2 quan hệ R
1
và R
2
do nó không có thuộc tính
chung với R
1
và R
2
. Do vậy, ta cần bổ sung quan hệ :
R
4
(ABG) Khóa ABG, F
4
= ∅
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status