Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 37

Rng buc ton vn

Ton Vn D Liu
H thng c s d liu dng cc quy tc (rule)
m bo d liu thc t c lu tr trong n.
V d :

H thng c s d liu ch m bo d liu c th


ng.
D liu cn phi c bin dch vi cc Rng buc
ton vn.

Rng buc ton vn

RBTV l cc quy lut m bo d liu chnh xc


v nht qun.

Ton vn d liu c trin khai nhiu mc


khc nhau : rng buc(RB) min, RB chuyn tip,
RB thc th, RBTV tham chiu, RBTV c s d
liu, RBTV giao tc.

Trin Khai Ton Vn D


Liu

Thc hin tan vn d liu mc vt l.

C s d liu quan h h tr :
Tan vn khai bo (Declarative Integrity)
Ton vn th tc (Procedural Integrity)

Rng Buc Min


Min : tp gi tr c th c ca 1 thuc tnh.
RB min : quy tc xc nh cc gi tr hp l ca
thuc tnh.
Min Kiu d liu.
Gi tr unknown v nonexistent.
Xc nh tp gi tr biu din cho 1 min gi tr.

Trin khai RB min

SQL Server h tr trin khai RB min thng qua


kiu d liu do ngi dng nh ngha (user
define data types = UDDTs).
UDDT c to ra thng qua SQL SEM, hay
sp_addtype.
UDDT gm : quy tc v gi tr mc nh.

S dng bng tra cu v kha ngoi

Rng Buc Chuyn Tip


nh ngha cc trng thi 1 b duyt qua 1 cch
hp l.
Trng thi c nh ngha thng qua 1 thuc tnh
n.
Trng thi c nh ngha thng qua nhiu thuc
tnh hay nhiu quan h.

Trin khai RB chuyn tip

Thc thi trigger

Rng buc CSDL

L hnh thc ph bin nht ca rng buc


tan vn.

Tham chiu n nhiu hn 1 quan h

Quy trnh cng vic Rng buc csdl

Rng buc giao tc

Giao tc l nhm cc hnh ng thao tc c


s d liu.

Quy trnh cng vic rng buc giao tc.

Trin khai RB giao tc v RB


CSDL

Trigger

Ton vn thc th - Entity Integrity

m bo ton vn cho cc thc th c m


hnh bi h thng.

V d, mc n gin nht, kha chnh l mt


Rng buc thc th, m bo mi thc th l duy
nht

Rng buc thc th nh hng n mt thuc


tnh, nhiu thuc tnh, hoc ton b quan h.

12

Ton vn thc th - Entity Integrity

Ton vn cho mt thuc tnh n:


Vic xc nh thuc tnh l da vo mt min gi tr ca n
Thuc tnh k tha RBTV c xc nh cho min gi tr ny

V d:
OrderDate c min l min ca TransactionDate: tt c nhng
ngy trong khong ngy thnh lp doanh nghip n ngy hin
hnh.
Nhng c th xc nh thm l: mt ngy OrderDate phi nm
trong nm hin hnh.
Tuy nhin, OrderDate khng c php cha nhng ngy thuc
tng lai v chng khng thuc min thuc tnh.

13

Ton vn thc th - Entity Integrity

Ton vn a thuc tnh:


Ton vn thc th cng c th nh hng n
nhiu thuc tnh.

V d:
Yu cu: ShippingDate >= OrderDate
Thuc tnh Status khng cho php gi tr
preferred nu dng d liu Customer khng
c ghi t nht l 1 nm.

14

Thc thi ton vn thc th

Vi mi trng n:
Hu ht RBTV l v kiu d liu.
Jet database engine v SQL server cung cp rt nhiu kiu d
liu
SQL server cng cho php khai bo cc trng da trn UDDTs
SQL server cho php gi tr null, c xc nh bng cch click
chn Null/ Not Null khi to mt trng, Jet database engine xc
nh bng trng Required
SQL server s dng RB CHECK xc nh chui rng c c
cho php trong cc trng text hay khng, Jet database engine
th s dng c AllowZeroLength.
SQL server thit lp thuc tnh Default khi to ra mt trng hoc
kt ni gi tr mc nh ca h thng vi trng c m t theo
UDDTs

15

Thc thi ton vn thc th

Vi mi trng n:
Jet database engine cung cp 2 thuc tnh
trng l ValidationRule v ValidationText, SQL
server cho php khai bo RB CHECK thc
hin RB thc th ln mi trng.
C th c nhiu RB CHECK cho mt trng
trong SQL server.
Nhng mt trng trong Jet database engine
ch c 1 thuc tnh ValidationRule.

16

Thc thi ton vn thc th

Vi nhiu trng, v ton b bng:


Vic thc hin RB thc th tng t nh vi mt trng n.
Hu ht RBTV thc th u yu cu mi th hin ca thc th l
duy nht (qui tc ton vn thc th). C Jet v SQL u cung cp
RB duy nht thng qua index.
C th nh ngha tp cc trng l unique (c th cha gi tr
Null) hoc l kha chnh. Nhng ch c 1 kha chnh cho 1 bng,
v c th c nhiu unique.
Jet database engine cung cp thuc tnh IgnoreNull ngn
nhng dng d liu cha gi tr Null ct index c insert vo.
SQL khng c tnh nng ny.

17

Thc thi ton vn thc th

Vi nhiu trng, v ton b bng:


C Jet database engine v SQL server u khng bt buc phi
nh ngha kha chnh cho mt bng.
SQL server cung cp mt k thut cho ton vn thc th l
Trigger (c thc thi khi mt thao tc no xy ra). C th
nh ngha nhiu trigger cho mi thao tc insert, delete, update.
V mt trigger cng c th c nh ngha cho nhiu thao tc.

18

Ton vn tham chiu Referential Integrity

Rng buc ton vn tham chiu m bo cho cc lin kt gia cc


quan h

Ch c mt RBTV tham chiu: Cc kha ngoi khng c tr thnh


m ci.

3 trng hp gy ra thc th m ci:


Thm vo mt dng d liu bng kha ngoi vi kha khng lin
kt vi kha ng vin trong bng chnh.
Kha ng vin trong bng chnh b thay i.
Dng d liu kha ngoi trong bng chnh b xa.

19

Ton vn tham chiu Referential Integrity

Cch gii quyt cc trng hp gy ra thc th m ci:


Trng hp 1: Ngn cm thm vo dng d liu khng ph hp
bng kha ngoi. Ch : dng d liu gi tr unknown v
unexistant vn c th c thm vo m khng gy hi g n
RB tham chiu
Trng hp 2: Ngn chn s thay i kha ng vin hoc nu
cho php kha ng vin thay i th phi thc hin thay i
bng kha ngoi, gi l cascading update.
Trng hp 3: tng t trng hp 2, cascading delete

20

Thc thi ton vn tham chiu

SQL server v Jet database engine cung cp nhng c ch khc


nhau cho ton vn tham chiu.

SQL server:
Khai bo RB kha ngoi nh mt phn ca vic nh ngha bng.
RB kha ngoi thit lp tham chiu n mt kha ng vin trong
bng chnh.
Ngn cm thao tc insert m khng c dng d liu tng ng
trong bng chnh.
Ngn cm thao tc delete mt dng d liu ang c tham
chiu n trong bng chnh.
D dng thc hin cascading update v cascading delete bng
cch s dng trigger.

21

Thc thi ton vn tham chiu

Jet database engine:


Cung cp ton vn tham chiu thng qua i tng Relation.
i tng Relation l mt th hin vt l cho mi quan h gia 2
bng.
Cc thuc tnh Table v ForeignTable trong i tng Relation
nh ngha 2 bng tham gia vo mi quan h.
Thuc tnh Fields xc nh cc trng lin kt trong mi bng.

22

Thc thi ton vn tham chiu

Jet database engine:


Duy tr ton vn tham chiu cho quan h bng thuc tnh
Attributes ca mi quan h.
Trong , c 2 thuc tnh quan trng l
dbRelationUpdateCascade, v dbRelationDeleteCascade thc
hin vic cascading update v cascading delete.

23

Unknown v Nonexistent

Dng null cho gi tr unknown v nonexistent


Cc vn :
Khng xc nh c gi tr null c th c biu din cho
unknown hay nonexistent
Kiu chui hay text, dng null cho unknown v chui rng cho
nonexistent.
Kiu s hc, dng null cho unknown v 0 cho nonexistent
Vn xy ra vi cc kiu d liu phi text, nhng khng thng
xy ra trong thc t -> gii php : cch tip cn gi tr quy c.

Lm phc tp thao tc d liu


Vd : so snh lun l

24

Unknown v Nonexistent

Cch tip cn quy c


Quy c gi tr biu din unknown v nonexistent
Cc vn :
C th gy nhm ln
Vd : dng 9/9/1900 biu din gi tr unknown -> nhm vi ngy
9/9/1900 c thc

Tc ng n ton vn tham chiu


Vd :

25

Unknown v Nonexistent

-> gy tr ngi cho thao tc


d liu

26

Unknown v Nonexistent

Cc tip cn gi tr quy c
Li ch :
Hin th d liu trn bo co
Vd : dng "Unknown" thay th cho null, v "No Applicable" thay
th cho gi tr rng -> bo co p

=> Cn nhc cn thn khi quyt nh dng null hay cch


tip cn gi tr quy c

27

Phn hi vi phm

Phn hi :
Bc b cu lnh vi phm, xut thng bo li
Sa li
Dng gi tr mc nh hay cho gi tr rng
Cp nht hoc xa dy chuyn bo m ton vn tham
chiu

28

Phn hi vi phm

Rng buc bn cht


Rng buc bn cht chi phi cu trc vt l ca d liu
v c dn xut t m hnh quan h

Rng buc nghip v


Rng buc nghip v c dn xut t khng gian vn
- quy tc nghip v

29

Phn hi vi phm

Rng buc bn cht


Kiu d liu :
Chn kiu control thch hp tng ng vi kiu d liu

nh dng d liu
nh dng li d liu nhp ca ngi dng
Cung cp d liu mu hng dn nhp liu

Chiu di d liu
Khai bo chiu di chui ti a (255 k t)
Dng variable-length (VARCHAR)
Thng nht quy c rt ngn d liu (b, vit tt)

30

Phn hi vi phm

Rng buc bn cht


Gi tr null
Thay th bng UNKNOWN, NOT APPLICABLE, YET TO
COME

Rng buc phm vi


Thay th bng kiu d liu c phm vi ln hn trong lc
quan h

31

Phn hi vi phm

Rng buc bn cht


Rng buc ton vn thc th v tham chiu
D liu trng
Xut thng bo v cung cp cc la chn

32

Phn hi vi phm

Rng buc bn cht


Rng buc ton vn thc th v tham chiu
Qun nhp kha chnh
Dng AutoNumber cho kha chnh
Xut thng bo nhc nh

33

Phn hi vi phm

Rng buc bn cht


Rng buc ton vn thc th v tham chiu
Tham chiu n gi tr khng tn ti
Xut thng bo v cung cp cc la chn

34

Phn hi vi phm

Rng buc nghip v


Li nhp liu

35

Phn hi vi phm

Rng buc nghip v


D liu thc t khng hp vi m hnh h thng

36

Phn hi vi phm

Rng buc nghip v


Vi phm quy tc nghip v

37

You might also like