Professional Documents
Culture Documents
Mục lục
Bộ (tuple) /hàng A B C D E
t1 a1 b1 c1 d1 e1
t2 a1 b2 c2 d2 d1
t3 a2 b1 c3 d3 e1
t4 a2 b1 c4 d3 e1
t5 a3 b2 c5 d1 e1
Hãy cho biết phụ thuộc hàm nào sau đây thỏa quan hệ R: AD, ABD, CBDE, EA, A E?
Bài giải:
AD không phải là PTH thỏa quan hệ R vì có hàng t 1 và t2 có giá trị ở thuộc tính A bằng nhau nhưng
giá trị ở thuộc tính D lại khác nhau.
Viết ngắn gọn:
Vì t1.A = t2.A và t1.D < > t2.D nên AD không phải là PTH thỏa quan hệ R
2. Cho lược đồ quan hệ quản lý lịch bay, có dữ liệu như sau:
Bài giải:
a. {MAYBAY} GIOKH thỏa quan hệ trên vì với hai bộ bất kỳ t1, t2 ta có:
nếu t1.MAYBAY = t2.MAYBAY thì t1.MAYBAY = t2.GIOKH
3. Cho quan hệ
A B C D
x u x y
y x z x
z y y y
y z w z
2. Cho lược đồ quan hệ Q(CDEGHK) và tập phụ thuộc hàm F = {CK H, CD, EC, EG,
CKE}. Chứng minh EKDH bằng luật suy diễn Armstrong.
Viết lại đề bài:
F={ f1: CK H,
f2: CD,
f3: EC,
f4: EG,
f5: CKE}
Muốn chứng minh EK DH ta phải chứng minh được EK D (1) và EK H (2)
Để chứng minh, ta phải chú ý những PTH có VT chứa EK và những PTH có VP chứa D, H
Ta thấy chỉ có f2: CD có liên quan đến (1), trong khi VT của (1) là EK, cho nên ta sẽ tìm cách kết
hợp f2 với những PTH có VT chứa E, K.
f6: CK D (áp dụng luật thêm vào cho f2)
f7: EK D (áp dụng luật bắt cầu giả cho f3 và f6), ta đã chứng minh được (1)
f10: EK DH (áp dụng luật hội cho f7 và f9, vậy ta đã chứng minh được PTH theo
yêu cầu.
3. Cho tập phụ thuộc hàm F= {ABE, AGI, BEI, EG, GIH}. Hãy chứng tỏ phụ thuộc hàm
ABGH được suy diễn từ F nhờ luật suy diễn Armstrong.
4. Cho tập phụ thuộc hàm F= {ABE, AGI, BEI, EG, GI H}. Chứng minh rằng AB GH
bằng luật suy diễn Armstrong.
5. Cho tập phụ thuộc hàm F={ABC; BD; CDE; CEGH; GA. Chứng minh rằng AB E,
AB G bằng luật suy diễn Arsmtrong.
6. F={ABE;AGI;BEI;EG;GI H} chứng minh rằng AB GH (bằng luật Armstrong hoặc
bằng cách tìm bao đóng)
7. F={ABC;BD;CDE;CEGH;GA}chứng minh rằng AB E; AB G (bằng luật
Armstrong hoặc bằng cách tìm bao đóng)
C. Bài tập tìm bao đóng của một tập thuộc tính
1. Cho tập phụ thuộc hàm F = {f1: ABC, f2: BD, f3: CDE, f4: CEGH, f5: GA}. Tìm
{AB}+
Ta có {AB}+ = {AB} do hiển nhiên
{AB}+ = {ABC} do suy ra tiếp từ f1
{AB}+ = {ABCD} do suy ra tiếp từ f2
{AB}+ = {ABCDE} do suy ra tiếp từ f3
{AB}+ = {ABCDEGH} do suy ra tiếp từ f4
Vậy {AB}+ = {ABCDEGH}
2. Cho tập phụ thuộc hàm F = {f1: AD, f2: ABDE, f3: CEG, f4: EH}. Tìm {AB}+
Ta có {AB}+ = {AB} do hiển nhiên
{AB}+ = {ABD} do suy ra tiếp từ f1
{AB}+ = {ABDE} do suy ra tiếp từ f2
{AB}+ = {ABDEH} do suy ra tiếp từ f4
Vậy {AB}+ = {ABDEH}
3. Cho tập phụ thuộc hàm F = {AD, ABE, BIE, CDI, EC}. Tìm {AE}+
4. Cho tập phụ thuộc hàm F= {ABE, AGI, BEI, EG, GIH}. Tìm {AB}+
5. Cho lược đồ quan hệ Kehoach(NGAY, GIO, PHONG, MONHOC, GIAOVIEN)
và tập phụ thuộc hàm F=
{{NGAY, GIO, PHONG} MONHOC,
{MONHOC, NGAY} GIAOVIEN,
{NGAY, GIO, PHONG} GIAOVIEN,
MONHOC GIAOVIEN}
Tìm {NGAY, GIO, PHONG} và {MONHOC}+
+
D. Bài tập tìm bao đóng của một tập phụ thuộc hàm (BỎ)
1. Tìm bao đóng F+ của quan hệ Q (A,B,C) có F = {AB C , C B}
Bài giải:
Bước 1 và bước 2: Tìm tất cả các tập con của Q+ và tìm bao đóng của tất cả tập con của Q+
+ = A+ = A B+ = B C+ = BC
AB+ = ABC AC+ = ABC BC+ = BC ABC+=ABC
Bước 3: rút ra các PTH mới, không kể các PTH hiển nhiên có từ: A + = A, B+ = B, BC+= BC, ABC+ = ABC
Như vậy ta chỉ cần xét: C+ = BC, AB+ = ABC, AC+ = ABC
F. Bài tập tìm phủ tối thiểu của một phụ thuộc hàm
1. Cho lược đồ quan hệ Kehoach(NGAY, GIO, PHONG, MONHOC, GIAOVIEN)
F={NGAY,GIO,PHONG MONHOC
MONHOC,NGAY GIAOVIEN
NGAY,GIO,PHONG GIAOVIEN
MONHOC GIAOVIEN}
a. Tính {NGAY,GIO,PHONG}+ ,{MONHOC}+
b. Tìm phủ tối thiểu của F
c. Tìm tất cả các khóa của Kehoach
2. Cho lược đồ quan hệ Q(TENTAU, LOAITAU, MACHUYEN, LUONGHANG, BENCANG,
NGAY)
F={TENTAU LOAITAU
MACHUYEN TENTAU, LUONGHANG
TENTAU,NGAY BENCANG, MACHUYEN}
a. Hãy tìm tập phủ tối thiểu của F
b. Tìm tất cả các khóa của Q
3. Cho lược đồ quan hệ Q(C,T,H,R,S,G) và tập phụ thuộc hàm:
F= { f1: C T; f2: HR C; f3: HT R;
f4: CS G; f5: HS R}
Tìm phủ tối thiểu của F.
Xác định phủ tối thiểu của tập phụ thuộc hàm F của các lược đồ quan hệ dưới đây:
4. Q(A,B,C,D,E,G), F={ABC;CA;BCD;ACDB;DEG;BEC;CGBD;CEAG}.
Bài giải: {CD}+ = CDABEG
Bước 1: Loại khỏi F các PTH có VT dư thừa (bước 1 là để tối thiểu hóa VT)
Bước 2: Tách các PTH có VP có hơn 1 thuộc tính trở lên thành các PTH có VP có 1 thuộc tính
Bước 3: Loại khỏi F các PTH dư thừa (bước 2, bước 3 là để tối thiểu hóa VP và tối thiểu hóa số lượng
PTH)
Xét từng PTH có VT nhiều hơn 1 thuộc tính là ABC, BCD, ACDB,
BEC;CGBD;CEAG, ta xét xem chúng có VT dư thừa hay không.
Đối với AB→C, ta xét xem liệu có hay không AC, B C?
A+ = A, cho nên không có AC
B+ = B cho nên không có BC
Đối với BCD, ta xét xem liệu có hay không BD, CD?
B+ = B cho nên không có BD
C+ = CA cho nên không có CD
Đối với ACDB ta xét xem liệu có hay không AB, CB, DB, ACB, ADB, CDB
hay không?
A+ = A, cho nên không có AB
C+ = CA, cho nên không có CB
D+ = DEG cho nên không có DB
{AC}+ = AC cho nên không có ACB
{AD}+ = ADEG cho nên không có ADB
{CD}+= CDAEGBD cho nên ta có CDB
Từ kết quả trên, ta có thể thay ACDB bằng CDB
Đối với BEC ta xét xem liệu có hay không BC, EC?
B+ = B cho nên không có BC
E+ = E cho nên không có E→C
Đối với CGBD ta xét xem liệu có hay không CBD, GBD?
C+ = CA, cho nên không có CBD
G+ = G cho nên không có GBD
Đối với CEAG, ta xét xem liệu có hay không CAG, EAG?
C+ = CA, cho nên không có CAG
E+ = E cho nên không có E→AG
Kết quả bước 1, ta có tập PTH mới là:
F={ABC;CA;BCD;CDB;DEG;BEC;CGBD;CEAG}.
Bước 2: Tách các PTH có VP có hơn 1 thuộc tính thành các PTH có VP là 1 thuộc tính
Ta xét F = F1tt ={ABC;CA;BCD;CDB;DE;DG,BEC;CGB;CGD;CEA,
CEG}.
Thử loại CA ra khỏi F1tt, ta xét xem có thể suy diễn CA là thành viên của {ABC,
BCD;CDB;DE;DG,BEC;CGB;CGD;CEA, CEG} hay không?
Ta có C+=C cho nên ta không có CA
Thử loại BCD ra khỏi F1tt, ta xét xem có thể suy diễn BCD là thành viên của
{ABC;CA;CDB;DE;DG,BEC;CGB;CGD;CEA, CEG} hay không?
Ta có {BC}+ = BCA = ABC cho nên ta không có BCD
Thử loại CDB ra khỏi F1tt, ta xét xem có thể suy diễn CDB là thành viên của
{ABC;CA;BCD; DE;DG,BEC;CGB;CGD;CEA, CEG} hay không?
Ta có {CD}+ = CDAEGB = ABCDEG, cho nên ta có CDB là thành viên của F+
Vậy ta có thể loại CDB ra khỏi F.
Viết ngắn lại: Thử loại CDB khỏi F. Bằng suy diễn, ta thấy CD→B ∈ F+, nên nó dư thừa, nên
ta loại hẳn nó ra khỏi F.
Thử loại DE ra khỏi F1tt, ta xét xem có thể suy diễn DE là thành viên của
{ABC;CA;BCD; DG,BEC;CGB;CGD;CEA, CEG} hay không?
Ta có D+ = DG cho nên ta không có DE
Thử loại DG ra khỏi F1tt, ta xét xem có thể suy diễn DG là thành viên của
{ABC;CA;BCD;DE;BEC;CGB;CGD;CEA, CEG} hay không?
Ta có D+ = DE cho nên ta không có DG
Thử loại BEC ra khỏi F1tt, ta xét xem có thể suy diễn BEC là thành viên của
{ABC;CA;BCD;DE;DG,CGB;CGD;CEA, CEG} hay không?
Ta có {BE}+ = BE cho nên ta không có BEC
Thử loại CGB ra khỏi F1tt, ta xét xem có thể suy diễn CGB là thành viên của
{ABC;CA;BCD;DE;DG,BEC;CGD;CEA, CEG} hay không?
Ta có {CG}+ = CGADE, cho nên ta không có CG B
Thử loại CGD ra khỏi F1tt, ta xét xem có thể suy diễn CGD là thành viên của
{ABC;CA;BCD; DE;DG,BEC;CGB;CEA, CEG} hay không?
Ta có {CG}+ = CGABDE, cho nên ta có CGD là thành viên của F+
Vậy ta có thể loại CGD ra khỏi F.
Thử loại CEG ra khỏi F1tt, ta xét xem có thể suy diễn CEG là thành viên của
F={ABC;CA;BCD; DE;DG,BEC;CGB} hay không?
Ta có {CE}+ = CEA cho nên ta không có CEG
Kết quả của bước 3: phủ tối thiểu của tập PTH F ban đầu là:
F={ABC;CA;BCD; DE;DG,BEC;CGB;CEG}
5. Q(A,B,C), F={AB,AC,BA,CA,BC}.
6. Q(ABCDEGH), F={A H,ABC,BCD;GB}
7. Q(ABCSXYZ), F={SA;AXB;SB;BYC;CZX}
8. Q(ABCDEGHIJ), F={BGD;GJ;AIC;CEH;BDG;JHA; DI }
9. Q(ABCDEGHIJ), F={BHI;GCA;IJ;AEG;DB;IH}
10. Q(ABCSXYZ), F={SA;AXB;SB;BYC;CZX}
∅
A A A
B B B
C C CABD = Q+ C C
D D DB
AB AB ABCD = Q+ AB AB
AD AD ADBC = Q+ AD AD
BD BD BD
ABC ABC ABCD = Q+ ABC (so sánh với C thì không chọn siêu
khóa này làm khóa)
ABD ABD ABDC = Q+ ABD (so sánh với AB thì không chọn siêu
khóa này làm khóa)
ACD ACD ACDB = Q+ ACD (so sánh với C thì không chọn siêu
khóa này làm khóa)
BCD BCD BCDA = Q+ BCD (so sánh với C thì không chọn siêu
khóa này làm khóa)
ABCD ABCD ABCD = Q+ ABCD (so sánh với C thì không chọn siêu
khóa này làm khóa)
5. Cho Q (A, B, C, D, E, G) và
F = {ABC, C A, BCD, ACDB, DEG, BEC, CGBD, CEG}
Hãy tìm tất cả các khóa của Q.
6. Cho Q(CDEGHK) và F = {CKH, CD, EC, EG, CKE}
Hãy tìm tất cả các khóa của Q.
Bước 2: Với mỗi phụ thuộc hàm XY của G ta xác định xem XY có là thành viên của F không
K TN
kết thúc
Ngược lại
Qua bước 3
Bước 3: tìm tất cả các tập con Xi của tập trung gian TG
Si = TN Xi
Bước 5: tìm khóa bằng cách loại bỏ các siêu khóa không tối tiểu
Si, Sj S
if Si Sj then Loại Sj ra khỏi Tập siêu khóa S
S còn lại chính là tập khóa cần tìm.
Ví dụ: Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc hàm F={ABC; BD; BCA}. Hỏi Q có đạt
chuẩn 2 không?
Giải: Bước 1: Tìm tất cả các khóa của Q theo thuật toán cải tiến:
Ta có TN={B}, TG={AC}
B BD
A AB ABCD=Q+ AB AB
C BC ABCD=Q+ BC BC
Ví dụ: Quan hệ Q sau đạt chuẩn 2, Q (GHMNPV) với F={GM, GN, GH, GP, MV, NHPM}
Giải: Bước 1: Tìm tất cả các khóa của Q theo thuật toán cải tiến:
Ta có TN={G} TG={M,N,H,P}
G GHMNPV=Q+ G G
GHMNPV=Q+
M GM GM
GHMNPV=Q+
N GN GN
GHMNPV=Q+
H GH GH
GHMNPV=Q+
P GP GP
GHMNPV=Q+
MN GMN GMN
GHMNPV=Q+
MH GMH GMH
GHMNPV=Q+
MP GMP GMP
GHMNPV=Q+
NP GNP GNP
GHMNPV=Q+
HP GHP GHP
GHMNPV=Q+
NH GNH GNH
GHMNPV=Q+
MNH GMNH GMNH
GHMNPV=Q+
MNP GMNP GMNP
GHMNPV=Q+
MHP GMHP GMHP
GHMNPV=Q+
NHP GNHP GNHP
GHMNPV=Q+
MNHP GMNHP GMNHP
Lược đồ quan hệ Q chỉ có một khóa và khóa chỉ có một thuộc tính nên mọi thuộc tính đều phụ thuộc hàm đầy
đủ vào khóa Q đạt chuẩn 2.
Hệ quả:
- Nếu Q đạt chuẩn 1 và tập thuộc tính không khóa của Q bằng rỗng thì Q đạt chuẩn 2 (thường phát
hiện điều này ở bước 1 của giải thuật)
- Nếu tất cả khóa của quan hệ chỉ gồm một thuộc tính thì quan hệ đó ít nhất đạt chuẩn 2 (thường
phát hiện điều này ở bước 1 của giải thuật)
Ví dụ: Q(A,B,C,D,E,H), F={A E; C D; E DH}. Hãy cho biết Q có đạt dạng chuẩn 2 hay không?
Giải: Bước 1: Tìm tất cả các khóa của Q theo thuật toán cải tiến
Ta có TN = {ACB}, TG={E}
Khóa của Q là K = {ABC} (các thuộc tính khóa: A, B, C; các thuộc tính không khóa: D, E,
H)
Bước 2: Tìm bao đóng của tất cả tập con của khóa
Tất cả tập con của K: {A}, {B}, {C}, {AB}, {AC}, {BC}
{A}+ = {AEDH} có chứa D là thuộc tính không khóa Q không đạt dạng chuẩn 2
{B}+ =…
{C}+ = {CD}, mà D là thuộc tính không khóa, do đó D phụ thuộc không đầy đủ vào
khóa nên Q không đạt chuẩn 2
{AB}+ =…
{AC}+ =…
{BC}+ =…
Dạng chuẩn 3
Định nghĩa 1
Lược đồ quan hệ Q ở dạng chuẩn 3 nếu mọi phụ thuộc hàm X A F+ với A X đều có:
- Hoặc X là siêu khóa
- Hoặc A là thuộc tính khóa
Định nghĩa 2
Lược đồ quan hệ Q ở dạng chuẩn 3 nếu mọi thuộc tính không khóa của Q đều không phụ thuộc bắc
cầu vào một khóa bất kỳ của Q
Hai định nghĩa trên là tương đương, tuy nhiên việc cài đặt thuật toán kiểm tra dạng chuẩn 3 theo định nghĩa 1
thì hiệu quả hơn nhiều vì không phải kiểm tra tính phụ thuộc bắc cầu.
Thuật toán kiểm tra dạng chuẩn 3
Bước 1: Tìm tất cả khóa của Q
Bước 2: Từ F, xác định tập phụ thuộc hàm tương đương F1tt có vế phải một thuộc tính
Bước 3: Nếu mọi phụ thuộc hàm X A F1tt với AX đều có X là siêu khóa hoặc A là thuộc tính
khoá thì Q đạt chuẩn 3. Ngược lại Q không đạt chuẩn 3.
Ví dụ: Cho lược đồ quan hệ Q(A,B,C,D) và F={ABC; DB; CABD}. Xác định Q có đạt chuẩn 3 không?
A A A
B B B
C C ABCD = Q+ C C
D D BD
AB AB ABCD = Q+ AB AB
AC AC ABCD = Q+ AC
AD AD ABCD = Q+ AD AD
BC BC ABCD = Q+ BC
BD BD BD
CD CD ABCD = Q+ CD
Bước 2: Các phụ thuộc hàm từ F mà vế phải là một thuộc tính: ABC và DB
Bước 3:
Xét phụ thuộc hàm thứ 1 là ABC (có CAB) với 2 điều kiện sau:
Q đạt chuẩn BC nếu và chỉ nếu mọi phụ thuộc hàm XAF1tt với AX đều có X là siêu khóa
Thuật toán kiểm tra dạng chuẩn BC
Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F
Ra: khẳng định Q đạt chuẩn BC hay không đạt chuẩn BC.
Bước 1: Tìm tất cả khóa của Q
Bước 2: Từ F tạo tập phụ thuộc hàm tương đương F1tt có vế phải một thuộc tính
Bước 3: Nếu mọi phụ thuộc hàm X A F1tt với AX đều có X là siêu khóa thì Q đạt chuẩn
BC, ngược lại Q không đạt chuẩn BC.
C C
A AC AC
D CD CD
E CE ABCDEI = Q+ CE CE
Nếu F={B D,A C,C ABD} là dạng chuẩn 2 nhưng không là dạng chuẩn 3.