Bài So N

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 7

BÀI SOẠN

(Giảng hết tập sự)


Họ và tên: Đặng Thị Thanh
Khoa: Kỹ thuật – Công nghệ
Tên bài giảng: THIẾT KẾ MỘT CƠ SỞ DỮ LIỆU
(Học phần: Hệ cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu dành cho lớp
Sư phạm Tin - KTCN)
Thời gian: Tiết 2 và 3 thứ 4 ngày 24 tháng 8 năm 2011
Địa điểm: Phòng máy 310 - Lớp Sư phạm Tin – KTCN 29
A. Mục đích, yêu cầu
1. Về kiến thức
Cung cấp kiến thức lý thuyết để thiết kế một cơ sở dữ liệu quan hệ.
Sinh viên nắm được các định nghĩa về phụ thuộc hàm, khóa, và các thuật
toán tính bao đóng, thuật toán tìm khóa, thuật toán tìm phủ tối thiểu của phụ
thuộc hàm.
2. Về kĩ năng
- Sinh viên biết cách tìm bao đóng của các phụ thuộc hàm, tìm khóa và
siêu khóa, tìm phủ tối thiểu của phụ thuộc hàm.
3. Về thái độ
Sinh viên có ý thức học tập. Luyện khả năng tư duy logic khi giải quyết một
vấn đề nào đó.
B. Chuẩn bị
1. Sinh viên nghiên cứu trước tài liệu (Hồ Cẩm Hà (chủ biên). Nhập môn cơ
sở dữ liệu, NXB ĐHSP Hà Nội, 2005, hoặc Lê Tiến Vương, Nhập môn
Cơ sở dữ liệu quan hệ).
2. Giáo viên chuẩn bị phòng có máy chiếu, màn chiếu, chuẩn bị nội dung
bài.
C. Nội dung
Hoạt động của giáo viên (GV), Nội dung bài giảng
sinh viên (SV)
GV: Ở tiết trước chúng ta đã biết
được định nghĩa phụ thuộc hàm, các
luật suy dẫn Armtrong và các quy
tắc suy dẫn bổ sung. Tiết này chúng
ta nghiên cứu tiếp phần Thuật toán
tính bao đóng của tập các thuộc tính.
Trước tiên ta đi vào định nghĩa của
Bao đóng của tập phục thuộc hàm
1
Bao đóng của tập phục thuộc hàm
- Định nghĩa1: Cho 1 tập thuộc
F, bao đóng của tập phụ thuộc
hàm, kí hiệu là X+F. là tập lớn
nhất chứa các phụ thuộc hàm
có thể được suy dẫn trong F
dựa vào hệ luật dẫn Amstrong.
Kí hiệu: FU+ = { X ---> Y / F |== X ---
> Y}
Ví dụ: U(A,B,C) và FU = {f1: A--->B,
GV: Ví dụ f2: B-->C}
Từ luật suy dẫn Armtrong ta có thể Tìm FU+ = ?
suy dẫn ra những phụ thuộc hàm FU+ = { A®A; A®B; A®C; A®AB,
nào? A®AC; A®ABC, B®B, B®C,
Với luật suy dẫn phản xạ, luật bắc B®BC, C®C, AB®AB, AB®A,
cầu, luật hội… thì suy dẫn được AB®B, AB®C, AB®AC,
những phụ thuộc hàm nào AB®BC, AC®A, AC®B, AC®C,
SV: Với luật phản xạ thì suy dẫn AC®AC, AC®BC, AC®ABC,
được A®A, B®B, C®C BC®B, BC®C, BC®BC, ABC®A,
Với luật bắc cầu thì suy dẫn được
ABC®B, ABC®C, ABC®AB,
A®C, …
ABC®AC, ABC®BC,
ABC®ABC}
GV: Định nghĩa Bao đóng của tập
Cho 1 LĐQH U có tập các phụ thuộc
thuộc tính
hàm FQ={f1, f2,.., fn} và X Í U+.
Bao đóng của tập thuộc tính X dựa
trên FQ, kí hiệu X+F, là tập các thuộc
tính phụ thuộc hàm vào X dựa trên F.
X+F = { Y Î U+ : X ®Y Î F+}
+
GV: Từ định nghĩa trên ta có thuật Thuật toán (tìm X F)
toán tìm bao đóng của tập phụ thuộc Input: Tập hữu hạn thuộc tính tính U,
hàm • Tập phụ thuộc hàm F
={Li ®Ri , i=1..m}
• Tập X Í U.
Output: X+F
• X0 = X
GV: Ví dụ Cho F = {AB®C, C®A, • Chọn D®EG, ta có: X1= X0 ÈEG =
2
BC®D, ACD®B, D®EG, BE®C, BDEG
CG®BD, CE®AG} và X=BD. Tìm • Chọn BE®C, ta có: X2= X1 ÈC =
X+F BCDEG
• Chọn C®A, ta có: X3= X2 ÈA =
ABCDEG
Dừng X+F = ABCDEG
Cho tập thuộc tính Q, tập phụ thuộc
GV: Từ thuật toán tìm bao đóng của hàm F trên Q và một phụ thuộc hàm
tập phụ thuộc hàm ta có Bài toán X→Y trên Q. Câu hỏi đặt ra rằng
thành viên X→Y Î F+ hay không?
Để giải quyết được bài này ta phải VD: Cho lược đồ quan hệ R(A, B, C,
tìm X→Y Î F+ tương đương Y Í X+ D, E, G, H) và tập phụ thuộc hàm F =
Ta có AC+F = ACDEH {B®A, DA®CE, D®H, GH®C,
Vì E Î AC F nên AC®E Î F
+ +
AC®D} Cho biết AC®E có thuộc
GV: Ta sang phần 1.4. Phủ của tập F+ hay không?
phụ thuộc hàm. Tập phụ thuộc hàm
tối thiểu. Định nghĩa Hai tập phụ
thuộc hàm tương đương Hai tập phụ thuộc hàm F và G tương
GV: Từ định nghĩa ta có thuật toán đương nếu F+ = G+. Ký hiệu F ≡ G. F
được gọi là phủ của G nếu G+ Í F+.

Bước 1: Với mỗi phụ thuộc hàm


X→Y Î F, kiểm tra X→Y có là
thành viên của G không.
Bước 2: Với mỗi phụ thuộc hàm
X→Y Î G, kiểm tra X→Y có là
thành viên của F không.
GV: Để hiểu rõ hơn về thuật toán Bước 3: Nếu cả bước 1 và 2 đều đúng
của hai phụ thuộc hàm tương đương thì kết luận F ≡ G
ta đi vào ví dụ. Ví dụ: Cho lược đồ quan hệ R(A, B,
Dựa vào phần lý thuyết ta áp C, D, E) và tập phụ thuộc hàm
dụng và giải quyết bài toán. Để giải F = {A®BC, A®D, CD®E}
quyết bài toán này trước tiên ta phải G = {A®BCE, A®ABD, CD®E}
tìm A+G và A+F Cho biết F và G có tương đương
GV: Tiếp theo ta sang phần Phụ không?
thuộc hàm có thuộc tính vế trái dư Cho F là một tập các phụ thuộc hàm
thừa. trên lược đồ quan hệ Q, Z là tập thuộc
Định nghĩa:
tính, X→Y Î F. Nói rằng phụ thuộc
3
hàm Z→Y có vế trái dư thừa nếu tồn
tại A Î Z sao cho
F=F-{Z→Y } È {(Z - A)→Y }
GV: Từ phụ thuộc hàm có thuộc tính
vế trái dư thừa ta có Thuật toán loại Thuật toán loại khỏi F các phụ
khỏi F các phụ thuộc hàm có vế trái thuộc hàm có vế trái dư thừa
dư thừa Bước 1: Với mọi tập con thực sự X’
≠ f của tập X. Nếu X’→Y Î F+ thì ta
có thể thay X’→Y trong F bằng
Ví dụ: Cho F = {A®BC, B®C, X’→Y
AB®D} Bước 2: Lặp lại bước 1 cho tới khi
Dựa vào thuật toán, các bạn loại bỏ không loại được nữa.
những phụ thuộc hàm có vế trái dư
thừa
GV: Ta đi tiếp sang phần Tập phụ
thuộc hàm có vế phải một thuộc tính
Mỗi tập phụ thuộc hàm F đều tương
đương với 1 tập phụ thuộc hàm G mà
Ví dụ: Cho F = {A®BC, B®C, vế phải của các phụ thuộc hàm trong
AB®D}. Dựa vào định nghĩa ta có G chỉ có một thuộc tính.
pth trên tương đương với phụ thuộc
hàm nào?
SV: F ≈ {A®B, A®C, B®C,
AB®D} = G
GV: Từ
GV: Ta sang tiếp phần Thuật toán
loại khỏi F các phụ thuộc hàm dư
thừa. Bước 1: Lần lượt xét các phụ thuộc
Từ thuật toán ta có ví dụ: F = hàm X®Y của F
{A®BC, D®A, B®D, AB®D} Bước 2: Nếu X®Y Î F – {X - Y} thì
Để giải quyết bài này các em sẽ loại X®Y khỏi F
phải làm gì? Bước 3: Thực hiện bước 2 cho các
SV: Lần lượt xét các phụ thuộc hàm phụ thuộc hàm tiếp theo của F
X®Y của F
GV: Tiếp theo ta sang phần phủ tối F được gọi là phủ tối thiểu của tập
thiểu. Trước tiên ta đi vào phần định phụ thuộc hàm nếu thỏa:
nghĩa của phủ tối thiểu. i. F là tập phụ thuộc hàm có
thuộc tính vế trái không dư
4
thừa
ii. F là tập phụ thuộc hàm có vế
phải có một thuộc tính
iii. F là tập phụ thuộc hàm không
dư thừa
Thuật toán tìm phủ tối thiểu của
tập phụ thuộc hàm
Bước 1: Loại các thuộc tính có vế trái
GV: Thuật toán của phủ tối thiểu dư thừa của mọi phụ thuộc hàm.
Bước 2: Tách các phụ thuộc hàm có
vế phải nhiều thuộc tính thành các
phụ thuộc hàm có vế phải một thuộc
tính.
Bước 3: Loại các phụ thuộc hàm dư
thừa khỏi F.

GV: Từ định nghĩa và thuật toán ta


đi vào ví dụ minh họa.
Cho lược đồ quan hệ R(A, B, C,
D, E, G, H) và tập phụ thuộc hàm F
= {B®A, DA®CE, D®H, GH®C,
AC®D}
Tìm phủ tối thiểu của F.
Để giải được bài toán này ta phải
thực hiện theo các bước của thuật
toán.
GV: Tiếp theo ta sang phần khóa và
xác định khóa. Ý tưởng:
Ý tưởng của xác định khóa là Gọi N là tập thuộc tính nguồn, chỉ
người ta dùng hai tập nguồn và tập chứa thuộc tính không có trên vế phải
trung gian. của các phụ thuộc hàm
Gọi TG là tập thuộc tính trung gian,
chứa các thuộc tính vừa xuất hiện
trên vế phải vừa xuất hiện trên vế trái.

5
Nếu N+F = Q+ thì N chính là khóa chỉ
định của Q và là khóa duy nhất.
Ngược lại, ta lần lượt hội N với từng
GV: Thuật toán để tìm các khóa: tập con của TG để kiểm tra có là khóa
chỉ định hay không.
Bước 1: Tính tập nguốn N. Nếu NF+
= Q+ thì chỉ có 1 khóa là N, ngược lại
qua bước 2.
Bước 2: Tính tập trung gian TG. Tính
tập tất cả các tập con Xi của tập TG
Bước 3: Tìm tập S chứa mọi siêu
Để hiểu rõ về thuật toán ta đi làm ví khóa Si. Với mỗi Xi nếu (N È Xi)F+ =
dụ: Cho quan hệ Q+ thì Si = (N È Xi)
Q(ABCDEFG) và F = { ECàB, Bước 4: Loại các siêu khóa không tối
ABàC, EBàA, BGàA, AEàG}. thiểu:
Xác định các khóa của quan hệ Q. " Si, Sj, nếu Si Í Sj thì S = S -
Nhận xét, củng cố lại bài. Hướng Sj
dẫn bài tập về nhà.

Bài 1: Cho quan hệ Q(ABCDEG) và


tập pth: F = {AB ®C; C ®A; BC
®D; ACD ®B; D ®EG; BE ®C;
CG ®BD; CE ®AG}
Tìm {BD}+F. ;
Tìm khóa của Q
Tìm phủ tối thiểu của F
Bài 2: Tìm phủ tối thiểu của tập pth F
F = {AB®C, C®A, BC®D,
ACD®B, D®EG, CG®BD,
CE®AG}
Bài 3: Cho quan hệ Q(ABCEIH) và
tập pth F = {AB ®E; AC ®I; BE®I;
E ®C;
CI ®H}

6
Tìm phủ tối thiểu của F
Tìm khoá của Q

You might also like