Hướng dẫn giải bài tập cơ sở dữ liệu | Chuẩn hóa quan hệ 3NF

Ở bài viết này mình sẽ hướng dẫn các bạn làm một số bài tập cơ sở dữ liệu như là tìm bao đóng, khóa tối thiểu, các tập phụ thuộc hàm tối thiểu và chuẩn hóa quan hệ 3NF. Những bài tập này lúc đi học thi thầy giảng hơi mông lung một tí nhưng thực ra nó rất dễ. Mình xin được bắt đầu bài viết.

cơ sở dữ liệu

Hướng dẫn giải bài tập cơ sở dữ liệu

Đề bài: Cho quan hệ R trên tập thuộc tính U = (ABCDEGHIJ) và tập phụ thuộc hàm F = { A -> BC, E -> GC, B -> EH, AC -> I, GD -> AH, D->JG}
a, tìm bao đóng của tập thuộc tính {AD}
b, tìm tất cả khóa tối thiểu của R
c, tìm tập phụ thuộc hàm tối thiểu F* của F
d, chuẩn hóa quan hệ về 3NF

Hướng dẫn giải:

a,TÌM BAO ĐÓNG CỦA AD

Xét từng phụ thuộc hàm, tìm bao đóng của AD
Xét A -> BC trong AD có A nên ta sẽ đưa BC vào bao đóng AD+ = {ADBC}
Xét E -> GC bao đóng hiện tại không có E bỏ qua sau đó xét tiếp lần lượt các phụ thuộc hàm còn lại và quay lại xét những phụ thuộc hàm đã bỏ qua. Cuối cùng ta được kết quả:
AD+ = {ADBCEHIJGI}

b, Tìm khóa

U = {ABCDEGHIJG}
Giao của khóa: X = U – tập tất cả thuộc tính bên phải phụ thuộc hàm
X = ABCDEGHIJ – BCGEHIAJ = D
Tìm bao đóng của D
D+ = {DJGAHBCEI}
So sánh bao đóng với U
D+ = U vậy khóa tối thiểu của R là D
Nếu giao của khóa bằng rỗng thì đi tìm bao đóng của từng thuộc tính có trong U, phần tử nào bằng U thì nó là khóa.

c,Loại bỏ phụ thuộc hàm dư thừa F*

b1:Tách vế phải của phụ thuộc hàm
ví dụ A -> BC tách thành A -> B và A -> C
Tương tự ta được:
A -> B , A -> C, E -> G , E -> C, B -> E , B -> H, AC -> I , GD -> A, GD -> H , D -> J, D -> G
b2: Kiểm tra từng phụ thuộc hàm có dư thừa không bằng cách: Tìm bao đóng của từng phần tử bên trái bỏ qua phần tử bên phải, nếu kết quả bao đóng có phần tử thuộc vế phải thì dư thừa ngược lại là không

Ví dụ:

A -> B => A+ = {ACI} không có B vậy A -> B không thừa.
A -> C => A+ = {ABEHGCI} có C vậy A -> C thừa
Tương tự với các phụ thuộc hàm còn lại
b3: Đưa ra F * loại bỏ đi những phụ thuộc hàm thừa
b4: Loại bỏ phụ thuộc hàm dư thừa vế trái.
Chỉ xét những phụ thuộc hàm vế trái có lớn hơn 1 phần tử
AC -> I
Kiểm tra A thừa : tính C+
C+ = {C}, không có I vậy A không thừa
Kiểm tra C thừa : tính A+
A+ = {ABEHGCI}, có I vậy C thừa
kết quả: A -> I
Tương tự với các phụ thuộc hàm còn lại
b5: Đưa ra kết quả F*

d, Chuẩn hóa quan hệ về chuẩn 3 NF

b1: Kiểm tra tất cả các thuộc tính trong U có tồn lại trong VT và VP của PTH F* hay không ?
b2: Gộp các PTH có cùng vế trái.
A -> BI , E -> GC, B -> EH, D -> AJG
b3: Tách về dạng chuẩn 3:
R1(ABI) R2(EGC) R3(BEH) R4(DAJG)
Ta thấy khóa của quan hệ nằm trong R4
b4: Kết Luận
Vậy để quan hệ R thành dạng chuẩn 3NF ta cần tách thành các quan hệ sau: R1(ABI) R2(EGC) R3(BEH) R4(DAJG)

Okê vậy là mình đã xử lý xong những bài tập cơ sở dữ liệu này, nguồn của bài tập này mình lấy từ anh Son Nguyen. Nếu vẫn không hiểu các bạn có thể tìm từ khóa bài tập cơ sở dữ liệu trên youtube sẽ dễ hiểu hơn, mình xin được kết thúc bài viết tại đây.

Xem những bài tập sql server khác tại đây

Similar Posts

Subscribe
Notify of
guest
6 Bình luận
Inline Feedbacks
View all comments