1. Trang chủ
  2. » Công Nghệ Thông Tin

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

12 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ôn tập Cơ Sở Dữ Liệu
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Cơ Sở Dữ Liệu
Thể loại Bài tập ôn tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 207,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 toàn PTH vừa bảo toàn thông tin.

Trang 1

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 toàn thông tin không ?

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

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

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

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

Trang 2

R2(AB) a1 a2 a3 a4 b6

Xét PTH CE->A

KL: nhận thấy không có dòng nào chứa toàn a nên phép phân rã không được bảo toàn

Cho R(ABCD) và F=(A->B, B->C, A->D, D->C} Tách thành R1(AB) R2(AC) R3(BD)

Xét PTH A->B

Xét PTH B->C

Xét PTH A->D

Trang 3

a1 a2 a3 a4

Xét PTH D->C

Xét PTH A->B

KL: nhận thấy không có dòng nào có toàn a nên không bảo toà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 ?

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

Trang 4

Xi Xi TN (Xi TN)+ siêu khóa khóa

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

THUỘCTÍNH KHÔNG KHÓA: ABG

Trang 5

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 toàn PTH vừa bảo toàn thông tin.

Đặt Q=(ABCDEG)

F={C->G, E->A, EC->D,A->B}

- Tìm khóa

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

Trang 6

C->G - - - +

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

Trang 7

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 khoá 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:

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

XÁC ĐỊNH DẠNG CHUẨN CAO NHẤT

KHÓA = CK, EK

Trang 8

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

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}

Trang 9

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 RÃ

Trang 10

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

MAGOIKENHTHUEBAO ->

TENGOITHUEBAO,

GIATHUEBAOTHEOTHANG

SOHĐ -> NGAYKIHOPDONG,

Thuộc tính không khóa: NGAYKIHOPDONG, MAGOITHUEBAO, MAKH,

HOTENKH, DIACHIKH, TENGOITHUEBAO, GIATHUEBAOTHEOTHANG

SOHĐ -> NGAYKIHOPDONG

Trang 11

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 thuê bao chưa từng được khách hàng kí hợp đồng

ĐSQH: πmagoithuebao (Q2) - πmagoithuebao (Q3)

Trang 12

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)

Ngày đăng: 28/06/2023, 15:13

w