Download as pdf or txt
Download as pdf or txt
You are on page 1of 309

C S D LI U

Email: khanhltn@gmail.com
2
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
GII THI U MN HO C

Mn hc cung cp cho sinh vin cc kin thc l thuyt v thit k


c s d liu, xt dng chun v phn r cc c c s d liu
t chun tt nht, truy vn trn c s d liu.
Gm 7 chng:
Chng 1: Gii thiu
Chng 2: M hnh d liu quan h
Chng 3: Ngn ng SQL
Chng 4: Rng buc ton vn
Chng 5: Ph thuc hm
Chng 6: Chun ha c s d liu
Chng 7: Ti u ha cu truy vn
S Tn ch: 4 (45,0,,0,105)
S tit: 75 LT: 45 TH: 30

nh gi:
im th 1: 10% Kim tra trn lp
im th 2: 20% Kim tra thc hnh gia k

im th 3: 70% Thi vit cui k


3
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
GII THI U MN HO C

Thng tin giang vin:

ThS. Lng Thi Ngoc Khanh

Email: khanhltn@gmail.com

http://itam.tut.edu.vn/~khanhltn
4
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ti liu tham kho
Tm tt bi ging mn C s d liu Tr ng H Tn c
Thng
Lp trnh ng dng chuyn nghip SQL server 2000 Pham
Hu Khang
Modern Database Management Jeffrey A.Hoffer 2000
Nguyn ly cac h c s d liu va c s tri th c D. Ullman
Ca c h c s d liu ly thuy t va thc ha nh (t p 1, 2) - H
Thu n, H C m Ha
Gia o trinh nh p mn c s d liu Nguy n An T
Chng I
GII THIU
Email: khanhltn@gmail.com
6
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng I

CSDL l g? Ti sao cn ti cc h CSDL?

C s d liu

Kha i nim

u im

Ca c i tng s dung csdl

H quan tri csdl

Cac m hnh d liu


7
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL l g? Ti sao cn ti cc h CSDL?
- Cc h thng dng phng php x l tp tin

lu tr thng tin v d liu cho cng vic ca cc c


quan t chc, c th lu tr di dng cc file ring r
v lc cn li ly ra thao tc, x l.

H thng dng phng php x l tp tin c s dng


rng ri trong sut nhng nm 60s, 80s ny c u im
l thi gian trin khai ngn, t u t ln v vt cht,
nhn s v cng sc phn tch - thit k, rt ph hp
vi cc bi ton nh.

Tuy nhin, i vi cc bi ton c nhu cu x l d liu


ln cc vn sau s ny sinh:
8
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL l g? Ti sao cn ti cc h CSDL?
- Cc h thng dng phng php x l tp tin

Tnh d tha d liu:


l s lp i lp li ca nhng thng tin c lu tr gy ra lng
ph cng sc v d dn n tnh trng d thng.

Tnh d thng (khng nht qun):


ti mt thi im thng tin v cng mt i tng li c th khc
nhau trn cc tp tin khc nhau trong cng mt h thng thng tin,
iu ny thng l do d tha d liu gy ra.

Cc vn ton vn:
khi c thm nhng rng buc mi, kh thay i cc chng trnh
c th tun th chng.

Cc vn v tnh nguyn t ca cc giao tc:


vi tp x l truyn thng kh c th m bo c tnh cht hoc
thc hin hon ton hoc khng thc hin g v kh a c h
thng tr v trng thi nht qun trc khi xy ra s c.
9
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL l g? Ti sao cn ti cc h CSDL?
- Cc h thng dng phng php x l tp tin

S thiu chia s thng tin gia cc h thng v kh


m rng h thng hay kt ni vi cc h thng khc.

Cc d thng ca truy cp tng tranh:


tng tnh hiu qu v tr li nhanh hn, nhiu h thng
cho php nhiu ngi dng cp nht d liu ng thi v
nh vy c th dn n d liu khng nht qun.

Tnh khng ton vn, an ton d liu:

Th hin s khng y ca cc thng tin cn lu tr cho


cc mc ch yu cu ca h thng thng tin. An ton d
liu nh cc c ch bo mt, phn cp i tng s dng
d liu v c vic sao lu d liu d phng.
khc phc v gii quyt c cc vn
trn, buc chng ta phi thay i cch tip cn h
thng tip cn CSDL.
10
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- Khai nim

C s d liu:

Co th c xem la t p h p co c u tru c cu a thng tin, c lu


tr trn ca c thi t bi tr tin co th tho a man yu cu khai tha c
thng tin ng th i cho nhi u ng i s dung hay nhi u chng
trinh ng du ng v i cac mu c ich khac nhau.

u i m:

1. V ban thn thng tin lu tr:


Gia m thi u s trung l p thng tin n m c thp nht, do o giup
Bao am tinh nht qua n
Tinh toa n ven cu a d liu
a m bao d liu co th c truy xut theo nhiu ca ch kha c nhau.
Kha nng chia se thng tin cho nhiu ng i s duungj va nhiu ng
dung khac nhau.
11
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- u im

u i m: (tt)
V hiu qua s du ng thng tin:
Chia se thng tin cho nhiu ngi dung khac nhau
Tit kim tai nguyn
Tng hi u qua khai tha c

Nhng v n nay sinh:


C n xac i nh ro trach nhi m i vi
S an toan cu a d liu
Tinh chinh xac cua d liu
Ai co trach nhi m c p nh t, chinh s a
Nh ng thng tin na o c phep s a
C n m t c ch bao mt hay phn quyn khai thac thng tin
cua ng i s dung
Gia i quyt s tranh ch p trong truy cp d li u khi co nhiu
ngi dung cu ng truy cp n mt ngun d liu.
12
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- Cac i t ng s du ng csdl

Ngi s dung khng chuyn v linh v c tin hoc va csdl:

Csdl c n co ca c cng cu nhng ng i nay co th s du ng va


kha i tha c csdl khi c n.

Chuyn vin tin ho c bit khai thac csdl:

Nhng ng i na y co th xy d ng ca c ng du ng khac nhau


phu c vu cho nhi u mu c i ch khac nhau trn csdl.

Ngi qua n tri csdl:

La ng i hi u bit v tin hoc, v ca c h qua n tri csdl va h thng


ma y ti nh.

La ng i t ch c csdl (khai bao cu tru c, ghi nh n yu cu ba o


m t)
La ng i c p quy n ha n khai tha c csdl.
13
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

M hnh d liu:

L s hnh thc ha ton hc gm c hai phn:

k hiu m t d liu

tp hp cc php ton din t s rng buc trong d liu v


cc php x l trn d liu.
C s d liu
- Kin trc ba mc ca mt h CSDL
14
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
14
3 mc biu din mt CSDL:
Mc vt l (mc trong):
L cc loi tp d liu, tp giao dch, tp ch dn theo cu trc
no c lu tr trn cc thit b lu tr tin.
Mc khung nhn (View - mc ngoi):
L cch nhn, l quan im ca tng ngi s dng i vi CSDL
mc khi nim. Mi khung nhn l mt phn ca CSDL hoc tru
tng ha mt phn ca CSDL mc khi nim.
Mc khi nim: (m hnh ER)
L s tru tng ha th gii thc khi gn lin vi ngi s dng
CSDL. HQTCSDL cung cp kh nng nh ngha d liu mc
quan nim nhm m t s quan nim, thng gi l m hnh
CSDL. C th xem mc vt l l s ci t c th ca mc khi
nim.
C s d liu
- Kin trc ba mc ca mt h CSDL (tt)
15
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- Kin trc ba mc ca mt h CSDL (tt)
User 1
User 2
User n
View 1
View n
View 2 CSD mc
vt l
CSDL mc
khi nim
16
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- H quan tri CSDL

H qun tr c s d liu (HQTCSDL, database


management system).

Phn mm dng to lp v x l d liu.

Cc HQTCSDL thng gp nh: Oracle, Paradox,


MS Access, Sybase, Foxpro, SQL Server.

CSDL l mt thnh phn trong HQTCSDL.


17
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- H quan tri CSDL (tt)

V d: Mt DS cc s in thoi, h tn, a ch ca
nhng ngi quen.

c th lu tr DS ny trong mt chic a s dng


my tnh c nhn v cc phn mm nh ACCESS
hoc, EXCEL

Tp hp cc d liu c lin quan vi nhau ny hm


cha trong n mt ng ngha no v vy l mt
CSDL. Cc phn mm Access, Excel l h qun tr
CSDL.
18
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu
- H quan tri CSDL (tt)
Cc chc nng ca HQTCSDL
Mt HQTCSDL phi c kh nng gii quyt tt nhng vn m
cch t chc CSDL t ra, hai kh nng c bn l:

Qun l d liu mc x l tp nh mt h iu hnh

Truy cp cc khi lng d liu ln c hiu qu


Ngoi ra cn c cc chc nng khc nh:
Cung cp giao din gia users v CSDL v gia CSDL vi cc
h thng khc.
Cung cp mt s ngn ng bc cao thng l ngn ng phi th
tc gip users truy xut v thao tc CSDL.
Qun l giao tc, phn quyn v an ton d liu khi c mt hay
nhiu ngi tham gia s dng.
iu khin s tng hp, tnh ton vn khi chuyn ha d liu
v khi c s c ca h thng
Kim tra tin cy ca d liu.
19
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu

M hnh d liu

l mt tp hp cc khi nim v k php dng m


t d liu, cc mi quan h ca d liu, cc rng
buc trn d liu ca mt t chc.

gm ba thnh phn:
phn m t cu trc ca CSDL;
phn m t cc thao tc, nh ngha cc php ton c
php trn d liu;

phn m t cc rng buc ton vn m bo s chnh


xc ca d liu.

Mi loi m hnh c trng cho mt phng php tip


cn d liu ca ngi phn tch - thit k d liu.
20
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu (tt)
Phn chia thnh 3 nhm:

M hnh d liu logic trn c s i tng:

m hnh thc th mi quan h

m hnh hng i tng

m hnh d liu ng ngha


m hnh d liu chc nng

M hnh d liu logic trn c s bn ghi:

m hnh quan h

m hnh mng

m hnh phn cp

M hnh d liu vt l: m t d liu mc thp nht, ngha


l m t d liu c lu tr th no trong my tnh.

C hai m hnh vt l quen dng l: m hnh hp nht v


m hnh b nh khung.
21
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu (tt)

M hnh d liu logic trn c s bn ghi:

M hnh mng (Network model):

cc khi nim chnh: cc mu tin (record), loi mu tin


(record type) v loi lin h (set type).

Mi loi mu tin c trng cho mt i tng ring bit nh:


Khoa, SinhVien,

mi loi mu tin c k hiu bng mt hnh ch nht, mi


th hin ca mt loi mu tin c gi l mu tin.
V d, loi mu tin SinhVien c cc mu tin l cc sinh vin
ang theo hc ti trng.
Loi lin h l s lin kt gia mu tin ch v mu tin thnh
vin.M hnh c biu din l mt th c hng.
Khoa SinhVien
Gm
22
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu (tt)
M hinh th c th k t hp (Entity Relationship Model)
Cac khai nim chi nh:
Thc th:
La mt i tng ho c mt kha i ni m co th nh n bit mt
cach duy nht (tng t kha i nim mu tin trong m hinh d
li u mang). Vd: SinhVien, Khoa, MonHoc
Co 2 loa i thc th :
Thc th y u: la thc th ma s tn tai cu a no phu thuc
va o m t th c th khac. Vd: Thc th ThanNhan phu
thuc vao NhanVien. Ki hi u bng ng vin ke i.
Thc th manh: la th c th co mt hay nhiu thc th
y u phu thuc va o s t n tai cu a no . Ki hiu b ng
ng vin ke n.
23
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu (tt)

M hi nh th c th kt h p (tt)

Loa i thc th: la mt loai i tng hoc kha i ni m tn tai


c l p.

Thuc tinh cua loai thc th : la cac c tinh ring bi t cu a


loa i thc th .

Khoa cua loai th c th : la ca c thu c ti nh nh n di n loa i thc


th.
Loa i cua mi k t h p: la s lin kt gia m t loai th c th
manh va m t loa i th c th yu. Gia 2 thc th co nhi u mi
kt h p.
S ngi cu a m i k t hp: t ng s loa i th c th tham gia va o
mi kt h p. M i k t h p cu ng co thu c ti nh ring cu a no .
24
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cac m hnh d liu (tt)
M hnh phn cp (Hierachical model):
M hnh d liu l mt cy, trong cc nt biu din tp cc thc
th, gia cc nt cha v nt con c lin h theo mt mi quan h
xc nh.
M hnh quan h (Relation model):
M hnh da trn c s khi nim l thuyt tp hp ca cc quan
h, tc l cc tp k-b vi k c nh.
M hinh h ng i t ng (Object Oriented Data Model)
S dung cac khai nim nh: lp (class), i tng, s k th a
(inheritance), k th a b i.
c trng c ba n cua cach ti p cn na y la : tinh o ng goi
(encapsulation), ti nh a hinh (polymorphism) va ti nh ta i s du ng
(reusability).
H ng tip cn na y hin ang nhn c s quan tm va phat
trin va co th no se la m hinh csdl cua tng lai.
Chng II
M HNH D LIU QUAN H
Email: khanhltn@gmail.com
26
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
N i dung chng II

Ca c i nh nghia:

M u

Cc khi nim: thuc tnh, min gi tr

M hnh quan h

Lc quan h, lc CSDL

Khoa cua lc quan h

a i s quan h

Bai tp chng II
27
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA - M U
maSoSV hoTenSV ngaySinh diemTB mucHBg
Ti05020 L Ngc Phc 06-12-1988 9.0 240.000
Ti05023 Nguyn M Truyn 20-02-1987 8.2 180.000
Ti05027 Phm Thu Hoa 23-05-1987 8.5 180.000
Ti05006 Phm Thu Hng 23-06-1987 7.8 120.000
Bng trn lu thng tin v xp loi hc bng ca sinh vin. Trong
bng ny, ta c:
maSoSV, hoTenSV, ngaySinh, mucHBg c gi l cc
thuc tnh,
{9.0, 8.2, 8.5, 7.5} chnh l min gi tr ca thuc tnh
diemTB.
Mt dng trong bng:
Ti05020 L Ngc Phc 06-12-1988 9.0 240.000
gl mt b. Bng c tn l HOCBONG gl mt quan h.
28
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA - M U (tt)

Cho tp hu hn cc phn t U = {A1, A2, An}.


tp U c gi l tp cc thuc tnh. Mi phn t
Ai- ca tp U c mt min gi tr tng ng, ta k
hiu l D(Ai).
29
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA - M hnh quan h l g?

M hnh CSDL quan h gi tt l m hnh quan h


do E.F Codd xut nm 1971, m hnh ny bao
gm:

Mt h thng cc k hiu m t d liu di dng


dng v ct nh quan h, b, thuc tnh, kha cnh,
kha ngoi,

Mt tp hp cc php ton trn d liu nh php


ton tp hp, php ton quan h.

Rng buc ton vn quan h.


30
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Thuc tnh
Thuc tnh (attribute, arity)
L cc c trng ca i tng
Vd: BTQL im thi ca sinh vin, vi i tng sinh vin ta cn phi
ch n cc c trng ring nh: h tn, ngy sinh, hc bng,
tnh, lp m sinh vin theo hc cc thuc tnh.
c phn bit bng tn gi
phi thuc vo mt kiu d liu nht nh (s, chui, ngy thng,
lgic, hnh nh).
Lu : trong cng mt i tng khng c c hai thuc tnh
cng tn.

Thng thng mi thuc tnh ch chn ly gi tr trong mt tp


con ca kiu d liu min gi tr ca thuc tnh .

V d im thi ca sinh vin ch l cc s nguyn t 0 n 10.

Thng dng cc ch ci hoa A, B, C biu din cc thuc


tnh, hoc A1, , An biu din mt s lng ln cc thuc
tnh.
31
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Lc quan h, Lc
CSDL

Lc quan h (Relation

l tp tt c cc thuc tnh cn qun l ca mt i


tng cng vi nhng mi lin h gia chng.

Sau ny ta thng ni l cho lc quan h R trn


tp thuc tnh U, k hiu R(U), hoc R(A1,,An).

Vd: ta c LQH sinh vin (t tn l SV) vi cc


thuc tnh nh sau:
SV(maSoSV, hoTenSV, ngaySinh, diemTB, mucHbg)
-
Mt LQH c mt ngha gi l tn t ca LQH
- Mi sinh vin c mt m s duy nht, mi m s xc nh tt
c cc thuc tnh ca sinh vin nh h tn, ngy sinh,
mc hc bng
32
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Lc QH, Lc CSDL (tt)

Nhiu lc quan h cng nm trong mt h thng qun l


c gi l mt lc CSDL.

V d lc CSDL qun l im ca sinh vin c th


gm nhng lc quan h sau:
SV(maSV, hotenSV, ngaySinh, maLop, tinh, hocBong)
Lop(maLop, tenLop, siSo, maKhoa)
Khoa(maKhoa, tenKhoa, soCB)
MonHoc(maMH, tenMH, soTiet)
KetQua(maSV, maMH, diemThi)

Nhn xt:
khi ni cho tp thuc tnh U = {A1, A2, An} ta coi nh cho trc
lc quan h (LQH) v cng vi n ta c quan h rng r = .
Khi lc c np thm t nht mt dng th ta c mt quan h
khc rng.
33
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Lc QH, Lc CSDL (tt)
nh ngha quan h (relation):
S th hin ca lc quan h mt thi im.
C th, mt quan h r trn lc quan h R l mt tp
con ca tch Descartes (Decac) ca cc min gi tr D(Ai)
vi i = 1n.
Mt cch hnh thc, r l mt QH trn tp thuc tnh U nu:
r D(A1) x D(A2) x x D(An)
trong D(Ai) l min gi tr ca thuc tnh Ai.
Lu : Thng dng cc k hiu R, Q, S ch cc lc
quan h v cc k hiu r, q, s ch cc quan h.
V d:
Bng 2.1 lu tr h s sinh vin l mt quan h, vi U =
{maSoSV, hoTenSV, ngaySinh, diemTB, mucHbg}.
34
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Lc QH, Lc CSDL (tt)

Nhn xt:

quan h r l mt bng hai chiu:


trn ct th i l cc gi tr ca D(Ai),
trn mi dng ca bng l b n gi tr ca cc min gi tr ca cc
thuc tnh Ai. Mt dng cha thng tin v mt i tng v gi l
mt b (phn t) ca quan h.
Trn mt lc quan h c th xy dng c nhiu quan h
khc nhau, c thay i mt dng hoc mt ct ta c mt
quan h mi.
cn lu vi cch nhn ca tp hp th vic thm vo mt dng
(ct) ging vi dng (ct) c th quan h khng thay i.
ng thi th t trc sau ca cc dng (ct) khng lm thay
i quan h.
35
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Lc QH, Lc CSDL (tt)
ma hoten nsinh donvi luong phucap thuong
01 Minh 1965 K.CNTT 800 50 100
02 ng 1946 K. ton 700 122 48
03 Long 1954 K. l 1.500 100 90
04 Kin 1956 K. ha 1.900 150 75
05 i 1958 K. vn 3.000 60 80
V d: Cho U = {ma, hoten, donvi, nsinh, luong, phucap, thuong} v
quan h r trn lc R(U) nh trn:
Quan h r trn c nm phn t. Mi phn t l mt b 8 gi tr
(cn gi l 7-b)
Lu :
V sau khng cn quan tm n bn cht ni ti ca m hnh quan h, i khi cho tin ta
k hiu cc thuc tnh bng cc ch ci in hoa A, B, C v tp cc thuc tnh bng X, Y, Z,
cn cc gi tr c th ca min gi tr ca chng bng cc ch ci thng a, b, c
36
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Kha ca lc quan h

Siu kha ca mt lc quan h R

l mt tp hp gm mt hay nhiu thuc tnh ca lc


R c tnh cht xc nh duy nht mt b trong mi th hin
ca R.

Nu k hiu tp thuc tnh c tnh cht nh vy l


SK th th c mt rng buc trn r(R) l: ti(SK)
tj(SK), vi ti, tj l hai b khc nhau bt k trong r.

Nhn xt:

Cho R (U), nu SK l siu kha ca R th SK U


D thy mt quan h c t nht mt siu kha, l tp U
gm tt c cc thuc tnh ca quan h.

Mi tp con ca U cha mt siu kha cng l siu kha.


37
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Kha ca lc quan h (tt)

Kha ca lc quan h l mt siu kha ca


lc ny sao cho mi tp con thc s ca n
khng l siu kha.
kha l siu kha ti thiu.

V d:

Lc quan h SV, thuc tnh maSV l kha.

Kha chnh (primary key)

Kha chnh l mt kha ti tiu c ngi phn tch


chn ci t.

Kha d tuyn (candidate key)

Cc kha d tuyn l cc kha ti tiu khc m


khng phi l kha chnh.
38
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA Kha ca lc quan h (tt)

Kha ngoi (kha ngoi) ca mt lc quan h


l mt tp hp gm mt hay nhiu thuc tnh l
kha ca mt lc quan h khc.

Trong m hnh d liu quan h, kha ng vai


tr quan trng v n gip nhn bit thc th mt
cch nhanh chng trong CSDL.

Thuc tnh kha

L thuc tnh c tham gia vo mt kha bt k (d


tuyn hay kha chnh)

Ngc li, thuc tnh khng tham gia vo mt


kha no gi l thuc tnh khng kha.
39
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA - Lc v th hin ca CSDL

Ton b m t CSDL c gi l lc CSDL (database


schema). Tng ng vi ba mc tru xut d liu ni trn c
ba loi lc :

mc cao nht ta c nhiu lc ngoi (cn gi l lc


con) cho nhng cch nhn d liu khc nhau ca nhng ngi
s dng khc nhau.

mc logic ta c lc logic.

mc thp nht ta c lc vt l.

Ton b d liu lu tr trong CSDL ti mt thi im nht


nh c gi l mt th hin ca CSDL (database
instance).
Nhiu th hin ca CSDL c th tng ng vi cng mt
lc CSDL.
40
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CC NH NGHA - Lc v th hin ca CSDL (tt)
MaNV Hodem Ten Tuoi Luong MaNV Ten Ma_chi_nhanh
MaNV Hodem Ten Ngay_sinh Tuoi Luong Ma_chi_nhanh
Khung nhn 1
Khung nhn 2
Mc logic
Mc vt l
Struct NHANVIEN{
int MaNV; int Ma_chi_nhanh; char Hodem[15];
char Ten[15];
struct date Ngay_sinh;
float Luong;
struct NHANVIEN next; /* con tr n bn ghi tip ca tp
NHANVIEN*/
};
41
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Gii thiu

i s quan h

l phng php m hnh ha cc php ton


thao tc trn CSDL quan h.

l u im ca m hnh d liu quan h (tip cn cc


kt qu ca cng c ton hc trong vic xy dng
ngn ng khai thc, x l d liu).

cc php ton ca i s quan h kh n gin,


nhng n kh mnh v l mt i s c tnh y ,
phi th tc.

l mt c s cho vic thit lp cc ngn ng con d


liu bc cao hn.
42
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Gii thiu

nh ngha cc php ton i s quan h, trc


ht chng ta c mt s khi nim sau:

hai quan h r1, r2 l tng thch vi nhau nu chng


c cng tp thuc tnh U. V r1, r2 c gi l hai
quan h ri nhau nu chng khng c thuc tnh
chung.

Khi nim xp cnh nhau:


Gi s cho b t = (a1, a2,, an), u = (b1, b2, , bm)
ta c: t,u = (a1, a2,, an, b1, b2, , bm)
43
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chn

Php chn (Selection): k hiu


Php chn c dng xy dng mt tp con cc b ca
quan h cho tha mn mt iu kin cho trc. iu kin C
c biu din bi mt biu thc lgic tr v gi tr True/False.
Kt qu ca php chn trn quan h r vi iu kin C c k
hiu l
C
(r).

C
(r) = {t / t r, C(t) = True}
Biu thc lgic C c to thnh t cc biu thc c dng
tn thuc tnh ton t so snh gi tr hng hoc
tn thuc tnh ton t so snh tn thuc tnh ,
trong

tn thuc tnh l tn ca mt thuc tnh thuc R

ton t so snh l cc ton t thng thng {=, <, , >, , }

gi tr hng l mt gi tr trong min thuc tnh.


44
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chn (tt)

V d: Trn quan h HOCBONG,


php chn (DiemTB9.0)(HOCBONG) ta c kt qu nh
sau:
maSoSV hoTenSV Ngaysinh iemTB MucHBg
Ti05020 L Ngc Phc 06-12-1988 9.0 240.000
Lu :
Ton t so snh trong tp {=, <, , >, , } ch p dng c cho
nhng thuc tnh c MGT c th t. Nu min thuc tnh ko c
th t, khi ton t so snh c th p dng ch l tp {=, }.
Cc ton t chn c tnh giao hon, c th:

<C1>
(
<C2>
(R)) =
<C2
>(
<C1>
(R))
45
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chn (tt)

Cho cc lc quan h sau:


SINHVIEN (MaSV, Hoten, Namsinh, QQ, Hocluc)
Mi sinh vin c M s duy nht, h tn, qu qun v hc lc
DETAI (MaDT, TenDT, Chunhiem, Kinhphi)
Mi ti c M s duy nht, tn ti, ch nhim ti, kinh ph thc hin
ti (n v tnh: triu ng)
SV_DT (MaSV, MaDT, NoiAD, KQ)
Mi SV c th thc hin mt hoc nhiu T: m s sinh vin, m ti, ni
p dng, kt qu thc hin ti
46
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chn (tt)
V d:




Vd: Tm nhng sinh vin sinh
trc nm 1984 v qu qun
ng Thp

(Namsinh<1984 ^ QQ='ng Thp')


(SINHVIEN)
47
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chiu

Php chiu (Projection): K hiu

Cho r l mt quan h trn lc quan h R(U), X U, khi

X
(r) = {t[X] / t r} trong t[X] l gi tr b t trn tp thuc tnh
X.
Vd: php chiu
MasoSV,DiemTB
(HOCBONG) ta c kt qu sau:
maSoSV diemTb
Ti05020 9.0
Ti05023 8.2
Ti05027 8.5
Ti05006 7.8
Nhn xt:
thc hin php chiu 1QH trn mt tp thuc tnh thc hin
2 thao tc: Gi li cc thuc tnh trong tp X v chn b i din
trong cc b ging nhau.
48
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php chiu (tt)

V d: Xem li csdl
Tm h tn, nm sinh ca nhng sinh vin c qu
qun Cn Th

Hoten, Namsinh
(
(QQ='Cn th')
(SINHVIEN))

Tm m s, tn ca nhng ti do Thy L c
Phc ch nhim c kinh ph t 10 triu tr ln.

MaDT, TenDT
(
(Chunhiem='L c Phc' ^ Kinhphi >= 10)
(DETAI))
49
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton
Php tch Descartes
Tch Descartes ca hai quan h ch xt trn hai lc
quan h ri nhau.
Cho hai lc R1, R2 tng ng vi hai tp thuc
tnh: U1 = {A1, A2,,An}
U2 = {B1, B2,,Bm} vi U1 U2 =
Gi s r, s l hai quan h trn R1, R2 tng ng, khi
:
Tch Descartes ca r v s k hiu r s l quan h gm cc
(n+m)_b trn lc R1 R2, theo th t, sao cho mi b
ny c n thnh phn u l mt b thuc r v m thnh phn
sau l b thuc s.
r s = {t/ t = t1, t2 , t1 r, t2 s)}
50
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton
51
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php kt ni

Php kt ni

Cho l mt trong cc php so snh sau: =, >,<, , , .

r l mt quan h xc nh trn tp thuc tnh (A1, A2, ,


An) v s l mt quan h trn tp thuc tnh (B1, B2,
,Bm).

Kt qu ca php kt ni quan h r vi quan h s theo


iu kin Ai Bj c k hiu:
r
Ai Bj
s = {t,u / t r, u s v t[Ai] u[Bj]}
gi thit mi gi tr thuc dom(Ai) v mi gi tr thuc dom(Bj) c th
so snh c qua php
52
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php kt ni (tt)

Nu l = th php kt ni c gi l kt ni bng.

Nu kt ni bng ti thuc tnh trng tn ca hai quan h r,


s php kt ni t nhin v k hiu l r s (hoc r s)
cho kt qu ca n.
mt trong hai thuc tnh c loi b khi kt qu

V d: Tm tn nhng ti c p dng ng
Thp v cho bit h tn ca nhng sinh vin thc
hin tng ng.

TenDT, Hoten
(
(NoiAD='ng Thp'
)(SINHVIEN * SV_DT * DETAI))
53
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:

ngha:

Php kt ni c dng kt hp hai b c lin quan nhau


thuc hai quan h khc nhau thnh mt b mi.

ni cch khc, php kt ni cho php x l mi lin quan gia


cc quan h trong mt CSDL.
i s quan h
- Cc php ton Php kt ni (tt)
r A B C
a1 b1 1
a2 b2 3
a3 b 2
s D F
2 f1
3 f2
r
C>=D
s A B C D F
a1 b1 3 2 f1
a2 b2 3 3 f2
a3 b 2 2 f1
54
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php hp

Php hp

Hp ca hai quan h tng thch r1, r2 k hiu r1 r2 l


mt quan h trn U gm cc phn t thuc r1 hoc r2.
r1 r2 = {t: t r1 hoc t r2}

V d:
Canbo(Maso, Hoten, Ngsinh, QQ, Hs_luong)
Giangvien(Maso, Hoten, Ngaysinh, QQ, Hs_luong)

In ra danh sch gm: m s v h tn ca tt c cc
cn b v ging vin:
Maso, Hoten(Canbo U Gingvin)
55
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php giao
Php giao
Giao ca hai quan h tng thch r1, r2 k hiu r1 r2 l
mt quan h trn U gm cc b va thuc r1 va thuc r2.
r1 r2 = {t: t r1 v t r2}
Vd: In ra m sinh vin v h tn ca nhng sinh vin
va thc hin ti "DT001" va thc hin ti
"DT005

MaSV, Hoten
(
(MaDT='DT001')
(SINHVIEN * SV_DT ))

MaSV, Hoten
((MaDT='DT005')(SINHVIEN * SV_DT ))
56
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton Php hiu

Php hiu

Hiu ca hai quan h tng thch r v s k hiu l r - s, l


mt quan h gm tt c cc b thuc r nhng khng thuc s.
r s = {t: t r v t s}

V d: In ra m sinh vin v h tn ca nhng sinh vin


khng thc hin ti c ni p dng Vnh Long

MaSV, Hoten
(SINHVIEN) -

MaSV, Hoten
( MaDT(
(Noi_AD='Vinh Long')(
SV_DT))*SINHVIEN * SV_DT ))
57
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton
58
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton
Php t li tn
c kt qu cho mt cu hi, c th ta phi thc hin t
hp nhiu php ton i s quan h. Trong trng hp ny,
s r rng hn nu chng ta s dng php t tn t
tn cho cc quan h trung gian.
k hiu tn quan h trung gian biu thc i s quan
h
V d:
Vi biu thc
DiemTB
9.0(HOCBONG) (THANHTICH)
(trong THANHTICH l bng lu thnh tch ca sinh vin gm cc
thuc tnh maSoSV, thanhTichSV), ta c th dng php t tn nh
sau:
XuatSac DiemTB9.0(HOCBONG)
KetQua XuatSac THANHTICH
C th t li tn cho cc thuc tnh trong quan h trung
gian v quan h kt qu bng cch lit k tn mi ca cc
thuc tnh trong du ngoc i km theo tn quan h.
59
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
i s quan h
- Cc php ton

Php chia

Cho lc quan h R(A1, A2, , An), S l lc


con ca R. Gi s r v s l cc quan h trn R v S
tng ng. Php chia ca quan h r cho quan h s,
k hiu r s l quan h trn lc R S gm cc
(n-m)_b t sao cho tn ti b ts s m t ghp vi ts
ta c b thuc r.
r s = {t: t
s
s v t, t
s
r}
60
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG 2

Cho cc lc quan h sau:

Hanghoa(MaHG, TenHG, DVT, Dongia, Cohang)

Mi mt hng c mt m s duy nht c tn hng, n v


tnh, n gi v hng c cn trong kho hay khng (Cohang
= 0 nu ht hng, Cohang = 1 nu cn hng)
Khach(MaKH, Hoten, Diachi, Daily)

Mi khch hng c mt m s duy nht, h tn, a ch v


khch c phi l i l hay khch hng l (Daily = 1 nu
khch l i l, Daily = 0 nu khch l khch mua bn l)

Hoadon(SoHD, Ngaylap, Ngaygiao, Trigia, MaKH)

Mi ha n c mt s ha n duy nht, ngy lp, tr gi


ha n, ngy giao hng v giao cho khch hng no

Chitiet_HD(SoHD, MaHG, Soluong, Giaban)

Lu thng tin chi tit ca ha n bao gm s H, m


hng, s lng bn v gi bn ca mt hng .
61
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG 2 (TT)

Vit cc biu thc i s quan h cho cc cu


hi sau:

Cho bit M s v tn ca cc mt hng cn trong kho

Cho bit h tn v a ch ca cc khch hng l i l

Cho bit tr gi ca nhng ha n lp vo ngy 12/05/2007

Cho bit h tn, a ch ca cc khch hng l mua hng vo


ngy 15/01/2007

In ra thng tin gm m s, tn hng v n v tnh ca cc mt


hng c cc khch hng ng Thp mua vo ngy
15/12/2006
62
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG 2 (TT)
In ra m s, tn ca cc mt hng thuc cc ha n c tr gi
ln hn 1000
Cho bit tn ca nhng mt hng cha tng c bn
Cho bit m s, tn ca nhng i l khng mua hai mt hng
H001 v H002
Tm tn ca nhng mt hng va c mua bi cc i l
Vnh Long va c mua bi cc khch hng l Tr Vinh.
Tm nhng ha n mua cc mt hng t ra nh l cc mt
hng ca ha n 999
Tm a ch v tn ca nhng i l mua tt c cc mt hng
m i l KH009 mua vo ngy 20/01/2007
Chng III
NGN NG SQL
NGN NG SQL
Email: khanhltn@gmail.com
64
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
65
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
S lc v h QTCSDL SQL Server 2000

SQL server 2000:

l mt h qun tr c s d liu quan h ph bin


hin nay.

c th lu tr c d liu rt ln

Tnh bo mt cao

H tr vic sao lu d liu d phng mnh

Transact - SQL (T-SQL):

L ngn ng SQL m rng da trn chun ANSI

T-SQL gm cc nhm:

Data Definition Language (DDL): ngn ng nh ngha d


liu
Data Manipulation Language (DML): ngn ng x l d liu
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
66
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc kiu d liu trong SQL

Kiu d liu l mt thuc tnh, n ch nh kiu ca


d liu v dung lng c th lu tr ca mt i
tng

SQL Server h tr mt s kiu d liu c ci sn


nh sau:
67
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc kiu d liu trong SQL (tt)
Mc Kiu d liu M t
Exact
Numb
ers
int - s dng 4 byte trong b nh my tnh.
- thng c s dng lu tr gi tr s nguyn
smallint - s dng 2 byte trong b nh my tnh.
- c th lu tr cc s nguyn t -32768 n 32767.
tinyint - chim 1 byte trong b nh.
- C gi tr t 0 n 255
bigint - s s dng 8 byte trong b nh my tnh.
- c th lu tr cc s nguyn t -2
63
(-
9223372036854775807) n 2
63
-1
numeric(p,d) - Kiu s vi chnh xc c nh
- Biu din s gm p ch s v 1 du chm, c d ch
s bn phi du chm thp phn
money - s dng 8 byte trong b nh my tnh.
- Biu din gi tr d liu tin t t (-2
63
/10000) n
(2
63
-1).
68
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Mc Kiu d liu M t
Approximate
numerics
float(n) - s dng 8 byte trong b nh my tnh.
- Biu din cc s chm ng t
-1.79E+308 n 1.79E+308.
real -s dng 4 byte trong b nh my tnh.
-Biu din cc s chm ng c chnh
xc t -3.4E+38 n 3.40E+38.
Date and time
datetime - Biu din ngy v gi. c lu tr nh
l 2 s integer, chim 8 byte. Chnh xc n
phn trm ca giy
smalldatetime Biu din ngy v gi, chnh xc n pht
Cc kiu d liu trong SQL (tt)
69
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Mc Kiu d liu M t
Character
String
char Lu tr d liu k t, n c c nh kch
thc v khng h tr Unicode.
varchar Lu tr d liu k t, di c th thay i
v khng h tr Unicode.
Unicode
Types
text Lu tr d liu k t, di c th thay i
v khng h tr Unicode.
ntext Lu tr d liu kiu chui, di ln v c
h tr Unicode
nchar Lu tr d liu k t, n c c nh kch
thc v c h tr Unicode.
nvarchar Lu tr d liu k t, di c th thay i
v c h tr Unicode.
Cc kiu d liu trong SQL (tt)
70
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
71
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To c s d liu

S dng c php sau to mt c s d liu


trong SQL:

CREATE DATABASE <tn csdl>

V d: To c s d liu QLNV:

CREATE DATABASE QLNV


Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
72
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng - Khi nim bng

Bng dng lu tr cc thng tin ca mt i


tng trong thc t

Gm c dng v ct

Bng trong CSDL thng c kho chnh

Cc bng thng lin h vi nhau bng cc mi quan


h

Bng trong CSDL SQL Server 2000 c th c cc


rng buc, trigger
73
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng - cc thuc tnh ca bng

Tn bng

Tn ct

Kiu d liu

di d liu

S k s lu tr

S s l lu tr

Thuc tnh trn ct


Allow null

Identity

Default value
74
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng
C php:
CREATE TABLE <tn bng>(
<tn ct 1><kiu d liu>[CONSTRAINT<tn 1>],
( <tn ct 2><kiu d liu>[CONSTRAINT<tn 2>],
.
( <tn ct n><kiu d liu>[CONSTRAINT<tn n>]
[,CONSTRAINT <tn 1>]
[, CONSTRAINT <tn 2>]

[,CONSTRAINT <tn n>]


);
75
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng (tt)

Trong , c php khai bo ca cc rng buc ton


vn nh sau:

[CONSTRAINT <tn rng buc ton vn>] NULL|NOT


NULL|UNIQUE[(<tn ct i>,<tn ct j>)]| PRIMARY
KEY[(<tn ct i>,<tn ct j>)]| FOREIGN KEY
[[(<tn ct i>,<tn ct j>)] REFERENCES <tn
bng>(<tn ct i>,<tn ct j>)| CHECK (<iu
kin>)
75
76
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng (tt)

V d: To bng vi lc quan h sau:


HANGHOA (MaHG, TenHG, DVT)

M hng ha l kha chnh, tn hng v n v tnh.


Tt c khng c rng.
Create Table Hanghoa(
MaHG varchar(10) Not Null Primary key,
TenHG nvarchar(50) Not Null,
DVT varchar(5) Not Null
)
77
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

c trng ca kh nng Null ca mt ct


quyt nh cc hng trong bng c th cha gi
tr Null cho ct

Kh nng Null ca mt ct c th c nh
ngha khi to mt bng
T kha NULL c s dng ch ra rng gi tr null l c php trong
ct
T kha NOT NULL c s dng ch ra rng gi tr null l khng c
php

V d:
CREATE TABLE Nhanvien(
manv char(5) NOT NULL,
tennv nvarchar(30),
manqly char(5) NULL
)
To bng Ct c php Null
78
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng nh ngha DEFAULT

Default constraint c th c to ra ti thi im


to Table hoc thm sau khi Table c to.

Vi mt ct, ch c th to c mt gi tr Default.

Gi tr default c th l mt hng, mt hm h
thng, mt bin ton cc, hoc mt hm do ngi
dng nh ngha.
79
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng - nh ngha DEFAULT (tt)

nh ngha default trong khi to bng:


CREATE TABLE <tn bng> <tn ct> <KDL>
[NULL|NOT NULL]
[CONSTRAINT <tn rng buc>] DEFAULT <biu thc>
V d:
CREATE TABLE StoreProduct(
ProductID int NOT NULL,
Name varchar(40) NOT NULL,
Price money NOT NULL DEFAULT (100)
)

nh ngha default i vi mt bng tn ti:


ALTER TABLE <tn bng>
ADD [CONSTRAINT <tn rng buc>] DEFAULT <biu
thc> FOR <tn ct>
80
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Thuc tnh IDENTITY ca SQL Server c s dng to ra cc


ct nhn dng, chng cha cc gi tr t ng pht sinh tun t
nhn dng duy nht mi hng trong mt bng
Mt thuc tnh nhn dng c hai thnh phn:
Gi tr khi u
Gi tr tng
To bng - Thuc tnh IDENTITY
81
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C php:

CREATE TABLE <table_name> (column_name data_type


[ IDENTITY [(seed_value, increment_value)]] NOT
NULL )
Trong , - seed_value l gi tr khi u .
- increment_value l gi tr tng.
V d:
CREATE TABLE ContactPhone (
Person_ID int IDENTITY(500,1) NOT NULL,
MobileNumber bigint NOT NULL
)
To bng - Thuc tnh IDENTITY (tt)
82
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Rng buc l thuc tnh c ch nh cho mt ct hoc mt tp


hp cc ct trong bng ngn nga cc gi tr khng nht qun
c nhp vo.

SQL Server h tr cc loi rng buc sau:


PRIMARY KEY
UNIQUE
FOREIGN KEY
CHECK
NOT NULL
To bng Rng buc
83
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- Primary Key (Kho chnh)

Rng buc PRIMARY KEY c s dng to


mt kha chnh v m bo ton vn thc th bng.

C php thm mt kha chnh trong khi to


bng:

CREATE TABLE <tn bng> (


<tn ct> <kiu d liu> PRIMARY KEY [ds
ct] )

CREATE TABLE <tn bng> (


<tn ct> <kdl> [ds ct] CONSTRAINT <tn RB>
PRIMARY KEY)
84
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- Primary Key (Kho chnh) (tt)

V d: To bng PhongBan vi kha chnh l maphong


CREATE TABLE PhongBan (
maphong int PRIMARY KEY,tenphong navarchar(20),
trphong char(5), diadiem nvarchar(20)
)
Hoc c th vit nh sau:
CREATE TABLE PhongBan (
maphong int constraint pk_pb PRIMARY KEY,
tenphong nvarchar(20),
trphong char(5), diadiem nvarchar(20))
85
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- UNIQUE - Kha duy nht

Rng buc kha duy nht:

c s dng bo m rng ch cc gi tr duy


nht c nhp vo trong ct hoc mt tp hp cc
ct ( cho php nh pht trin chc chn rng khng
c cc gi tr trng lp c nhp vo)

c s dng trong cu lnh create table nh


ngha kha ph cho bng

Rng buc UNIQUE cho php null


86
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- UNIQUE - Kha duy nht (tt)
C php:

CREATE TABLE <tn bng> ([ds ct, ] <tn


ct> <kdl> [CONSTRAINT <tn RB>]UNIQUE
[,ds ct])
V d:
CREATE TABLE KhachHang (
makh int PRIMARY KEY,
tenkh nvarchar(30),
diachi nvarchar(30),
sodt char(10) UNIQUE )
87
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- Kha ngoi (foreign key)

Mt kha ngoi trong mt bng l mt ct, n ch n mt kha chnh


trong mt bng khc

Rng buc kha ngoi c s dng m bo ton vn tham chiu

C php:

CREATE TABLE <tn bng 1>(


[ds ct,]
<tn ct> <kdl> [CONSTRAINT <tn RB>]FOREIGN KEY REFERENCES
<tn bng 2>(ct lm kha chnh> [, ds ct])

88
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- Kha ngoi (foreign key)

V d:
CREATE TABLE Nhanvien(
manv char(5) NOT NULL,
tennv nvarchar(30),
manqly char(5),
phong int foreign key references PhongBan(maphong)
)

Hoc c th vit nh sau:


CREATE TABLE Nhanvien(
manv char(5) NOT NULL,tennv nvarchar(30),
manqly char(5), phong int
constraint fk_nv_pb foreign key(phong) references PhongBan(maphong)
)

89
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
To bng Rng buc
- Rng buc kim tra (Check)

Rng buc check

c s dng ch nh iu kin hp l i vi d liu

C php:

CREATE TABLE <tn bng>(


[ds ct,] <tn ct> <kdl> [CONSTRAINT <tn RB>] CHECK (<iu kin>)

V d:
Create table KetQua(
masv int, mamh char(4),
diem float,
lanthi int check(lanthi<3)

90
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
91
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu

L cu lnh dng cp nht d liu.

Bao gm cc cu lnh: INSERT, UPDATE, DELETE.

Lnh thm d liu vo bng:


INSERT INTO <Tn bng> [(<DS cc trng>)]
VALUES (<DS cc gi tr tng ng>)
- Vd: MON (MaMH, TenMH, DVHT)
Thm vo bng MON vi m mn TH345, tn mn C
s d liu, n v hc trnh l 5
INSERT INTO MON VALUES ('TH345', 'C s d
liu',5)
Hoc:
INSERT INTO MON (MaMH, TenMH, DVHT)
VALUES('TH345', 'C s d liu',5)
92
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu (tt)

Mt s lu :

Thm k t N trc chui Unicode

V d:
insert into NhanVien values(NV01,NNguyn
vn Trng, Nam)

Thuc tnh NOT NULL

Nu thuc tnh c khai bo l NOT NULL th bt buc phi


c gi tr khi nhp 1 b vo bng
93
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu (tt)

Mt s lu (tt)

Nhp d liu khi c rng buc kha ngoi

Trng hp 1:

Cch 1:
B1: Nhp PHONGBAN
B2: Nhp DEAN

Cch 2:
B1: Nhp DEAN, nhp phong = null
B2: Nhp PHONGBAN
B3: Cp nht DEAN
94
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu (tt)

Mt s lu (tt)

Nhp d liu khi c rng buc kha ngoi

Trng hp 2:

Cch 1:
B1: Nhp NHANVIEN, t phong = null
B2: Nhp PHONGBAN
B3: Cp nht thuc tnh phong ca
NHANVIEN

Cch 2:
B1: Nhp PHONGBAN, t trphong =
null
B2: Nhp NHANVIEN
B3: Cp nht PHONGBAN
95
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu (tt)

Mt s lu (tt)

Nhp d liu khi c rng buc kha ngoi

Trng hp 3:

Cch 1:
Nhng nhn vin c manql l null th
nhp trc
Sau nhp nhng nhn vin m
nhp thng tin ngi qun l
nhn vin .

Cch 2:
B1: Nhp NHANVIEN t manql =
null

B2: Cp nht manql ca NHANVIEN


96
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cu lnh cp nht d liu (tt)
- Lnh Update, Delete
Lnh cp nht d liu trong bng:
UPDATE <Tn bng> SET <Tn trng1> = <GT1>,....,
<Tn trngN> = <GTN> [WHERE <iu kin>]
Vd: Cp nht s DVHT cho mn hc 'TH345' tng 1
UPDATE MON SET DVHT = DVHT + 1
WHERE MaMH = 'TH345'
Lnh xa d liu khi bng:
DELETE FROM <Tn bng> [WHERE <iu kin chn>]
Vd: Xa cc mn hc c s DVHT nh hn 2
DELETE FROM MON WHERE DVHT < 2
Lu : Cu lnh delete ch xa d liu ca bng, cu trc bng to
bi cu lnh create table vn c gi nguyn.
97
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
98
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc lnh v thay i cu trc bng
- Thm, xa, sa mt ct (thuc tnh)

Thm mt ct vo bng c sn

C php
ALTER TABLE <tn bng> ADD <tn ct 1>
<kdl1>[,<tn ct 2> <kdl2>, ...]

V d: Thm ct ngaysinh vo bng NhanVien


ALTER TABLE NhanVien ADD ngaysinh datetime
99
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc lnh v thay i cu trc bng
- Thm, xa, sa mt ct (thuc tnh) (tt)

Chnh sa ct trong bng


C php
ALTER TABLE <table_name>
ALTER COLUMN <tn ct 1> <kdl1>
[,<tn ct 2> <kdl2> ...]

V d: Sa ct tennv trong bng NhanVien thnh ct c


kiu d liu l nvarchar(20)
ALTER TABLE NhanVien ALTER tennv
nvarchar(20)
100
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc lnh v thay i cu trc bng
- Thm, xa, sa mt ct (thuc tnh) (tt)

Xa ct trong bng
C php
ALTER TABLE <table_name> DROP COLUMN
<column_name1> [,<column_name2>
V d: Xa ct diadiem trong bng PhongBan
ALTER TABLE PhongBan DROP COLUMN
diadiem
101
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Thm rng buc kha chnh

Thm RB kha chnh


C php
ALTER TABLE <tn bng> ADD CONSTRAINT
<tn RB> PRIMARY KEY (<DS cc ct lm
kha chnh>)
-
V d: Thm kha chnh cho bng KetQua
ALTER TABLE KetQua ADD CONSTRAINT pk_kq
PRIMARY KEY(masv,mamh)
102
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Thm rng buc kha ngoi

Thm RB kha ngoi


C php
ALTER TABLE <tn bng> ADD CONSTRAINT
<tn RB> FOREIGN KEY (<DS cc ct lm
kha ngoi>) REFERENCES <tn bng tham
chiu>(<ds ct>)
-
V d: Thm RB kha ngoi cho bng KetQua
ALTER TABLE KetQua ADD CONSTRAINT
fk_kq_sv FOREIGN KEY(masv) REFERENCES
SinhVien(masv)
103
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Thm rng buc kim tra (check)

Thm RB kim tra


C php
ALTER TABLE <tn bng> ADD CONSTRAINT
<tn RB> CHECK(<iu kin>)
-
V d: Thm RB kim tra m bo thuc tnh phai
trong bng NhanVien ch nhn gi tr nam hoc
n
ALTER TABLE NhanVien ADD CONSTRAINT
ck_phai CHECK(phai in (nam,nu))
104
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Xa rng buc kha chnh, kha ngoi, check

C php
ALTER TABLE <tn bng> DROP CONSTRAINT
<tn RB>
-
V d:
-
Xa RB kim tra trong bng NhanVien
ALTER TABLE NhanVien
DROP CONSTRAINT ck_phai
-
Xa RB kha ngoi trong bng KetQua
ALTER TABLE KetQua
DROP CONSTRAINT fk_kq_sv
105
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
106
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Xa bng
C php:
Drop table <tn bng>
V d: Xa bng NhanVien
Drop table NhanVien
Lu khi xa bng c lin quan n kha ngoi:
Nu khng c tham chiu vng th tin hnh xa bng
cha kha ngoi trc sau xa bng cn li, hoc xa
kha ngoi ri sau tin hnh xa cc bng.
Nu c tham chiu vng th xa mt kha lm mt tham
chiu vng ri tin hnh nh trng hp 1.
C th s dng cu lnh sau lm v hiu ha cc RB trn
bng trc khi xa bng:
Alter table <tn bng> nocheck constraint all
107
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d tng hp

To csdl gm cc lc sau:

SINHVIEN (MaSV, Hoten, Namsinh, QQ, Hocluc)

DETAI (MaDT, TenDT, Chunhiem, Kinhphi)

SV_DT (MaSV, MaDT, NoiAD, KQ)


Create table SinhVien(
masv int primary key, hoten nvarchar(30),
namsinh datetime, qq nvarchar(20), hocluc float)
Create table DeTai(
madt int primary key, tendt nvarchar(30),
chunhiem nvarchar(30), kinhphi int)
Create table SV_DT(
masv int foreign key references SinhVien(masv),
madt int foreign key references DeTai(madt),
noiAD nvarchar(20), kq float,
constraint pk_svdt primary key(masv,madt))
108
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
109
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
C s d liu v d

Trong sut phn sau ca chng ny, ta s dng


csdl sau lm v d minh ha:

NhanVien(manv, honv, tenlot, tennv, ngaysinh, diachi,


phai, luong, manql, phong)

PhongBan(maphong,tenphong,trphong, ngnhanchuc)

DDPhong(maphong, diadiem)

DeAn(tenda, mada, ddiemda, phong)

PhanCong(manvien, soda, thoigian)

ThanNhan(manvien, tentn, phai, ngaysinh, quanhe)


110
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
110
Truy vn d liu

L ngn ng rt trch d liu

Thng i km vi mt s iu kin no

Da trn

Cho php kt qu tr v ca bng c nhiu dng trng


nhau
Php ton
SQH
Mt s b
sung
+
111
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
111
Truy vn c bn
Gm 3 mnh
<danh sch cc ct>
Tn cc ct cn c hin th trong kt qu truy vn
<danh sch cc bng>
Tn cc bng lin quan n cu truy vn
<iu kin>
Biu thc boolean xc nh dng no s c rt trch
Ni cc biu thc: AND, OR, v NOT
Php ton: < , > , <= , >= , <>, = , LIKE v BETWEEN
SELECT [DISTINCT] <danh
sch cc ct>
FROM <danh sch cc
bng>
[WHERE] <iu kin>
T kha DISTINCT loi
b cc dng trng nhau
trong bng kt qu
112
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

SQL v SQH
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
SELECT <danh sch cc
ct>
FROM <danh sch cc
bng>
WHERE <iu kin>

SELECT L
FROM R
WHERE C

L
(
C
(R))
113
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)

V d: Cho bit ds sinh vin lp c m l Ti01


SELECT *
FROM SinhVien
WHERE malop = Ti01

Tng ng vi biu thc sqh sau:

malop = Ti01
(SinhVien)
Du * ch tt c cc ct
114
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)

V d: Cho bit ds sinh vin nam ca lp c m


Ti01
SELECT masv, hoten, ngaysinh, phai, malop
FROM SinhVien
WHERE malop = Ti01 and phai = Nam

Tng ng vi biu thc sqh sau:



masv, hoten, ngaysinh, phai, malop
(
malop = Ti01and phai=Nam
(SinhVien))
115
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)

Tn b danh:

C th t li tn cho ds cc thuc tnh trong bng kt


qu (gi l tn b danh) bng cch s dng c php
sau:
Select <tn ct> AS <tn mi cho ct>

V d
SELECT masv AS ma, hoten AS Ho ten,
ngaysinh, phai, malop
FROM SinhVien
WHERE malop = Ti01 and phai = Nam
116
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)

V d: Cho bit m s, h tn, ngy sinh, tn lp


ca danh sch sinh vin lp cng ngh thng tin
01
SELECT
FROM
WHERE
maso, hoten, ngaysinh, tenlop
SinhVien, LopHoc
tenlop=Cong nghe thong tin
01
SinhVien.malo
p=LopHoc.mal
op
AND
117
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)

Tn b danh cho bng

V d: Cho bit m s, h tn, ngy sinh, tn lp ca


danh sch sinh vin lp cng ngh thng tin 01
Select maso, hoten, ngaysinh, tenlop
From SinhVien sv, LopHoc lh
Where tenlop = =Cong nghe thong tin 01
and sv.malop = lh.malop
118
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
- Ton t between, not between, like, not like

BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG > 20000 AND LUONG < 30000

C th vit:
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG BETWEEN 20000 AND 30000

S dng NOT BETWEEN tng t


119
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
- Ton t between, not between, like, not like

LIKE
SELECT masv, hoten, ngaysinh
FROM SinhVien
WHERE hoten LIKE Nguyen _ _ _ _

Hoc
SELECT masv, hoten, ngaysinh
FROM SinhVien
WHERE hoten LIKE Nguyen %

S dng NOT LIKE tng t

Lu :

Like ab\%cd% cho ra nhng chui bt u vi ab


%cd

Like ab\\cd% cho ra nhng chui bt u vi ab\cd


120
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
- V d

Vi nhng n Ha Noi, cho bit m n, m


phng ban ch tr n, h tn trng phng cng
vi ngy sinh v a ch ca ngi y
121
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
- V d

Cho bit h tn ca nhn vin phng s 5 c tham


gia vo n Sn phm X vi s gi lm vic trn
10 gi
122
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn (tt)
- V d

Cho bit h tn ca tng nhn vin v ngi qun


l trc tip nhn vin

Tm h tn ca nhng nhn vin c Nguyen


Thanh Tung qun l trc tip (ngc vi cu trn)
123
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn
- Mnh ORDER BY

Dng hin th kt qu cu truy vn theo mt th


t no

C php:
SELECT <ds cc ct>
FROM <ds cc bng>
WHERE <iu kin>
ORDER BY <danh sch cc ct><kiu sp>

Trong <kiu sp> c th l:


ASC: tng (mc nh)
DESC: gim
124
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn c bn
- Mnh ORDER BY (tt)

V d:
SELECT MANVIEN, SODA
FROM PHANCONG
ORDER BY MANVIEN DESC, SODA
SODA
10
30
9998877
77
9998877
77
MANVIEN
10
30 9879879
87
9876543
21
9879879
87
10
20 9876543
21
30 9876543
21
125
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
126
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Truy vn lng

Cc cu lnh SELECT c th lng nhau nhiu


mc

Cc cu truy vn con trong cng mt mnh


WHERE c kt hp bng php ni logic

Cu truy vn con thng tr v mt tp cc gi tr

C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <so snh tp hp> (
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>)
127
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
127

Mnh WHERE ca cu truy vn cha

<biu thc> <so snh tp hp> <truy vn con>

So snh tp hp thng i cng vi mt s ton t


IN, NOT IN
ALL
ANY hoc SOME

Kim tra s tn ti
EXISTS
NOT EXISTS
Truy vn lng (tt)
128
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

C 2 loi truy vn lng

Lng phn cp

Mnh WHERE ca truy vn con khng tham chiu n


thuc tnh ca cc quan h trong mnh FROM truy vn
cha

Khi thc hin, cu truy vn con s c thc hin trc, 1


ln

Lng tng quan

Mnh WHERE ca truy vn con tham chiu t nht mt


thuc tnh ca cc quan h trong mnh FROM truy vn
cha

Khi thc hin, cu truy vn con s c thc hin nhiu ln,


mi ln tng ng vi mt b ca truy vn cha
Truy vn lng (tt)
129
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:
SELECT MANV, TENNV
FROM NHANVIEN, DDPhong
WHERE DIADIEM=TP HCM AND phong=maphong

Tng ng vi cu truy vn lng sau:


SELECT MANV, TENNV
FROM NHANVIEN
WHERE PHONG IN (SELECT MAPHONG
FROM DDPHONG
WHERE DIADIEM=TP HCM
)
Truy vn lng (tt)
- V d lng phn cp
130
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d: Tm nhng nhn vin khng c thn nhn


no
Truy vn lng (tt)
- V d lng phn cp
131
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:
SELECT MANV, TENNV
FROM NHANVIEN
WHERE EXISTS (
SELECT *
FROM PHONGBAN
WHERE TENPHONG=Nghien cuu AND PHONG=MAPHONG)
Cu truy vn trn cho kt qu g? Tng ng vi
cu truy vn n gin no?
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHONG=Nghien cuu AND PHONG=MAPHONG
Truy vn lng (tt)
- V d lng tng quan
132
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Tm nhn vin c ngi thn cng tn v cng gii


tnh vi nhn vin
Truy vn lng (tt)
- V d
133
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Tm nhng nhn vin c lng ln hn lng ca t


nht mt nhn vin phng 4

Tm nhng nhn vin c lng ln hn lng ca


tt c nhn vin phng 4
Truy vn lng (tt)
- V d
134
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
134

IN

<tn ct> IN <cu truy vn con>

Thuc tnh mnh SELECT ca truy vn con phi


c cng kiu d liu vi thuc tnh mnh
WHERE ca truy vn cha

EXISTS

Khng cn c thuc tnh, hng s hay biu thc no


khc ng trc

Khng nht thit lit k tn thuc tnh mnh


SELECT ca truy vn con

Nhng cu truy vn c = ANY hay IN u c th


chuyn thnh cu truy vn c EXISTS
Truy vn lng (tt)
- Nhn xt
135
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
136
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm

Hm kt hp:

c s dng trong mnh SELECT

C cc hm kt hp sau:
COUNT
COUNT(*) m s dng
COUNT(<tn thuc tnh>) m s gi tr khc NULL ca
thuc tnh
COUNT(DISTINCT <tn thuc tnh>) m s gi tr khc
nhau v khc NULL ca thuc tnh

MIN

MAX

SUM

AVG
137
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

V d:

Tm tng lng, lng cao nht, lng thp nht v


lng trung bnh ca cc nhn vin

Select sum(luong) as tong luong, min(luong) as


luong nho nhat, max(luong) as luong lon
nhat, avg(luong) as luong tb
From NhanVien

Cho bit s lng nhn vin ca phng Nghien cuu


138
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

Gom nhm:

Nhm cc b c cng gi tr mt tp cc thuc tnh


li vi nhau

C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>
GROUP BY <danh sch cc ct gom nhm>
139
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

V d:

Cho bit s lng nhn vin ca tng phng ban

Cho bit thng tin ca nhng phng ban c nhiu hn


10 nhn vin
140
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

V d:

Vi mi nhn vin cho bit m s, h tn, s lng


n v tng thi gian m h tham gia
SELECT HONV, TENNV, COUNT(*) AS SL_DA,
SUM(THOIGIAN) AS TONG_TG
FROM PHANCONG, NHANVIEN
WHERE MANVIEN=MANV
GROUP BY MA_NVIEN, HONV, TENNV

Cho bit nhng nhn vin tham gia t 2 n tr ln


141
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>
GROUP BY <danh sch cc ct gom nhm>
HAVING <iu kin trn nhm>

V d: Cho bit nhng nhn vin tham gia t 2


n tr ln
142
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

V d:

Cho bit nhng phng ban (TENPHONG) c lng


trung bnh ca cc nhn vin ln ln 20000
143
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)
- Nhn xt

Mnh GROUP BY

Cc thuc tnh trong mnh SELECT (tr nhng


thuc tnh trong cc hm kt hp) phi xut hin trong
mnh GROUP BY

Mnh HAVING

S dng cc hm kt hp trong mnh SELECT


kim tra mt s iu kin no

Ch kim tra iu kin trn nhm, khng l iu kin


lc trn tng b

Sau khi gom nhm iu kin trn nhm mi c


thc hin
144
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)
- Nhn xt

Th t thc hin cu truy vn c mnh GROUP


BY v HAVING

(1) Chn ra nhng dng tha iu kin trong mnh


WHERE

(2) Nhng dng ny s c gom thnh nhiu nhm


tng ng vi mnh GROUP BY

(3) p dng cc hm kt hp cho mi nhm

(4) B qua nhng nhm khng tha iu kin trong


mnh HAVING

(5) Rt trch cc gi tr ca cc ct v hm kt hp
trong mnh SELECT
145
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Hm kt hp v gom nhm (tt)

V d:
Tm phng ban c lng trung bnh cao nht
Tm 3 nhn vin c lng cao nht
Tm tn cc nhn vin c phn cng lm tt c cc
n
146
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
147
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM

Thng thng iu kin ca php kt ni c ch


nh trong mnh where ca cu truy vn thng
qua cc biu thc so snh gia cc bng tham gia
cu truy vn.

Chun SQL2 a ra mt cch khc biu din


cho php ni. Trong cch biu din ny:

iu kin ca php kt ni c ch nh ngay trong


mnh From.

u im: Cho php biu din php ni v iu kin


ni r rng (c bit trong trng hp php ni c
thc hin t 3 bng tr ln)
148
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

Kt ni bng (kt ni trong)


C php:
SELECT <danh sch cc ct>
FROM R1 [INNER] JOIN R2 ON <biu thc>
WHERE <iu kin>
- V d: Hin th h tn v ngy sinh, tn lp ca danh sch sinh
vin lp Cong nghe thong tin 01 ta c th vit theo 2 cch sau:
select hoten, ngaysinh, tenlop
From SinhVien, LopHoc
Where SinhVien.malop = LopHoc.malop and tenlop =
Cong nghe thong tin 01
- Hoc c th vit nh sau:
select hoten, ngaysinh, tenlop
From SinhVien INNER JOIN LopHoc ON SinhVien.malop =
LopHoc.malop
Where tenlop = Cong nghe thong tin 01
149
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

Kt ni ngoi

C php:
SELECT <danh sch cc ct>
FROM R1 LEFT|RIGHT|FULL [OUTER] JOIN R2 ON
<biu thc> WHERE <iu kin>

V d:
150
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

Kt ni ngoi

V d: ta c 2 bng NhanVien v DonVi nh sau:

Khi , php kt ni ngoi tri 2 bng trn cho kt


qu sau:
select *
from NhanVien left join DonVi
on NhanVien.madv = DonVi.madv
151
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

Kt ni ngoi

V d: ta c 2 bng NhanVien v DonVi nh sau:

Php kt ni ngoi phi 2 bng trn cho kt qu


sau:
select *
from NhanVien right join DonVi
on NhanVien.madv = DonVi.madv
152
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

Kt ni ngoi

V d: ta c 2 bng NhanVien v DonVi nh sau:

Php kt ni ngoi y 2 bng trn cho kt qu


sau:
select *
from NhanVien full join DonVi
on NhanVien.madv = DonVi.madv
153
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

V d:

Tm m v tn cc nhn vin lm vic ti phng


Nghien cuu

Cho bit h tn nhn vin v tn phng ban m h l


trng phng nu c
154
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
iu kin kt mnh FROM (tt)

V d:

Tm h tn cc nhn vin v tn cc n nhn vin


tham gia nu c
155
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng III
Gii thiu s lc HQT CSDL SQL server 2000
Cc kiu d liu trong SQL
Cu lnh nh ngha d liu
To c s d liu
To bng
Cu lnh cp nht d liu
Cu lnh thay i cu trc bng
Xa bng
Cu lnh thao tc d liu
Truy vn d liu c bn
Truy vn lng
Hm kt hp v gom nhm
Mt s dng truy vn khc
Khung nhn
156
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Khung nhn (View)

Bng l mt quan h c t chc lu tr vt l


trong CSDL

Khung nhn cng l mt quan h

Khng c lu tr vt l (bng o)

Khng cha d liu

c nh ngha t nhng bng khc

C th truy vn hay cp nht thng qua khung nhn


157
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Khung nhn (View)
- nh ngha

To khung nhn

CREATE VIEW <tn khung nhn> AS <cu


truy vn>

Bng o ny c
Danh sch thuc tnh trng vi cc thuc tnh trong mnh
SELECT

S dng ph thuc vo iu kin mnh WHERE

D liu c ly t cc bng mnh FROM

Xa b khung nhn:
DROP VIEW <tn khung nhn>
158
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Khung nhn (View)
- V d

To khung nhn NVP5 cha danh sch cc nhn


vin phng s 5
CREATE VIEW NVP5 AS
SELECT MANV, HONV, TENLOT, TENVN
FROM NHANVIEN
WHERE PHG=5

S dng khung nhn nh mt bng


SELECT TENNV
FROM NVP5
WHERE luong > 2000
159
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Khung nhn (View)
- Cp nht, b sung v xa d liu qua view

SV t tm hiu
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
160
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG III

Cho lc csdl QLBanHang c m t nh sau:


Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
161
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG III (tt)
Thc hin cc yu cu sau bng SQL
To csdl v to cc bng, nhp d liu cho cc bng trong csdl
Cho bit m v tn ca cc mt hng c gi ln hn 10 v s
lng hin c t hn 20
Cho bit thng tin nhng khch hng no mua mt hng o
Vit Tin
Cho bit thng tin nhng mt hng no cha tng c khch
hng t mua?
Cho bit tng s lng bn c ca mi mt hng
B sung rng buc cho bng DONDATHANG rang buc kim tra
ngy giao hng v ngy chuyn hng phi sau hoc bng vi ngy
t hng.
Cho bit thng tin nhng khch hng c cng ngy sinh
Thng k s lng ha n lp ca mi nhn vin
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Chng IV
RNG BUC TON VN
email: khanhltn@gmail.com
163
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL mu

A) CSDL HSSINHVIEN

SINH_VIEN(maSV, hotenSV, nam, ngSinh,


maKhoa)

maSV: m s sinh vin

Nam = true nu sinh vin l nam v = false nu l n;


maKhoa: m s khoa m sinh vin ang theo hc.
- KHOA(maKhoa, tenKhoa, soCB)

soCB: tng s cn b ging dy ca khoa.

MON_HOC(maMH, tenMH, soTietLT, soTietTH)


soTietLT, soTietTH l tng s tit l thuyt v tng s tit
thc hnh ca mn hc.

KET_QUA(maSV, maMH, lanThi, diem)


164
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL mu (tt)

B) CSDL QLHANGHOA QL. n hng v ha n


giao hng ca mt cty thng mi.

KHACH(maKH, tenKh, diachiKH, dienThoai,


congNo)
congNo: cng n vi khch hng, nu congNo > 0: khch
hng n cng ty v ngc li.

HANG_HOA(maHH, tenHH, dvTinh)

DAT_HANG(soDH, maHH, soLuongDat,


ngayDH, maKH)

soDH: m s ca ca n t hng, mt n t hng c


th gm nhiu mt hng. maHH: m s ca h.ha m k.hng
cn t mua.
165
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL mu (tt)

HOA_DON(soHD, ngayHD, soDH, trigiaHD, ngayXuat)


soHD: m s ca ha n bn hng cho khch. Mt ha
n bn hng c th gm nhiu mt hng.
ngayHD: ngy pht hnh ha n
soDH: ha n bn hng theo yu cu ca mt n t
hng c m s l soDH v ngc li, mi n t hng s
c gii quyt ch trong mt ha n. Do iu kin khch
quan, c th cty ko giao y cc mt hng cng nh s
lng tng mt hng nh yu cu trong n t hng
nhng ko bao gi giao vt ngoi yu cu.
166
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CSDL mu (tt)

CTIET_HD(soHD, maHH, giaBan, soLuongBan)


(chi tit nhng mt hng bn c cho khch hng)
soHD: m s ca ha n bn hng cho khch
maHH: m s ca hng ha bn cho khch theo yu cu
ca n t hng.

PHIEU_THU(soPT, ngayPT, maKH, soTien)


soPT: m s phiu thu tin ca khch hng; khch hng c
th tr tin khng theo mt ha n bn hng no c v
cng c th tr tin trc khi nhn hng xem nh tin t
cc.
ngayPT: ngy pht hnh phiu thu tin
maKH: m s khch hng tr tin
soTien: s tin thu ca khch hng
167
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Khi nim
Trong mt CSDL,
lun tn ti rt nhiu mi lin h,
rt nhiu s rng buc qua li gia cc thuc tnh, cc b
vi nhau
Cc mi lin h, rng buc ny l nhng iu kin bt bin
m tt c cc b ca nhng qh. c lin quan trong CSDL
u phi tha mn bt k thi im no.
RBTV l Nhng iu kin bt bin m cc i tng ca
CSDL phi tha mn bt k thi im no.
Trong thc t, RBTV l cc QT. qun l c p t ln
trn cc i tng ca th gii thc.
168
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Khi nim (tt)

Vd 1:
Trong CSDL HSSINHVIEN ta c mt s RBTV nh sau:

C1: Mi sinh vin c mt m s ring bit, khng trng vi


bt k sinh vin no khc.

C2: Mi sinh vin ch c thi ti a hai ln cho mt mn


hc.
C3: Mi sinh vin phi thuc v mt khoa no .

Cng vic kim tra RBTV c th c tin hnh vo


mt trong cc thi im sau:

ngay khi thc hin mt thao tc cp nht CSDL


(thm, sa, xa).

nh k hay t xut.
169
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Cc yu t ca rng buc ton vn

Mt RBTV c ba yu t: iu kin, bi cnh v tm


nh hng

iu kin ca mt RBTV

c th c biu din bng ngn ng t nhin, thut


gii, ngn ng i s tp hp, i s quan h

cng c th c biu din bng ph thuc hm. (s


tm hiu sau ny)
170
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Cc yu t ca rng buc ton vn

Bi cnh ca mt RBTV C:

l nhng quan h m RBTV c hiu lc.

c th l mt hay nhiu quan h.

Vd 2: bi cnh ca RBTV C1 l quan h SinhVien.


171
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Cc yu t ca rng buc ton vn (tt)

Tm nh hng ca mt RBTV

nhm xc nh thi im cn kim tra cc RBTV .

Bng tm nh hng ca mt RBTV C


Thm Sa Xa
R1 + + +
R2 +

Rn + +
Thm Sa Xa
SinhVien + (*)
Vd 3: Bng tm nh hng ca
rng buc C1
Trong , C c bi cnh l cc quan h R1,.., Rn
+: cn phi kim tra RBTV C
: khng cn kim tra RBTV C
172
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi

Cc RBTV c th c chia lm hai loi chnh:

RBTV c bi cnh l mt quan h

RBTV c bi cnh nhiu quan h


173
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh l mt QH
RBTV v min gi tr
lin quan n min gi tr ca cc thuc tnh.
Vd 4: trong LQH Ketqua ta c: Min gi
tr(Diem)=0..10
phng o to quy nh thm mt RBTV l: im thi c
chnh xc n 0.5 im, iu kin rng buc ny c
th c biu din nh sau:
(t.Diem * 4) mod 2 = 0, t Ketqua
trong quan h NHANVIEN(maNV,tenNV, luong,
tamUng, conLai), ta c: RBTV v min gi tr:
tamUng luong
174
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh l mt QH (tt)
RBTV lin thuc tnh
th hin mi lin h gia cc thuc tnh trong cng mt
lc quan h.
Vd 5: Trong LQH HoaDon, ta c mt RBTV lin
thuc tnh nh sau:
Hng ha ch c xut kho sau khi lp ha n
hd T
HOADON

hd.ngayHD hd.ngayXuat
Lu : MGT ca mt th.t A c tnh ton t cc th.t
khc trong cng mt LQH vi A th ta cng c c
mt RBTV lin thuc tnh nhng trong qu trnh thit k
ta c th loi b thuc tnh A ra khi LQH.
175
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh l mt QH (tt)

RBTV lin b

L s rng buc gia cc b bn trong mt quan h.

Thng c biu din bng ph thuc hm.

l loi RBTV rt ph bin, c mt trong mi LQH


ca CSDL v thng c cc h qun tr CSDL h
tr phn t ng kim tra.

Vd 6: rng buc C1 thuc loi rng buc ton vn lin


b.
176
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH

RBTV v ph thuc tn ti

Cn c gi l RB v kha ngoi (foreign key) v rt


ph bin.
Vd 7:

a) Trong quan h KetQua, s tn ti ca mt b kq =


(msv, mon, lanthi, diem) KetQua hon ton ph
thuc vo
s tn ti ca b sv SinhVien sao cho sv.maSV =
msv.

b) Trong quan h SinhVien, s tn ti ca b sv =


(To012, Pham Anh Hoang, true, 12/06/81, To)
hon ton ph thuc vo s tn ti ca mt b k
Khoa, k = (To, Toan, 30).
177
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

Gi s c hai lc quan h R
1
, R
2
. Hai tp hp K
1
v
K
2
ln lt l cc kha ca R
1
v R
2
.
Hai du hiu ca ph thuc tn ti nh sau:

(1) Nu K
1
K
2
th ta c ph thuc tn ti ca R
2
vo R
1
.

(2) Nu K
1
R
2
(tp thuc tnh ca lc quan h R
2
) th
ta c mt ph thuc tn ti ca R
2
vo R
1
.
Tp hp K
1
gi l kha ngoi ca R
2
.
Vd 8:
v d 1.7a) l trng hp rng buc vi du hiu (1) v 1.7b) l
trng hp rng buc vi du hiu (2).
178
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

RBTV v lin b, lin quan h

c tc dng i vi tng nhm cc b ca nhiu quan


h khc nhau. (thng l hai quan h)

Vd 9: rng buc mi ha n bn hng phi c t


nht mt mt hng lin quan n hai quan h,
HoaDon v CtietHD trn hai lc HOA_DON v
CTIET_HD.
Lu l ha n c lp theo n t hng, nhng trong
chi tit ha n mi bit c cng ty bn cho khch hng
nhng mt hng no.
179
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

RBTV lin thuc tnh, lin quan h

L mi lin h gia cc thuc tnh trong nhiu lc


quan h.

Vd 10:

Xt hai qh. DatHang va HoaDon ca mt th hin ca


CSDL, ta c RB: Ngy lm ha n in trn ha n
phi sau ngy t hng (in trn n t hng)
180
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

RBTV v thuc tnh tng hp

c xc nh trong trng hp mt thuc tnh A ca


mt lc quan h R c tnh ton gi tr t cc
thuc tnh ca cc lc quan h khc.

Vd 11:

Trong CSDL QLHANGHOA ta c RBTV: s tin cng


n ca kh. A s bng hiu s gia tng tr gi ca cc
ha n bn cho khch hng A v tng s tin thu
ca khch
181
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

RBTV do c chu trnh trong th biu din ca


lc CSDL

Mt lc CSDL c th c biu din bng mt


th v hng. Trong ta c hai loi nt:
nt thuc tnh v nt lc quan h.
Mt cung v hng trong th ni mt nt thuc tnh A vi
mt nt lc quan h R c ngha A R.
182
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu QH (tt)

Vd 12:

Xem xt mt phn ca th biu din lc CSDL


QLHANGHOA gm cc lc quan h
DAT_HANG, HOA_DON v CTIET_HD.

y, ta thy th biu din lc CSDL c cha


mt chu trnh gm 3 LQH DAT_HANG, HOA_DON
v CTIET_HD.
183
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu qh
DAT_HANG HOA_DON
CTIET_HD
soDH ngayDH
ngayHD
soHD
sLuongBan giaBan
maHH
184
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Rng buc ton vn
- Phn loi Bi cnh nhiu qh

Trong trng hp ny lc CSDL QLHANGHOA


s phi c mt RBTV tha mt trong ba trng hp
sau:

(1) Mt ha n thc hin cho mt n t hng ch giao


nhng mt hng m khch yu cu v phi gm y
tt c nhng mt hng c trong n t hng.

(2) Mt ha n thc hin cho mt n t hng ch giao


nhng mt hng m khch yu cu v c th khng
giao y tt c nhng mt hng c trong n t hng.

(3) Mt ha n thc hin cho mt n t hng c th


gm ty cc mt hng d c hay khng trong n t
hng ca khch.
185
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
BI TP CHNG IV

Cho cc lc quan h sau:

SINHVIEN (MaSV, Hoten, Namsinh, QQ, Hocluc)

Mi sinh vin c M s duy nht, h tn, qu qun v hc


lc

DETAI (MaDT, TenDT, Chunhiem, Kinhphi)

Mi ti c M s duy nht, tn ti, ch nhim ti,


kinh ph thc hin ti (n v tnh: triu ng)

SV_DT (MaSV, MaDT, NoiAD, KQ)


Mi SV c th thc hin mt hoc nhiu T: m s sinh
vin, m ti, ni p dng, kt qu thc hin ti

Xc nh tt c cc rng buc c th c trong lc


csdl trn.
Chng V
PH THUC HM V KHA
Email: khanhltn@gmail.com
187
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng V

L thuyt thit k CSDL


Ph thuc hm
nh ngha
Pth c suy dn lgic t F
H tin cho pth
Bao ng ca tp thuc tnh

Kha
nh ngha
Cc thut ton tm kha

Ph ti thiu (cc tiu) ca tp pth


Khi nim pth tng ng
Tp pth ti thiu
Thut ton tm ph ti thiu

Bi tp
188
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
L THUYT THIT K CSDL

Lm th no thit k CSDL cho tt?

Xt v d sau:
S(S#, Sname, add, pro, price)
S# Sname add pro Price
TL01 Thin Long L Thng Kit Dream
TK03 Tn Kiu L Li Wave
TK03 Tn Kiu L Li Serius
PV01 Phc
Vnh
Phm Hu Lu Future neo
TK03 Tn Kiu L Li Atila
189
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
L THUYT THIT K CSDL (tt)

Cc vn ny sinh:

D tha d liu (redundancy):


a ch v tn NCC c lp li nhiu ln trong quan h

Khng nht qun (Inconsistency):


V d: Khi sa i a ch NCC mt b no cn b khc
vn gi nguyn mt NCC li c hai a ch

D thng khi thm b (Insertion anomalies):


Nu mt NCC cha cung cp mt mt hng no c th khng
th a vo quan h v thuc tnh pro v price NULL

D thng khi xa b (deletion anomalies):


Khng th xa tt c cc mt hng c cung cp bi mt NCC
v mt hng c th c cung cp bi cc NCC khc.

Cch gii quyt: tch lc ban u thnh cc L


ph hp hn
190
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng V

L thuyt thit k CSDL


Ph thuc hm
nh ngha
Pth c suy dn lgic t F
H tin cho pth
Bao ng ca tp thuc tnh

Kha
nh ngha
Cc thut ton tm kha

Ph ti thiu (cc tiu) ca tp pth


Khi nim pth tng ng
Tp pth ti thiu
Thut ton tm ph ti thiu

Bi tp
191
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM

nh ngha

X xc nh hm Y hay Y ph thuc hm vo X, k
hiu XY nu:
Vi r quan h xy dng trn R(U), vi t1, t2 r:
t1.X = t2.X t1.Y = t2.Y (t.X: b t thu hp trn tp
thuc tnh X)

V d:
192
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- V d
e# ename dept_name dept_addr class
10 Peter Math G16 2
nd
20 Joan CS G15 1
st
30 Mike CS G15 1
st
40 Kate CS G15 1
st
50 Peter Law G20 2
nd
60 Albert Physics G20 1
st

FD: dept_name class


Cc FD khc: dept_namedept_addr
e# ename
e# dept_name, dept_addr, class
193
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM (tt)

Nhn xt:

Kha trong quan h xc nh mi thuc tnh khc.

Cc pth din t mi TBTV lin b, lin thuc tnh.

K hiu R(U,F) l lc quan h R xy dng trn U vi tp


cc rng buc ph thuc F.
XY nhng iu ngc li cha chc ng.
e# ename nhng ename e#
e# edept_name nhng edept_name e#
e# ename dept_name dept_addr class
10 Peter Math G16 2
nd
50 Peter Law G20 2
nd
20 Joan CS G15 1
st
30 Mike CS G15 1
st
40 Kate CS G15 1
st
60 Albert Physics G20 1
st
194
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Ph thuc c suy dn lgic t F

nh ngha:

Cho R(U,F), f l mt ph thuc hm trn R(U). Ta ni


f c suy dn lgic t F v k hiu F f nu vi
mi quan h r trn R(U) tha F th cng tha f.

K hiu F* = {f/F f } v gi l bao ng ca tp


ph thuc hm F.

V d: Cho U = {ABC}, F = {AB, BC},


d thy F A C
195
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- H tin cho ph thuc hm

H tin Armstrong

R(U,F), U = (A1,, An), X, Y, Z U.


H tin Armstrong bao gm:

(A1) (phn x) : nu Y X th X Y

(A2) (tng trng) : nu Z U, X Y th ZX


ZY

(A3) (bc cu) : nu X Y v Y Z th X Z

B 1:

H tin Armstrong l ng n.
196
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- H tin cho ph thuc hm (tt)

Nhn xt:

Qu trnh chng minh b ch ra rng mt ph thuc


hm f c suy din Armstrong t F th cng c suy
din lgic t F.
K hiu qu trnh suy din bng h quy tc ny l
Arm
K hiu F
+
= {f| F
Arm
f}
Khi F
+
F*

Ni rng f c suy dn t F bi h tin Armstrong nu


tn ti mt chui cc ph thuc d liu trn R m ph
thuc cui cng l f,
Mi ph thuc d liu trong chui hoc thuc F hoc c suy ra t
tp cc ph thuc trc _qua mt s bc xc nh_bng mt
trong s cc lut suy dn ny.

Nu f c suy dn t F nh mt h tin c th ta k
hiu F f.
197
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- H tin cho ph thuc hm (tt)

B 2 (quy tc suy din b sung)

(1) (Q.T. hp) : nu X Y, X Z th X YZ

(2) (Q.T. gi bc cu): nu X Y, WY Z th WX


Z, vi W U

(3) (Q.T. tch) : nu X Y, Z Y th X Z

Cc quy tc ny c th d dng chng minh da


vo h tin Armstrong.
198
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Dn xut t cc PTH
Cho F = {AB BC} hi AC c ng khng?
AB BC
AC
Cho F = {ABC} hi AB v AC c ng khng?
ABC v BCB (phn x)
AB
Tng t ta c AC
Lut bc cu
199
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Dn xut t cc PTH

Cho F = {AB BC}, hi ABC ng khng?

Cho F = {AB}, hi ACB ng khng


A AC ACA v AB
ACB ng
AB AC (bc cu)
ABC (hp)
200
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Bao ng ca tp thuc tnh

nh ngha:
F l tp ph thuc hm trn tp thuc tnh U, X U.
Bao ng ca tp thuc tnh X i vi tp ph thuc hm F,
k hiu X
F
+
,
X
F
+
= {A U | (XA) F
+
}
L tp nhng thuc tnh A sao cho X A c suy din t F nh tp cc
quy tc suy din Armstrong.
Nhn xt:

X X+

A X th A X+
Nu Y = A
i1
A
i2
A
ik
v XY, t tin tch, ta c:
XA
ij
j=1..k

ngha: X
+
chnh l nhng thuc tnh ph thuc vo
X.
201
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Bao ng ca tp thuc tnh (tt)
B 3:
X Y c suy din t F nh h lut Armstrong khi v ch khi Y l
tp con ca bao ng X i vi F, ngha l:
F
Arm
(X Y) Y X
F
+
Thut ton tm bao ng ca mt tp thuc tnh:
Vo: R(U,F), X U, Ra: X+
Phng php:
B1: t X
0
= X
B2: Vi i = 0,1,, nu tn ti mt FD V W sao cho V X
i
X
i+1
=
X
i
A
j
A
j
W
B3: Dng khi X
i
= X
i+1
Kt lun: X
+
= X
i
nh l:
H tin Armstrong l ng n v y .
202
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
PH THUC HM
- Bao ng ca tp thuc tnh (tt)
V d:
R = ABCDEG v tp ph thuc hm F nh sau:
F = {ABCC A BC D ACDB DEG
BEC CGBD CEAG}
X = BD, tnh X+

u tin ta c X
0
= BD, tm X
1
ta tm nhng ph thuc
hm trong F c v tri nm trong BD, ta c PTH DEG
tha mn iu kin .
X1 = BDEG, tip tc tm X
2
ta tm nhng PTH c v tri
nm trong BDEG, ta c BEC, vy X
2
= BDEGC.
Tng t nh vy ta c X
3
= ABCDEG y l tp X
+
= (BD)
+
= R
203
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng V

L thuyt thit k CSDL


Ph thuc hm
nh ngha
Pth c suy dn lgic t F
H tin cho pth
Bao ng ca tp thuc tnh

Kha
nh ngha
Cc thut ton tm kha

Ph ti thiu (cc tiu) ca tp pth


Khi nim pth tng ng
Tp pth ti thiu
Thut ton tm ph ti thiu

Bi tp
204
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- nh ngha kha

Siu kha (super key)

Siu kha l mt tp con X khc rng cc thuc tnh


ca lc quan h R sao cho vi bt k hai b t1,
t2 trong quan h r R th t1[X] t2[X]

X l siu kha trong R X xc nh hm mi thuc


tnh ca R: X U

Ni cch khc: siu kha xc nh duy nht mt hng trong


bng.

Kha ti tiu (minimal key kha)

Kha ti tiu K l siu kha km thm tnh cht l nu


loi khi K bt k thuc tnh no cng lm cho K
khng cn l siu kha.
Kha ti tiu l siu kha nh nht
205
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- nh ngha kha (tt)
nh ngha kha ca LQH da trn tp PTH.
Cho R(U,F),
K U gl kha ca lc quan h R(U,F) nu K
+
=
U v bt t K d mt phn t no th bao ng ca n
khc U.
K U l kha nu:
(1) K
+
= U (X U F+)
(2) (K - A)
+
U, A K
Nhn xt:
Trong mt quan h c th c nhiu kha v lun tn ti
t nht mt kha.
Cho R(U), nu U tha mn hai iu kin trn th U l
kha.
206
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- nh ngha kha (tt)

Kha chnh (primary key)

Kha chnh l mt kha ti tiu c ngi phn tch


chn ci t.

Kha d tuyn (candidate key)

Cc kha d tuyn l cc kha ti tiu khc m


khng phi l kha chnh.
207
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha

Tm kha t mt siu kha

tng:
Nu X
+
= U th (X {A})
+
=U, v nu X l kha ti tiu th
X \ {A})
+
U A U
Trc quan t nh ngha kha ti tiu, nu X l mt tp thuc
tnh bt k m X
+
=U c th bt dn cc phn t ca X
nhn c tp X b nht (vn tha X
+
= U) v chnh l
kha ca lc quan h.
208
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

Tm kha t mt siu kha

Nhc li: kha l tp thuc tnh K m bao ng ca K ng


bng U (K
+
= U) v nu bt khi K mt phn t bt k th bao
ng ca n khc U.

I: R(U,F)

O: Kha ti tiu K ca R

Thut ton:

B1: t K = U

B2: Lp li qu trnh loi khi K phn t A m


(K {A})
+
= U.
209
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

Nhn xt:

Thut ton trn tm c mt kha ti tiu ca lc


quan h R.

Mun tm cc kha khc (nu c) ca lc quan


h, ta c th thay i th t loi b cc phn t ca
K.
210
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

V d:
Tm kha ca R(U,F), vi U = ABCDEGHI
F = {ACB (1) BIACD (2) ABCD 3)
HI (4) ACEBCD (5) CGAE (6) }

B1: K = U = ABCDEGHI

B2: Ln lt loi b cc thuc tnh c trong K:


211
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

B2: Ln lt loi b cc thuc tnh c trong K:


Xt phn t A: ta c (BCDEGHI)+ = U (6) nn K = BCDEGHI
Xt phn t B: ta c (CDEGHI)+ = U (6,1) ) nn K = CDEGHI
Xt phn t C, ta c (DEGHI)+ U nn K = CDEGHI
Xt phn t D, ta c (CEGHI)+ = U (6,1,3) nn K = CEGHI
Xt phn t E, ta c (CGHI)+ = U (6,1,3) nn K = CGHI
Xt phn t G, ta c (CHI)+ U, nn K = CGHI
Xt phn t H, ta c (CGI)+ U, nn K = CGHI
Xt phn t I, ta c (CGH)+ = U, (6,1,3,4) nn K = CGH

Vy K = CGH l kha ca R.
212
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

T thut ton ta c nhn xt sau:

Cc thuc tnh khng xut hin trong c v tri v v


phi ca tp ph thuc hm phi c trong kha.

Cc thuc tnh ch xut hin bn tri ca cc PTH


trong F cng phi thuc kha.

Trong qu trnh tm kha c th loi b tt c cc


thuc tnh n pha bn phi cc PTH ca F. Tuy
nhin cn kim tra li v khng phi lc no cc thuc
tnh cng b c.
V d: Cho R(U,F) vi U = ABCDE
Vi tp PTH F
1
= {AB, C E, C D}, khi kha l K = AC
(b i ba thuc tnh n B,C,D xut hin v phi).
Tuy nhin vi tp PTH F
2
= {A C, C ABDE} th K1 = {A}, K2
= {C}
213
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)
Tm tt c cc kha ca LQH da trn tp PTH.
tng:
Cho R(U,F), ta c mt s k hiu nh sau:
U
R
, U
L
: tp cc thuc tnh v phi, v tri ca cc PTH.
N = U U
R
: cc thuc tnh c lp: khng xut hin trong bt k
PTH no v cc thuc tnh ch xut hin v tri cc PTH.
N Kha
D = U
R
- U
L
: cc thuc tnh ch xut hin v phi cc PTH.
D kha =
L = U (N D)
L gm cc thuc tnh c th thuc kha hoc
khng thuc kha.
214
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)
Thut ton tm tt c cc kha.
I: R(U,F) O: Cc kha ca R
Phng php:
Tnh N = U - U
R
Nu N
F
+
= U, th N l kha duy nht ca R, gii thut dng.
Tnh D = U
R
U
L
v L = U (N D)
Vi mi L
i
L,: th vi tng L
i
, cc L
i
c t phn t lm trc.
X = N L
i
, nu X
F
+
= U th X l mt kha ca R.

Lu : nu X = N L
i
l kha th khng cn th vi
cc L
j
L m L
i
L
j
215
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)

V d 1: Cho R(U,F) U = ABCDEG


F = {A BC, BD, AD E, CDA}
a) Tm mt kha ca R v xt xem kha c duy
nht khng.
Ta c U
R
= ABCDE, U
L
= ABCD
N = U \ U
R
= G v D = U
R
- U
L
= E
L = U (N D) = ABCD
Ta c (GA)
+
= U do K
1
= GA l mt kha.
Ngoi ra, N
+
U do K
1
= AG khng phi l kha duy nht.
b) Tm thm kha khc
Ta thy (CDG)
+
= U nn K
2
= CDG l mt kha khc ca R.
(GBC)
+
= U nn K
3
= GBC l kha
216
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
KHA
- Cc thut ton tm kha (tt)
V d 2: U = ABCD,
F = {AB, ABC, ACD}
Tm tt c cc kha.
U
R
= BCD
N = U U
R
= A
N
+
= U K = A l kha duy nht ca lc quan h.
V d 3:
R(U,F) U = ABCDEG
F = { AEC CGABDG
GAE }
217
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Bi tp

Cho lc quan h sau:

R(U,F) vi U = ABCDEGHIJLM
F = { MABC ABCH ABCEH
MBCDG DGHL}
a) Tnh bao ng X = M
b) MDG c c suy dn t F hay khng?
c) Tm tt c cc kha ca lc quan h
218
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng V

L thuyt thit k CSDL


Ph thuc hm
nh ngha
Pth c suy dn lgic t F
H tin cho pth
Bao ng ca tp thuc tnh

Kha
nh ngha
Cc thut ton tm kha

Ph ti thiu (cc tiu) ca tp pth


Khi nim pth tng ng
Tp pth ti thiu
Thut ton tm ph ti thiu

Bi tp
219
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ph ti thiu ca tp pth
- Ph thuc hm tng ng
Cho LQH R(A
1
A
2
A
n
), cho hai tp FD F, G,
Tp FD F ph tp G nu nh F
+
cha G
K hiu F ph G F
+
G

Cc FD trong G u c th suy ra c nh cc FD trong


F
F tng ng vi G nu F ph G v G ph F

K hiu F tng ng G F
+
G & G
+
F

kim tra F v G c tng ng vi nhau khng, xt xem


mi FD XY F c thuc G
+
hay khng v ngc li.

220
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ph ti thiu ca tp pth
- Ph thuc hm tng ng (tt)

B :

Vi mi tp FD F u tm c mt tp cc FD G
tng ng vi F, m v phi cc ph thuc hm
trong G bao gm khng qu mt thuc tnh.

Nhn xt: T b trn trong qu trnh thit k d


liu, ta c th gi s v phi cc FD trong F ch bao
gm mt thuc tnh.
221
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Tp ph thuc hm ti thiu

Khi nim ph thuc y


Vi XY F
+
, ta ni Y ph thuc y vo X nu vi
mi X X th X Y F
+

nh ngha tp ph ti thiu
Tp F c gi l ph ti thiu nu tha:
V phi ca tt c cc pth trong F u ch c mt thuc tnh
Mi ph thuc hm XA trong F u quan trng (*)
Ngha l: Vi mi XA F, F v F \ {XA} khng tng
ng.
Mi thuc tnh v tri ca mi pth trong F u quan trng
(*) (Mi thuc tnh v phi ph thuc y vo v tri)
Ngha l: Vi mi XA F, B X
F v (F \ {XA}) U ({ X \ BA} ) khng tng ng
222
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Thut ton tm ph ti thiu

I: Tp pth F, O: ph ti thiu ca F

Phng php:

(1) Phn r v phi tt c cc ph thuc hm v gi G l


tp pth thu c.

(2) Loi b cc pth d tha trong G


Duyt ln lt cc pth trong G, theo mt th t no
Vi mi XA G ta t H = G\ {XA}
Nu XA H
+
, tc l A X
H
+
(bao ng ca X trn H) th thay G
bng H

(3) Loi b thuc tnh d tha v tri cc pth trong G


Duyt ln lt cc pth ca G
Vi mi XAG, ln lt xt cc thuc tnh ca X. Vi B X, xt
pth f:X \ {B}A nu f G
+
tc A (X\{B})
+
, ta thay pth XA bng f
v t G = G \ {XA} U (X \ {B}A)
223
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Thut ton tm ph ti thiu (tt)

V d: Tm ph ti thiu ca cc tp FD sau:
a) R(U,F), F = { ABC CAB}
b) R(U,F), G = { ABC ACDB CGBD
CA DEG CEAG
BCD BEC }
224
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
ngha ca ph thuc hm v ph ti thiu

Ph thuc hm:

Trong cc quan h hp l, c mt s d tha no .


Nhng d tha c th c th hin bng nhng
ph thuc nu mt quan h r c khng nh l
hp l (tha mt s ph thuc no ) th t mt s
thng tin v cc gi tr hin c ca r, c th suy ra
c thng tin khc v gi tr hin c ca n.

Ph ti tiu

Trn mt tp ph thuc hm bao gi ta cng mong


mun tm ra mt tp rng buc t iu kin nht
nhng khng b st i i hi ca thc tin.
225
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Bi tp chng V
1. Cho lc quan h R(U,F), U = ABCDEG
F = { BEC CDAB ACBD
BCAE CAD}
a) Tnh (AC)
+
b) Chng t BADE
c) Tm tt c cc kha ca lqh trn
d) Tm ph ti thiu ca tp pth trn
2. Cho lc quan h R(U,F), U = ABCDEG
F = {ABC CA BCDDEGCGBD
ACDB CDAG}
a) Tnh (CD)
+
b) Tm tt c cc kha ca lc quan h trn
c) Tm ph ti thiu ca tp ph thuc hm F
226
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Bi tp chng V (tt)
3. Cho lc quan h R(U,F), U = ABCDEG
F = { ACD ABDC DA
DEG DGBC CDB
CED DEAG}
a) Tnh (AD)
+
b) Tm ph ti thiu ca lqh trn
c) Tm mt kha ca lqh trn
d) Tm tt c cc kha ca lqh trn
Chng VI
CHUN HA C S D LIU
CHUN HA C S D LIU
Email: khanhltn@gmail.com
228
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng VI

Ta i sao

Chun ha d liu

Ca c dang chu n
Da ng chu n 1 (1NF)
Da ng chu n 2 (2NF)
Da ng chu n 3 (3NF)

Da ng chu n Boyce codd (BCNF)

Ca c bc chu n ho a lc quan h

Phn ra lc quan h
Ki m tra phn ra ba o toan thng tin
Ki m tra phn ra ba o toan phu thu c ham
Phn ra 3NF

Phn ra BCNF

T ng k t v chu n ho a CSDL

Ba i tp chng VI
229
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ti sao?
CungCapSP(maNCC, tenNCC, diaChi, sanPham, gia)
maNCC tenNCC diaChi sanPham gia
S01 Sanyo Tokyo, Nht Bn T lnh 250
S01 Sanyo Tokyo, Nht Bn My git 270
S01 Sanyo Tokyo, Nht Bn My lnh 200
S02 Sharp Hiroshima, Nht Bn Tivi 140
S03 Samsung Hng Kng, i Loan LCD 200
S03 Samsung Hng Kng, i Loan Tivi 120
M01 Maytag New York, M T lnh 260

Trng lp thng tin lm tng chi ph lu tr thng tin v chi ph kim tra RBTV.

Cch gii quyt: tch thnh hai lc nh sau:


CungCap(maNCC, sanPham, gia) v NhaCC(maNCC, tenNCC, diaChi) quan h tng ng:
230
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Kha chnh l g?
{maNV, tenKH}
S bt thng bng ny?

Thm vo khng th thm vo 1 nhn vin mi m khng tham gia lp no

Xo i nu xo b nhn vin 140, ta s mt thng tin v lp Lut thu

Hiu chnh tng lng cho nhn vin 100, i hi phi cp nht 2 hng
maNV tenNV donVi luong tenKH ngayKTKH
100 Nguyn Vn An P. Tip th 480 Anh vn 31/12/2009
100 Nguyn Vn An P. Tip th 480 NC th trng 10/03/2010
140 Trn Th M P. K ton 550 Lut thu 15/04/2010
110 L Vn Minh P. H thng thng tin 500 Anh vn 31/12/2009
110 L Vn Minh P. H thng thng tin 500 C++ 31/01/2010
190 Trn Vn Ban P. Ti chnh 520
150 H Minh Nht P. Tip th 450 Anh vn 31/12/2009
150 H Minh Nht P. Tip th 450 Java 10/01/2010
Ti sao?
231
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

S trng lp thng tin l nguyn nhn lm cho


CSDL c cht lng km.

Cn a ra cc tiu chun c th nh gi
cht lng thit k ca mt lc CSDL cng
nh cn c phng php lm cho mt lc
CSDL tr nn tt hn.

Ti sao?
232
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Chun ha d liu

L mt cng c c bn :

kim tra v ci tin mt thit k CSDL lun l, tha


mn cc rng buc ton vn gip trnh s trng
lp d liu (data duplication) khng cn thit.

L qu trnh phn r cc quan h khng bnh


thng (anomaly) thnh cc quan h c cu trc
tt (well-structured) nh hn

Quan h c cu trc tt

C s d tha d liu ti thiu

Cho php ngi dng thm vo, xo i v cp nht cc


hng (row) m khng gy ra s mu thun d liu no
233
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Chun ha d liu (tt)

Mc tiu:

Gim d tha d liu

Trnh s d thng
D thng khi thm vo (Insertion anomaly) thm cc hng
mi i hi ngi dng to ra cc d liu trng lp
D thng khi xo (Deletion anomaly) xo cc hng c
gy ra s mt d liu cn thit cho cc hng khc
D thng khi hiu chnh (Modification anomaly) thay i
d liu mt hng i hi thay i d liu ca cc hng
khc v trng lp

chun ha d liu da vo cc dng chun


234
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Chun ha d liu (tt)

C cc dng chun sau:

Dng chun 1 (First Normal Form) 1NF

Dng chun 2 (Second Normal Form) 2NF

Dng chun 3 (Third Normal Form) 3NF

Dng chun Boyce codd (Boyce codd Normal Form)


BCNF
1. L g?
2. Cch kim tra?
3. Cch chun ha?
235
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF)

Khi nim thuc tnh n (thuc tnh nguyn t):


Mt thuc tnh A ca R l mt thuc tnh n nu n khng phi
l s tch hp ca nhiu thuc tnh khc.
Ngc li, nu ngi s dng c th truy xut n tng phn
ca thuc tnh A th A gl l thuc tnh kp (thuc tnh khng
nguyn t).

V d: LQH Chuyen_Mon (MaGV, Mon) v quan h


r
chuyen_Mon
nh sau:
MaGV Mon
GV01 Pascal, CTDL, TRR
GV02 CSDL
GV03 CSDl, CTDL

LQH VatTu(maVT, tenVT, dvTinh) trong tenVT bao gm


c tn ca vt t v quy cch tnh ca n nh vy trong
trng hp ny tenVT l thuc tnh kp.
Mon l thuc tnh kp
236
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF) (tt)
nh ngha 1NF:
Mt lc quan h gl dng chun 1 (1NF) nu
mi thuc tnh ca R u l thuc tnh n.
Mt lc CSDL gl dng chun 1 nu mi lc
quan h con R
i
ca n u dng chun 1.

Cch gi:
Lc quan h dng chun 1 (1NF) hay cn c
gi l lc quan h 1NF.
Lc quan h 1NF cn c gi l lc quan
h chun ha.
Lc quan h khng dng chun 1 gl lc
quan h khng chun hay phi chun.
237
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF) (tt)

Kim tra xem mt lc qh c dng


chun 1 khng?
Kim tra xem cc thuc tnh ca lc qh c phi
l thuc tnh n ko?

a lc qh v dng chun 1:
Tch thuc tnh kp thnh cc thuc tnh n (tch
dc) hoc tch thnh cc dng (tch ngang)
238
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF) (tt)

V d:

LQH VatTu(maVT, tenVT, dvTinh) c chuyn


thnh: VatTu(maVT, tenVT, quyCach, dvTinh)
quan h T
Chuyen_Mon
trn khng dng chun 1 v thuc
tnh Mon l thuc tnh kp tch thnh cc dng
loi b thuc tnh kp
maGV Mon
Gv01 Pasc
Gv01 CTDL
Gv01 TRR
GV02 CSDL
GV03 CSDL
GV03 CTDL
maVT tenVT quyCach dvTinh
239
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF) (tt)

V d:

Cho lqh CungCap(maNCC, tenNCC, diaChi, sanPham) trong


thuc tnh sanPham bao gm tn sn phm v gi. Gi s ta
c quan h r
CungCap
sau:
maNCC tenNCC diaChi sanPham
1 Hi H H Ni Ko mm 100, Ko cng 150, Bnh 200
2 Kinh H Ch Minh Ko 120, Bnh 150
maNCC tenNCC diaChi tenSP gia
Phi
chun
240
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 1 (1NF) (tt)

V d:

Cho lqh CungCap(maNCC, tenNCC, diaChi, sanPham) trong


thuc tnh sanPham bao gm tn sn phm v gi. Gi s ta
c quan h r
CungCap
sau:
maNCC tenNCC diaChi sanPham
1 Hi H H Ni Ko mm 100, Ko cng 150, Bnh 200
2 Kinh H Ch Minh Ko 120, Bnh 150
maNCC tenNCC diaChi tenSP gia
1 Hi H H Ni Ko mm 100
1 Hi H H Ni Ko cng 150
1 Hi H H Ni Bnh 200
2 Kinh H Ch Minh Ko 120
2 Kinh H Ch Minh Bnh 150
Phi
chun
chun
ha
Thng
tin
trng
lp!!!
241
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 2 (2NF)

K.n pth y v pth ring phn

Ph thuc hm y (Full FD)


Pth y l pth XY m nu loi b bt k thuc
tnh A no trong X th (X A) Y

Ph thuc hm ring phn (partial FD)


Pth ring phn l pth m khng phi l pth y .
242
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 2 (2NF) (tt)

K.n thuc tnh kha, thuc tnh khng kha

Thuc tnh kha (thuc tnh nguyn t):


l mt thuc tnh ca lc quan h R m l thnh phn
ca t nht mt kha d tuyn trong R.

Thuc tnh khng kha (thuc tnh khng nguyn t):


l thuc tnh khng phi l thuc tnh nguyn t (khng tham
gia vo bt k mt kha no ca LQH)
- Vd: R(U,F), U = ABCDE, K
1
= AB, K
2
= CB
- Tp thuc tnh kha l: ABC
- Tp thuc tnh khng kha l: DE
243
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 2 (2NF) (tt)

nh ngha dng chun 2 (2NF):

LQH R gl dng chun 2 nu:


R t 1NF
Mi thuc tnh khng kha A trong R ph thuc hm y
vo kha ca R
244
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:

LQH Dat_hang(soDH, maHH, ngayDH, maKH, soluongdat) vi


quan h nh sau:
soDH maHH soluongdat ngayDH maKH
DH001 PCDX48 3 05/01/06 CTCN01
DH002 HDQT05 5 05/01/06 CTVN01
DH002 HDQT10 2 05/01/06 CTCN01
DH001 KBMS01 5 05/01/06 CTCN01
DH004 PCDX48 5 15/01/07 CTHV01

FD: soDH ngayDH, maKH


soDH, maHH soluongdat, ngayDH, maKH
-
LQH trn khng dng chun 2 v thuc tnh khng kha
ngayDH, maKH khng ph thuc y vo kha
K = {soDH, maHH} (ch ph thuc vo soDH)
Cc dng chun Dng chun 2 (2NF) (tt)
245
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 2 (2NF) (tt)

LQH Ctiet_HD(soHD, maHH, giaban, soluongban)

FD: soHD, maHH giaban, soluongban

Kha: K = {SoHD, maHH}

Hai thuc tnh khng kha giaban v soluongban u


ph thuc y vo kha nn LQH ny t 2NF.

Nhn xt:

Nu LQH R ch c mt kha K v card(K)=1 th R dng


chun 2

Mt LQH dng chun 2 vn c th cha ng s trng


lp thng tin.
246
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

nh ngha dng chun 2 (2NF):

LQH R gl dng chun 2 nu:

R t 1NF

Mi thuc tnh khng kha A trong R ph thuc hm y


vo kha ca R

nh ngha khc:

Lc quan h t 2NF nu vi mi FD XA ng
trong R th:

(1) A X hoc

(2) A l thuc tnh kha trong R hoc

(3) X khng l tp con ca mt kha no, hoc

(4) X l siu kha ca R


Cc dng chun Dng chun 2 (2NF) (tt)
247
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Cch kim tra lc quan h dng chun 2:

Tm tt c cc kha ca lc quan h

Xc nh tp thuc tnh kha, tp thuc tnh khng


kha

Kim tra ln lt tng pth: XA trong tp F


Nu c pth XA no m:
X l tp con ca kha v
A l thuc tnh khng kha
th kt lun lc ny khng dng chun 2
Ngc li, nu tt c cc pth XA trong F c:

v tri khng phi l tp con ca kha hoc

v phi l thuc tnh kha


th kt lun lc dng chun 2
Cc dng chun Dng chun 2 (2NF)
- Kim tra lqh t 2NF
248
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:

Cho R(ABCD)

F = {ABC, AD, BDC}


Hi: Lc R c dng chun 2 khng?

Cch lm:

Kha l: K = ABD

Tp thuc tnh kha l {A, B, D}

Tp thuc tnh khng kha l {C}

Xt fd: ABC

AB l tp con ca kha, C l thuc tnh khng kha


r rng thuc tnh khng kha C ph thuc khng y
vo kha R khng t dng chun 2 (khng l
2NF)
Cc dng chun Dng chun 2 (2NF)
- Kim tra lqh t 2NF (tt)
249
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:
Cho R(CSZ) F = {CSZ, ZC}
Hi: Lc R c dng chun 2 khng?

Cch lm:
Kha l: K1 = CS, K2 = SZ
Tp thuc tnh kha: CSZ
Khng c thuc tnh khng kha
khng th no c trng hp thuc tnh khng kha ph thuc
khng y vo kha lc R dng chun 2.

Nhn xt:

Nu tt c cc thuc tnh ca lc quan h


u l thuc tnh kha th lc l 2NF.
Cc dng chun Dng chun 2 (2NF)
- Kim tra lqh t 2NF (tt)
250
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d:
Cho R(ABCD)
F = {ABC, BD}
Hi: Lc R c dng chun 2 khng?
Cch lm:
Lc quan h trn c mt kha duy nht l: K = A

Lc R l 2NF v khng tn ti tp con thc s ca


kha nn khng tn ti ph thuc hm khng y ca
thuc tnh khng kha vo kha.
Nhn xt:
Nu tt c cc kha ca lc quan h ch c mt
thuc tnh th lc quan h l 2NF
Cc dng chun Dng chun 2 (2NF)
- Kim tra lqh t 2NF (tt)
251
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d: cho lqh sau:


CungCap(maNCC, tenNCC, diaChi, sanPham, gia)
F ={maNCCtenNCC,diaChi
maNCC, sanPham gia}

Kha: K = {maNCC, sanPham}

Tp thuc tnh khng kha: {tenNCC, diaChi, gia}

Ta thy vi pth: maNCC tenNCC, diaChi


tenNCC, diaChi l thuc tnh khng kha, ph thuc vo
maNCC l tp con thc s ca kha K = {maNCC, sanPham}
Lc CungCap khng dng chun 2
a v dng chun 2
Cc dng chun Dng chun 2 (2NF)
- Kim tra lqh t 2NF (tt)
252
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Cch lm:

Xc nh ph thuc hm vi phm dng chun 2

Nhm cc thuc tnh c mt trong ph thuc hm ,


b sung thm cc thuc tnh kha (nu cn) c mt
lc quan h.

Cc thuc tnh v cc ph thuc hm cn li nhm


vo trong mt quan h.

Lp li qu trnh vi lc cha t 2NF cho n


khi tt c cc lc quan h con (tch ra t lc
quan h ban u) u l 2NF.
Cc dng chun Dng chun 2 (2NF)
- Chun ha lc v 2NF
253
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d: Cho lqh sau:


CungCap(maNCC, sanPham, tenNCC, diaChi, gia)
F = {maNCCtenNCC,diaChi
maNCC, sanPham gia}

Phn r lc CungCap thnh 2 lc :

NhaCungCap(maNCC, tenNCC, diaChi)

FD: {maNCC tenNCC, diaChi}

Kha: maNCC

CungCap(maNCC, sanPham, gia)

FD: {maNCC, sanPham gia}

Kha: maNCC, sanPham


Ph thuc hm
vi phm
Cc dng chun Dng chun 2 (2NF)
- Chun ha lc v 2NF (tt)
254
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 3 (3NF)

Ph thuc hm bc cu

Cho lc quan h R(U,F) A l mt thuc tnh ca


U. A gl ph thuc hm bc cu vo X trn R nu tn
ti mt tp con Y ca U sao cho:

XY, YA nhng Y X vi A A X U Y

nh ngha dng chun 3 (3NF):

LQH R gl dng chun 3 nu:

R dng chun 2

Mi thuc tnh khng kha ca R u khng ph thuc bc


cu vo kha chnh
X
Y
A X U Y
255
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:

R = (Cust_ID, Name, Salesperson, Region)


F = { Cust_ID {Name, Salesperson, Region},
Salesperson Region }

Kha K = Cust_ID

Ph thuc hm bc cu:
Cust_ID Salesperson Region
Do lc quan h khng t dng chun 3.
Cc dng chun Dng chun 3 (3NF) (tt)
256
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

nh ngha dng chun 3 (3NF):

LQH R gl dng chun 3 nu:

R dng chun 2

Mi thuc tnh khng kha ca R u khng ph thuc bc


cu vo kha chnh

N khc:

R l 3NF nu vi mi pth X A trong F, AX th


X l siu kha hoc
A l thuc tnh kha (nguyn t).
Cc dng chun Dng chun 3 (3NF) (tt)
257
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Cch lm:

Xc nh kha ca lc quan h

Kim tra lqh l 2NF cha, nu l 2NF, duyt


ln lt tng ph thuc hm trong F, nu tn ti mt
ph thuc hm X A m:
X khng l kha v
A l thuc tnh khng kha
kt lun vi phm dng chun 3

Nu khng c ph thuc hm no vi phm dng


chun 3 th R l t dng chun 3.
Cc dng chun Dng chun 3 (3NF)
- Kim tra lqh t 3NF
258
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d:

R = (C,S,Z), F = {CS Z, Z C}

Kha d tuyn: CS v SZ

Tt c cc thuc tnh u l thuc tnh kha


R l 3NF

V d:

R = (A,S,I,P), F = {SI P, S A},

Kha: SI

S A nhng S l tp con ca kha v A l thuc tnh


khng kha R khng l 2NF R khng l 3NF
Cc dng chun Dng chun 3 (3NF)
- Kim tra lqh t 3NF (tt)
259
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Nhn xt:

T nh ngha ta c nhn xt rng, nu R l 3NF th


n l 2NF, trong dng chun 2NF ta ch cm cc
thuc tnh khng kha ph thuc vo tp con thc s
ca kha (l tp c bao ng khc U),

trong 3NF, ta cm cc thuc tnh khng kha ph


thuc vo mi tp c bao ng khc U (trong c
tp con thc s ca kha).
Cc dng chun Dng chun 3 (3NF) (tt)
260
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Cch lm:

Xc nh ph thuc hm vi phm dng chun 3 (3NF)

Tch cc nhm thuc tnh c ph hm bc cu vo


kha thnh mt quan h. Kha ca quan h mi ny
chnh l thuc tnh m chng c ph thuc hm.

Cc thuc tnh v cc ph thuc hm cn li nhm vo


trong mt quan h.

Lp li qu trnh vi lc cha t 3NF cho n khi


tt c cc lc quan h con (tch ra t lc
quan h ban u) u l 3NF.
Cc dng chun Dng chun 3 (3NF)
- Chun ha lc v 3NF
261
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
CustID Salesperson Region
Pth b c cu khng at 3NF
CustIDName
CustIDSalesperson
CustIDRegion
SalespersonRegion
(a) Quan h SALES vi cc d liu mu
(b) Quan h SALES vi ph thuc hm bc cu
Cc dng chun Dng chun 3 (3NF)
- Chun ha lc v 3NF (tt)
262
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun 3 (3NF) - Cch chun ha lc v 3NF (tt)
CustID Name
CustID Salesperson
(c) Phn r quan h SALES
(d) Quan h dng chun 3
Khng cn ph
thuc hm bc
cu na
C hai quan h
by gi l
dng chun 3
263
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

V d: Xt li lc csdl KeHoach

Thi(ngThi, gioThi, phThi, maMH, gvDay)

FD: { maMH gvDay


ngThi, gioThi, phThi maMH }

Kha: {ngThi, gioThi, phThi }

CoiThi (giamThi, ngThi, gioThi, phThi)


FD: {giamThi ngThi, gioThi, phThi}
Kha: giamThi
3N
F
Vi
phm
3NF
Cc dng chun Dng chun 3 (3NF)
- Chun ha lc v 3NF (tt)
264
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Tm li
Dng chun Thuc tnh
khng kha
ph thuc
vo tp con
ca kha
Thuc tnh
khng kha
ph thuc
vo tp khc
tp con ca
kha
Thuc tnh
kha ph
thuc tp
khc
Thuc tnh
kha v
thuc tnh
khng kha
ph thuc
vo kha
2NF X V V V
3NF X X V V
265
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun Boyce codd
(BCNF)

N:

R l dng chun Boyce-Codd nu vi mi X A, AX th


X l siu kha.

Kim tra lc l BCNF

Duyt qua ln lt tng ph thuc hm X A trong F

Nu tn ti mt ph thuc hm m X khng phi l


siu kha th kt lun lc khng l BCNF

Ngc li, nu mi fd XA trong F u c v tri l


siu kha th kt lun lc l BCNF
266
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun Boyce codd
Kim tra lc l BCNF

V d:

R = (C,S,Z), F = {CS Z, Z C}
Kha d tuyn: CS v SZ => Dng chun 3
C Z C, nhng Z khng l siu kha
=> Khng phi BCNF

nh l: Nu lc quan h R vi tp ph thuc hm F t
BCNF th n cng t 3NF.

Trong 3NF ch cm cc thuc tnh khng kha ph thuc


vo tp c bao ng khc U, cn trong BCNF, ta cm tt
c cc thuc tnh ph thuc vo tp c bao ng khc U.
267
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Dng chun Boyce codd (tt)

Mnh :

Mi lc quan h gm hai thuc tnh th dng


BCNF

Lc R(U,F) vi tp F ch gm mt ph thuc hm
th dng BCNF

Nu R(U,F) khng t BCNF th tn ti hai thuc tnh


A, B sao cho:
R \ (A B) A
268
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc dng chun Tm li
Dng chun Thuc tnh
khng kha
ph thuc
vo tp con
ca kha
Thuc tnh
khng kha
ph thuc
vo tp khc
tp con ca
kha
Thuc tnh
kha ph
thuc tp
khc
Thuc tnh
kha v
thuc tnh
khng kha
ph thuc
vo kha
2NF X V V V
3NF X X V V
BCNF X X X V
The Key, The Whole Key, Nothing
but the Key, so help me Codd!!!
269
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc bc chun ha
LQH ban u
LQH t 1NF
LQH t 2NF
LQH t 3NF
Tch
nhm cc
thuc tnh
kp
Tch cc
PTH
ring
phn
Tch cc
PTH
bc cu
Tch cc PTH
v tri
khng l siu
kha
LQH t BCNF
270
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

Phn r (decomposition):

mt lc quan h R(U) l thay R bng tp cc


lc con R
1
(U
1
), R
2
(U
2
), ..., R
k
(U
k
) ca R sao cho
U
1
U
2
... U
k
= U.

Phn r bo ton ni dung:

Php kt t nhin cc phn r cho tr li R

Phn r bo ton ph thuc hm:


Gi F
i
= {X Y ng trong F, XY U
i
} l tp ph
thuc hm ca R
i
F
i
tng ng F
Phn r cc lc quan h
271
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
I: R(U,F), mt phn r ca R, p = (R1, R2, ,Rn)
O: Cho cu tr li phn r c mt thng tin hay khng?
Phng php:
(1). Lp bng ban u l ma trn m hng (ng vi m lc
con R
i
) v n ct (ng vi n thuc tnh). Phn t (i,j)
ca ma trn c xc nh theo cng thc:
(i,j) = a
j
nu A
j
Ri trong , a
j
, b
ij
Dom(A
j
)
(2). Bin i bng
Vi mi FD nu pht hin trn bng c hai hng ging nhau trn X v
khc nhau trn Y lm cho hai hng cng ging nhau trn Y. (u
tin lm bng k hiu l a
j
).
Tip tc p dng cc ph thuc hm cho bng (k c vic lp li cc
ph thuc hm p dng) cho n khi khng cn p dng c
na.
Mc ch ca vic bin i bng l thu c bng cui cng,
xem nh mt quan h, tha tp F.

=
i j ij
i j i
R A if b
R A f i a
j i ) , (
Phn r cc lc quan h
- Kim tra phn r bo ton thng tin
272
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

(3) Xem bng kt qu:


Nu trong bng cui cng c cha hng gm ton k hiu a
(tc l hng (a1, a2 , an)), ta kt lun p = (R1,R2,Rm) l
phn tch khng mt thng tin (tc cho cu tr li ng)
Trng hp ngc li, p l phn tch mt thng tin.
Nhn xt: thut ton dng khi xut hin mt hng ton a
j

V d:
Cho R(U,F)
R = BOISQD
F = {SD IB ISQ BO}
Phn r p = (SD,IB,ISQ,BO) c kt ni mt thng tin khng?
Phn r cc lc quan h
- Kim tra phn r bo ton thng tin (tt)
273
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
B O I S Q D
SD b11 b12 b13 a4 b15 a6
IB a1 b22 a3 b24 b25 b26
ISQ b31 b32 a3 a4 a5 b36
BO a1 a2 b43 b44 b45 b46
B O I S Q D
SD b11 b12 b13 a4 b15 a6
IB a1 b22 a3 b24 b25 b26
ISQ b31 b32 a3 a4 a5 a6
BO a1 a2 b43 b44 b45 b46
Bng ban
u
SD
IB
B O I S Q D
SD b11 b12 b13 a4 b15 a6
IB a1 b22 a3 b24 b25 b26
ISQ a1 b32 a3 a4 a5 a6
BO a1 a2 b43 b44 b45 b46
B O I S Q D
SD b11 b12 b13 a4 b15 a6
IB a1 a2 a3 b24 b25 b26
ISQ a1 a2 a3 a4 a5 a6
BO a1 a2 b43 b44 b45 b46
BO
Dng ton a
php tch
khng mt
thng tin
274
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT

nh l: (Delobel)

Cho R(U,F) l mt lc quan h, khi p = (R1, R2) l


phn tch c kt ni khng tn tht khi v ch khi:
(R1 R2) (R1 R2) hay (R1 R2) (R2 R1)
Ni cch khc:

Vi R(U,F) l mt lc quan h, gi s XY F
+
khi
p = (XY, X(U\Y)) l phn tch c kt ni khng tn tht
vi F.
Dng pht biu ny ca nh l s l c s cho vic kim tra php
tch BCNF nu ra phn sau.
Phn r cc lc quan h
- Kim tra phn r bo ton thng tin (tt)
275
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
I: mt phn r p = (R
1
,..,R
k
) v tp F

O: khng nh xem p c bo ton F hay khng?

Phng php:

t G = .

Mc ch ca ta l: kim tra xem G c tng ng vi F


hay khng.

xem G c tng ng vi F hay khng, ta phi xt


mi ph thuc XY trong F v xc nh xem X
+
, c tnh
ng vi G, c cha Y hay khng. Th thut tnh X
+
m
khng cn c G l xt lp i lp li kt qu tnh bao ng X
+

ng vi cc hnh chiu ca F trn cc R
i
.

=
) (
1
F R
i
k
i

Phn r cc lc quan h
- Kim tra phn r bo ton ph thuc hm
276
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Kim tra phn r bo ton ph thuc hm (tt)

V d: Cho lqh R(ABCDE) F = {E AC, AB, CDA,


ABC, EB}
Cho phn ra sau cu a R, p = (ACE, ABCD)
Ho i phn ra p co ba o toa n phu thu c ha m khng?

Ca ch lam:

t R1(ACE), khi o F1 = {AAC}


R2(ABCD), khi o F2 = {AB, CDA, ABC}
t G = F1 U F2 = {E AC, AB, CDA, ABC}
D thy G F do o F phu G (1)
Ngoa i ra, tt ca cac pth trong F u thuc G tr pth EB. Ma ta
co (E
G
)
+
B, do o G E B, do o G phu F (2)
(1) va (2) F va G tng ng
Phn ra ba o toan phu thu c ha m.
277
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h (tt)

Ch : Hai tnh cht kt ni khng /tn tht v bo ton tp F


l c lp vi nhau. C th cho v d v phn tch c kt ni
khng tn tht nhng khng bo ton F v ngc li.

V d: R(CSZ), F = {CSZ, ZC}, khi phn tch p =


(SZ,CZ) c kt ni khng tn tht v
(SZ CZ) (CZ-SZ) (ngha l ZC)
Tuy nhin, chiu ca F trn SZ ch cho nhng ph thuc
tm thng khng bo ton tp F.

Cng vy, c nhng phn r bo ton F nhng khng c


tnh cht ni khng mt thng tin. V d vi F = {AB,
CD}, U=ABCD v p = (AB,CD)
278
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh 3NF

Gii thut:

Nhp: R v F l ph ti thiu
1. To ra R
1
vi tp cc thuc tnh khng c trong v
tri hay v phi ca bt k ph thuc hm no.

2. Nu c ph thuc hm no trong F cha ton b


cc thuc tnh ca R th to ra R.

3. Ngc li:
To ra lc XA cho mi X A

nh gi:

Phn r ny bo ton ni dung v ph thuc hm


279
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh 3NF V d

Lc vi F l ph ti thiu

R = CTHRSG, F = {C T, HR C, HT R, CS G,
HS R}

Kt xut:
CT F
1
= {CT}
CHR F
2
= {HRC}
THR F
3
= {HTR}
CSG F
4
= {CSG}
HRS F
5
= {HSR}
280
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh BCNF
Nhc li nh l Delobel:
Vi R(U,F) l mt lc quan h, gi s XY F
+
khi p = (XY,
X(U\Y)) l phn tch c kt ni khng tn tht vi F.
Gii thut:
1. Z = R
2. repeat until Z khng th phn r c na
//phn r Z thnh Z A v XA vi X A
2.1. if Z khng cha A v B sao cho (Z AB) A
2.1.1. Z khng phn r c na
2.2. else
2.2.1. Y = Z
2.2.2. while Y cha A v B sao cho (Y-AB) A
2.2.1. Y = Y - B
2.3. Y c dng XA l mt phn r
2.4. Z = Z A
Z l mt phn r
281
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh BCNF V d

Lc :
R = CTHRSG, F = {CT,HRC,HTR,CSG,HSR}

Phn r:

Ln 1
1. Xt cp CT
Z-CT = HRSG C, Y=Z=CTHRSG
Y = Y B =CHRSG
2. Xt cp RC
Y-RC=HSG R
Y = Y-B = HRSG
3. Xt cp RG
Y-RG=HS R
Y = Y-B = HRS
4. Phn r thnh Z-A v XA vi A=R: CTHSG v HSR
282
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh BCNF V d (tt)

Ln 2:
Z=CTHSG
1. Xt cp TH
Z-B = CTSG T
Y = Y-B = CTSG
2. Xt cp TS
Z-B = CTG T
Y = Y-B = CTG
3. Xt cp TG
Z-B = CT T
Y = Y-B = CT
4. Phn r thnh Z-B v XA vi A=T: CHSG v CT
283
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn r cc lc quan h
- Phn r thnh BCNF V d (tt)

Ln 3:
Z=CHSG
1. Xt cp GH
Z-B = CSG G
Y = Y-B = CSG
2. Phn r thnh Z-B v XA vi A=G: CHS v CSG

Ln 4:

Z=CHS

CHS l mt phn r

Kt qu: CHS, CSG, CT, HSR

V d: bi tp 2d
284
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn ra kt ni khng tn tht v BCNF

Thut ton:

Vo: Lc quan h R v tp ph thuc hm F trn R

Ra: Php tch kt ni khng tn tht R vi cc lc


thnh phn thuc dng BCNF

Phng php: Xy dng php tch p qua cc bc lp


sao cho mi bc p lun l tch kt ni khng tn tht.

Ban u: p ch gm R, p = (R)

Vic lp li s kt thc khi p ch cha cc lc dng


chun BCNF. Trong trng hp ngc li ta s tm c
lc S = (U
S
, F
S
) trong p khng dng chun BCNF vi
ph thuc hm X A tha trn S vi X khng phi l siu
kha ca S v A X.
Thay th S bi hai lc vi tp thuc tnh tng ng l XA
v U
S
\ {A}. Quay tr li bc trn kim tra xem cn lc
no khng dng chun BCNF trong p hay khng.
285
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Phn ra kt ni khng tn tht v BCNF (tt)

V d:
Xt lc TKB (thi kha biu) gm tp U cc thuc tnh:
C(lp hc), T(ging vin), R (phng hc), S (sinh vin), H (gi
hc), G (im hc phn) cng vi tp F cc PTH sau:
F = {C T
HR C
HT R
CS G
HS R}
Kha l K = HS
Tim m t phn ra khng khng t n tht thng tin v BCNF cu a
lqh trn.
286
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Tng kt v chun ha CSDL

Mc tiu ca cc dng chun trn quan h l hn ch nhng


d tha trong d liu lu tr.

Nhng d tha d liu l do pht sinh t mi lin quan gia


cc mc d liu th hin qua cc PTH.

D tha d liu dn n nhng d thng khi thm, xa, cp


nht d liu.

Trong 2NF v 3NF vn cn d tha d liu

2NF: loi c s ph thuc ring phn vo kha i vi


thuc tnh khng nguyn t, vn cn tn ti ph thuc bc
cu vo kha.

3NF: Loi c s ph thuc bc cu vo kha i vi


thuc tnh khng nguyn t.
287
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Tng kt v chun ha CSDL (tt)

BCNF: Loi b mi d tha d liu m PTH c th


to ra.

t c dng chun cao, t d tha d liu mt


quan h thng c phn r thnh nhiu quan h
con.

Mt quan h lun c th c phn r thnh cc


quan h con tha 3NF va bo ton ni dung va
bo ton PTH.

Mt quan h lun c th c phn r thnh cc


quan h con t BCNF bo ton ni dung nhng c
th khng bo ton c tp PTH.
288
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Bai tp

1. Cho bit dang chu n cua ca c lqh sau:


a) Q(ABCDEG) F = {A BC, CDE, EG}
b) Q(ABCDEGH) F = {CAB, DE, BG}
c) Q(ABCDEGH) F = {ABC, DE, HG}
d) Q(ABCDEG) F = {ABC, CB, ABDE, GA}
e) Q(ABCDEGHI) F = {ACB, BIACD, ABCD
HI ACEBCG CGA}

2. Cho lqh Q(CDEGHK) va


F = {CKH, CD, EC, EG, CKE}
a) Chng minh EKDH
b) Ti m t t ca ca c kho a cua Q
c) Xa c inh da ng chu n cao nht cu a Q
d) Phn ra Q tha nh mt lqh at BCNF ho c 3NF, chi ra tp pth va
kho a cho mi l c con.
Chng VII
TI U HA CU HI
TI U HA CU HI
Email: khanhltn@gmail.com
290
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Ni dung chng VII

t v n

Cac chin l c ti u tng quat

Bi u thc tng ng

Vi du minh hoa

Bai tp
291
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
t vn

Ti u ha:

V mt khng gian:
ti u b nh s dng cho cu hi,
ti u vic s dng thit b ngoi vi phc v cho vic khai
thc d liu

Ti u ha thi gian:
gim thi gian thc hin cu hi, bao gm gim phc tp
ca cu hi, gim s b, s quan h, s cc nhn t trong
biu thc iu kin nhm gim thao tc thc hin.
292
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
t vn (tt)
Cho 2 lc quan h R(AB) v R(CD). Gi s ta c yu cu
sau:
a ra thuc tnh A ca cc b tha mn iu kin B = C
v D = 100.
Cu hi vit bng SQH nh sau:

A
(
(B=C) and

(D = 100)
(AB x CD)
Nu a php chn D = 100 vo bn trong php tch
cc, s c:

A
(
B=C
(AB x
D =100
(CD))
V sau chuyn php chn
B=C
ca tch cc thnh
php kt ni bng s c:

A
(AB <
B=C

D=100
(CD)
R rng, php tnh cui cng s thc hin nhanh hn
rt nhiu.
293
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
t vn (tt)

A
(AB <
B=C

D=100
(CD)
Trong php ton trn,
ch chn trn quan h S nhng b c gi tr D = 100 th s b ly
ra s t hn ton b s b ca c qh trn S.
S t b c chn ra mi em kt ni vi quan h trn R.
Php kt ni ny ch chn ra b no thuc R m c gi tr ti B =
vi b c gi tr ti C mi c ly ra.
nhanh hn l ly tch - cc ca R x S ri mi chn trong
kt qu nhng b c gi tr ti B = C.
V vy, vic t chc li cu hi nh trn l mt minh ha r
rng cho thy s ln cn truy nhp ti b nh th cp s gim
i nhiu.
>
Trnh t thc hin cc php tnh s ng mt vai tr
quan trng trong qu trnh t chc cu hi.
294
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Cc chin lc ti u tng qut

Thc hin php chn sm nht c th

T hp nhng php chn xc nh vi php tch


- cc thnh php kt ni.

T hp dy cc php tnh mt ngi nh php chn


hoc php chiu.

Tm cc biu thc con chung trong mt biu thc

X l cc tp trc.

nh gi trc khi thc hin tnh ton


295
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng

Nu quan nim quan h l mt tp cc b (k_b)


vi k c nh v khi hai quan h l tng ng
khi v ch khi chng c cng mt tp cc b.

Nu quan nim quan h l tp cc nh x t tp tn


thuc tnh vo tp tr, khi hai quan h l bng
nhau nu chng c cng tp nh x.

Mt s php chuyn dch i s thng thng:


296
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

Cc quy tc lin quan ti php kt ni v php


tch - cc

L1: Quy tc giao hon gia php kt ni v php tch


cc.
Nu E1 v E2 l hai biu thc quan h, F l iu kin trn
cc thuc tnh ca E1 v E2 th:
E1 <
F
E2 E2 <
F
E1
E1 * E2 E2 * E1
E1 x E2 E2 x E1
297
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

Cc quy tc lin quan ti php kt ni v php


tch - cc (tt)

L2: Quy tc kt hp ca php kt ni v php tch


cc
Nu E1, E2, E3 l cc biu thc quan h, F1, F2 l cc
iu kin th:
(E1 <
F1
E2) <
F2
E3 E1 <
F1
(E2 <
F2
E3)
(E1 * E2)*E3 E1 * (E2 * E3)
(E1 x E2) x E3 E1 x (E2 x E3)
298
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

Cc quy tc lin quan ti php chn v php


chiu

L3: Dy cc php chiu

A1A2A3An
(
B1B2..Bm
(E)) =
A1A2A3An
(E)
nu A
1
A
2
...A
n
B
1
B
2
...B
m

L4: Dy cc php chn

F1
(
F2
(E)) =
F1 F2
(E)
B i vi F1

F2 = F2

F1 nn phe p cho n co tinh giao hoan

F1
(
F2
(E)) =
F2
(
F1
(E))
299
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)
Cc quy tc lin quan ti php chn v php chiu
(tt)
L5: Giao hon php chn v php chiu

F
(
A1A2...An
(E)
A1A2...An
(
F
(E))
L6: Giao hon php chn v php tch cc
Nu tt c cc thuc tnh ca F l thuc tnh ca E
1

F
(E
1
x E
2
)
F
(E
1
)xE
2
H qua:
Nu F co dang F1

F2, trong o, F1 chi cha cac thu c tinh cua
E1 va F2 chi cha cac thuc tinh cua E2, s dung L1,L4,L6 va thu
c:
F
(E
1
x E
2
)
F1
(E
1
)x
F2
(E
2
)
Nu F1 chi cha cac thuc tinh cua E1, nhng F2 co cac thuc
ti nh cua E1 va E2, ta vn co:
F
(E
1
x E
2
)
F2
(
F1
(E
1
) x E
2
)
300
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

Cc quy tc lin quan ti php chn v php


chiu (tt)

L7: Giao hon php chn v mt php hp


Nu c biu thc E = E1 U E2 c th gi thit cc thuc tnh
ca E1 v E2 c cng tn nh ca E hoc t nht mi thuc
tnh ca E l ph hp vi mt thuc tnh duy nht ca E1 v
mt thuc tnh duy nht ca E2. Khi :

F
(E1 E2)
F
(E1)
F
(E2)
Nu tn cc thuc tnh ca E1 v/ hoc E2 khc vi tn
thuc tnh ca E th trong F v phi ca cng thc trn cn
thay i s dng tn cho ph hp.
301
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

L8: Giao hon php chn v mt php hiu tp


hp

F
(E1 E2)
F
(E1)
F
(E2)
Nh trong lut L7, nu tn cc thuc tnh ca E1 v E2 l
khc nhau th cn thay th cc thuc tnh trong F v phi
biu thc tng ng tng ng vi E1.
Ch rng, php chn
F
(E2) c th l khng cn thit.
Trong nhiu trng hp, vic thc hin php chn
F
(E2)
trc s c hiu qu hn l tnh ton trc tip vi E2 v kch
c quan h lc s b i rt nhiu.
302
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

Lu :

Cc quy tc nu trn ni chung l y php chn


xung trc php kt ni (L4,L5,L6) v php kt ni
thng thc hin lu nh php tch -cc.

Quy tc y php chiu xung trc php tch cc


hoc php hp cng tng t nh quy tc L6, L7.

Ch , ko c quy tc tng qut cho vic y php


chiu xung trc php hiu cc tp hp.
303
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

L9: Hoan vi phep cho n vi ni t nhin trng


hp c bit .
Nu F la mt iu kin chi cha cac thuc ti nh chung
cua E1 va E2 thi

F
(E1 < E2)
F
(E1) <
F
(E2)

L10: Hoan vi phep chiu vi tich -cac


Goi E1,E2 la 2 biu th c quan h. A1, ,An la danh
sach thu c ti nh, trong o B1,,Bm la ca c thuc tinh
cua E1 va cac thu c tinh con lai C1, ..,Ck la cua E2,
khi o:

A1A2An
(E1 x E2) =
B1B2Bn
(E1) x
C1C2Cn
(E2)
304
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Biu thc tng ng (tt)

L11: Giao hon mt php chiu vi mt php hp


A1...An(E1 E2) = A1...An(E1) A1...An(E2)

Nh trong L7, nu tn cc thuc tnh ca E1 v / hoc E2 l


khc vi cc thuc tnh trong E1 E2 cn thay A1...An bn
v phi bi cc tn ph hp.
305
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d minh ha

Xet m t csdl v th vin v i ca c quan h sau:


Sach(tensach, tacgia, tennxb, masach)
NXB(tennxb, diachi, thanhpho, manxb)
DocGia(tendg, diachi, madg)
Muon(madg, masach, ngay)

Cn thc hi n cu truy vn sau: Li t k cac sach a


c m n trowcs mot ngay 12/01/2009

Cu truy vn se la:

tensach
(
ngay<12/01/2009
(Sach * Muon * DocGia))

Ta co cy phn tich cu phap cua cu truy vn trn


nh sau:
306
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d minh ha (tt)
y ta co 2 phe p cho n:
Phep cho n Sach.masach =
Muon.masach and Muon.madg =
DocGia.madg
Phep cho n ngay<12/01/2009
Nguyn t c ti u hoa la c gng tach
phep chon va di chuyn xung cang su
ca ng tt.
Muon DocGia
Sach
x
x

Sach.masach=Muon.masach and
Muon.madg= DocGia.madg

ngay<12/01/2009

tensach

tensach, tacgia, tennxb, masach, tendg,


diachi, Muon,masach, ngay
307
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d minh ha (tt)
y ta co 2 phe p cho n:
Ta co th a phep chon

ngay<12/01/2009
xu ng di phep
chi u va hai phep cho n con
lai theo quy tc L4,L5 vi
thuc tinh ngay chi thu c
quan h Muon.
a phep chon Muon.madg
= DocGia.madg xung d i
trc phep tich -cac cua
Muon va DocGia. Ta co cy
sau:
Muon
DocGia
x

Muon.madg= DocGia.madg

Sach.masach = Muon.masach

tensach

ngay<12/01/2009
Sach
x
Cy phep cho n a ha thp va
phep chiu c t hp lai
308
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
V d minh ha (tt)

Giai oan cui cu ng la


bi n i cac phep chiu:

Ta du ng phe p chi u
chi cho n ra nhng
thu c ti nh c n thi t cho
phe p ti ch -cac. Ta co
cy cu i cu ng cu a qua
trinh t i u nh sau:
Sach
Muon
DocGia
x

Muon.madg= DocGia.madg

Sach.masach = Muon.masach

tensach

ngay<12/01/2009
x

Muon.masach,
Muon.madg

DocGia.madg

Sach.masach

Muon.masach
309
Ths. Lng Th Ngc Khnh Khoa CNTT TUD H TT
Bai tp

V i csdl ThuVien trn, vit biu thc ai s quan h


thc hin cac truy vn sau va ti u ho a ca c biu
thc o (co gia i thi ch).

Cho bi t danh sa ch nhng quy n sach co thi gian


mn l n hn 1 nm va hi n cha tra.

Cho bi t ho tn cua nhng c gia TP HCM a


mn sach co tn Th gii phng cua nxb tre .

You might also like