Bài giảng Cơ sở dữ liệu biên soạn bởi giáo viên Đỗ Thị Mai Hường với các nội dung lý thuyết thiết kế cơ sở dữ liệu quan hệ; sự dư thừa; phụ thuộc hàm; hệ tiên đề Armstrong; tính chất của bao đóng X+...
Trang 3Nội dung chi tiết
• Thuật toán tìm bao đóng
• Thuật toán tìm khóa
• Các dạng chuẩn
• Kiểm tra kết nối không mất thôông tin
Trang 4Sự dư thừa
• Sự phụ thuộc giữa các thuộc tính g
Ví dụ: Điểm các môn học Điểm tr
• Thuộc tính đa trị trong lược đồ ER
Lý thuyết CSDL
gây ra sự dư thừa
rung bình xếp loại
nhiều bộ số liệu trong lược đồ
S DCHI GT LUONG BANGCAP)
NVC Q5 Nam 40000
HVH QPN Nu 43000 Đại học HVH QPN Nu 43000 Trung học
Trung học
HVH QPN Nu 43000 Đại học Ria VT Nam 38000 Thạc sỹ
4
Trang 5Sự dư thừa (tt)
• Sự dư thừa sự dị thường
– Thao tác sửa đổi: cập nhật tất
– Thao tác xóa: người cuối cùng Thao tác xóa: người cuối cùng
cả các giá trị liên quan
g của đơn vị mất thông tin về đơn
g của đơn vị mất thông tin về đơn
NCHUC 1988
Tung Nguyen NV01
1988 1995 1981
Tung Nguyen Hung Nguyen
NV01 NV02
…
…
…
Trang 7g đảm bảo tránh được các dị thường
hiều giá trị Null
kết hợp
sao cho chúng có thể được nối với tính là khoá chính hoặc khoá ngoài
h ra các bộ “giả”
ựa trên phụ thuộc hàm ) sẽ là
ựa trên phụ thuộc hàm, …) sẽ là việc phân tích và chuẩn hóa lược
Trang 8Phụ thuộc hàm
Phụ thuộc hàm trong quan hệ r
• Cho lược đồ quan hệ R và X, Y là
– X={Hoten}, Y={DC, GT} không
• Phụ thuộc hàm trên r là trường hợ
Lý thuyết CSDL
• Phụ thuộc hàm trên r là trường hợ
à các tập con của R r là một quan
m Y ký hiệu X → Y trong r nếu với
au trên tập X thì chúng cũng bằng nếu t.X = t’.X t.Y = t’.Y
Trang 9Phụ thuộc hàm(tt)
• Phụ thuộc hàm trong quan hệ r
Ví dụ: trong lược đồ quan hệ sau nếu g
nhau thì từ Hoten có thể suy diễn ra tất
nếu thêm vào bộ có Hoten giống với bộ
Dự án
Trang 1010
Trang 11Phụ thuộc hàm(tt)
Phụ thuộc hàm trên lược đồ q
• Cho lược đồ quan hệ R và X,
X xác định phụ thuộc hàm Y k
hệ R Nếu với mọi r trên R xác
quan hệ R
Y là các tập con của R Ta nói
ký hiệu X → Y trên lược đồ quan
ký hiệu X → Y trên lược đồ quan
c định X → Y
Trang 1616
Trang 17Hệ tiên đề Armstron
Phé dẫ theo hệ tiê
• Phép suy dẫn theo hệ tiê
PTH f được suy dẫn theo hệ
nhận được từ F sau một số h
luật của tiên đề Armstrong
• Phép suy dẫn theo quan
PTH f suy dẫn được từ tập PT
f được suy dẫn theo quan hệ
nếu với mọi quan hệ r trên l
Trang 18F |= X → A, nên theo định nghĩa X
F |= X → B, nên theo định nghĩa
F |= X → C, nên | , theo định nghĩa ị g
Trang 20Hệ tiên đề Armstron
Giả sử có F | XY chứng minh
Giả sử có F |-XY chứng minh
20
Trang 21• Vậy trong mọi trường hợp R tho
• Do giả thiết F |-XY , mà R tho XY
XY
• Do t1[X]=t2[X] nên t1[Y]=t2[Y]
ng
c phụ thuộc hàm của F Vì lấy
c phụ thuộc hàm của F Vì lấy
ả PQ Thật vậy:
X + R thoả PQ vì t[P]=t'[P] thì tt'
X R thoả PQ vì t[P] t [P] thì tt
và t'=t2 Do PQ thuộc F nên Q P + hay
oả các phụ thuộc hàm của F.
oả tất cả các fds của F, R cũng thoả fd suy ra Y X + đpcm.
Trang 23 G +
Trang 24Bao đóng X+
• Định nghĩa bao đóng X +
Cho lược đồ quan hệ R = {A ợ q ệ { 11, ,
trên R X là tập con của tập th
Bao đóng X đối với F, ký hiệu X
Trang 26Thuật toán tìm bao đóng
• Bài toán thành viên
Vấn đề được đưa ra ở đây là: C
F + Để giải quyết bài toán g q y
t 6 của tập bao đóng hay
sẽ giải quyết được bài toán
26
Trang 27Thuật toán tìm bao đóng
•Thuật toán tìm bao đóng
Thuật toán tìm bao đóng X +
Trang 28Thuật toán tìm bao đóng
Thuật toán
Input: Lược đồ quan hệ R
Tập PTH F, Tập thuộ Output: Tập X +
Begin
Y:=X Repeat
Trang 29Thuật toán tìm bao đóng
A} (CE → A F + Hoặc CE →
Trang 30Thuật toán tìm bao đóng
X k
=> X k X +
30
Trang 3232
Trang 34Khóa của sơ đồ quan
Trong lược đồ quan hệ một số
quan trọng, và từ các thuộc tín
thuộc tính khác.
Khái niệm sơ đồ quan hệ:
Cho lược đồ quan hệ: R ={A11,
phụ thuộc hàm trên R Sơ đồ q
quan hệ và tập phụ thuộc
34
Trang 35Khóa của sơ đồ quan
• Định nghĩa khóa sơ đồ quan hệ
k R được gọi là khóa tối thiểu của sơ
thiểu kéo theo R, tức là k là khóa tố
bớt khỏi k dù một phần tử thì bao đó
k R gọi là khóa tối thiểu nếu thỏa mã
1 k + = R
2 (k-A) + ≠ R, với mọi A
Những thuộc tính thuộc khóa gọi là thu
không thuộc khóa gọi là thuộc tính k
Siêu khóa:
Siêu khóa:
X là siêu khóa nếu X thỏa mãn điều
hệ
đồ quan hệ trên W nếu k là tập tối
ối thiểu nếu: k + = R (k→R) và nếu óng của tập còn lại khác R.
ãn:
k.
uộc tính khóa những thuộc tính
uộc tính khóa, những thuộc tính không khóa (thuộc tính thứ cấp).
u kiện 1.
Trang 36Khóa của sơ đồ quan
của r ta luôn có t1.k ≠ t2.k
à với mọi quan hệ r trên R mà
k là khóa của sơ đồ q an hệ W
k là khóa của sơ đồ quan hệ W
36
Trang 37Thuật toán tìm khóa
Do bao đóng của k là R nên ba
Trang 38Thuật toán tìm khóa
Mô tả thuật toán bằng giả mã
Begin
k = R For each A in k do
if (k-A) + = R then
k = k –A End.
Thuật toán sẽ tìm được một kh
Nếu muốn tìm được khóa khác
loại trừ các phần tử A ra khỏi k ạ p
Lý thuyết CSDL
hóa k cho R
ta có thể thay đổi thứ tự k.
38
Trang 39Thuật toán tìm khóa
Trang 40Các tính chất của khó
1 Các thuộc tính không xuất hiện tro
tập F phải có trong mọi khóa k
2 Các thuộc tính chỉ xuất hiện bên tr
phải thuộc mọi khóa k
3 Những thuộc tính xuất hiện, và chg
PTH sẽ không thuộc bất kỳ khóa nào
4 Thuật toán khẳng định mọi SĐQHậ g ị ọ Q
thuật toán không khẳng định có bao
phần tử trong khóa có như nhau hay
ong cả hai vế trái hoặc phải của
rái của các PTH trong F cũng
hỉ xuất hiện bên vế phải của tập p po
H W đều có khóa, tuy nhiên , ynhiêu khóa và số lượng các không.g
H W là hệ Sperner (tức là không
40
Trang 42Thuật toán tìm mọi kh ậ ọ
• Ý tưởngg
Cho W=<R,F>,
1 Tìm tất cả tập con khác rỗng củ
2 Loại tập con có bao đóng khác
3 Loại tập con bao tập con khác
4 Những tập còn lại là khóa của W
Lý thuyết CSDL
hóa
ủa RR
W
42
Trang 43Thuật toán tìm mọi kh
B
Trang 44Thuật toán tìm mọi kh ậ ọ
• Một số cải tiến ộ
- Theo tính chất của khóa chún
tính luôn thuộc khóa Trong thu g
xét nó và thêm vào khóa
- Một số thuộc tính không thuộ ộ ộ g ộ
nó trong quá trình tìm kiếm khó
Lý thuyết CSDL
hóa…
g ta sẽ có một số thuộc uật toán tìm khóa sẽ không g
c khóa nào cả Ta loại bỏ ạ óa
44
Trang 45Thuật toán tìm mọi kh
• Thuật toán Thuật toán
Cho W=<R,F>, R={A, B, C, D,
F={A → B A → C B→A B →C
- Chắc chắn D, E tham gia mọi
- H sẽ không tham gia vào khó
• Thuật toán tìm khóa: sẽ khôn
khỏi tập Tập khởi tạo ban đầu
• Thuật toán tìm mọi khóa: Th
Trang 46Thuật toán tìm mọi kh
46
Trang 474.R(ABCDEGH); với F=[A →
5.R(ABCDEG); với F=[AB →
Trang 48p các điề kiện trên l ợc đồ
p các điều kiện trên lược đồ của nó (liên quan tới dư thừa và
phân tích lược đồ quan hệ dựa
h để đạt được
ật bất thường
48
Trang 49– Một loạt các kiểm tra dạng
lược đồ quan hệ riêng rẽ sa
có thể được chuẩn hoá đến
• Tính chấtc ấ
– Nối không mất mát (hoặc n
– Bảo toàn sự phụ thuộc ảo toà sự p ụ t uộc
• nó đảm bảo rằng từng p
hân tích các lược đồ quan hệ
và các phụ thuộc hàm giữa các
chuẩn có thể thực hiện trên các
ao cho cơ sở dữ liệu quan hệ
ao cho cơ sở dữ liệu quan hệ
n một mức cần thiết
nối không phụ thêm)
phụ thuộc hàm sẽ được biểu
Trang 50Các dạng chuẩn (tt)
• Phân loại
– Boyce Codd đề nghị 3 dạng
• 1NF (first normal form):
• 1NF (first normal form):
của lược đồ quan hệ (qu
• 2NF: ko có giá trị trong t
• 3NF BCNF: thường s– 4NF 5NF do tính đa trị và p
Lý thuyết CSDL
g tương đương với định nghĩa
tương đương với định nghĩa uan hệ và bộ)
thực tiễn
sử dụng nhiều nhấtphụ thuộc hàm nối
50
Trang 51Dạng chuẩn 1
• Đn: gọi là 1NF nếu miền giá trị của một thu
phân chia được) và giá trị của mỗi thuộc tín
của nó hoặc không chứa nhóm thuộc tính lặ
uộc tính chỉ chứa giá trị nguyên tử (đơn, ko
uộc tính chỉ chứa giá trị nguyên tử (đơn, ko
nh cũng là một giá trị đơn lấy từ miền giá trị ặp.
G, TenPHG, DDIEM )
Thuộc tính đa trị
HG(MaPHG, MADDIEM ,TENDD)
Trang 52– Ẩn chứa các phụ thuộc hàm
bộ phận –
Lý thuyết CSDL
F
EM)
DIADIEM MAPHG
4 5 5
VUNGTAU NHATRANG
HA NOI
52
Trang 53òn đúng nữa gA}) Y : là sai
phụ thuộc hàm X Y là phụ
p ụ uộc à à p ụmột thuộc tính A X, ra khỏi X
u đó có nghĩa là với
Y
Trang 54Dạng chuẩn 2 (tt)
• 2NF:
• 2NF:
– Thỏa mãn 1NF
– Phụ thuộc hàm đầy đủ vào khó Phụ thuộc hàm đầy đủ vào khó
hàm vào một phần của khóa)
• Với các quan hệ có thuộc tính
• Chỉ kiểm tra các lược đồ có ch
Lý thuyết CSDL
óa chính ( không tồn tại phụ thuộc
óa chính ( không tồn tại phụ thuộc
h khóa đơn thì ko phải xéthứa phụ thuộc hàm bộ phận
54
Trang 55vào MaDA
Trang 56c vào MaDA
DA DDiemDA)
56
Trang 57– Không có thuộc tính không kho
vào khoá chính( không có phụ
ó h th ộ hà ó ồ
có phụ thuộc hàm có nguồn
thuộc tính không khóa)
huộc bắc cầuhuộc bắc cầu
à ở 3NF nếu nó thoả mãn ( theo
à ở 3NF nếu nó thoả mãn ( theo
oá nào của R là phụ thuộc bắc cầu
thuộc hàm ngoài khóa tức là không
là th ộ tí h khô khó đí h là
là thuộc tính không khóa, đích là
Trang 58Phụ thuộc vào MaDV
hụ thuộc vào thuộc tính khóa
c vào thuộc tính ko phải là khóa
ác thuộc tính đó thành quan hệ
58
Trang 59CHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
CHI, MaDV, TenDV, TruongPHG)
HI MaDV)
DONVI(MaDV, TenDV, TruongPHG)
Trang 60Tóm tắt 3 dạng chuẩn
NF Nhận biết
1 Quan hệ có thuộc tính đa trị
1 Quan hệ có thuộc tính đa trị
hoặc quan hệ lặp
2 Phụ thuộc 1 phần vào thuộc
tính khóa
3 Phụ thuộc ẩn, tồn tại phụ thuộc
hàm giữa các thuộc tính ko phải
Loại bỏ các thuộc tính vi phạm dạng chuẩn
Loại bỏ các thuộc tính vi phạm dạng chuẩn
1 và đặt chúng vào một bảng riêng cùng với khoá chính của quan hệ ban đầu Khoá
chính của bảng này là một tổ hợp của khoá
hí h ủ hệ b đầ à h ộ í h
chính của quan hệ ban đầu và thuộc tính
đa trị hoặc khoá bộ phận của nhóm lặp
Các thuộc tính còn lại lập thành một quan
hệ với khóa chính là khóa chính ban đầu
hệ với khóa chính là khóa chính ban đầu Loại bỏ các thuộc tính không khoá phụ thuộc vào một bộ phận khoá chính và tách thành ra một bảng riêng, khoá chính của
thành ra một bảng riêng, khoá chính của bảng là bộ phận khoá mà chúng phụ thuộc vào Các thuộc tính còn lại lập thành một quan hệ, khóa chính của nó là khóa chính
b đầ ban đầu
Trang 61Ví dụ kiểm tra dạng c
• Ví dụ 1: Cho lược đồ W=<R={
ĐiemThi}; F={ MaSVTenSV
Kiểm tra W có ở dạng chuẩn 3
• Ví dụ 2: Cho lược đồ quan hệ
W=<R= ABC; F={AB C
W=<R= ABC; F={AB C
• Hỏi W có ở dạng chuẩn 3NF h
chuẩn (tt)
{MaSV TenSV MaMT
{MaSV, TenSV, MaMT,
; MaSV, MaMTĐiemThi}> 3NF không?
3NF không?
C; BC A}>
C; BC A}>
hay không?
Trang 62Ví dụ kiểm tra dạng c
• Ví dụ 3: Cho sơ đồ quan hệ W n
• W=<U=CTRHSG;F={C T HR
• W=<U=CTRHSG;F={C T,HR
Yêu cầu: Kiểm tra W có ở dạng
• Yêu cầu: Kiểm tra W có ở dạng
không W ở dạng chuẩn nào?
Trang 63Ví dụ kiểm tra dạng c
• Xác định tập K các khoá của W và
• Nhận xét: Thuộc tính HS tham gia
trái Kiểm tra HS có phải là khoá k
– R là thuộc tính không khoá: HS g
– Như vậy R phụ thuộc bắc cầu
Suy ra W không ở dạng chuẩn
chuẩn (tt)
à tập N các thuộc tính không khoá
à tập N các thuộc tính không khoá.
a khoá vì chúng chỉ xuất hiện ở vế không.
hất, N={RCTG} là các thuộc tính
ngoài khóa Suy ra W không ở
S HT R (HT không HS) ( g ) vào khoá HS thông qua cầu HT
n 3NF.
Trang 64Ví dụ kiểm tra dạng c
• Kiểm tra N=RCTG có phụ thuộc
• Kiểm tra N=RCTG có phụ thuộc
H : C H
Vậy C phụ thuộc đầy
S
H C
Trang 65Dạng chuẩn Boyce-C
• Một lược đồ quan hệ R được
• Một lược đồ quan hệ R được
Trang 67Dạng chuẩn Boyce-C
• Nếu một lược đồ quan hệ không tho
chuẩn hóa bao gồm:
– tách các thuộc tính khóa phụ thuộ
thành một quan hệ bổ sung thêm
làm khóa của quan hệ này
– Các thuộc tính còn lại tạo thành m
ban đầu và thuộc tính gây ra sự p
oả mãn điều kiện BCNF thủ tục
oả mãn điều kiện BCNF, thủ tục
ộc hàm vào thuộc tính không khóa ra
m thuộc tính gây ra sự phụ thuộc vào
m thuộc tính gây ra sự phụ thuộc vào
một LĐQH, khóa là một phần của khóa phụ thuộc
phụ thuộc.
Trang 69Ví dụ về chuẩn hóa q
Do có phụ thuộc hàm A E F
• Do có phụ thuộc hàm A→ E,F
của khóa chính nên quan hệ R
Trang 71Tách kết nối không m
• Ví dụ: Cho lược đồ
• Ví dụ: Cho lược đồ
=<U={MaSV, TenSV, MaMT
F={MaSVTenSV; MaMTT
F={MaSVTenSV; MaMTT
MaMTĐiemThi}>
• Tách lược đồ thành các lượác ược đồ à các ượ
• 1=<U1={MaSV, TenSV}; F1={
• 22=<UU22={MaMT, TenMon}; F{ a , e o }; 22=
• 3=<U3={MaSV, MaMT, DiemT
MaMTĐiemThi}>
mất thông tin(tt)
, TenMon, ĐiemThi};
TenMon; MaSVTenMon; MaSV,
ợc đồ sau:
ợc đồ sau{MaSVTenSV}>
={MaMTTenMon}> { a e o }Thi}; F3={MaSV,
Trang 72Tách kết nối không m
• Lấy quan hệ R là quan hệ KET
TenMon, ĐiemThi) khi đó ta có
• RR11= KETQUA[MaSV TenSV]= KETQUA[MaSV, TenSV]
TQUA(MaSV TenSV MaMT
TQUA(MaSV, TenSV, MaMT, ó:
=SINHVIEN1
=SINHVIEN1n] =MONTHI2DiemThi] =KQUA
Trang 73n và không tổn thất thông tin:
n và không tổn thất thông tin:
Trang 74dụng các phép chiếu và nối tự nhiê
mất mát thông tin chưa không phả
chất này ta nên gọi chính xác hơn l
chất nối không mất mát thông tin
bộ phụ thêm (các bộ giả) sau khi áp
ên Nghĩa của từ mất mát ở đây là
ên Nghĩa của từ mất mát ở đây là
i mất các bộ giá trị Vì vậy, với tính
là tính chất nối không phụ thêm
74
Trang 75emThi )
iemThi)
Trang 76với thuộc tính A hàng i tươn
với thuộc tính Aj , hàng i tươn
Trang 77Kiểm tra tính tách kết nố
thông tin…
Bước lặp: Áp dụng các PTH trong
• Xét nhiều lần mỗi phụ thuộc hà
không xét được nữa Với mỗi F g ợ
trị giống nhau trên tập X thì ta
với lưu ý là nếu một trong 2 ký
làm bằng chúng bằng một trong
• Thuật toán dừng khi trong bảng
hoặc cho đến khi không xét dư
- Kết luận: Nếu có một dòng toàn
ối không mất
g F cho bảng vừa xây dựng:
àm X Y thuộc F cho đến khi FTH XY mà trong bảng có giá g g g cho chúng bằng nhau trên tập Y
ý hiệu là aj thì chọn aj ngược lại
ý hiệu là aj thì chọn aj, ngược lại
g các kí hiệu bij.
g có một dòng toàn là ký tự a ược nữa.
n a thì phép tách kết nối đó không
Trang 81Kiểm tra tính tách kết nố
thông tin…
Ví dụ:
• Cho lược đồ quan hệ R=ABCD
• Tách R thành các lược đồ sau Tách R thành các lược đồ sau
• R1 = AD, R2=AB, R3= BE, R4
• Tập phụ thuộc hàm F=(AC,B p p (
• Xác định phép tách trên có mấ
ối không mất
DE ::
= CDE, R5= AE BC,CD,DEC,CEA))
ất thông tin hay không?
Trang 83Tách quan hệ thành các quan
chất nối không mất thông tin.
chất nối không mất thông tin
Input: Lược đồ quan hệ R và tập cá
• Mỗi lần đi vào vòng lặp trong thuật toán
không phải BCNF thành hai lược đồ qu
quan hệ trong D sẽ ở BCNF
hệ BCNF với tính
ác phụ thuộc hàm F trên các thuộc
ác phụ thuộc hàm F trên các thuộc
ong D không phải ở BCNF, thực
D không ở BCNF hãy tìm một phụ thuộc hay thế Q trong D bằng hai lược đồ quan khi không còn quan hệ nào trong D vi
khi không còn quan hệ nào trong D vi
n trên, chúng ta tách một quan hệ Q uan hệ Kết thúc thuật toán, tất cả các
Trang 84Tách quan hệ thành các quan
chất nối không mất thông tin g g
• Trong bước 2 của thuật toán trên
quan hệ Q có ở BCNF hay không
đó là kiểm tra Với mỗi phụ thuộc
Nếu X + không chứa tất cả các th
phạm BCNF bởi vì X không phải
là một siêu khóa ộ
84
Trang 85Ví dụ
• Xét lược đồ quan hệ R = { A, B, C, D, E
Với á h th ộ hà A BCDEF BC
Với các phụ thuộc hàm: A → BCDEF, BC
Lược đồ quan hệ này có hai khóa là A v
≠ R ê B khô hải là iê khó
≠ R nên B không phải là siêu khóa, thuộc hàm B→ F, R2(A,B,C,D,E) với
→ADE D→E D→B
→ADE, D→E, D→B ( D là một thuộc tính không khóa ), R2thuộc hàm D → E, R22(ABCD) với các
D, D→ B
F (Dkhông phải là thuộc tính khóa), R22A,C,D) với phụ thuộc hàm A → CD
Trang 86THẢO LUẬN
Nội dung 1: Trả lời câu hỏi
• Trình khái niệm về phụ thuộc
• Các khái niệm về phụ thuộc h
• Các khái niệm về phụ thuộc h
• Phân biệt các dạng chuẩn?
ối có làm mất thông tin?
chuẩn hóa dữ liệu?
86
Trang 87THẢO LUẬN
Nội dung 2: Thảo luận theo nh
Thực hiện chuẩn hóa dữ liệ
trong chương 2 theo lý thuy
hóm
ệu với đề tài nhóm đã chọn yết các dạng chuẩn 1, 2, 3.
Trang 88Lý thuyết CSDL 88