Tải bản đầy đủ (.docx) (12 trang)

Ôn tập Cơ Sở Dữ Liệu

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 (316.36 KB, 12 trang )

Cho lược đồ quan hệ p(Q,F) Q=(ABCDE), F={A->B, B->C, C->D, DE->C, CE->A}
Phân rã lược đồ thành R1(AD), R2(AB), R3(BE), R4(CDE). Hỏi phép phân rã trên
có bảo tồn thơng tin khơng ?

R1(AD)
R2(AB)
R3(BE)
R4(CDE)

a1
A
a1
a1
b7
b10

a2
B
b1
a2
a2
b11

a3
C
b2
b4
b8
a3

a4


D
a4
b5
b9
a4

a5
E
b3
b6
a5
a5

a2
B
a2
a2
a2
a2

a3
C
b2
b4
b8
a3

a4
D
a4

b5
b9
a4

a5
E
b3
b6
a5
a5

a2
B
a2
a2
a2
a2

a3
C
b2
b2
b2
a3

a4
D
a4
b5
b9

a4

a5
E
b3
b6
a5
a5

a2
B
a2
a2
a2
a2

a3
C
b2
b2
b2
a3

a4
D
a4
a4
a4
a4


a5
E
b3
b6
a5
a5

a2
B
a2

a3
C
a3

a4
D
a4

a5
E
b3

Xét phụ thuộc hàm A->B

R1(AD)
R2(AB)
R3(BE)
R4(CDE)


a1
A
a1
a1
b7
b10

Xét phụ thuộc hàm B->C

R1(AD)
R2(AB)
R3(BE)
R4(CDE)

a1
A
a1
a1
b7
b10

Xét phụ thuộc hàm C->D

R1(AD)
R2(AB)
R3(BE)
R4(CDE)

a1
A

a1
a1
b7
b10

Xét phụ thuộc hàm DE->C

R1(AD)

a1
A
a1


R2(AB)
R3(BE)
R4(CDE)

a1
b7
b10

a2
a2
a2

a3
a3
a3


a4
a4
a4

b6
a5
a5

a2
B
a2
a2
a2
a2

a3
C
a3
a3
a3
a3

a4
D
a4
a4
a4
a4

a5

E
b3
b6
a5
a5

Xét PTH CE->A

R1(AD)
R2(AB)
R3(BE)
R4(CDE)

a1
A
a1
a1
b7
b7

KL: nhận thấy khơng có dịng nào chứa tồn a nên phép phân rã khơng được bảo tồn
Cho R(ABCD) và F=(A->B, B->C, A->D, D->C} Tách thành R1(AB) R2(AC)
R3(BD)

R1(AB)
R2(AC)
R3(BD)

a1
A

a1
a1
b5

a2
B
a2
b3
a2

a3
C
b1
a3
b6

a4
D
b2
b4
a4

a1
A
a1
a1
b5

a2
B

a2
a2
a2

a3
C
b1
a3
b6

a4
D
b2
b4
a4

a1
A
a1
a1
b5

a2
B
a2
a2
a2

a3
C

b1
a3
b1

a4
D
b2
b4
a4

Xét PTH A->B

R1(AB)
R2(AC)
R3(BD)
Xét PTH B->C

R1(AB)
R2(AC)
R3(BD)
Xét PTH A->D


R1(AB)
R2(AC)
R3(BD)

a1
A
a1

a1
b5

a2
B
a2
a2
a2

a3
C
b1
a3
b1

a4
D
b2
b2
a4

a1
A
a1
a1
b5

a2
B
a2

a2
a2

a3
C
b1
a3
b1

a4
D
b2
b2
a4

a1
A
a1
a1
b5

a2
B
a2
a2
a2

a3
C
b1

a3
b1

a4
D
b2
b2
a4

Xét PTH D->C

R1(AB)
R2(AC)
R3(BD)
Xét PTH A->B

R1(AB)
R2(AC)
R3(BD)

KL: nhận thấy khơng có dịng nào có tồn a nên khơng bảo tồn
1. Cho lược đồ quan hệ p=(Q,F) với Q(A,B,C,D,E,G) và tập phụ thuộc hàm
F ={A -> B;
D -> C,A;
C,B ->D;
A,E ->G;
C,E ->D}
a. Tìm tất cả các khóa của lược đồ quan hệ p, hãy cho biết p có bao
nhiêu siêu khóa ?
L=ADCBE ;


R=BCAGD

TN = Q\R = {E}

TG = {ABCD} = L GIAO R

NHÁP: TÍNH BAO ĐĨNG E+ = E # Q+ => E KHƠNG PHẢI LÀ KHĨA
Đặt Xi là tập con cua tập trung gian


Xi



A
B
C
D
AB
AC
AD
BC
BD
CD
ABC
ABD
BCD
ABCD


Xi∪ TN
E
AE
BE
CE
DE
ABE
ACE
ADE
BCE
BDE
CDE
ABCE
ABDE
BCDE
ABCDE

(Xi∪ TN)+
E
AEGB
BE
CEDAGB=Q+
DECAGB=Q+
AEBG
Q+
Q+
Q+
Q+
Q+
Q+

Q+
Q+
Q+

siêu khóa

khóa

CE
DE

CE
DE

ACE
ADE
BCE
BDE
CDE
ABCE
ABDE
BCDE
ABCDE

TÍNH BAO ĐĨNG
AE+ = AEBG
BE+ = BE
KL: CÓ 11 SIÊU KHÓA VÀ 2 KHÓA
B, xác định dạng chuẩn cao nhất của lược đồ quan hệ trên
Khóa = CE, DE

F ={A -> B; D -> C,A; C,B ->D; A,E ->G; C,E ->D}
+ ĐẠT CHUẨN
- KHÔNG ĐẠT CHUẨN
A->B
D->CA
CB->D
AE->G
CE->D
KẾT LUẬN

BCNF
+
-

3NF
+
+
-

THUỘC TÍNH KHƠNG KHĨA: ABG

2NF
+
+
+
+
+
+

1NF

+
+
+
+
+
+


CE->A, CE->B, CE->G, DE->A, DE->B, DE->G
LÍ GIẢI:
XÉT A->B:
-

Nhận thấy vế trái A khơng là siêu khóa => Q khơng đạt chuẩn BCNF
Nhận thấy vế trái A khơng là siêu khóa, B khơng là thuộc tính khóa => Q khơng
đạt chuẩn 3NF
∀ PTH ∈ F ta có CE->A, CE->B, CE->G, DE->A, DE->B, DE->G, đều phụ thuộc
hàm đầy đủ vào khóa => Q đạt chuẩn 2NF

KL: Vậy Q đạt chuẩn cao nhất là 2NF
Câu 3: Cho lược đồ quan hệ
Q(BROKER, OFFICE, STOCK, QUANTITY, INVESTOR, DIVIDENT)
F={STOCK -> DIVIDENT,
INVESTOR -> BROKER
INVESTOR, STOCK -> QUANTITY
BROKER -> OFFICE }
Thực hiện các yêu cầu sau:
1. Tìm tất cả các khóa của Q
2. Xác định dạng chuẩn cao nhất của Q
3. Nếu Q chưa đạt chuẩn 3 NF thì phân rã Q thành các lược đồ ở dạng

chuẩn 3NF vừa bảo tồn PTH vừa bảo tồn thơng tin.
Đặt Q=(ABCDEG)
F={C->G, E->A, EC->D,A->B}
-

Tìm khóa

L = CEA

R=GADB

TN = Q\R = CE

TG= A

CE+ = CEGADB = Q+
 CE LÀ KHÓA CỦA LĐQH Q
- XÁC ĐỊNH DẠNG CHUẨN CAO NHẤT
BCNF

3NF

2NF

1NF


C->G
E->A
EC->D

A->B
KẾT LUẬN

+
-

+
-

+
+
-

+
+
+
+
+

Thuộc tính khơng khóa ABGD
CE->A, CE->B, CE-> G, CE->D
LÍ GIẢI:
XÉT C->G:
-

Nhận thấy vế trái C không phải là siêu khóa => Q khơng đạt chuẩn BCNF
Nhận thấy vế trái C khơng phải là siêu khóa, vế phải A khơng phải là thuộc tính
khóa => Q khơng đạt chuẩn 3NF

∀ PTH ∈ F ta có CE->A, CE->B, CE-> G, CE->D ta thấy có C->G, E->A khơng phụ


thuộc hàm đầy đủ vào khóa => Q khơng đạt chuẩn 2NF
 Q đạt chuẩn cao nhất là 1NF
Phân rã Q THÀNH 3NF
F={C->G, E->A, EC->D, A->B}
Tìm phủ tối thiểu:

Bước 1: Đưa PTH có vp nhiều thuộc tính thành PTH có vp 1 thuộc tính
F1 = F={C->G, E->A, EC->D, A->B}
Bước 2: Loại bỏ những PTH dư thừa
XÉT C->G: C+ = C ⊉G
XÉT E->A: E+ = E ⊉ A
XÉT EC->D: E+ = EAB ⊉ D, C+= CG ⊉ D
XÉT A->B: A+= A ⊉ B
F2 = {C->G, E->A, EC->D, A->B}
Bước 3: Loại bỏ những PTH có vế trái dư thừa
XÉT C->G: C+ = C ⊉G
XÉT E->A: E+ = E ⊉ A
XÉT EC->D: EC+=ECGADB ⊃D => LOẠI EC->D


XÉT A->B: A+= A ⊉ B
F3 = {C->G, E->A, A->B}
Vậy F3 là một phủ tối thiểu của F
Ta có khóa k = CE
Q1 = CG
Q2 = EA
Q3 = AB
NHẬN THẤY PHÂN RÃ TRÊN KHƠNG CHỨA KHĨA NÊN TA CĨ Q1, Q2, Q3,
Q4={CE} LÀ KẾT QUẢ CỦA PHÂN RÃ

Bài 6.5/26 Bài tập cơ sở dữ liệu
Cho lược đồ quan hệ Q(C,D,E,G,H,K) và tập phụ thuộc hàm F
F = { C,K ->H; C -> D; E -> C; E -> G; C,K ->E}
1. Tìm các khố của Q.
2. Xác định dạng chuẩn của Q.
3. Phân rã lược đồ quan hệ Q thành lược đồ CSDL đạt dạng chuẩn (hoặc đạt dạng
chuẩn 3).
Tìm khóa:
L = CKE

R = HDCGE

TN = Q\R = {}K

TG = L ∩ R = {CE}

K+ = K # Q+ => K Khơng phải là khóa
Gọi Xi là tập con của tập trung gian
Xi



C
E
CE

Xi ∪ TN
K
CK
EK

CEK

(Xi ∪ TN)+
K
CKHDEG = Q+
EKGCHD = Q+
Q+

XÁC ĐỊNH DẠNG CHUẨN CAO NHẤT
KHĨA = CK, EK

Siêu khóa

Khóa

CK
EK
CEK

CK
EK


Xét chuẩn BC thì vế trái phải là 1 siêu khóa
Xét chuẩn 3NF thì vế trái phải là 1 khóa hoặc vế phải có chứa thuộc tính khóa
CK->H
C->D
E->C
E->G
CK->E

KẾT QUẢ

BCNF
+
+
-

3NF
+
+
+
-

2NF
+
+
+
-

1NF
+
+
+
+
+
+

Thuộc tính khơng khóa DGH
CK->D, CK->G, CK->H, EK-> D, EK->G, EK->H
 Vậy Q đạt chuẩn cao nhất là chuẩn 1NF

LÍ GIẢI:
Xét C->D:
-

Nhận thấy vế trái C khơng phải là siêu khóa => Q không đạt chuẩn BCNF
Nhận thấy vế trái C không phải là siêu khóa, vế phải khơng chứa thuộc tính khóa
=> Q khơng đạt chuẩn 3NF

∀ PTH ∈ F ta có CK->D, CK->G, CK->H, EK-> D, EK->G, EK->H và nhận thấy có C-

>D, E->G làm cho khơng phụ thuộc hàm đầy đủ vào khóa => Q khơng đạt chuẩn 2NF
 Q đạt chuẩn 1NF

Tìm phủ tối thiểu cách khác: CHÚ Ý ĐÂY LÀ CÁCH TÌM CHUẨN NHẤT, CÁC
BÀI TRÊN NÊN LÀM LẠI THEO CÁCH NÀY
Bước 1: tách vế phải có nhiều thuộc tính thành vế phải có 1 thuộc tính
F1 = F = { C,K ->H; C -> D; E -> C; E -> G; C,K ->E}
Bước 2: loại bỏ những phụ thuộc hàm dư thừa
Xét CK->H: C+ = CD ⊉ H, K+ = K ⊉ H
Xét C -> D: C+ = C ⊉ D
Xét E -> C: E+ = EG ⊉ C
Xét E -> G: E+ = ECD ⊉ G
Xét CK->E: C+ = CD ⊉ E, K+ = K ⊉ E
F2 = { C,K ->H; C -> D; E -> C; E -> G; C,K ->E}


Bước 3: loại bỏ những phụ thuộc hàm có vế trái dư thừa
Xét CK->H: CK+ = CKDEG ⊉H
Xét C -> D: C+ = C ⊉ D
Xét E -> C: E+ = EG ⊉ C

Xét E -> G: E+ = ECD ⊉ G
Xét CK->E: CK+ = CKHD ⊉ E
F3 = { C,K ->H; C -> D; E -> C; E -> G; C,K ->E}
Ta có khóa = CK, EK
Q1 = (CKH) VÌ CK->H
Q2 = (CD) VÌ C->D
Q3 = (EC) VÌ E->C
Q4 = (EG) VÌ E->G
Q5 = (CKE) VÌ CK->E
NHẬN THẤY CĨ Q1, Q5 CHỨA KHÓA NÊN ĐÂY LÀ KẾT QUẢ CỦA VIỆC PHÂN



THONGTINTHUEBAO(SOHĐ, HOTENKH, DIACHIKH, MAKH,
NGAYKIHOPDONG, MAGOITHUEBAO, TENGOITHUEBAO,
GIATHUEBAOTHEOTHANG)
1. Xác định các phụ thuộc hàm
MAKH - > HOTENKH, DIACHIKH
MAGOIKENHTHUEBAO -> TENGOITHUEBAO, GIATHUEBAOTHEOTHANG
SOHĐ -> NGAYKIHOPDONG, MAKH, MAGOITHUEBAO
2. Xác định dạng chuẩn cao nhất
TÌM KHĨA
L: MAKH, MAGOITHUEBAO, SOHĐ
R: HOTENKH, DIACHIKH, TENGOITHUEBAO, GIATHUEBAOTHEOTHANG,
NGAYKIHOPDONG, MAGOITHUEBAO, MAKH
TN = Q\R = { SOHĐ}
TG = {MAKH, MAGOITHUEBAO}
(SOHĐ)+ = SOHĐ, NGAYKIHOPDONG, MAGOITHUEBAO, MAKH, HOTENKH,
DIACHIKH, TENGOITHUEBAO, GIATHUEBAOTHEOTHANG =
(THONGTINTHUEBAO)+

 SOHĐ LÀ KHĨA CHÍNH
BCNF
-

3NF
-

2NF
+

1NF
+

MAGOIKENHTHUEBAO ->
TENGOITHUEBAO,
GIATHUEBAOTHEOTHANG

-

-

+

+

SOHĐ -> NGAYKIHOPDONG,
MAKH, MAGOITHUEBAO

+


+

+

+

KETLUAN

-

-

+

+

MAKH - > HOTENKH, DIACHIKH

Thuộc tính khơng khóa: NGAYKIHOPDONG, MAGOITHUEBAO, MAKH,
HOTENKH, DIACHIKH, TENGOITHUEBAO, GIATHUEBAOTHEOTHANG
SOHĐ -> NGAYKIHOPDONG


SOHĐ -> MAKH
SOHĐ -> HOTENKH
GIẢI THÍCH: Y NHƯ MẤY BÀI TRÊN
 TÌM PHỦ TỐI THIỂU
Bước 1: tách PTH vế phải có nhiều thuộc tính thành PTH vế phải có 1 thuộc tính
F1= { MAKH - > HOTENKH, MAKH-> DIACHIKH, MAGOIKENHTHUEBAO ->
TENGOITHUEBAO, MAGOIKENHTHUEBAO -> GIATHUEBAOTHEOTHANG,

SOHĐ -> NGAYKIHOPDONG, SOHĐ-> MAKH, SOHĐ -> MAGOITHUEBAO }
Bước2: loại bỏ những phụ thuộc hàm dư thừa
F2 = { MAKH - > HOTENKH, MAKH-> DIACHIKH, MAGOIKENHTHUEBAO ->
TENGOITHUEBAO, MAGOIKENHTHUEBAO -> GIATHUEBAOTHEOTHANG,
SOHĐ -> NGAYKIHOPDONG, SOHĐ-> MAKH, SOHĐ -> MAGOITHUEBAO}
Bước 3: loại bỏ PTH có vế trái dư thừa
F3 = { MAKH - > HOTENKH, MAKH-> DIACHIKH, MAGOIKENHTHUEBAO ->
TENGOITHUEBAO, MAGOIKENHTHUEBAO -> GIATHUEBAOTHEOTHANG,
SOHĐ -> NGAYKIHOPDONG, SOHĐ-> MAKH, SOHĐ -> MAGOITHUEBAO}
Vậy PTH của F là F3
Ta có khóa là SOHĐ
Phân rã THONGTINTHUEBAO thành
Q1(MAKH, HOTENKH, DIACHIKH)
Q2(MAGOITHUEBAO, TENGOITHUEBAO, GIATHUEBAOTHEOTHANG)
Q3(SOHĐ, NGAYKIHOPDONG, MAKH, MAGOITHUEBAO)
NHẬN THẤY Q3 CÓ CHỨA KHÓA NÊN ĐÂY LÀ KẾT QUẢ CỦA PHÂN RÃ
3. Sử dụng LĐQH vừa chuẩn hóa, thực hiện truy vấn bằng ĐSQH và SQL các yêu
cầu sau:
a. Đưa ra tên và giá thuê bao theo tháng của gói thuê bao
ĐSQH: π tengoithuabao, giathuebaotheothang (Q2)
SQL: SELECT TENGOITHUEBAO, GIATHUEBAOTHEOTHANG
FROM Q2
b. Tìm các gói th bao chưa từng được khách hàng kí hợp đồng
ĐSQH: π magoithuebao (Q2) - π magoithuebao (Q3)


SQL: SELECT A.MAGOITHUEBAO
FROM Q2 A
WHERE NOT EXISTS (SELECT *
FROM Q2 A1 INNER JOIN Q3 B

ON A1.MAGOITHUEBAO = B.MAGOITHUEBAO
AND A1.MAGOITHUEBAO = A.MAGOITHUEBAO)



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×