You are on page 1of 53

Thng tin chung

Ging vin

C s d liu

Nguyn Hng Phng


B mn H thng thng tin, khoa CNTT,
phng 325 C1
Email: phuongnh-fit@mail.hut.edu.vn

Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn

Gi tip sinh vin ti B mn:

B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

Chiu th hai hng tun.


Ngoi ra, xin lin h trc.
1

Tng quan v mn hc

nh gi mn hc

Mc tiu:Sau khi hc xong mn hc


ny, sinh vin ngnh cng ngh
thng tin c th:
Ch ra nguyn l ca h c s d liu
(CSDL).
Thit k v xy dng mt h CSDL.

D lp y , tch cc xy dng bi
Kim tra gia k
Kim tra cui k

Khi lng:4 tc, trong 15 tun

Ti liu hc tp

Ni dung mn hc

Bi ging trn lp
Sch tham kho:
Nguyn Kim Anh, Nguyn l ca cc h c s d liu,
NXB i hc Quc gia, H Ni, 2004.
T Vn Nam, Gio trnh C s d liu, NXB Gio dc,
2006.
Nguyn Thin Bng, Phng Lan, Gio trnh SQL Server
2000, 2004.
Nguyn Ngc Minh, Hong c Hi, Trn Tin Dng, T
hc Microsoft SQL Server 2000 trong 21 ngy, NXB Lao
ng-X hi, 2002.
J.D.Ullman, A First Course in Database Systems,
Prentice-Hall,1997.
J.D.Ullman, Principles of Database and Knowledge-Base
Systems,vol.1, Computer Science Press,1988.
Cc ti liu khc
5

Chng 1: i cng v cc h CSDL.


Chng 2: Cc m hnh d liu.
Chng 3: Ngn ng nh ngha v
thao tc d liu i vi m hnh quan
h.
Chng 4: L thuyt thit k CSDL
quan h.
Chng 5: Ti u ha cu truy vn
Chng 6: An ton v ton vn d
liu.
6

Danh ngn H Ch Minh


Tri c bn ma: Xun, H, Thu, ng;
t c bn phng: ng, Ty, Nam, Bc;
Ngi c bn c: Cn, Kim, Lim, Chnh;
Thiu mt ma khng th thnh Tri;
Thiu mt phng khng th thnh t;
Thiu mt c khng th thnh Ngi.
7

Ni dung chng ny
Chng 1
i cng v cc h c s d li
liu

Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn

B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

1.1 Cc h thng x l tp
truyn thng v nhng hn
ch ca n.
1.2 Cc h CSDL: khi nim,
kh nng, kin trc, ngi
dng ca mt h qun tr
CSDL.
1.3 S phn loi cc h
CSDL.

1.1 Cc h th
thng x l tp
truy
truyn th
thng

Cc h th
thng x l tp truy
truyn th
thng
Mi chng trnh ng dng
nh ngha v qun l cc tp
d liu ca ring n.
Trc khi xut hin cc phn
mm h qun tr CSDL, trong
qu kh cc h thng trn c
s tp c to lp x
l mt s lng ln d liu.

Bc khi u ca qu trnh
tin hc ha doanh nghip.
Tp trung vo nhu cu x l d liu
ca cc phng ring l trong t chc
m khng xem xt tng th t chc
ny.
Vit mt chng trnh mi
i vi mi ng dng n l,
khng c k hoch, khng c
m hnh hng n s
tng trng.
3

Hn ch ca cc h thng
x l tp truyn thng

Ni dung chng ny

D tha v khng nht qun d liu


Kh khn trong truy nhp d liu
C lp v hn ch chia s d liu
Cc vn v an ton v ton vn
Cc vn v tin cy
S ph thuc d liu ca cc chng
trnh ng dng
5

1.1 Cc h thng x l tp
truyn thng v nhng hn
ch ca n.
1.2 Cc h CSDL: khi nim,
kh nng, kin trc, ngi
dng ca mt h qun tr
CSDL.
1.3 S phn loi cc h
CSDL.
6

V d v qun l o to

1.2 Cc h c s d liu

Thng tin cn quan tm


CSDL (database) l g ?
Ti sao phi s dng CSDL ?
Ti sao phi tm hiu v cc h CSDL
(database systems) ?

Kha hc, lp hc, sinh vin, gio vin,


mn hc,
Thng tin v sinh vin: thng tin c
nhn, thng tin hc tp,
Thng tin v mn hc: khi lng, gio
vin, lch hc,

Cn lu tr nhng thng tin a dng


C s d liu
7

V d: khai th
thc thng tin

Hnh dung
dung v xy dng mt CSDL

Sinh vin
Cc mn hc ca Khoa Cng ngh thng
tin ?
im thi mn H c s d liu ?

Gio vin

Yu cu
Lu tr thng tin cn thit mt cch chnh xc
Truy xut thng tin hiu qu

Thc hin
Xc nh yu cu nghip v
Xc nh thng tin cn lu tr
Xc nh cch thc lu tr

Danh sch sinh vin lp Tin2-K49 ?


Thi kha biu ca lp Tin2-K49 ?

Gio v

Cn cng c tr gip xy dng mt CSDL

Danh sch sinh vin K47 tt


nghip loi gii ?...

Phn mm qun tr CSDL

Phn mm ng dng

Cc khi nim c bn
ng dng

10

C s d liu (database)
L mt tp hp cc d liu
Biu din mt vi kha cnh no ca th
gii thc
C lin h logic thng nht
c thit k v bao gm nhng d liu phc
v mt mc ch no .

h CSDL

CSDL

L mt b su tp cc d liu tc nghip
c lu tr li v c cc h ng dng
ca mt x nghip c th no s dng.

H QTCSDL
11

12

H qu
qun tr
tr c s d li
liu

H c s d liu

(Database Management SystemSystem-DBMS)

L mt h thng phn mm cho


php
nh ngha, to lp: xc nh kiu, cu
trc, rng buc d liu, lu tr d liu
trn cc thit b nh.
Thao tc: truy vn, cp nht, kt xut,
cc CSDL cho cc ng dng khc nhau

L mt h thng gm 4 thnh phn


H qun tr CSDL
Phn cng
CSDL v phn mm ng dng
Nhng ngi s dng

V d: H qun l o to, h qun l


nhn s, h qun l kinh doanh,

V d: MS SQL Server, DB2,


MS Access, Oracle, FoxPro,
13

H CSDL

14

Cc tnh nng ca h qu
qun tr
tr CSDL
Qun l d liu tn ti lu di

H
CSDL

nh ngha d liu
Qun l lu tr

ng dng

Truy xut d liu mt cch hiu qu


Biu din cc thao tc d liu
X l cu hi
Qun tr giao dch

H Qun Tr CSDL

CSDL

CSDL
15

Cc tnh nng ca h qu
qun tr
tr CSDL
H tr t nht mt m hnh d liu
m bo tnh c lp d liu
H tr cc ngn ng cp cao nht
nh cho php ngi s dng nh
ngha cu trc ca d liu, truy nhp
v thao tc d liu
iu khin truy nhp
Phc hi d liu
17

16

Cc ngn ng
Ngn ng nh ngha d
Definition Language - DDL)

liu

(Data

Cu trc d liu
Mi lin h gia cc d liu v quy tc, rng
buc p t ln d liu

Ngn ng thao tc d liu


Manipulation Language - DML)

(Data

Ngn ng iu khin d
Control Language - DCL)

(Data

Tm kim, thm, xa, sa d liu trong CSDL

liu

Thay i cu trc ca cc bng d liu


Khai bo bo mt thng tin
Quyn hn ca ngi dng trong khai thc
CSDL
18

Tng ng 3 mc vi ngn ng
ng Pascal

S tru tng ha d liu


...

Khung nhn 1

Type khach_hang = record


ten:string;

Khung nhn n

Mc khung nhn
(ngoi)

ngay_sinh:string;
dia_chi:string;

m t cch m ngi s
dng c th nhn thy d
liu

S khi nim
(logic)

nh ngha cu trc logic


ca d liu, d liu no
c lu tr v mi quan
h gia cc d liu

Mc quan nim
(logic)

nh ngha cu trc cc
tp v ch dn c s
dng trong c s d liu
(cch lu tr d liu
nh th no)

S trong
(vt l)

Mc lu tr
(trong)

end;

Mc vt l: mt bn ghi khach_hang c m t
nh mt khi nh, chng trnh dch che du cc
chi tit mc ny i vi ngi lp trnh.
Mc logic: mi bn ghi c m t bi mt nh
ngha kiu, ngi lp trnh s dng ngn ng lp
trnh lm vic ti mc tru tng ny.
Mc khung nhn: ngi s dng my tnh thy
mt tp cc chng trnh ng dng, che du
nhng chi tit v cc kiu d liu

19

Ki
Kin tr
trc ca mt h qu
qun tr
tr CSDL
Cc thay i s

Cc truy vn

B x l
cu hi

lu tr v truy xut
d liu trn cc thit
b nh

B qun tr
giao dch

Thc hin

Tm kim d liu tr
li cho mt yu cu
truy vn.

Siu d liu
(metadata)

Qun l buffer
Qun l tp

(t in d liu)

21

Qun
l
giao
dch

Data & index


(ch mc)
22

Qun tr giao dch

B x l cu hi
B bin dch
B ti u
B nh gi

Thc hin
Bin i truy vn
mc cao thnh cc
yu cu c th hiu
c bi h CSDL.
La chn mt k
hoch tt nht tr
li truy vn ny.

B qun l lu tr

T chc ti u d liu
trn thit b nh
Tng tc hiu qu
Metadata &
vi b qun l tp
Data dictionary

X l cu hi
Yu cu

Qun l lu tr
Yu cu

Cc thay i d liu

B qun l
lu tr

D liu (data)

20

B qun l
lu tr

Metadata &
Data dictionary

Data & index

23

Yu cu
nh ngha giao dch: mt tp cc thao
tc c x l nh mt n v khng
chia ct c.
m bo tnh ng n v tnh nht
qun ca d liu.

Thc hin
Qun l iu khin tng tranh.
Pht hin li v phc hi CSDL
24

Ngi dng

Ngi dng

Ngi thit k v ci t h QTCSDL:


chu trch nhim thit k v ci t cc
module ca h QTCSDL v cc giao din
di hnh thc cc gi phn mm
Ngi pht trin cng c: chu trch
nhim thit k v ci t cc gi phn mm
h tr cho vic thit k, s dng cng nh
tng cng hiu nng ca cc h CSDL.

Ngi phn tch h thng v pht trin ng


dng: chu trch nhim xc nh yu cu ca
ngi dng cui, xc nh cc giao dch cn thit
p ng cc yu cu ngi dng. Ngi lp
trnh ng dng ci t nhng yu cu ny trong
chng trnh, kim th, g ri, lp ti liu cho
chng trnh
Ngi thit k CSDL: chu trch nhim xc nh
d liu lu tr trong CSDL v cu trc biu din
v lu tr nhng d liu ny

25

26

Ni dung chng ny

Ngi dng
Ngi s dng cui: l ngi khai thc cc h
CSDL
Ngi qun tr CSDL: chu trch nhim cho
php truy nhp CSDL, iu phi v kim tra s
dng CSDL, qun l ti nguyn phn cng v
phn mm khi cn thit
Ngi bo tr h thng: l nhng ngi qun
tr h thng chu trch nhim vic hot ng v
bo tr mi trng (phn cng v phn mm)
cho h CSDL

1.1 Cc h thng x l tp
truyn thng v nhng hn
ch ca n.
1.2 Cc h CSDL: khi nim,
kh nng, kin trc, ngi
dng ca mt h qun tr
CSDL.
1.3 S phn loi cc h
CSDL.

27

28

Cc h CSDL tp trung

1.3 Phn loi cc h CSDL

H CSDL c nhn: mt ngi s dng n


l va thit k, to lp CSDL, cp nht,
bo tr d liu, lp v hin th bo co.

M hnh d liu
Mng vs. phn cp vs. quan h vs. hng i
tng vs. ...

m nhim vai tr: ngi qun tr CSDL, ngi


vit chng trnh ng dng, end-user.

S ngi s dng
Mt ngi dng vs. nhiu ngi dng

H CSDL trung tm: d liu c lu tr


trn mt my tnh trung tm.
H CSDL khch-ch:

Tnh phn tn ca CSDL


Tp trung vs. Phn tn

Tnh thng nht ca d liu


ng nht vs. Khng ng nht

...
29

Cc my tnh trung tm ln
t so vi cc
my nh v my trm.
Cc ng dng my khch truy nhp d liu
c qun l bi my ch.
30

Cc h
h CSDL t
tp trung (ti
(tip)

Cc h CSDL phn tn

H CSDL trung
tm
H CSDL c nhn

H CSDL khchch

CSDL phn tn? L mt tp cc CSDL c


quan h logic vi nhau nhng c tri ra
trn nhiu trm lm vic ca mt mng
my tnh.
C 2 tnh cht: quan h logic v phn tn
H QTCSDL phn tn: L mt h thng
phn mm cho php to lp CSDLPT v
iu khin cc truy nhp i vi CSDLPT
ny.
Chia ra 2 loi: CSDLPT thun nht v
khng thun nht

31

32

Kt lun

Cc h CSDLPT (tip)

CSDL cho php lu tr v khai thc d


liu mt cch thng nht v hiu qu (c
bit trong trng hp khi lng d liu
ln).
S tru tng v d liu v tnh c lp
d liu cho php pht trin ng dng d
dng hn.
H qun tr CSDL cung cp cc cng c
hu hiu tr gip vic to lp CSDL v
pht trin ng dng
33

S dng kin thc mn hc


ny trong tng lai
More than 80 % of real world computer applications
are associated with databases*
*

Pht trin
ng dng

Korth & Silberschatz. Database System Concepts.

nghin cu v
pht trin

Nghin cu

35

34

Cc im cn lu trong
chng ny
Cch tip cn tp vs. cch tip cn
CSDL
CSDL vs. h QTCSDL vs. h CSDL
Kin trc 3 mc ca h CSDL
Cc chc nng chnh ca mt h
QTCSDL
Ngi s dng trong mt h CSDL
Phn loi cc h CSDL

36

Li hay p

iu chng ta bit ch l mt git nc,


iu khng bit mnh mng nh i dng
Einstein

37

38

Ni dung

Cc m hnh d liu
Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn

B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

Tng quan v m hnh d liu


M hnh phn cp
M hnh mng
M hnh quan h
M hnh thc th lin kt
M hnh hng i tng
nh gi, bi tp

Tng quan v m hnh d li


liu

Tng quan...(tip)

M hnh d liu [Codd, 1980] gm:

Nhiu m hnh cn bao gm c mt tp


cc php ton thao tc cc d liu
M hnh thuc dng ng ngha: tp trung
v ng ngha ca d liu nh m hnh
thc th lin kt, s dng h tr ngi
dng c ci nhn khi qut v d liu
M hnh thuc dng khi nim: tp trung
vo cch thc t chc d liu ti mc khi
nim nh m hnh mng, m hnh lin kt,
m hnh quan h, c lp vi DBMS v h
thng phn cng ci t c s d liu

Mt tp hp cc cu trc ca d liu
Mt tp hp cc php ton thao tc vi cc
d liu
Mt tp hp cc rng buc v d liu

M hnh d liu l mt tp hp cc khi


nim dng m t:

D liu
Ng ngha ca d liu
Cc mi quan h trong d liu
Cc rng buc d liu
3

Vi nt v lch s
M hnh
quan h

M hnh
phn cp

1965

M hnh
quan h m rng

System
SystemR(81),
R(81),DB2,
DB2,
ORACLE,
ORACLE,SQL
SQL
Server,
Server,Sybase,
Sybase,......

IMS,
IMS,
System
System2k,
2k,
......

1970

1975

1980

1985

M hnh
Thc th-lin kt
M hnh
mng
DMS(65),
DMS(65),
CODASYL
CODASYL(71),
(71),
IDMS,
IDMS,IDS
IDS

Mt vi m hnh d li
liu
DB2,
DB2,
ORACLE-10i,
ORACLE-10i,
SQL
SQLServer
Server
......

XML

dbXML,natix,
dbXML,natix,
Tamino,...
Tamino,...
1990 1995 2000

2005 2010

O2,
O2,ORION,
ORION,
IRIS,
IRIS,......

IRDS(87),
IRDS(87),
CDD+,
CDD+,
...
M ...
hnh

hng i
tng

M hnh bn
cu trc

Lore
Lore(97),
(97),
......

M
M
M
M
M
M
M

hnh
hnh
hnh
hnh
hnh
hnh
hnh

phn cp
mng
quan h
thc th lin kt
hng i tng
bn cu trc
d liu ca XML
6

M hnh d li
liu phn cp
(Hierarchical data model)
model)

t vn
c im ca cc m hnh d liu?
S khc nhau gia cc m hnh d
liu?
Cc m hnh d liu ph bin ngy
nay

Ra i nhng nm 60-65
Biu din bng cy
Quan h cha-con
Mi nt c 1 cha duy nht
1 CSDL = 1 tp cc cy = 1 rng

Cc khi nim c bn
Bn ghi
Mc ni
Cc php ton: GET, GET UNIQUE, GET NEXT,
GET NEXT WITHIN PARENT,

M hnh d liu phn cp

M hnh d li
liu phn cp V d

u im
D xy dng v thao tc
Tng thch vi cc lnh vc t chc phn cp
Ngn ng thao tc n gin: duyt cy.

giao_vien

lop

Nhc im:
sinh_vien

mon_hoc

S lp li ca cc kiu bn ghi d liu d


tha v khng nht qun.

mon_hoc

Gii php: bn ghi o

Hn ch trong biu din ng ngha ca cc


mc ni gia cc bn ghi (ch cho php quan
h 1-n)

diem_thi

M hnh d li
liu mng
(Network data model)
model)

10

M hnh d li
liu mng V d

S ra i
S dng ph bin t nhng nm 60, c nh ngha li vo
nm 71

giao_vien

Biu din bng th c hng


Cc khi nim c bn

giang_day

Tp bn ghi (record)

lop

Kiu bn ghi (record type)


Cc trng (field)

Mc ni
Tn ca mc ni
Ch (owner) thnh vin (member): theo hng ca mc ni
Kiu mc ni: 1-1, 1-n, quy

Cc php ton
Duyt: FIND, FIND member, FIND owner, FIND NEXT
Th tc: GET

11

hoc

co_diem

gom

sinh_vien

mon_hoc

co

diem_thi

12

M hnh d liu quan h

M hnh d liu mng

S ra i: vo nm 1970[Codd, 1970]
D liu c biu din di dng bng
L m hnh d liu khi nim ph bin cho
n tn thi im hin ti
Da trn l thuyt ton hc, ng thi
cng gn vi cu trc tp v cu trc d
liu nn c hai loi thut ng lin quan:

u im
n gin
C th biu din cc ng ngha a dng
vi kiu bn ghi v kiu mc ni
Truy vn thng qua php duyt th
(navigation)

Nhc im:

Thut ng ton hc: quan h, b, thuc tnh


Thut ng hng d liu: bng, bn ghi, trng

S lng cc con tr ln
Hn ch trong biu din ng ngha ca
cc mc ni gia cc bn ghi
13

V d
m hnh
d li
liu
quan h

MON_HOC
maMH

tenmon

soHT

CNTT01

Nhp mn CSDL

V dTruyn
DL v mng

CNTT02

14

M hnh d liu quan h

CNTT03

Phn tch v thit k h thng

HTTT01

Qun l d n

Cc khi nim c bn
Thuc tnh, min thuc tnh
Quan h
Kha

LOP

malop lop

khoa

GVCN

loptruong

IT4

Tin 4

CNTT

Ng. V. Anh

Trn T. Bnh

IT5

Tin 5

CNTT

L A. Vn

Ng. . Trung

IT6

Tin 6

CNTT

Ng. T. Tho

Trn M. Qu

IT7

Tin 7

CNTT

Ng. V. Qu

Ng. T. Phng

SINH_VIEN

maSV

tenSV

ngaysinh

gt

diachi

malop

SV0011

Trn T. Bnh

1/4/1981

21 T. Q. B

IT4

SV0025

Ng. . Trung

3/2/1980

56 . C. V

IT5

SV0067

Trn M. Qu

26/3/1982

45 H. B. T

IT6

SV0034

Ng. T. Phng

29/2/1980

86 L. T. N

IT7

15

M hnh d liu quan h

M hnh d liu quan h

Thuc tnh (~trng): l cc c tnh ca


mt i tng
Mi thuc tnh c xc nh trn mt min
gi tr nht nh gi l min thuc tnh
V d:

16

Sinhvin (MSV, TnSV, Nmsinh, GiiTnh, aCh)


dom(MSV) = {char(5)}
dom(TnSV) = {char(30)}
dom(Nmsinh) = {date}
dom(GiiTnh) = {0, 1}
dom(aCh) = {char(50)}
17

Quan h (~bng):Cho n min gi tr D1,


D2 , , Dn khng nht thit phn bit, r l
mt quan h trn n min gi tr nu r
l mt tp cc n-b (d1 , d2 , , dn ) sao
cho di Di
Mt quan h c th c biu din di
dng 1 bng trong 1 dng trong bng
tng ng vi 1 b , mt ct trong bng
tng ng vi 1 thuc tnh ca quan h
Bc ca 1 quan h l s cc thuc tnh
trong quan h
Lc lng ca 1 quan h l s cc b
trong quan h
18

M hnh d liu quan h

M hnh d liu quan h

nh ngha (tip): Cho U = {A1, A2


, , An} l mt tp hu hn cc
thuc tnh trong dom(Ai ) = Di, r
l quan h trn tp thuc tnh U k
hiu l r(U) nu:

r D1 D2 ... Dn
U c gi l s quan h (lc
quan h)

nh ngha Kho ca quan h r trn

tp thuc tnh U = {A1 , A2 , , An}


l mt tp K U sao cho vi bt k 2
b t1 , t2 thuc r u tn ti mt
thuc tnh A thuc K m t1[A] t2 [A]
Mt quan h c th c nhiu kho
Nu K l kho ca r th mi K sao
cho K K u l kho ca r. K c
gi l siu kho ca r

19

20

M hnh d li
liu quan h
V d:

M hnh d liu quan h


nh ngha: K l kho ti
thiu ca r nu K l mt kho
ca r v bt k tp con thc s
no ca K u khng phi l
kho ca r
nh ngha: Mt tp con K
U
c gi l kho ngoi ca
quan h r(U) tham chiu n
mt quan h r nu K l kho
chnh ca r

Quan h: SinhVin(MSV, TnSV, NmSinh,


GiiTnh, Lp)
SV001
SV002
SV003
SV004

Nguyn Vn An
Nguyn Vn An
L Vn Cng
Nguyn Thy Linh

1982
1985
1981
1981

Tin 7
HTTT
HTTT
BK65

Siu kho: {MSV, HTn};


Kho ti thiu: {MSV}; {HTn, NmSinh}
Kho ngoi: TnLp nu coi n l kho chnh
ca quan h Lp

21

M hnh d liu quan h nhn xt

1
1
1
0

22

M hnh th
thc th
th lin kt
(EntityEntity-Relationship data model)
model)
Cho php m t cc d liu c lin quan
trong mt x nghip trong th gii thc di
dng cc i tng v cc mi quan h ca
chng.
c s dng cho bc u thit k CSDL,
lm nn tng nh x sang mt m hnh
khi nim no m H qun tr CSDL s s
dng
Trong m hnh thc th lin kt, CSDL c
m hnh ha nh l:

u im
Da trn l thuyt tp hp
Kh nng ti u ho cc x l phong
ph

Nhc im
Hn ch trong biu din ng ngha
Cu trc d liu khng linh hot
23

Mt tp hp cc thc th
Lin h gia cc thc th ny

24

M hnh th
thc th
th lin kt
Cc kh
khi ni
nim c bn

M hnh th
thc th
th lin kt...
Thc th: mt i tng trong th
gii thc, tn ti c lp v phn bit
c vi cc i tng khc
Tp thc th: mt tp hp cc thc
th c tnh cht ging nhau
V d:

Thc th, tp
thc th
Thuc tnh
Kho
Lin kt, tp
lin kt

Thc th: mt sinh vin, mt lp


Tp thc th: ton th sinh vin ca 1
lp, ton th cc lp ca 1 khoa
25

26

M hnh th
thc th
th lin kt...

M hnh th
thc th
th lin kt...

Kiu thuc tnh


Thuc tnh l c tnh
ca mt tp thc th
Tp thc th SinhVin c
cc thuc tnh nh: TnSV,
NmSinh,

Mi thc th trong tp
thc th c mt gi tr
c tnh nm trong min
gi tr ca thuc tnh
Sinh vin 1 c: Htn l
Nguyn Hi Anh, Nm sinh
1980

Thuc tnh n gin


(thuc tnh nguyn
t)

sinh_vin

sv1
sv2
sv3

c kiu d liu
nguyn t

sinh_vin

Thuc tnh phc


maSV
diachi
tenSV

gioitinh

c kiu phc, nh
ngha bi cc thuc
tnh khc

gioitinh

tenSV
maSV

so_pho

namsinh

quan

diachi

thanh_pho

namsinh
27

M hnh thc th lin kt...


Kiu thuc tnh

Mt hay mt tp thuc tnh m gi tr ca


chng c th xc nh duy nht mt thc
th trong tp thc th

maMH
tenmon

mon_hoc

Tp thc th SinhVin c th dng MSV lm


kho

soHT
giao_vien

Thuc tnh suy


din

sinh_vin

c th tnh ton
c t (cc) thuc
tnh khc
tuoi

M hnh thc th lin kt...


Kha

Thuc tnh a gi
tr
tng ng vi mi
thc th, c th
nhn nhiu gi tr

28

tenSV
maSV

ngaysinh

nam

diachi

29

Kho gm nhiu thuc tnh th gi l


phc
Mt tp thc th c th c nhiu
nhng ch mt trong s cc kho
chn lm kho chnh
Trong s ER, thuc tnh no c
lm kho chnh s c gch chn

kho
kho
c
chn
30

M hnh thc th lin kt...


Lin kt - Tp lin kt

M hnh thc th lin kt...


Lin kt - Tp lin kt - V d:

Mt lin kt l mt mi lin h c ngha


gia nhiu thc th
Cho mt thc th SinhVin1 v LpA, lin kt
ThnhVin ch ra rng SinhVin1 l 1 thnh
vin ca LpA

Tp lin kt l mt tp hp cc lin kt
cng kiu
Gia tp thc th SinhVin v Lp c 1 tp lin
kt ThnhVin, ch ra rng mi sinh vin u l
thnh vin ca 1 lp no

maSV

maMH

tenSV

tenmon

sinh_vin

ngaysinh

mon_hoc

diem_thi

soHT

nam
diachi

ket_qua

Mt lin kt c th c thuc tnh


31

M hnh thc th lin kt...

32

Cch l
lp s
th
thc th
th - lin k
kt

Rng buc ca kt ni
1-1: Lin kt 1 thc th
ca mt tp thc th vi
nhiu nht 1 thc th ca
tp thc th khc
1-n: Lin kt 1 thc th
ca mt tp thc th vi
nhiu thc th ca tp thc
th khc
n-n: Lin kt 1 thc th
ca mt tp thc th vi
nhiu thc th ca tp thc
th khc v ngc li
quy: Lin kt gia cc
thc th cng kiu

lop_hoc

chu_nhiem

lop_hoc

sinh_vin

thanh_vien

dang_ky

giao_vien

sinh_vien

Bc 1: Xc nh cc thc th
Bc 2: Xc nh cc lin kt gia
cc thc th
Bc ca lin kt
Rng buc (1-1, 1-n, n-n, quy)

mon_hoc

mon_hoc
dieu_kien

33

Bi t
tp: V
V s
ER
Bi ton: phn tch v thit k 1 CSDL gm cc
thng tin trong 1 cng ty (nhn vin, phng ban,
d n)

Cng ty c t chc bi cc phng ban. Mi phng ban


c 1 tn duy nht, 1 s duy nht v 1 ngi qun l
(thi im bt u cng tc qun l ca ngi ny cng
c lu li trong CSDL). Mi phng ban c th c nhiu
tr s lm vic khc nhau
Mi phng iu phi mt s d n. Mi d n c 1 tn
v 1 m s duy nht, thc hin ti mt a im duy
nht
Cc thng tin v nhn vin cn c quan tm gm:
tn, s bo him, a ch, lng, gii tnh, ngy sinh. Mi
nhn vin lm vic ti mt phng ban nhng c th
tham gia nhiu d n khc nhau. Nhng d n ny c
th c iu phi bi cc phng ban khc nhau. Thng
tin v s gi lm vic trong tng d n (theo tun) cng
nh ngi qun l trc tip ca cc nhn vin cng c
lu tr
Thng tin v con ci ca tng nhn vin: tn, gii tnh,
ngy sinh
35

34

Ho

Dem

Ten

SoBH

HoTen

Dia_chi

Ten _phong Ma_phong

nguoiPT

Phu_trach

Luong
Ngay_sinh

Gioi_tinh

NHAN_VIEN
n
n

So_gio

PHONG_BAN
1

La_NV

1
1

nguoibiPT

Dia_diem

Quan_ly
Ngay_BD
Dieu_phoi

co

Lam_viec

CON

HoTen

Gioi_tinh

Ngay_sinh

Ten_DA

DU_AN

Ma_DA

36
Dia_diem

Bi
Bin
i s
th
thc th
th lin k
kt
sang s

quan
h

Bin i cc tp thc th
Bc 1: 1 tp thc th 1 quan h

Bin i tp cc thc th
Bin i cc lin kt
Cc kho ca cc s quan h
Cc s quan h vi kho chung

thuc tnh
thuc tnh (trng)
1 thc th
1 b
kho ca tp thc th
kho ca
quanh
sinh_vin
maSV

tenSV

ngaysinh

nam

diachi

malop

SINH_VIEN

37

sv1
sv2
sv3
sv4

ngaysin
h
1/4/81

gt

diachi

lop

21 T. Q. B

IT4

3/2/80

56 . C. V

IT5

SV006

tenSV
sv1
Trn T. Bnh
sv2
Ng. Trung
sv3
Trn M. Qu

26/3/82

45 H. B. T

IT6

SV003

Ng. Hng

29/2/80

86 L. T. N

IT7

maSV
SV001
SV002

38

Bin i cc tp thc th

Bi
Bin
i c
cc lin k
kt

Bc 2: 1 tp thc th xc nh t
tp thc th khc (E) qua 1 lin kt
1quan h cha kho cu E:
LOPTRUONG(maSV)

Bc 3: Lin kt 1-1
Thm 1 quan h mi xc nh bi cc
thuc tnh nm trong kho ca cc thc
th c lin quan
CHU_NHIEM_LOP(malop,maGV)
hoc
Dng kho ngoi
LOP_HOC(malop,lop,khoa,maGV)

sinh_vin

la_mot

lop_truong
lop

maGV

malop

lop_hoc

ngaysinh

giao_vien

chu_nhiem

khoa

trinhdo
khoa

39

40

Bin i cc lin kt (tip)

Bin i cc lin kt (tip)

Bc 4: Lin kt 1-n
Thm 1 quan h mi xc nh bi cc thuc tnh nm
trong kho ca cc thc th c lin quan

Bc 5: Lin kt n-n
Thm 1 quan h mi xc nh bi cc
thuc tnh nm trong kho ca cc
thc th c lin quan v cc thuc
tnh ca lin kt

SINHVIEN_LOP(malop, maSV)

hoc
Dng kho ngoi: thm kho chnh ca quan h bn
1 vo quan h bn n lm kho ngoi
SINH_VIEN(maSV, tenSV, ngaysinh, nam, diachi, malop)

maSV

DANG_KY(maSV,maMH, diem)

tenSV

diem

maSV

malop
lop
khoa

lop_hoc

ngaysinh

n
gom

sinh_vien

nam
diachi

41

tenSV
ngaysinh
nam
diachi

sinh_vin

maMH

m
dang_ky

mon_hoc

ten
soHT

42

Thuc tnh a tr
Bc 6: Vi mi thuc tnh a tr
Thm 1 quan h mi xc nh bi
thuc tnh a tr v kho ca tp
thc th tng ng
MH_GV(maMH,giao_vien)
maMH

M h
hnh d
d li
liu h
hng
i t
tng
(Object(Object-oriented data model)
S ra i
Khong u nhng nm 90

Biu din: s lp
Cc khi nim c bn
i tng: mt i tng trong th gii thc, c xc
nh bi mt nh danh duy nht
Thuc tnh: biu din mt c tnh ca i tng,
Phng thc : thao tc c thc hin trn i tng.
Tt c cc truy nhp vo thuc tnh ca i tng u phi c
thc hin thng qua cc phng thc ny.

tenmon

Lp: mt cch thc khai bo mt tp cc i tng c


chung mt tp thuc tnh v phng thc

mon_hoc
soHT
giao_vien
43

M h
hnh d
d li
liu h
hng
i t
tng
V d:

44

M h
hnh d
d li
liu h
hng
i t
tng
Nh
Nhn x
xt:

class sinh_vien {
string maSV;
string tenSV;
date ngaysinh;
boolean nam;
string diachi;
string lop;

u im
Cho php nh ngha kiu i tng phc tp
Tnh cht: bao ng (encapsulation), k tha
(heritage), a hnh (polymorphism)

Nhc im
Cu trc lu tr phc tp v c th s dng
nhiu con tr
Kh nng ti u ho cc x l b hn ch trong
nhiu trng hp

string ten();
string ngay_sinh();
string dia_chi();
string lop();
void gan_DC(string DC_moi);
void gan_lop(string lop);
}

45

46

So s
snh v
v
nh gi
gi

Phn lo
loi c
cc m h
hnh

Nhc li: M hnh d liu l mt tp hp cc khi nim dng


m t cu trc ca mt CSDL
M hnh
mng
biu din
ng ngha
DL

hn ch

M hnh
M hnh
phn cp quan h

Phn cp

hn ch

tng i
a dng

a dng

M hnh
HT
a dng

kh lu
tr

cu trc
phc tp

lu tr DL

s/d nhiu
con tr

d liu
lp li

d dng v
hiu qu

kh nng
truy vn
hiu qu
ca truy
vn

n gin

n gin

a dng

t kh
nng ti
u

t kh
nng ti
u

ti u
ho tt

M hnh
TT-LK

Th h 1
Cc m hnh
da trn
bn ghi

Mng
Quan h
Th h 2

Thc th-lin kt

a dng
khng c
xem xt
(khng hiu
qu)

khng
h/q khi
s/d nhiu
con tr
47

Cc m hnh
da trn
i tng

ng ngha
Th h 3

i tng - Quan h

Hng i tng
48

Cc b
bc xy d
dng m
mt h
h CSDL

Bi t
tp
Cho s thc th lin kt bn di, hy bin i
sang m hnh quan h:

1: PHN TCH

StudentName
StudentBirth

M t ng dng

M hnh ho DL (vd: S thc th-lin kt)

Lecturers

LecturerName

LecturerPhone

Belong to

3: CI T

ClassID

ClassName

M t DL logic vi 1 m hnh DL c th
(vd: S quan h)

Students

StudentAddress

2: THIT K

Ci t vi 1 h qun tr CSDL
(vd: ORACLE)

LecturerID

StudentID

Classes

Learn

ClassMonitor

Subjects

Time

SubjectID
SubjectName

49

Li gi
gii

50

Li gi
gii (ti
(tip)

Bin i cc tp thc th v cc quan h


thnh cc bng:
Lecturers(LecturerID, LecturerName,
LecturerPhone)
Students(StudentID, StudentName, StudentBirth,
StudentAddress)
Classes(ClassID, ClassName, ClassMonitor)
Subjects(SubjectID, SubjectName)
Belongto(StudentID, ClassID)
Learn(LecturerID,ClassID, SubjectID, Time)
51

Ci tin thit k: Bng Students v


bng
Belongto
c
cng
kha
(StudentID), ta nn kt hp chng
li:
Students(StudentID, StudentName,
StudentBirth, StudentAddress, ClassID)

52

Li hay p

Trong 10 ln thnh cng th c ti 9 ln


thnh cng nh s hng hi v nim tin
trong cng vic
Teewilson

53

Ni dung

Ngn ng nh ngha
v thao tc d liu i
vi m hnh quan h

Cc cch tip cn i vi thit k


ngn ng ca CSDL quan h
Gii thiu mt s ngn ng v phn loi
So snh v nh gi

Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn

Mt s ngn ng d liu mc cao

B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

QBE (Query By Example)


SQL (Structured Query Language)

Kt lun
1

CSDL v d 2

CSDL v d 1
Supplier
SID

Student

Enrol

Takes

Id

Name

1108
3936

SNAME

SIZE

CITY

S1

Dustin

100

London

Suburb

SID

SNO

SID

Course

S2

Rusty

70

Paris

Robert

Kew

1108

21

3936

101

S3

Lubber

120

London

Glen

Bundoora

1108

23

1108

113

S4

M&M

60

NewYork

8507

Norman

Bundoora

8507

23

8507

101

S5

MBI

1000

NewOrlean

8452

Mary

Balwyn

8507

29

S6

Panda

150

London

Product

Subject

Course
No

Name

Dept

No

Name

Dept

113

BCS

CSCE

21

Systems

CSCE

101

MCS

CSCE

23

Database

CSCE

29

VB

CSCE

18

Algebra

Maths

PID

Tm cc b ca bng
Student c Suburb =
Bundoora
a ra cc gi tr ca
thuc tnh Name ca
cc b ny

Name

1108

Robert

Kew

3936

Glen

Bundoora

8507
8452

QUANTITY

P1

500

S1

P2

400

S1

P4

100

S2

P3

250

S2

P4

50

S3

P1

300

S3

P2

350

P1

Screw

red

S3

P6

200

P2

Screw

green

S4

P1

10

P3

Nut

red

S5

P2

200

P4

Bolt

blue

P5

Plier

green

P6

Scissors

blue

Tm cc sinh vin
ng k kho hc
c m s 113

Suburb

Balwyn

Id

Name

1108

Robert

Kew

3936

Glen

Bundoora

8507

Tm cc gi tr SID Enrol
trong bng Enrol c
SID
Course tng ng
3936
1108
l 113
8507
a cc b ca
Course
bng Student c
No
SID trong cc gi
113
tr tm thy trn

Norman Bundoora
Mary

COLOR

PID

S1

Student

Student
Id

PNAME

SID

Cu hi (tip)

t vn : cc cu hi
Tm tn ca cc sinh
vin no sng
Bundoora

SupplyProduct

101

8452

Suburb

Norman Bundoora
Mary

Balwyn

Course
101
113
101
Name

Dept

BCS

CSCE

MCS

CSCE

Phn lo
loi c
cc ngn ng
ng truy v
vn
Ngn ng i s

1 cu hi = 1 tp cc php ton trn cc quan


h
c biu din bi mt biu thc i s (quan
h)

Ngn ng tnh ton v t

Ngn ng i s quan h

1 cu hi = 1 m t ca cc b mong mun
c c t bi mt v t m cc b phi tho
mn
Phn bit 2 lp:
ngn ng tnh ton v t bin b
ngn ng tnh ton v t bin min

Phn lo
loi c
cc ph
php to
ton
i s
s quan h
h

Tng quan
Gm cc php ton tng ng vi cc
thao tc trn cc quan h
Mi php ton
u vo: mt hay nhiu quan h
u ra: mt quan h

Biu thc i s quan h = chui cc php


ton
Kt qu thc hin mt biu thc i s l
mt quan h
c ci t trong phn ln cc h CSDL
hin nay

Php ton quan h

Php
Php
Php
Php

chiu (projection)
chn (selection)
kt ni (join)
chia (division)

Php ton tp hp

Php
Php
Php
Php

hp (union)
giao (intersection)
tr (difference)
tch -cc (cartesian product)

10

Php hp

Php ton tp hp
nh ngha: Quan h kh hp
2 quan h r v s c gi l kh hp
nu chng c xc nh trn cng 1
min gi tr
r xc nh trn D1x D2 xx Dn
s xc nh trn D1x D2 xx Dm
Di = Di v n=m

/n: gm cc b thuc t nht 1 trong 2


quan h u vo
2 quan h u vo phi l kh hp
C php: R = R1 R2
R1
R1

Kt qu

Subject2

Name

Course

Systems

BCS

Name

Course

BCS

DataMining

MCS

Database

MCS

Writing

BCS

Algebra

MCS

Database

11

R2

R2

Subject1

Name

Course

Systems

BCS

Database

BCS

Database

MCS

Algebra

MCS

DataMining

MCS

Writing

12
BCS

Ph
Php giao

Ph
Php tr
tr

/n: gm cc b thuc c hai quan


h u vo
C php: R1 R2
R1

R2

/n: gm cc b thuc quan h th nht nhng


khng thuc quan h th hai
2 quan h phi l kh hp

C php: R1 \ R2 hoc R1 - R2

R1

R1
R2

Subject1

Subject2

R2

Subject1

Name

Course

Name

Course

Kt qu

Systems

BCS

DataMining

MCS

Name

Course

Database

BCS

Database

MCS

Systems

BCS

Database

MCS

Systems

BCS

Database

MCS

Algebra

MCS

Writing

BCS

R1
R2

Subject2

Kt qu

Name

Course

Name

Course

Systems

BCS

DataMining

MCS

Name

Database

BCS

Database

MCS

Database

BCS

Database

MCS

Systems

BCS

Algebra

MCS

Algebra

MCS

Writing

BCS

Course

13

14

Ph
Php t
tch
-cc

V d ph
php t
tch
-cc

/n: l kt ni gia tng b ca quan


h th nht vi mi b ca quan h
th hai
C php: R = R1 x R2
aa
bb
cc
dd

xx
yy

aa
aa
bb

xx
yy
xx

bb
cc
cc

yy
xx
yy
xx

dd
dd

Student

Sport

Id

Name

Suburb

1108

Robert

Kew

3936

Glen

Bundoora

8507

Norman

Bundoora

8452

Mary

Balwyn

yy

15

Name

Suburb

1108

Robert

Kew

name

Swimming

09

Dancing

Student_Sport
Name

Suburb

SportID

Sport

1108

Robert

Kew

05

Swimming

3936

Glen

Bundoora

05

Swimming

8507

Norman

Bundoora

05

Swimming

8452

Mary

Balwyn

05

Swimming

1108

Robert

Kew

09

Dancing

3936

Glen

Bundoora

09

Dancing

8507

Norman

Bundoora

09

Dancing

8452

Mary

Balwyn

09

Dancing

16

/n: La chn cc b trong mt quan h


tho mn iu kin cho trc.
C php: <condition> (R )
R1
R1
R2
R2
R3
R3
R4
R4

C2
C2 C5
C5

V d: a ra danh sch tn ca tt c cc sinh


vin
Student

Sport

05

Ph
Php ch
chn

/n: La chn mt s thuc tnh t mt quan h.


C php: A1, A2,... ( R )

Id

SportID

Id

Ph
Php chi
chiu

C1
C1 C2
C2 C3
C3 C4
C4 C5
C5

V d: a ra danh sch nhng sinh vin


sng Bundoora
suburb="Bundoora ( Student )
Student

(Student )
Name
Robert

3936

Glen

Bundoora

Glen

8507

Norman

Bundoora

Norman

8452

Mary

Balwyn

Mary

R2
R2
R3
R3

17

Id

Name

1108

Robert

Suburb
Kew

3936

Glen

Bundoora

8507

Norman

Bundoora

8452

Mary

Balwyn

Id

Name

Suburb

3936

Glen

Bundoora

8507

Norman

Bundoora
18

Ph
Php ch
chn - i
iu ki
kin ?

V d: ch
chn v
v chi
chiu

iu kin chn cn gi l biu thc


chn.
Biu thc chn F: mt t hp logic
ca cc ton hng. Mi ton hng l
mt php so snh n gin gia 2
bin l hai thuc tnh hoc gia 1
bin l 1 thuc tnh v 1 gi tr hng.

a ra tn ca cc sinh vin sng


Bundoora

Cc php so snh trong F: , , , , ,


Cc php ton logic trong F: , ,

name

( suburb ="Bundoora Student )

Student
Id

Name

1108

Robert

Suburb
Kew

3936

Glen

Bundoora

Glen

8507

Norman

Bundoora

Norman

8452

Mary

Balwyn

Name

19

20

Ph
Php k
kt n
ni (join) 2 quan h
h r v
v s

Php kt ni - V d:

Khi nim ghp b: u = (a1,..,an);v=(b1,..,bm)


(u,v) = (a1,..,an,b1,..,bm)
Php kt ni 2 quan h thc cht l php ghp cc
cp b ca 2 quan h tha mn 1 iu kin no
trn chng.
Biu thc kt ni l php hi ca cc ton hng,
mi ton hng l 1 php so snh n gin gia 1
thuc tnh ca quan h r v 1 thuc tnh ca quan
h s.
C php: R1 >< < join _ condition > R 2

a ra danh sch cc sinh vin v


kho hc

a
b
c

r
r
v

r
s
t

x
y
z

a r x
b r x

Student >< Id = SID Enrol

Student

Enrol

Id

Name

Suburb

1108

Robert

Kew

3936

Glen

Bundoora

8507

Norman

Bundoora

8452

Mary

Balwyn

Kt qu

21

Ph
Php k
kt n
ni b
bngng-kt n
ni t
t nhin
nh ngha: Nu php so snh trong
iu kin kt ni l php so snh
bng th kt ni gi l kt ni bng
nh ngha: Php kt ni bng trn
cc thuc tnh cng tn ca 2 quan
h v sau khi kt ni 1 thuc tnh
trong 1 cp thuc tnh trng tn
s b loi khi quan h kt qu th
php kt ni gi l kt ni t nhin
C php php kt ni t nhin: R1 * R2
23

Id=SID

SID

Course

3936

101

1108

113

8507

101

SID

Id

Name

Suburb

Course

1108

1108

Robert

Kew

113

3936

3936

Glen

Bundoora

101

8507

8507 Norman

Bundoora

101

22

Ph
Php k
kt n
ni t
t nhin - V d:

Takes

Enrol

SID

SNO

1108

21

1108

23

8507

23

8507

29

SID

Course

SID

SNO

Course

3936

101

1108

21

113

1108

113

1108

23

113

8507

101

8507

23

101

8507

29

101

24

Ph
Php k
kt n
ni ngo
ngoi

V d: chn, chiu, kt ni
a ra tn ca cc sinh vin sng
Bundoora v m kho hc m sinh vin
ng k:

Student

Id

Name
Robert

Kew

3936

Glen

Bundoora

8507

Norman

Bundoora

Mary

Balwyn

SID

Course

3936

101

1108

113

8507

101

a
b
c

( suburb ="Bundoo ( Student >< Id = SID Enrol ))

1108

8452

Enrol

name ,Course

Php kt ni ngoi tri

Suburb

Kt qu
Name

Course

Glen

101

Norman

101

Student
ID

Name

Suburb

1108

Robert

Kew

3936

Glen

Bundoora

Kt qu

Balwyn

SID

Course

3936

101

1108

113

8507

101

ID

Name

Suburb

Course

1108

Robert

Kew

113

3936

Glen

Bundoora

101

8507

Norman

Bundoora

101

8452

Mary

Balwyn

null

a
b
c

xx
yy
zz
xx
yy

xx
zz

Course

Systems

BCS

Database

BCS

Database

MCS

Algebra

MCS

x
y
z

Course

a r x
b r x
s y
null
null t z
null
null

nh ngha: Php chia gia 1 quan h


r bc n v quan h s bc m (m<n)
vi s quan h ca s l tp con
ca s quan h ca r l mt tp
cc (n-m)-b sao cho khi ghp mi
b thuc s vi t th ta u c mt b
thuc r
C php: R = R1 : R2
28

Luyn tp
Php hp (Union)

Subject
Course

r
s
t

27

aa

V d: a ra mn hc c dy
tt c cc kho hc
Name

r
r
v

26

Ph
Php chia (ti
(tip)
aa
aa
aa
bb
cc

a r x
b r x
null
c v null

Php chia

Enrol

Norman Bundoora
Mary

x
y
z

25

a ra danh sch cc sinh vin v m


kho hc m sinh vin ng k nu c

8452

r
s
t

Php kt ni ngoi phi

Php kt ni ngoi - V d:

8507

r
r
v

BCS
MCS

V d:

Kt qu
Name
Database

29

30

Luyn tp

Luyn tp

Php giao (intersection)

Php tr (minus)

V d:

V d:

31

32

Luy
Luyn t
tp

Luyn tp

Php tch - Cc (Cartesian Product)

Php chiu (Projection)

V d:
V d:

33

34

Luyn tp

Luy
Luyn t
tp
Php kt ni (join)

Php chn (Selection)

V d:
V d:

35

36

Luy
Luyn t
tp

Luyn tp

Php chia (Division)

Kt ni t nhin (natural join)

V d:

37

38

Bi tp
Cho CSDL gm 3 quan h sau: S(Cc hng cung
ng), P (cc mt hng), SP(cc s cung ng).

Yu cu ca bi tp
Biu din cc truy vn sau bng i s
quan h:
a ra danh sch cc mt hng mu
Cho bit S# ca cc hng cung ng mt hng
'P1' hoc 'P2'
Lit k S# ca cc hng cung ng c hai mt
hng 'P1' v 'P2'
a ra S# ca cc hng cung ng t nht mt
mt hng mu
a ra S# ca cc hng cung ng tt c cc
mt hng.

39

40

Li gii ca bi tp

Bi tp v nh
Cho cc quan h sau:
Supplier

41

SupplyProduct

sid

sname

size

city

sid

pid

quantity

S1

Dustin

100

London

S1

P1

500

S2

Rusty

70

Paris

S1

P2

400

S3

Lubber

120

London

S1

P3

100

S2

P2

200

Product

S3

P4

100

pid pname colour

S2

P3

155

P1

Screw

red

P2

Screw

green

P3

Nut

red

P4

Bolt

blue
42

Bi tp v nh

Bi tp v nh

Biu din cc truy vn sau bng biu


thc i s quan h:
a ra {sid,sname,size,city} ca cc
Supplier c tr s ti London
a ra {pname} ca tt c cc mt
hng
a ra {sid} ca cc Supplier cung cp
mt hng P1 hoc P2
a ra {sname} ca cc Supplier cung
cp mt hng P3
a ra {sname} ca cc hng cung ng
t nht mt mt hng mu
43

a ra {sid} ca cc hng cung ng tt


c cc mt hng mu
a ra {sname} ca cc hng cung ng
t nht mt mt hng mu hoc mu
xanh
a ra {sname} ca cc hng cung ng
t nht 1 mt hng mu v mt mt
hng mu xanh
a ra {sid} ca cc hng khng cung
ng mt hng no
44

Ngn ng QBE

45

46

Truy vn trn mt quan h

QBE (Query
(Query--ByBy-Example)
Example)
L mt ngn ng truy vn d liu

P.~ Print

Cc cu truy vn c thit lp bi mt
giao din ho
Ph hp vi cc cu truy vn n gin,
tham chiu n t bng
Mt s sn phm: IBM
(IBM Query
Management Facility), Paradox, MS.
Access, ...
47

Student

ID

Name

P._x

Suburb

Bundoora

Biu thc i s quan h tng ng

suburb="Bundoora ( Student )
48

Truy vn trn nhiu quan h

Truy v
vn trn m
mt quan h
h (ti
(tip)
La chn tt c cc ct
Student

ID

Name

P.

a ra tn ca cc sinh vin c ng
k t nht mt kho hc

Suburb

Student

Bundoora

ID

Name

_id

Sp xp
Student

ID

Name
P.AO(1)

P.AO(2)

Student

ID

Name

_id

Course

Suburb

Enrol

SID

Course

_id

P._name

50

Hp iu kin
c s dng biu din

Cc php ton: AVG, COUNT, MAX, MIN,


SUM

iu kin trn nhiu hn 1 thuc tnh


iu kin trn cc trng tnh ton tp
hp

V d: a ra tn cc thnh ph v s
lng sinh vin n t thnh ph
ID

SID
_id

49

Cc tnh ton tp hp

Student

Enrol

a ra tn cc sinh vin khng ng


k mt kho hc no

Suburb

AO: sp xp tng dn
DO: sp xp gim dn

Suburb

P._name

Name

_id

V d: a ra danh sch cc thnh


ph c nhiu hn 5 sinh vin

Suburb
G.P.

P.COUNT._id

Student

ID
_id

Name Suburb
G.P.

Condition
COUNT._id > 5

G. ~ Grouping
51

Cc thao tc thay i d liu


Xa
Student
D.

ID

Name

52

Tnh y ca QBE
C th biu din c 5 php ton i
s c s ( , , ,\,x)

Suburb

1108

Thm
Student
I.

ID
1179

Name
David

Suburb
Evry

Sa
Student

ID
1179

Name

Suburb
U.Paris
53

54

nh ngh
ngha d
d li
liu trong QBE
(ti
(tip)

nh ngh
ngha d
d li
liu trong QBE
s dng cng qui cch v giao din
ha nh i vi truy vn.

Cc khung nhn
I.View V

I.Student

I.

ID

Name

KEY

I.

TYPE

I.

CHAR(5)

CHAR(30)

CHAR(30)

DOMAIN

I.

Sid

SName

Surb

INVERSION

I.

I.

ID

I. _id

Suburb
Student

ID
_id

Name

Name
_name

Suburb

_name

Course
_course

Enrol

SID
_id

Course
_course

55

56

SQL (Structured Query Language)


1975: SEQUEL
System-R

1976: SEQUEL2
1978/79: SQL

Ngn ng SQL

System-R

1986:
1989:
1992:
1996:

chun
chun
chun
chun

SQL-86
SQL-89
SQL-92
SQL-96

57

Cc th
thnh ph
phn c
ca SQL

58

Ngn ng
ng
nh ngh
ngha d
d li
liu

Ngn ng nh ngha d liu (Data Definition Language)


Cu trc cc bng CSDL
Cc mi lin h ca d liu
Quy tc, rng buc p t ln d liu
Ngn ng thao tc d liu (Data Manipulation Language)
Thm, xo, sa d liu trong CSDL
Truy vn d liu
Ngn ng iu khin d liu (Data Control Language)
Khai bo bo mt thng tin
Quyn hn ca ngi dng trong khai thc CSDL
59

Cc thng tin c nh ngha bao gm

S quan h
Kiu d liu hay min gi tr ca mi thuc tnh
Cc rng buc ton vn
Cc ch s i vi mi bng
Thng tin an ton v y quyn i vi mi
bng
Cu trc lu tr vt l ca mi bng trn a

c biu din bi cc lnh nh ngha d


liu
60

10

C ph
php

Quy c t tn v
v ki
kiu d li
liu
To bng

Quy c t tn
32 k t: ch ci, s, du _

CREATE TABLE tab(


col1 type1(size1)[NOT NULL], ...,
col2 type2(size2)[NOT NULL], ...,
.....
[CONSTRAINT <constraint name> <constraint
type> clause]
...
);

Kiu d liu (SQL-92)

CHAR(n)
VARCHAR(n)
Int
Smallint
Numeric(p,d)
Real, double
float(n)
Date
time

Xo bng
DROP TABLE tab
61

To bng - V d:

62

To bng - V d (tip)

CREATE TABLE Supplier(


sid varchar(4) NOT NULL,
sname varchar(30) NOT NULL,
size smallint,
city varchar(20),
CONSTRAINT KhoachinhS primary key(sid)
);

CREATE TABLE SupplyProduct(


sid varchar(4) NOT NULL,
pid varchar(4) NOT NULL,
quantity smallint,
primary key(sid,pid),
foreign key(sid) references Supplier(sid),
foreign key(pid) references Product(pid),
check(quantity >0)
);

63

Kiu rng buc

64

Th
Thm/xo
m/xo/s
/sa c
ct ca cc bng

Rng buc ton vn (RBTV) v gi


tr min
CONSTRAINT <name>

Thm
ALTER TABLE <tn bng>
ADD COLUMN <tn ct> <kiu d liu> [NOT NULL];

Xo

CHECK <condition>

RBTV v kho ngoi hay ph thuc


tn ti
CONSTRAINT <name> FOREIGN KEY (fk1,fk2,)
REFERENCES tab(k1,k2);
65

ALTER TABLE <tn bng>


DROP COLUMN <tn ct>;

Sa
ALTER TABLE <tn bng>
CHANGE COLUMN <tn ct> <kiu d liu mi>;

66

11

V d:

Thm/xa cc rng buc


Thm

ALTER TABLE SupplyProduct ADD


COLUMN price real NOT NULL;
ALTER TABLE SupplyProduct DROP
COLUMN price;
ALTER TABLE Supplier CHANGE
COLUMN sname TO varchar(20);

ALTER TABLE <tn bng>


ADD CONSTRAINT <tn rng buc>
<kiu rng buc>

Xa
ALTER TABLE <tn bng>
DROP CONSTRAINT <tn rng buc>
67

68

Truy vn khng iu kin


trn mt bng

Ngn ng truy vn d liu


C php cu lnh SQL:

Tm thng tin t cc ct ca bng

SELECT [DISTINCT] <DS>|*|<Biu thc>|<Hm TV>


FROM
<DS bng>
[WHERE
<iu kin tm kim>]
[GROUP BY <DS ct> [HAVING <iu kin>]]
[ORDER BY <Danh sch ct> [ASC|DESC]]
[UNION |INTERSECT| MINUS <Cu truy vn
khc>]

SELECT
FROM
SELECT
FROM

V d
SELECT
FROM
Student

69

Truy v
vn khng i
iu ki
kin trn m
mt b
bng
Mt s
s v d kh
khc:

ColumnName, ColumnName, ...


TableName;
*
TableName;
Name
Student;

Id

Name

Suburb

1108

Robert

Kew

3936

Glen

Bundoora

Glen

8507

Norman

Bundoora

Norman

8452

Mary

Balwyn

Mary

name

(Student )

Name
Robert

70

Truy v
vn c
c i
iu ki
kin trn 1 b
bng
Chn cc bn ghi (dng)

a ra tn ca cc mt hng
SELECT pname FROM Product;

a ra tn khc nhau ca cc mt hng


SELECT DISTINCT pname
FROM Product;

SELECT
FROM
WHERE

ColumnName,ColumnName, ...
TableName
condition_expression;

SELECT
FROM
WHERE

*
Student
suburb=Bundoora ;

V d

a ra ton b thng tin v cc hng cung ng


SELECT * FROM Supplier;

a ra m s hng cung ng, m mt hng c


cung ng v 10 ln s lng mt hng c
cung ng
SELECT sid, pid, quantity*10
FROM SupplyProduct;
71

Student

suburb="Bundoora ( Student )

Id

Name

Suburb

1108

Robert

Kew

Id

Name

Suburb

3936

Glen

Bundoora

3936

Glen

Bundoora

8507

Norman

Bundoora

8507

Norman

Bundoora

8452

Mary

Balwyn

72

12

Truy v
vn c
c i
iu ki
kin trn 1 b
bng
Mt s
s v d kh
khc:

Bi
Biu di
din i
iu ki
kin l
la ch
chn

a ra tn ca cc hng cung ng c
tr s ti London
SELECT sname FROM Supplier
WHERE city = London;

a ra m s v tn ca cc hng
cung ng nm London v c s
nhn vin ln hn 75
SELECT sid, sname FROM Supplier
WHERE city = London AND size > 75;

Cc php ton quan h: =, !=, <, >, <=, >=


Cc php ton logic: NOT, AND, OR
Php ton phm vi: BETWEEN, IN, LIKE
Kiu d liu s
attr BETWEEN val1 AND val2 ( (attr>=val1) and
(attr<=val2) )
attr IN (val1, val2, ...) ( (attr=val1) or (attr=val2) or ... )

Kiu d liu xu
LIKE: s dng i snh mu xu vi cc k t % hoc
_,? (thay th cho 1 k t bt k), * hay % (thay th
cho 1 xu k t bt k)

73

Bi
Biu di
din i
iu ki
kin l
la ch
chn V d:

Bi
Biu di
din i
iu ki
kin l
la ch
chn V d (ti

p)
(ti

a ra thng tin ca cc hng cung ng c s


nhn vin trong khong t 100 n 150
SELECT * FROM Supplier
WHERE size BETWEEN 100 AND 150;

a ra m s ca hng cung ng mt hng P1


hoc P2
Cch 1:
SELECT sid
WHERE pid
Cch 2:
SELECT sid
WHERE pid

74

a ra thng tin ca hng sn xut


c tr s t ti thnh ph bt u
bng ch New
SELECT * FROM SUPPLIER
WHERE city LIKE New%;

FROM SupplierProduct
= P1 OR pid = P2;
FROM SupplierProduct
IN (P1, P2);
75

Truy v
vn c
c s dng ph
php to
ton
i tn
SQL cho php i tn cc bng v cc ct
trong mt cu truy vn (sau mnh
SELECT v FROM) s dng cu trc:
<tn c> AS <tn mi>
a ra tn v s nhn vin ca cc hng
cung ng Paris
SELECT sname AS HangOParis, size AS SoNhanVien
FROM Supplier
WHERE city = Paris;
SELECT
SID , Stud.Name as SName,
Sub.Name as Subject
FROM
Student as Stud,Takes,
Subject as Sub
WHERE
(Id=SID) and (SNO = No)

77

76

Truy v
vn ph
phc t
tp trn nhi
nhiu b
bng
iu kin kt ni
SELECT
FROM
WHERE

T1.C1,T1.C2,T2.C1,T2.C4, ...
T1, T2
condition_expression

SELECT
FROM
WHERE

Id, Name, Suburb,Course


Student,Enrol
Id=SID

V d: a ra danh sch m sinh vien (Id),


tn sinh vin (Name), thnh ph (Suburb),
m kho hc (Course) m cc sinh vin
ng k

78

13

Truy v
vn ph
phc t
tp trn nhi
nhiu b
bng
Mt s
s v d kh
khc:

Lo
Loi tr
tr cc b
bn ghi tr
trng nhau

a ra tn ca hng c cung ng mt
hng P1

T kho DISTINCT

SELECT sname
FROM Supplier S, SupplyProduct SP
WHERE S.sid = SP.sid AND SP.pid = P1;

a ra tn v m s ca hng cung ng t
nht mt mt hng mu
SELECT sname, sid
FROM Supplier S, SupplyProduct SP, Product P
WHERE S.sid = SP.sid AND P.pid = SP.pid AND
P.colour = red;

SELECT DISTINCT <bt1>, <bt2>,


FROM <bang1>,<bang2>,

V d: a ra danh sch tn cc khoa


(dept) tng ng vi cc kho hc
(Course). Mi gi tr ch hin th mt
ln
SELECT DISTINCT Dept
FROM Course

79

Tm kim c sp xp

Ph
Phn nh
nhm cc bn ghi k
kt qu
qu

Sp xp cc bn ghi kt qu theo mt th
t cho trc
SELECT
<bt1>, <bt2>,
FROM
<bang1>,<bang2>,
[WHERE
<dieu kien chon>]
ORDER BY <tt1>|<bieu thuc so 1> [ASC|DESC]

V d: a ra danh sch tn cc sinh vin


theo th t tng dn
SELECT
Name
FROM
Student
ORDER BY Name ASC
81

iu ki
kin hi
hin th
th cc bn ghi k
kt qu
qu

Phn nhm cc bn ghi kt qu theo gi tr ca 1


hoc nhiu thuc tnh
SELECT
<bt1>, <bt2>,
FROM
<bang1>,<bang2>,
[WHERE
<dieu kien chon>]
[GROUP BY <tt1>, <tt2>, ]

Ct c ch ra trong mnh GroupBy c s


dng lm c s chia nhm. Ct ny cng bt
buc phi c ch ra trong mnh Select
V d a ra tn cc sinh vin nhm theo thnh
ph ca sinh vin
SELECT
Suburb, Name
FROM
Student
GROUP BY
Suburb

SELECT Suburb,
Count(Id)
FROM
Student
GROUP BY
Suburb

82

Cc ph
php to
ton tp h
hp:
UNION, MINUS, INTERSECT
V d: a ra danh sch tn cc mn hc khng
c sinh vin no tham d

La chn cc bn ghi kt qu hin th


SELECT
FROM
[WHERE
HAVING

80

<bt1>, <bt2>,
<bang1>,<bang2>,
<dieu kien chon>]
<dieu kien in ket qua>

SELECT DISTINCT Subject.Name


FROM Subject
MINUS
SELECT DISTINCT Subject.Name
FROM Student, Takes, Subject
WHERE Student.Id = Takes.SID and Takes.SNO = Subject.No

V d: a ra tn cc thnh ph c nhiu
hn 3 sinh vin

Tm sid ca hng cung ng ng thi 2 mt hng


P1 v P2

SELECT
Suburb, COUNT(ID)
FROM
Student
GROUP BY Suburb
HAVING COUNT(ID) > 3

SELECT sid FROM SupplyProduct WHERE pid = P1


INTERSECT
SELECT sid FROM SupplyProduct WHERE pid = P2

Tm m s ca hng khng cung ng mt hng


no
83

SELECT sid FROM Supplier


MINUS
SELECT sid FROM SupplyProduct

84

14

Cc cu truy v
vn lng nhau

Cc cu truy v
vn lng nhau (ti
(tip)
Kim tra thnh vin tp hp vi IN
v NOT IN:

L trng hp cc cu truy vn (con) c vit


lng nhau
Thng c s dng

a ra m s ca cc hng cung ng
ng thi 2 mt hng P1 v P2:

Kim tra thnh vin tp hp (IN, NOT IN)


So snh tp hp (>ALL, >=ALL, <ALL,<=ALL,=ALL, NOT
IN,SOME, )

SELECT DISTINCT sid FROM SupplyProduct


WHERE pid = P1 AND sid IN (SELECT sid FROM
SupplyProduct SP2 WHERE SP2.pid = P2);

vd:SELECT *
FROM Supplier
WHERE SIZE>=ALL(SELECT SIZE FROM Supplier);

a ra sid ca cc hng khng cung


ng mt hng P3:

Kim tra cc bng rng (EXISTS hoc NOT EXISTS)

SELECT sid FROM SupplyProduct


WHERE sid NOT IN (SELECT sid From
SupplyProduct SP2 WHERE SP2.pid = P3);

Cc truy vn con lng nhau thng qua mnh


WHERE
85

Cc cu truy v
vn lng nhau (ti
(tip)
So snh tp hp: S dng cc php ton
<,>, ,,=, km vi cc mnh ANY v
ALL
a ra tn ca cc hng c s nhn vin
ng nht:
SELECT sname FROM Supplier
WHERE size ALL(SELECT size FROM Supplier)
a ra sid ca hng cung ng mt mt hng
vi s lng bng t nht 1 trong s lng
cc mt hng c cung ng bi S2
SELECT sid FROM SupplyProduct
WHERE sid S2 AND quantity = ANY(SELECT
quantity FROM SupplyProduct SP2 WHERE
SP2.sid = S2);

86

Cc cu truy v
vn lng nhau (ti
(tip)
Kim tra tp hp rng vi EXISTS v
NOT EXISTS
EXISTS(cu truy vn con): nhn gi tr
ng khi cu truy vn con cho ra kt
qu l mt quan h khc rng
NOT EXISTS(cu truy vn con): nhn
gi tr ng khi cu truy vn con cho ra
kt qu l mt quan h rng

87

88

Cc hm th vin

Cc cu truy v
vn lng nhau (ti
(tip)

Hm tnh ton trn nhm cc bn ghi

a ra thng tin ca cc nh cung cp


cung ng t nht mt mt hng

SELECT * FROM Supplier S


WHERE EXISTS (SELECT sid FROM
SupplyProduct SP WHERE S.sid = SP.sid);

MAX/MIN
SUM
AVG
COUNT

Hm tnh ton trn bn ghi


Hm ton hc: ABS, SQRT, LOG, EXP, SIGN,
ROUND
Hm x l xu k t: LEN, LEFT, RIGHT, MID
Hm x l thi gian: DATE, DAY, MONTH,
YEAR, HOUR, MINUTE, SECOND
Hm chuyn i kiu gi tr: FORMAT

a ra thng tin ca cc nh cung cp


khng cung ng mt hng no
SELECT * FROM Supplier S
WHERE NOT EXISTS (SELECT * FROM
SupplyProduct SP WHERE S.sid = SP.sid);
89

90

15

Mt s
s v d vi c
cc h
hm th vi
vin

Mt s
s truy v
vn ph
phc t
tp
a ra tn ca hng S1 v tng s mt hng m hng cung ng

C bao nhiu mt hng khc nhau c cung ng


SELECT COUNT(DISTINCT pid)
FROM SupplyProduct;

SELECT sname, SUM(quantity)


FROM Supplier S, SupplyProduct SP
WHERE S.sid = SP.sid AND S.sid = S1

C tng cng bao nhiu nhn vin lm cho cc


hng Paris

GROUP BY sname;

a ra m s cc hng cung ng v s lng trung bnh cc mt

SELECT SUM(size) FROM Supplier


WHERE city = Paris;

hng c cung ng bi tng hng

a ra s lng mt hng trung bnh m hng S1


cung ng
SELECT AVG(quantity)
FROM SupplyProduct
WHERE sid = S1;

SELECT sid, AVG(quantity) FROM SupplyProduct

GROUP BY sid;

a ra m s cc hng cung ng m s lng mt hng trung


bnh c cung cp bi hng l trong khong t 75 n 100
SELECT sid, AVG(quantity) FROM SupplyProduct
91

Cc cu l
lnh c
cp nh
nht d
d li
liu

GROUP BY sid HAVING AVG(quantity) BETWEEN 75 AND 100

92

Cc cu l
lnh c
cp nh
nht d
d li
liu

Thm

Xa d liu:

INSERT INTO table[(col1,col2,)]


VALUES
(exp1,exp2,)
INSERT INTO table[(col1,col2,)]
SELECT
col1,col2,
FROM
tab1, tab2,
WHERE
<dieu_kien>

DELETE FROM <Tn bng>


WHERE <iu kin xa>;

V d:
DELETE FROM SupplyProduct
WHERE sid = S4;
DELETE FROM Student
WHERE Suburb = Bundoora;

V d
INSERT INTO Student(Id, Name, Suburb)
VALUES
(1179,David,Evr)
93

94

Cc cu l
lnh c
cp nh
nht d
d li
liu
Sa i d liu:
UPDATE <tn bng> SET (<Tn ct> = Gi tr mi , )
[WHERE <iu kin sa i>];

V d:
Hng S1 chuyn ti Milan
UPDATE Supplier SET city = Milan
WHERE sid = S1;
Tt c cc mt hng c cung cp vi s lng nh hn
100 u tng s lng ln 1.5 ln
UPDATE SupplyProduct SET quantity = quantity * 1.5
WHERE quantity < 100;

95

96

16

Li hay p
"Ngi km thng minh nhng say
sa vi cng vic, tin mnh v xa
hn ngi cc thng minh m lnh
m vi cng vic".
J. Deval

97

17

Ni dung

L thuyt thit k
c s d liu quan h

Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn
B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

Tng quan v thit k CSDLQH


Ph thuc hm
Php tch cc s quan h (SQH)
Cc dng chun i vi cc SQH

Tng quan v
v thi
thit k
k CSDLQH

Cc v
vn

i v
vi CSDL VD

Vn ca mt s quan h c thit k
cha tt:

D tha d liu: Hng no cung ng nhiu hn 1


mt hng th thng tin ca hng s b lp li
trong bng (VD S1), mt hng c cung ng bi
nhiu hng cng b lp li (VD Screw)
D thng d liu khi thm: Nu c mt hng
cha cung cp mt hng no, vy gi tr cho thuc
tnh product v quantity trong b d liu mi c
thm vo s khng c xc nh
D thng d liu khi xa: Nu mt hng ch
cung cp 1 mt hng, nu ta mun xa thng tin
v s cung cp ny th ta s mt thng tin v hng
cung cp
D thng d liu khi sa i: Do thng tin b
lp li nn vic sa i 1 b d liu c th dn n
vic khng nht qun trong d liu v mt hng
nu s st khng sa i trn ton b cc b gi tr
4
lin quan n hng

Gi s ta cn mt c s d liu lu tr thng tin


v cc hng cung ng. S quan h c thit
k trong tt c cc thuc tnh cn thit c
lu trong ng 1 quan h:
Suppliers(sid, sname, city, numofemps, product, quantity)

sid

sname

city

NOE

S1

Smith

London

100

product quantity
Screw

50

S1

Smith

London

100

Nut

100

S2

J&J

Paris

124

Screw

78

S3

Blake

Tokyo

75

Bolt

100

xu
xut gi
gii ph
php

Mc ch ca chu
chun ho
ho

Nu s trn c thay th bng


2 s quan h

Xc nh c 1 tp cc lc quan
h cho php tm kim thng tin mt
cch d dng, ng thi trnh c
d tha d liu
Hng tip cn: Mt trong nhng k
thut c s dng l Tch cc lc
quan h c vn thnh nhng
lc quan h chun hn. Ph thuc
hm c th c s dng nhn bit
cc lc cha chun v xut
hng ci tin

Supp(sid, sname, city, numofemps)


Supply(sid, product,quantity)

Th tt c cc vn nu trn s
c loi b. Tuy nhin khi tm kim
d liu th chng ta phi thc hin
kt ni 2 bng ch khng ch l
chn v chiu trn 1 bng nh
cch thit kt trc
5

Ph
Ph thu
thuc h
hm

V d

nh ngha: Cho R(U) l mt s

quan h vi U l tp thuc tnh


{A1, A2,,An}. X, Y l tp con ca
U. Ni rng X xc nh Y hay Y l
ph thuc hm vo X ( X Y)
nu vi 1 quan h r xc nh trn
R(U) v 2 b bt k t1, t2 thuc r
m t1[X] = t2[X] th ta c t1[Y] =
t2[Y]

V d 1:

a1

b1

c1

a2

b2

c2

a3

b1

c1

a4

b3

c2

A B, A C, B C
V d 2: trong c s d liu mu dng trong
chng 3, ta c bng S, vi mi gi tr ca sid
u tn ti mt gi tr tng ng cho sname,
city v status. Do ta c sid sname, sid
city, sid status

H qu
qu ca h
h tin
Amstrong

H tin
Amstrong
i v
vi ph
ph thu
thuc h
hm
Cho
R(U) l 1 s quan h, U l tp cc thuc tnh.
X,Y,Z,W U
(K hiu: XY = X Y)

Phn x (reflexivity)
Nu Y X th X Y
Tng trng (augmentation)
Nu X Y th XZ YZ

Lut hp (union)
Nu X Y, X Z th X YZ.
Lut ta bc cu (pseudotransitivity)
Nu X Y, WY Z th XW Z.
Lut tch (decomposition)
Nu X Y, Z Y th X Z

Bc cu (transitivity)
Nu X Y, Y Z th X Z
9

V d

Bao
ng c
ca m
mt t
tp ph
ph thu
thuc h
hm

V d 1:
Cho tp ph thuc hm {ABC, CA}
Chng minh: BC ABC
CA
AB C
BC AB, AB ABC

10

BC AB
AB ABC
BC ABC

V d 2:
Cho lc quan h R(ABEIJGH) v tp
ph thuc hm F = {ABE, AGJ, BEI,
EG, GIH}
Chng minh: AB GH
11

nh ngha: Cho F l mt tp ph thuc


hm. Bao ng ca F k hiu l F+ l tp
ln nht cha cc ph thuc hm c th
c suy ra t cc ph thuc hm trong F
Bao ng ca mt tp ph thuc hm c th
rt ln, s chi ph rt tn km cho vic tm
kim bao ng ca 1 tp ph thuc hm. Do
thun tin cho vic kim tra xem mt
ph thuc hm c c suy din t mt tp
ph thuc hm c sn khng, ngi ta c
th s dng Bao ng ca 1 tp thuc tnh
12

Bao
ng c
ca m
mt t
tp c
cc thu
thuc t
tnh
i v
vi t
tp c
cc ph
ph thu
thuc h
hm

Thu
Thut to
ton 1: T
Tm bao
ng c
ca m
mt t
tp thu
thuc t
tnh
i v
vi t
tp ph
ph thu
thuc h
hm

nh ngha: Cho mt lc quan h

R(U), F l mt tp ph thuc hm trn U.


X l tp con ca U. Bao ng ca tp
thuc tnh X k hiu l X+ l tp tt c
cc thuc tnh c xc nh hm bi X
thng qua tp F
X+ = {A U| X
A F+}
Ta c th thy l nh ngha v bao ng
ca mt tp thuc tnh da trn bao
ng ca tp ph thuc hm. Trn thc
t, ngi ta a ra mt thut ton
gip xc nh bao ng ca mt tp
thuc tnh d dng hn

Vo: Tp hu hn cc thuc tnh U, tp cc ph


thuc hm F trn U
X U
Ra: X+
Thut ton
X0 = X
B0
Bi
Tnh Xi t Xi-1
Nu
Y Z F v Y Xi-1 v A Z v A Xi-1
th
Xi = Xi-1 A
ngc li, Xi = Xi-1
Nu Xi Xi-1
th
lp Bi
ngc lai, chuyn Bn
Bn X+ = Xi

V d

13

X Y c suy din t h tin


Amstrong khi v ch khi Y X+
Chng minh:

Cho R(U) , U = {A, B, C, D, E, F}


F = {ABC, BCAD, DE, CFB}
Tnh (AB)+
Thc hin:
Bc
Bc
Bc
Bc
Bc

0:
1:
2:
3:
4:

14

Gi s Y=A1...An, vi A1,...,An l cc
thuc tnh v Y X+
T nh ngha X+ ta c X Ai. p dng
tin Amstrong cho mi i, suy ra X Y
nh lut hp.
Ngc li, gi s c X Y, p dng h tin
Amstrong cho mi i, ta c X Ai, Ai Y
nh lut tch. T suy ra Y X+

X0 = AB
X1 = ABC ( do AB C)
X2 = ABCD (do BCAD)
X3 = ABCDE (do DE)
X4 = ABCDE
15

16

Kho
Kho

Thu
Thut to
ton 2: T
Tm kho
kho ti thi
thiu

nh ngha: Cho lc quan h R(U), F l

Vo: U = {A1, A2, , An} , F


Ra: kho ti thiu K xc nh c
trn U v F
Thut ton
K0= U
B0
Nu (Ki-1\{Ai})U
Bi
th
Ki= Ki-1\ {Ai}
ngc li,
Ki= Ki-1
n+1
n
B
K=K

mt tp cc ph thuc hm xc nh trn U. K
l mt tp con ca U, K c gi l kho ti
thiu ca R nu nh
KU l mt ph thuc hm trong F+
Vi mi tp con thc s K ca K th KU khng
thuc F+

Vi nhng g ta cp trong phn bao


ng trn, ta c th ni, tha mn l
mt kho ti thiu th K+ = U v K l tp
thuc tnh nh nht c tnh cht nh vy
17

18

V d

Nh
Nhn x
xt v
v ph
ph thu
thuc hm

Cho U = {A, B, C, D, E}
F = {ABC, ACB, BCDE}. Tm mt kho ti thiu ca mt
quan h r xc nh trn U v F
Thc hin
B0: K0= U = ABCDE
B1: Kim tra xem c tn ti ph thuc hm (K0\{A})U
(BCDEU) hay khng. Ta cn phi s dng thut ton 1
kim tra iu kin tng ng l (BCDE)+ c bng U khng.
(BCDE)+= BCDE , khc U. Vy K1 = K0 = ABCDE
B2: Tng t, th loi b B ra khi K1 ta c (ACDE)+ =
ABCDE = U. Vy K2 = K1 \ {B} = ACDE
B3: K3 = ACDE
B4: K4 = ACE
B5: K5 = AC
Vy AC l mt kho ti thiu m ta cn tm

T mt tp cc ph thuc hm c th
suy din ra cc ph thuc hm khc
Trong mt tp ph thuc hm cho sn
c th c cc ph thuc hm b coi l
d tha
Lm th no c c mt tp
ph thuc hm tt?

19

20

Tp ph
ph thu
thuc hm tng
ng ng
ng

V d

nh ngha: Tp ph thuc hm F l ph ca
tp ph thuc hm G hay G l ph ca F
hay F v G tng ng nu F+ = G+.

Cho lc quan h R(U) vi U = {A, B, C, D, E,


F}
F = {ABC, DEF, CBD}
G = {ACB, DEF, BCD}
Hi F v G c phi l 2 tp pth tng ng hay
khng?
Thc hin:
i vi cc ph thuc hm trong F

K hiu l F

Kim tra tnh tng ng ca 2 tp ph


thuc hm
B.1. Vi mi ph thuc hm Y

Z F, Z Y+ (trn
G) th Y Z G+
Nu vi ph thuc hm f F, f G+ th F+
G+
B.2. Tng t, nu ph thuc hm g G, g F+
th G+ F+
B.3. Nu F+ G+ v G+ F+ th F G

f1= ABC. AB+ (i vi G) = ABCDEF = U. Vy f1 thuc


G+
f2= DEF thuc G nn chc chn thuc G+
f3= CBD. C+ (i vi G) = C khng cha BD. Vy f3
khng thuc G+
Kt lun F khng tng ng vi G

21

22

Tp ph
ph thu
thuc hm kh
khng d
d th
tha

Ph
Ph ti thi
thiu ca 1 t
tp ph
ph thu
thuc hm

/N: Tp ph thuc hm F l khng d


tha nu khng
XY F sao cho F \
{XY} F.
Thut ton 3: Tm ph khng d tha ca 1
tp ph thuc hm

/N: Fc c gi l ph ti thiu ca 1
tp ph thuc hm F nu tha mn 3
iu kin sau:

Vo: Tp thuc tnh U, F = {Li Ri: i = 1..n}


Ra : Ph khng d tha F ca F
Thut ton
B0 F0= F
Bi Nu Fi-1\ {LiRi} Fi-1
th
Fi = Fi-1 \ {LiRi}
ngc li, Fi = Fi-1
Bn+1 F = Fn

23

k1:

Vi f Fc, f c dng X A,
trong A l 1 thuc tnh
k2: Vi f = XY Fc, ! A X (A l 1
thuc tnh):
(Fc \ f) U {(X \ A)Y} Fc
k3: ! XA Fc : Fc \ {XA} Fc
24

Thu
Thut to
ton 4: T
Tm ph
ph ti thi
thiu
ca m
mt t
tp ph
ph thu
thuc h
hm

V d 1

Vo: Tp thuc tnh U, F = {LiRi: i = 1..n}


Ra: ph ti thiu Fc ca tp ph thuc hm F
Thut ton
B.1. Bin i F v dng F1={Li Aj}
trong Aj l 1 thuc tnh bt k thuc U (tho mn k1)
B.2. Loi b thuc tnh tha trong v tri ca cc ph thuc
hm
Ln lt gin c tng thuc tnh trong v tri ca tng
ph thuc hm trong F1 thu c F1. Nu F1 F1 th
loi b thuc tnh ang xt
Khi khng c s gin c no xy ra na ta thu c
F2 tha mn k2
B.3. Loi b ph thuc hm d tha
Ln lt kim tra tng ph thuc hm f. Nu F2 \ f F2
th loi b f
Khi khng c ph thuc hm no c th loi b thi thu c
F3 tho mn k3
B.4. Fc = F3

U = {A,B,C}
F = {ABC, BC, AB, ABC}. Tm ph
ti thiu ca F?
F1 = {AB, AC, BC, ABC}
Xt cc pth trong F1 m v tri c nhiu hn 1
thuc tnh ABC. Gin c A th ta cn BC c
trong F1, vy A l thuc tnh tha. Tng t ta
cng tm c B l tha, vy loi b lun ABC
khi F1.F2 = {AB, AC, BC}
B pth tha: AC l tha. Vy Fc = {AB,
BC}

25

V d 2

26

V d 2 (ti
(tip)

Tm ph ti thiu ca tp ph thuc hm
F = {AB, ABCDE, EFG, ACDFEG}

F1 = {AB, ABCDE, EFG, ACDFE,


ACDFG}
Loi b thuc tnh tha trong 3 ph thuc hm
ABCDE, ACDFE v ACDFG
Xt ABCDE: Gi s gin c A , ta cn
BCDE, kim tra BCDE c c suy ra t F1
khng, ta tnh (BCD)+ (i vi F1). (BCD)+ =
BCD, khng cha E, vy th BCDE khng c
suy din ra t F, vy A khng phi l thuc tnh
tha trong pth ang xt. B l tha v t F1 ta c
AB dn n (ACD)+ = ABCDE c cha E
Lm tng t ta thy khng c thuc tnh no l
tha na. F2 = {AB, ACDE, EFG, ACDFE,
ACDFG}
27

Ph
Php t
tch c
cc S
quan h
h

Loi b pth tha trong F2: Ln lt th loi b


1 pth ra khi F2, nu tp pth thu oc sau khi
loi b vn tng ng vi F2 th pth va loi
l tha
A B khng tha v nu loi pth ny khi F2 th
t tp ph thuc hm cn li A+ khng cha B
Tng t , ACDE, EF G khng tha
ACDF E l ph thuc hm tha v nu loi b
pth ny, trong tp pth vn cn li ACDE, theo
tin tng trng ta s suy ra c ACDFE
ACDFG l tha v nu loi b pth ny, trong
tp pth cn li vn c ACDE v EFG, do ta
vn c (ACDF)+ = ACDEFG c cha G
Vy Fc = { AB, ACDE, EFG}
28

Ph
Php t
tch khng m
mt m
mt thng tin

Mc ch
Thay th mt s quan h R(A1, A2, ,
An) bng mt tp cc s con {R1, R2,
, Rk} trong Ri R v R = R1 U R2 U
U Rk

Yu cu ca php tch

/N: Cho lc quan h R(U) php tch R


thnh cc s con {R1, R2, , Rk} c gi l
php tch khng mt mt thng tin /v mt tp
ph thuc hm F nu vi mi quan h r xc nh
trn R tha mn F th:
r = R1(r) >< R2(r) >< >< Rk (r)

V d: Php tch mt mt thng tin


Supplier(sid, sname,city,NOE, pid, pname,colour,quantity)

Bo ton thuc tnh, rng buc


Bo ton d liu

S1(sid,sname,city,NOE)
SP1(pid,pname,colour,quantity)

S1(sid,sname,city,NOE)
SP2(sid,pid,pname,colour,quantity)

V d: Php tch khng mt mt thng tin


29

30

Thu
Thut to
ton 5: Ki
Kim tra t
tnh khng m
mt
mt thng tin c
ca 1 ph
php t
tch

nh l t
tch i
Cho lc quan h R(U), tp pth F , php tch R
thnh R1(U1), R2(U2) l mt php tch khng mt
mt thng tin nu 1 trong 2 ph thuc hm sau l
tha mn trn F+:
U1 U2 U1 - U2
U1 U2 U2 - U1
H qu: Cho lc quan h R(U) v ph thuc
hm XY tha mn trn R(U). Php tch R thnh
2 lc con R1(U1), R2(U2) l mt php tch
khng mt mt thng tin vi:
U1 = XY
U2 = XZ
Z = U \ XY

Vo: R(A1, A2, , An), F, php tch {R1, R2, , Rk}


Ra: php tch l mt mt thng tin hay khng
Thut ton
B.1. Thit lp mt bng k hng, n ct
Nu Aj l thuc tnh ca Ri th in aj vo (i,j).
Nu khng th in bij.
B.i. Xt f = XY F
Nu 2 hng t1, t2 thuc bng : t1[X] = t2[X] th ng
nht
t1[Y] = t2[Y], u tin v gi tr a
Lp cho ti khi khng th thay i c gi tr no trong
bng
B.n. Nu bng c 1 hng gm cc k hiu a1, a2, , an
th php tch l khng mt mt thng tin
ngc li, php tch khng bo ton thng tin

31

V d

32

V d (ti
(tip)
B.2 & 3:
T A C, ta c

R = ABCD c tch thnh R1=AB, R2


=BD, R3=ABC, R4=BCD. F = {AC,
BC, CDB, CD}

B.1: To bng gm 4 hng, 4 ct

R1

a1

a2

a3

b41

R2

b12

a2

b32

a4

R3

a1

a2

a3

b43

R4

b14

a2

a3

a4

R1

a1

a2

a3

b41

R1

a1

a2

b31

b41

R2

b12

a2

b32

a4

R2

b12

a2

a3

a4

R3

a1

a2

a3

b43

R3

a1

a2

a3

b43

R4

b14

a2

a3

a4

R4

b14

a2

a3

a4

T B C, ta c

33

V d (ti
(tip)
T C D, ta c

34

Ph
Php t
tch b
bo to
ton t
tp ph
ph thu
thuc h
hm
Hnh chiu ca tp ph thuc hm

R1

a1

a2

a3

a4

R2

b12

a2

a3

a4

R3

a1

a2

a3

a4

R4

b14

a2

a3

a4

Vy ta c 2 hng c ton cc gi tr a.
Chng t php tch cho l khng
mt mt thng tin
35

Cho s quan h R, tp ph thuc hm F, php


tch {R1, R2, , Rk} ca R trn F.
Hnh chiu Fi ca F trn Ri l tp tt c XY
F+:
XY Ri

Php tch s quan h R thnh {R1, R2,


, Rk} l mt php tch bo ton tp ph
thuc hm F nu
(F1 F2 Fk)+ = F+
hay hp ca tt c cc ph thuc hm trong cc
hnh chiu ca F ln cc s con s suy din ra
cc ph thuc hm trong F.
36

V d

Cc d
dng chu
chun
i v
vi SQH

V d 1: R = {A, B, C} F = { AB, BC, CA}

Quay li vn thit k c s d liu quan h,


cu hi m chng ta t ra trong qu trnh ny l
C cn thit phi tinh chnh thit k na hay
khng, thc s thit k m chng ta c c
l tt hay cha. gip tr li cu hi ny,
ngi ta a ra cc nh ngha v cc dng
chun. C mt vi dng chun c xem xt,
khi mt quan h thuc vo mt dng chun no
th ta c th coi nh l mt s cc vn v
d tha d liu hay d thng d liu c
ngn nga hay ti thiu ha
Cc dng chun m chng ta quan tm
Dng chun 1 (1NF)
Dng chun 2 (2NF)
Dng chun 3 (3NF)
38
Dng chun Boye-Code (BCNF)

c tch thnh R1 = AB, R2 = BC. Php tch


ny c phi l bo ton tp ph thuc hm
khng?
V d 2: R = {A, B, C} , F = {ABC, CB}
c tch thnh R1 = AB, R2 = BC. Php tch
ny c bo ton tp pth khng, c mt mt
thng tin khng?
V d 3: R = { A, B, C, D} , F = {AB, CD}
c tch thnh R1 = AB, R2 = CD. Php tch
ny c bo ton tp pth khng, c mt mt
thng tin khng?
Vy mt php tch c bo ton tp ph thuc
hm th khng m bo l n s khng mt mt
thng tin v ngc li
37

Dng chu
chun 1 (1NF)

Dng chu
chun 2 (2NF)

nh ngha: Mt s quan h R c gi l
dng chun 1 nu tt c cc min gi tr ca cc
thuc tnh trong R u ch cha gi tr nguyn t
Gi tr nguyn t l gi tr m khng th chia
nh ra c na
Mt quan h r xc nh trn s quan h dng
chun 1 th quan h y l dng chun 1
V d: Quan h khng dng chun 1 v quan h
sau khi chun ha v dng chun 1

nh ngha: Mt s quan h R c
coi l dng chun 2 nu

sname

city

product
name

price

Blake

London

Nut

100

Bolt

120

Smith

Paris

Screw

75

sname

city

item

price

Blake

London

Nut

100

Blake

London

Bolt

120

Smith

Paris

Screw

75
39

Ph
Ph thu
thuc h
hm
y

40

V d

nh ngha: Cho lc quan h


R(U), F l tp ph thuc hm trn R.
X, Y U. Y c gi l ph thuc y
vo X nu:
- XY thuc F+
- ! X X : XY

S quan h ny 1NF
Tt c cc thuc tnh khng kho u ph
thuc hm y vo kho chnh
(Lu , A l mt thuc tnh kho nu A
thuc mt kho ti thiu no ca R.
Ngc li A l thuc tnh khng kho)

F+

Cc ph thuc hm khng y cn
gi l ph thuc b phn
41

Sales(sid, sname, city, item, price)


F = {sid(sname,city),
(sid,item)price}
Kho chnh (sid,item), ta c sname,
city khng ph thuc hm y vo
kho chnh => Quan h Sales khng
thuc 2NF
S(sid, sname, city) v Sales (sid,
item, price) l quan h thuc 2NF
42

Dng chu
chun 3 (ti
(tip)

Ph
Ph thu
thuc b
bc c
cu

nh ngha: Mt s quan h R c
coi l dng chun 3 nu

nh ngha: Cho lc quan h

S quan h ny 2NF
Mi thuc tnh khng kho u khng ph
thuc bc cu vo kho chnh

R(U). F l tp ph thuc hm trn


U. Ta ni Z l ph
R(U). X,Y,Z
thuc bc cu vo X nu ta c XY
, Y Z thuc F+. Ngc li, ta ni Z
khng ph thuc bc cu vo X

43

44

V d

Dng chu
chun BoyeBoye-Codd

V d 1: Trong v d tch v dng chun 2 ta


c: S (sid, sname, city) v Sales(sid, item,
price).
Xt quan h S, pth sid sname, city tn ti
trn S, sid l kho chnh, cc thuc tnh
khng kho sname, city u ph thuc trc
tip vo sid. S thuc 3NF. Tng t ta c
Sales cng thuc 3NF
V d 2:

nh ngha: Mt s quan h R(U) vi mt


tp ph thuc hm F c gi l dng
chun Boye-Codd (BCNF) nu vi XA
F+ th

ItemInfo(item, price, discount). F = {itemprice,


pricediscount}. Kho chnh l item, thuc tnh
khng kho discount ph thuc bc cu vo kho
chnh item. Vy quan h ny khng 3NF.
ItemInfo(item, price) v Discount(price,
discount) thuc 3NF.
45

A l thuc tnh xut hin trong X hoc


X cha mt kho ca quan h R.

V d

R = {A,B,C} ; F = {ABC , CB}.


R khng phi BCNF v CB, C khng phi l
kho

Ch :

Mt quan h thuc 3NF th cha chc thuc


BCNF. Nhng mt quan h thuc BCNF th thuc
3NF
46

Tch b
bo to
ton t
tp ph
ph thu
thuc h
hm v
v
3NF

V d

Vo: R(U), F (gi thit F l ph ti thiu)


Ra: Php tch bo ton tp ph thuc hm v 3NF
Thut ton
B1. Vi cc Ai U, Ai F th loi Ai khi R v lp 1
quan h mi cho cc Ai
B2. Nu f F, f cha tt c cc thuc tnh ca R
( b cc Ai bc trn) th kt qu l R
B3. Ngc li, vi mi X A F, xc nh mt
quan h Ri(XA).
Nu
XAi, XAj th to mt quan h chung
R(XAiAj)
47

Cho R = {A,B,C,D,E,F,G}
F = {AB, ACDE, EFG} ( ti thiu)
Xc nh php tch bo ton tp ph thuc
hm v 3NF
B1. Khng lp c quan h no mi.
B2. ! f F: f cha tt c cc thuc tnh ca R
B3. AB

ACDE
EFG

R1(AB)
R2(ACDE)
R3(EFG)
48

Tch khng m
mt m
mt thng tin v
v bo
to
ton t
tp ph
ph thu
thuc h
hm v
v 3NF
Yu cu:
Bo ton tp ph thuc hm (nh thut ton
trn)
m bo l c mt lc con cha kho ca
lc c tch

Cc bc tin hnh
B1. Tm mt kho ti thiu ca lc quan h R cho
B2. Tch lc quan h R theo php tch bo ton tp ph
thuc hm.
B3. Nu 1 trong cc s con c cha kho ti thiu th kt
qu ca B2 l kt qu cui cng
Ngc li, thm vo kt qu mt s quan h c
to bi kho ti thiu tm c 1
49

V d
Cho R(U) trong U = {A,B,C,D,E,F,G}. F =
{AB, ACDE, EFG}
Tm mt kho ti thiu ca R:
K0 = ABCDEFG
K1 = K0 do nu loi A th BCDEFG U khng thuc
F+
K2 = K1 \{B} = ACDEFG do ACDEFG U thuc F+
K3 = K2 do nu loi C th ADEFG U khng thuc
F+
K4 = K3 do nu loi D th ACEFG U khng thuc
F+
K5 = K4 \{E} = ACDFG do ACDFG U thuc F+
K6 = K5 do nu loi F th ACDG U khng thuc
F+
K7 = K6 \{G} = ACDF do ACDF U thuc F+
50
Vy kho ti thiu cn tm l ACDF

Tch khng m
mt m
mt thng tin v
v
BCNF

V d (ti
(tip)
Dng kt qu ca v d phn tch bo
ton tp ph thuc hm ta c mt php
tch R thnh 3 s con R1 = AB, R2=
ACDE, R3 = EFG
Do kho ACDF khng nm trong bt k mt
s con no trong 3 s con trn, ta lp
mt s con mi R4 = ACDF
Kt qu cui cng ta c php tch R thnh
4 s con {R1, R2, R3, R4} l mt php
tch khng mt mt thng tin v bo ton
tp ph thuc hm
51

Vo: S quan h R, tp ph thuc hm F.


Ra: php tch khng mt mt thng tin bao gm
mt tp cc s con BCNF vi cc ph thuc
hm l hnh chiu ca F ln s .
Cch tin hnh
B1. KQ = {R},
B2.Vi mi S KQ, S khng BCNF, xt X A S,
vi iu kin X khng cha kho ca S v A
X. Thay th S bi S1, S2 vi S1=A
X , S2 = S
\ A.
B3. Lp (B2) cho n khi S KQ u BCNF
KQ gm cc s con ca php tch yu cu
52

Kt lu
lun
Tm quan trng ca thit k CSDL
nh hng n cht lng d liu lu tr
Hiu qu ca vic khai thc d liu

Mc ch ca thit k CSDL:
Trnh d tha d liu
Trnh d thng d liu khi thm/xo/sa i
Hiu qu trong tm kim

a v cc dng chun
2NF: gin c s d tha trnh cc d thung
khi cp nht
3NF: trnh cc d thng khi thm/xo
53

54

Li hay
p
"Nu anh thy mt gia nh hnh phc,
anh nn tin rng trong gia nh c
mt ngi n b bit qun mnh."
(Ren Bazin)

55

10

Ni dung
Tng quan v x l truy vn
Ti u ha cc biu thc i s quan h

Ti u ha cu truy vn
Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn
B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni

NHP

Tng quan v x l truy vn

Tng quan v
v x l truy v
vn (tip)

X l mt truy vn bao gm 3
bc chnh:

Ti u ha cu truy vn: Mc tiu ca bc

Phn tch v Bin dch cu truy vn:

thc hin c iu ny, trc tin ta cn bin i


1 biu thc SQH u vo thnh mt biu thc SQH
tng ng nhng c th x l c 1 cch hiu qu
v t tn km hn. Bc con u tin ny c gi l
ti u ha i s.
Tip theo , ta cn phi c t cc thut ton c
bit tin hnh thc thi cc php ton , chn 1 ch dn
c th no s dng.
Cc d liu thng k v CSDL s gip ta trong qu
trnh xem xt v la chn. V d nh:

ti u ha l chn ra mt k hoch thc hin


cu truy vn c chi ph thp nht.

Trong bc ny, h thng phi dch cu


truy vn t dng ngn ng bc cao
thnh mt ngn ng biu din d llu
bn trong my tnh c th thao tc
trn . Mt biu din bn trong thch
hp v h tr cho bc ti u ha tip
theo l biu din bng ngn ng i s
quan h
3

NHP

NHP

Tng quan v
v x l truy v
vn (tip)

Tng quan v
v x l truy v
vn (tip)

S b trong quan h
Kch thc ca mt b
S khi (block) cha cc b ca quan h
S b ca quan h m mt khi c th cha
Cc thng tin v c ch truy nhp, ch dn trn
quan h

Thc hin nh gi truy vn: T mt k

hoch thc hin c c do Trnh ti u ha


cung cp, h thng s tin hnh thc hin cc
thao tc trn d liu trong CSDL v a ra cu
tr li cho truy vn .

Chi ph cho vic thc hin mt truy vn c


o bi chi ph s dng ti nguyn nh vic
truy cp a, thi gian CPU dng thc
hin mt truy vn.
Trong chng ny, chng ta s tp trung vo
vic nh gi cc biu thc i s quan h
ch khng i vo chi tit vic tnh ton chi
ph cho vic thc hin nh gi mt truy vn.

Truy va n au va o

Bie u th c SQH

To i u ho a
truy va n

Ca u tra l i truy va n

NHP

Bien dch
truy van

Thc hie n
tm kie m dl

CSDL

Thon g ke ve dl

Ke hoa ch th c hie n

NHP

nh gi
gi bi
biu th
thc SQH

nh gi
gi bi
biu th
thc SQH (ti
(tip)

Sau bc phn tch v bin dch, ta c


mt truy vn c biu din bng mt
biu thc i s quan h bao gm
nhiu php ton v tc ng ln nhiu
quan h khc nhau. Ta s phi tin
hnh nh gi biu thc ny. C 2
hng tip cn thc thi qu trnh
nh gi biu thc SQH:

Vt cht ha: Trong cch tip cn ny th

Vt cht ha (Materialize)
ng ng (Pipeline)

ta ln lt nh gi cc php ton theo


mt th t thch hp. Kt qu ca vic
nh gi mi php ton s c lu trong
mt quan h trung gian tm thi s
dng lm u vo cho cc php ton tip
theo.
im bt li ca cch tip cn ny l vic
cn thit phi xy dng cc quan h trung
gian tm thi nht l khi cc quan h ny
thng phi c ghi ra a (tr khi chng
c kch thc rt nh). M vic c v ghi
ra a c chi ph kh ln.

NHP

NHP

nh gi
gi bi
biu th
thc SQH (ti
(tip)

nh gi
gi bi
biu th
thc SQH (ti
(tip)

ng ng: Chng ta c th ci thin hiu qu

V d: Chng ta c mt biu thc i s quan h


gm 2 php ton: kt ni v chiu.
Trong cch tip cn vt cht ha, xut pht t
php ton mc thp nht l php kt ni t
nhin, kt qu ca php kt ni ny s c lu
trong mt quan h trung gian. Sau , c t
quan h trung gian ny tin hnh chiu ly kt
qu mong mun.
Trong cch tip cn ng ng, khi mt b c
sinh ra trong php kt ni 2 quan h, b ny s
c chuyn trc tip n php chiu x l v
kt qu c ghi vo quan h u ra. Quan h kt
qu s c to lp mt cch trc tip.

nh gi truy vn bng cch lm gim bt s


lng cc quan h trung gian tm thi c to
ra. iu ny c th t c nh vic kt hp mt
vi php ton quan h vo mt ng ng ca cc
php ton. Trong ng ng th kt qu ca mt
php ton c chuyn trc tip cho php ton
tip theo m khng cn phi lu li trong quan h
trung gian.
R rng, cch tip cn th hai s hn ch c
nhc im ca cch tip cn u tin, nhng c
nhng trng hp, ta bt buc phi vt cht ha
ch khng dng ng ng c.
9

NHP

Ti u h
ha c
cc bi
biu th
thc SQH
Mc tiu l t chc li trnh t thc hin cc
php ton trong biu thc gim chi ph
thc hin nh gi biu thc .
Trong qu trnh ti u ha, ta biu din mt
biu thc SQH di dng mt cy ton t.
Trong cy th cc nt l l cc quan h c
mt trong biu thc, cc nt trong l cc
php ton trong biu thc
V d : a ra tn hng cung ng mt hng
c m l 'P1':
Select sname From S, SP Where S.sid =
SP.sid And pid = 'P1'
Biu thc SQH tng ng l?
Cy ton t tng ng l?
11
NHP

10

NHP

Cc chi
chin l
lc t
ti u t
tng qu
qut
1.

2.
3.

4.

y php chn v php chiu xung thc hin


sm nht c th: v hai php ton ny gip lm
gim kch thc ca quan h trc khi thc hin
cc php ton 2 ngi
Nhm dy cc php chn v chiu: S dng chin
lc ny nu nh c mt dy cc php chn hoc
dy cc php chin trn cng mt quan h
Kt hp php chn v tch cc thnh php kt
ni: Nu kt qu ca mt php tch cc l i
s ca 1 php chn c iu kin chn l php so
snh gia cc thuc tnh trn 2 quan h tham gia
tch cc th ta nn kt hp 2 php ton thnh
php kt ni.
Tm cc biu thc con chung trong biu thc i
s quan h nh gi ch mt ln
12

NHP

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH

Cc chi
chin l
lc t
ti u t
tng qu
qut (ti
(tip)
5. Xc nh cc php ton c th c a
vo ng ng v thc hin nh gi
chng theo ng ng
6. X l cc tp d liu trc khi tin hnh
tnh ton: To lp ch dn hay sp xp tp
d liu c th gp phn lm gim chi ph
ca cc php tnh trung gian
7. c lng chi ph v la chn th t thc
hin: Do vi mi cu truy vn c th c
nhiu cch khc nhau thc hin, vi
vic ng lng chi ph (s php tnh, ti
nguyn s dng, dung tch b nh, thi
gian thc hin ..) ta c th chn cch nh
gi biu thc SQH c chi ph nh nht.

Hai biu thc SQH E1 v E2 l tng ng


nu chng cho cng mt kt qu khi p dng
trn cng mt tp cc quan h
Trong phn ny, ta c cc k hiu dng sau:
E1, E2, E3, l cc biu thc i s quan h
F1, F2, F3, l cc iu kin chn hoc l cc iu
kin kt ni
X1, X2, Y, Z, U1, U2, l cc tp thuc tnh

13

NHP

14

NHP

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)
1.

VD: S* SP * P c th c thc hin theo


3 th t nh sau

Quy tc kt hp ca php tch cc v kt ni

( E1 E 2 ) E3 E1 ( E 2 E3 )

1)(S*SP)*P
2)(S*P)*SP
3)S*(SP*P)

( E1 * E 2 ) * E3 E1 * ( E 2 * E3 )
( E1 >< E 2 ) >< E3 E1 ><( E 2 >< E3 )
F1

F2

F1

Xt theo ng ngha S, P khng kt ni


c nn (1) v (3) l tt hn (2). Xt
v kch thc th (3) tt hn (1) v S c
4 thuc tnh cn P c 3 thuc tnh, tuy
nhin, cng cn ty thuc vo lc
lng ca 2 quan h S v P na

F2

Qui tc ny s dng cho chin lc s 7. Th t


thc hin cc php kt ni hay tch cc l rt
quan trng v kch thc ca quan h trung gian
c th rt ln nu khng cn nhc k. La chn
th t thc hin cc php ton ny th ty thuc
vo kch thc ca cc quan h tham gia php
ton v c ng ngha ca quan h (mi lin h)
15

NHP

16

NHP

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)
2. Quy tc giao hon trong php tch
cc v kt ni E1 E 2 E 2 E 1
E1 * E 2 E 2 * E1

5. Quy tc giao hon php chn


v php chiu

X ( F ( E )) F ( X ( E ))

E 1 >< E 2 E 2 >< E 1
F

Quy tc ny p dng khi F l iu


kin xc nh c trn tp thuc
tnh X. Tng qut hn ta c:

3. Quy tc i vi dy cc php chiu


X 1 ( X 2 ... X n ( E )...) X 1 ( E )
X 1 X 2 ... X n

X ( F ( E )) X ( F ( XY ( E )))

4. Quy tc i vi dy cc php chn

F 1 ( F 2 .... Fn ( E )...) F 1 F 2... Fn ( E )


NHP

17

18

NHP

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)

6. Quy tc i vi php chn v php


tch cc

Ta k hiu:

E1(U1) c ngha l biu thc E1 xc nh trn tp thuc


tnh U1
F1(U1) c ngha l iu kin chn F1 xc nh trn tp
thuc tnh U1
Quy tc bin i lin quan n php chn v tch
cc c pht biu nh sau:
F ( E 1 (U 1 ) E 2 (U 2 )) tng ng vi:

F 1 ( E1 ) E 2
trong trng hp F = F1(U1)
F 1 ( E1 ) F 2 ( E 2 ) trong trng hp F = F1(U1)

7. Quy tc i vi php chn v


php hp:
F ( E1 E 2 ) F ( E1 ) F ( E 2 )
8. Quy tc i vi php chn v
php tr:
F ( E1 E 2 ) F ( E1 ) F ( E 2 )

F2(U2)

F 2 ( F 1 ( E1 ) E 2 ) trong trng hp F = F1(U1)

F2(U1U2)

19

NHP

20

NHP

Cc ph
php bi
bin
i tng ng
bi
biu th
thc SQH (tip)

V d

9. Quy tc i vi php chiu v tch


cc:

Tm tn hng cung ng t nht 1 mt


hng mu hoc mu xanh

X ( E 1 (U 1 ) E 2 (U 2 )) Y ( E 1 ) Z ( E 2 )
X = YZ , Y U 1 , Z U 2
10.Quy tc i vi php chiu v php
hp:
X ( E1 U E 2 ) X ( E1 ) U X ( E 2 )

SELECT sname FROM S, P, SP


WHERE S.sid = SP.sid AND P.pid = SP.pid
AND (colour = Red OR colour = Green);
Biu thc i s quan h tng ng vi
cu truy vn trn l:
sname ( S .sid = SP.sid P. pid = SP. pid ( colour = 'Re d ' colour = 'Green ') ( S SP P))

21

NHP

22

NHP

Li hay
p

"Phm cch chn chnh ca con ngi l


trong cch h sng ch khng phi ci h
c"
Blackie

23

NHP

24

NHP

Ni dung
An ton d liu
Xc minh ngi s dng
Kim tra quyn truy nhp ca ngi s
dng
Cc cu lnh an ton d liu trong SQL

An to
ton v
v to
ton v
vn d
d li
liu
Nguy
Nguyn Hng Phng
phuongnhphuongnh-fit@mail.hut.edu.vn

Ton vn d liu
Cc rng buc ton vn trong SQL
iu khin tng tranh

B mn H th
thng thng tin
Vi
Vin Cng ngh
ngh thng tin v
v Truy
Truyn thng
i hc Bch Khoa H Ni
1

An to
ton d
d li
liu

Cc quy
quyn truy nh
nhp c
ca ng
ngi s
s dng

nh ngha: Tnh an ton d liu l s bo


v d liu trong c s d liu chng li nhng
truy nhp, sa i hay ph hy bt hp
php.
Ngi s dng hp php l nhng ngi s
dng c cp php, c y quyn. Ngc
li l nhng ngi s dng bt hp php.
m bo tnh an ton cho c s d liu,
chng ta cn c mt c ch qun l ngi
dng cho hp l.
Nhng nhm ngi dng khc nhau trong h
CSDL c quyn s dng khc nhau i vi
cc d liu trong CSDL.

Quyn c d liu: c php c mt phn hay


ton b d liu trong CSDL
Quyn cp nht d liu: c php sa i mt s
gi tr nhng khng c xa d liu trong CSDL
Quyn xa d liu: c php xa d liu trong
CSDL
Quyn b sung d liu: c php thm d liu mi
vo trong CSDL nhng khng c php thay i d
liu
Quyn to ch dn trn cc quan h trong CSDL
Quyn thay i s c s d liu: thm hay xa
cc thuc tnh ca cc quan h trong CSDL
Quyn loi b quan h trong CSDL
Quyn qun l ti nguyn: c php thm cc
quan h mi vo CSDL

Tr
Trch nhi
nhim c
ca ng
ngi qu
qun tr
tr h th
thng

Xc minh ng
ngi s
s dng

c th phn bit c ngi s dng


trong h CSDL, ngi qun tr h thng phi
c trch nhim:

xc minh c ngi s dng, ngi ta


c th dng cc k thut sau:

Xc nh cc quyn c th m mi ngi s dng


hay mt nhm ngi s dng c php thc
hin, xc nh vai tr v trch nhim ca mi
ngi s dng. iu ny c gi chung l Phn
quyn ngi s dng
Cung cp mt phng tin cho ngi s dng
h thng c th nhn bit c ngi s dng
hay cn gi l Xc minh ngi s dng
5

K thut dng ti khon v mt khu, mt khu


cng c bo v bi h thng mt cch k cng.
K thut s dng cc hm kim tra cho ngi s
dng: H thng a cho ngi s dng mt s
ngu nhin x, ngi s dng dng mt hm F tnh
nhm kt qu v a kt qu y = F(x) vo h
thng. Trong lc , h thng cng tnh ton v
so snh kt qu vi y. Ngi s dng hp php l
ngi bit hm bin i F v a vo gi tr y
ng.
K thut dng th in t, th thng minh.
K thut s dng nhn dng ting ni, vn tay
v..v.
6

Ki
Kim tra quy
quyn truy nh
nhp c
ca ng
ngi s
s dng
Mi ngi s dng s c mt b h s do
ngi qun tr thit lp v c h thng
qun l, trong h s s c chi tit v cc
thao tc ngi s dng c php thc hin:
Phn quyn ngi s dng: Ngi qun tr h
thng phi c trch nhim xc nh khung nhn
kim sot xem mi ngi s dng ch c truy
nhp phn d liu no trong CSDL v c c cc
quyn no trong s cc quyn c, thm, xa ,
sa i.
Xc nh v kim sot s lu chuyn d liu: H
thng phi bo tr danh sch cc quyn mt cch
cht ch v ngi s dng c th c quyn lan
truyn cc quyn cho ngi s dng khc.

Cc cu l
lnh an to
ton d
d li
liu trong SQL
Cu lnh to khung nhn
Cu lnh phn quyn cho ngi s
dng
Cu lnh thu hi quyn ca ngi s
dng

Cu l
lnh t
to khung nh
nhn

V d cu l
lnh t
to khung nh
nhn

CREATE VIEW <Tn khung nhn>


[(d/s ct)] AS <Cu truy vn>
Danh sch cc ct trong khung nhn
l phn khng bt buc. Trong
trng hp ngi s dng mun t
tn khc cho cc ct xut hin trong
khung nhn th ngi s dng c th
ch ra tn cc ct, d liu trn ct th
tng ng vi cc ct trong mnh
Select ca cu truy vn.

Cho c s d liu gm 2 quan h:


Nhnvin(Id,Htn,C,Lng,NmBD,nhgi,PhngCT)
Phng(PId, Tn, C, inthoi, Trngphng)
Cu lnh to khung nhn cho mt nhn vin ca phng
Khoa Hc c th c nh ngha nh sau:
CREATE VIEW NVKH(HtnNhnvin, achlinlc) AS
SELECT Htn,ach FROM Nhnvin
WHERE PhngCT IN
(SELECT PId FROM Phng WHERE Tn =Khoa Hc)

10

Cu l
lnh phn quy
quyn cho NSD

Cu l
lnh phn quy
quyn cho NSD (ti
(tip)

GRANT <D/s thao tc> ON <i tng> TO


<D/s ngi dng> [WITH GRANT OPTION]
<D/s thao tc>: c th bao gm 1 hay nhiu
thao tc c lit k di y:

<i tng>: bng hoc khung nhn


<D/s ngi dng>: Mt ngi hay mt
nhm hay mt danh sch ngi s dng.
T kha public c dng thay th cho mi
ngi s dng
[With Grant Option] Nu dng t kha ny
trong cu lnh phn quyn th ngi dng
xut hin trong <D/s ngi dng> c
quyn c lan truyn cc quyn va c
tuyn b cho nhng ngi dng khc

Insert: chn d liu vo trong CSDL c sn nhng khng


c thay i bt k mc d liu no trong CSDL
Update: sa i d liu nhng khng c xa d liu
Delete: xa d liu trong CSDL
Select : tm kim
Create: to lp cc quan h mi
Alter: Thay i cu trc ca quan h
Drop: Loi b quan h
Read/Write: c v Ghi
11

12

V d cu l
lnh phn quy
quyn cho NSD

Cu l
lnh thu h
hi quy
quyn c
ca NSD

Trao quyn c, ghi, tm kim, sa i d


liu cho nhn vin tn Hoa ca phng Khoa
hc trn khung nhn va to lp trong phn
trc
GRANT read, write, select, update ON
NVKH TO Hoa;
Trao quyn cho trng phng Khoa hc
ng HungNC
GRANT read, write, select, update, delete
ON NVKH TO HungNC WITH GRANT
OPTION;
13

REVOKE <D/s thao tc> ON <i


tng> FROM <D/s ngi dng>
[RESTRICT/CASCADE]
<D/s thao tc>, <i tng>,
<D/s ngi dng> ging nh i
vi cu lnh GRANT.
Phn [RESTRICT/CASCADE] l ch
ra c ch thu hi vi cc quyn
c ngi dng trong <D/s ngi
dng> lan truyn

Cu l
lnh thu h
hi quy
quyn c
ca NSD (ti
(tip)
Nu Restrict th c ngha l ch hy b
quyn ca nhng ngi c trong danh
sch, quyn c lan truyn cho ngi
khc khng b thu hi.
Nu dng Cascade th hy b quyn ca
ngi trong <D/s ngi dng>, ng thi
ko theo hy b quyn m ngi dng
lun chuyn cho nhng ngi khc.
V d:
REVOKE update,delete ON NVKH FROM
HungNC CASCADE
15

14

To
Ton v
vn d
d li
liu
nh ngha: Tnh ton vn d liu l s bo v

d liu trong CSDL chng li nhng s sa i,


ph hy v cn c m bo tnh ng n v
chnh xc ca d liu.
Cc thao tc c th nh hng n tnh ng
n ca CSDL l thm, xa , sa i.
m bo tnh ton vn d liu, cn phi ch ra
v duy tr nhng rng buc ton vn lin kt vi
mi quan h. Cc rng buc ton vn cung cp 1
phng tin m bo rng cc thao tc c
thc hin bi nhng ngi s dng hp php
khng lm mt i tnh ng n ca CSDL.
Trong h thng a ngi dng, m bo c
ton vn d liu, h thng cn phi c c mt
trnh iu khin tng tranh trnh ng
gia cc thao tc c a ra bi nhng ngi
16
s dng khc nhau ti cng mt thi im

Cc r
rng bu
buc to
ton v
vn trong SQL

V d v kh
khng
nh

Cc rng buc v kha chnh, kha


ngoi, kim tra trn min s dng
Check chng ta cp n khi ni
v cu lnh to bng trong CSDL.
Cc khng nh: L mt v t biu th
mt iu kin m CSDL phi lun lun
tha mn. Cc khng nh c to ra
bng cu lnh:
CREATE ASSERTION <Tn khng nh>
CHECK <V t>

S lng mt hng c cung cp bi


cc hng c s nhn vin < 50 phi
nh hn 100:

17

CREATE ASSERTION KSlng CHECK


NOT EXISTS
(SELECT * FROM S WHERE numofemps
< 50 AND sid IN
(SELECT sid FROM SP WHERE quantity
>= 100))
18

Cc r
rng bu
buc to
ton v
vn trong SQL (tip)

V d v kch ho
hot

Cc kch hot: L mt thao tc c thc

Nhnvin(ID,Htn,Lng,ach,Ng
iqunl)
Mt nhn vin bao gi cng c lng
t hn lng ngi trng phng, iu
kin ny phi c kim tra khi thm
b d liu.

hin mt cch t ng khi c mt thay i


i vi CSDL. Kch hot l cc c ch c ch
bo ng hoc thc hin nhng nhim
v c nh sn khi cc iu kin nht
nh c tha mn.
Kch hot c th c nh ngha hy b,
hoc kim tra v thc hin mt s cc s
kin do n c th c coi l mt bin
php m bo ton vn d liu.

DEFINE TRIGGER ThemNV ON INSERT Nhnvin


IF Nhnvin.Lng > (SELECT E.Lng FROM
Nhnvin AS E WHERE E.ID =
Nhnvin.Ngiqunl)
THEN ABORT;

19

20

i
iu khi
khin tng tranh

Cc k
k thu
thut i
iu khi
khin tng tranh

Trong h CSDL a ngi dng, h


thng cn a ra gii php chng
ng gia cc giao dch (mt dy
cc thao tc) c a ra bi nhng
ngi dng khc nhau trnh vic
mt i tng d liu no b lm
mt tnh ng n trong qu trnh
cp nht.

K thut dng kha: Khi mt giao dch cn d liu


no th xin h iu hnh mt kha trn phn d liu
, cc giao dch khc phi i n khi gii phng
kha mi c s dng phn d liu . C th
ngi ta s dng cc loi kha khc nhau v d nh
kha c cho php nhiu giao dch c cng 1 lc,
kha ghi ch 1 giao dch c c ti mt thi im.
K thut gn nhn thi gian: Mi giao dch c
gn mt nhn T theo thi gian, giao dch no cn
c u tin th c gn nhn thi gian nh hn v
c thc hin trc. K thut ny gip a yu cu
ng thi v thc hin tun t.

21

22

Li hay
p

"Khi ni s tht bn s khng phi nh


mnh va ni g, m bn cng khng
bao gi qun nhng g mnh va ni"
S.Raybum

23

24

You might also like