Bài tập sql cơ bản có đáp án

0
265

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