Gợi ý giải bài 6 – chuẩn hóa dữ liệu

lời giải bài tập chuẩn hóa CSDL

Bài tập này là bài tập nâng cao trong chuyên mục chuẩn hóa dữ liệu, đòi hỏi chúng ta kết hợp các kiến thức và kỹ năng trong các bài tập trước

Đề bài

Cho lược đồ quan hệ $R = \{A, B, C, D, E, F\}$ với tập phụ thuộc hàm:

  • $A \to CD$
  • $AB \to F$
  • $D \to E$

a/ Hãy cho biết $R$ ở dạng chuẩn cao nhất nào? Giải thích tại sao?

b/ Nếu R không ở dạng chuẩn 3 thì hãy phân rã $R$ thành các lược đồ quan hệ con đều ở dạng chuẩn 3 (phải nêu rõ quá trình phân rã này).

Cách giải

Câu a, để biết được quan hệ đang ở dạng chuẩn này, chúng ta phải tìm các khóa của $R$. Sau đó, dựa trên các tiểu chuẩn để kết luận quan hệ R đạt dạng chuẩn nào.

Câu b, chúng ta sẽ dựa vào phụ thuộc hàm để tách nhỏ các quan hệ để đạt dạng chuẩn cao hơn.

Gợi ý giải

Câu a/ Tìm tất cả các khóa, các bước làm giống như bài tập 2 nên mình sẽ không ghi chi tiết nữa nha. Sau 1 hồi tính toán, chúng ta sẽ tìm được 1 khóa duy nhất $AB$. Do đó, $R$ chỉ đạt dạng chuẩn 1 (1NF) vì xuất hiện phụ thuộc hàm riêng phần.

Câu b/ Phân rã $R$ chúng ta sẽ thực hiện các bước sau:

  • Dựa vào phụ thuộc hàm $D \to E$, quan hệ $R$ được phân rã thành $R_1(\underline{D}E)$ và $R_2(ABCDF)$
  • $A \to CD$, quan hệ $R_2$ được phân rã thành $R_3(\underline{A}CD)$ và $R_4(ABF)$
  • $AB \to F$, quan hệ $R_4$ có khóa chính là $AB$ do đó ta viết lại $R_4(\underline{AB}F)$

Sau khi phân rã quan hệ $R$ ta được các quan hệ nhỏ hơn là $R_1(\underline{D}E)$, $R_2(\underline{A}CD)$ và $R_3(\underline{AB}F)$. Lưu ý do mình đánh số lại cho đúng thứ tự, nên $R_3$ ở kết quả chính là $R_4$ trong quá trình phân rã nha.

Các bài tập làm thêm

Bài tập 1

Cho quan hệ $R(A, B, C, D)$ với tập phụ thuộc hàm:

  • $C \to D$
  • $C \to A$
  • $B \to C$

a/ Tìm tất cả khóa của $R$

b/ Cho biết $R$ ở dạng chuẩn cao nhất nào? Giải thích tại sao?

c/ Nếu R không ở dạng chuẩn BC (BCNF) thì hãy phân rã $R$ thành các lược đồ quan hệ con đều ở dạng BCNF (phải nêu rõ quá trình phân rã này).

Bài tập 2

Cho quan hệ $R(A, B, C, D)$ với tập phụ thuộc hàm:

  • $B \to C$
  • $D \to A$

a/ Tìm tất cả khóa của $R$

b/ Cho biết $R$ ở dạng chuẩn cao nhất nào? Giải thích tại sao?

c/ Nếu R không ở dạng chuẩn BC (BCNF) thì hãy phân rã $R$ thành các lược đồ quan hệ con đều ở dạng BCNF (phải nêu rõ quá trình phân rã này).

Bài tập 3

Cho quan hệ $R(A, B, C, D)$ với tập phụ thuộc hàm:

  • $A \to B$
  • $BC \to D$
  • $A \to C$

a/ Tìm tất cả khóa của $R$

b/ Cho biết $R$ ở dạng chuẩn cao nhất nào? Giải thích tại sao?

c/ Nếu R không ở dạng chuẩn BC (BCNF) thì hãy phân rã $R$ thành các lược đồ quan hệ con đều ở dạng BCNF (phải nêu rõ quá trình phân rã này).

Bài tập 4

Cho quan hệ $R(A, B, C, D, E, F, G)$ với tập phụ thuộc hàm:

  • $BCD \to A$
  • $BC \to E$
  • $A \to F$
  • $F \to G$
  • $C \to D$
  • $A \to G$

a/ Tìm tất cả khóa của $R$

b/ Nếu R không ở dạng chuẩn 3 (3NF) thì hãy phân rã $R$ thành các lược đồ quan hệ con đều ở dạng chuẩn 3 (phải nêu rõ quá trình phân rã này).

Đáp án các bài tập

  • Bài 1, quan hệ $R$ có 1 khóa là {$B$}. Quan hệ $R$ đạt được dạng chuẩn 2 (2NF) do xuất hiện phụ thuộc hàm bắc cầu. Sau quá trình phân rã chúng ra được $R_1(\underline{C}AD)$ và $R_2(\underline{B}C)$
  • Bài 2, quan hệ $R$ có 1 khóa là {$BD$}. Quan hệ $R$ đạt được dạng chuẩn 1 (1NF) do xuất hiện phụ thuộc hàm riêng phần. Sau quá trình phân rã chúng ra được $R_1(\underline{B}C)$, $R_2(\underline{D}A)$, $R_3(\underline{BD})$
  • Bài 3, quan hệ $R$ có 1 khóa là {$A$}. Quan hệ $R$ đạt được dạng chuẩn 2 (2NF) do xuất hiện phụ thuộc hàm bắc cầu. Sau quá trình phân rã chúng ra được $R_1(\underline{A}BC)$, $R_2(\underline{D}A)$, $R_2(\underline{B}CD)$
  • Bài 4, quan hệ $R$ có 1 khóa là {$BC$}. Sau quá trình phân rã chúng ra được $R_1(\underline{C}D)$, $R_2(\underline{B}AC)$, $R_3(\underline{BC}E)$ và $R_4(\underline{F}G)$