Professional Documents
Culture Documents
1 Gii thiu
Rng buc ton vn l nhng quy tc, quy nh trn CSDL nhm m bo cho
CSDL c nht qun v ng n vi ng ngha ca thc t hay mong mun ca con
ngi.
Cc thnh phn c bn ca mt rng buc ton vn:
Pht biu RBTV bng ngn ng t nhin: l mt pht biu t nhin v rng
buc ton vn
Bi cnh: l nhng quan h lin quan n RBTV. Nhng quan h lin quan l
khi thc hin nhng thao tc cp nht d liu ln nhng quan h ny th RBTV b vi
phm.
Ni dung: l pht biu li ca RBTV bng ngn ng hnh thc th hin
c s cht ch. Mt s ngn ng hnh thc c s dng nh: php tnh quan h,
i s quan h hoc m gi.
Bng tm nh hng: L bng m t cc s nh hng n RBVT ca cc thao
tc cp nht ln cc bng d liu.
Cc loi RBTV:
RBTV min gi tr
RBTV duy nht
RBTV tham chiu
RBTV lin thuc tnh trn mt quan h
RBTV lin b trn mt quan h
RBTV lin b lin quan h
RBTV thuc tnh tng hp
2 Cc k thut ci t rng buc ton vn n gin
2.1 Cc k thut c bn
NOT NULL
PRIMARY KEY
FOREIGN KEY
CHECK
Cc trng hp s dng:
PRIMARY KEY: S dng dnh ring cho RBTV kho chnh. Mi bng trong m
hnh d liu quan h ca SQL Server c ti a mt kho chnh.
UNIQUE: S dng dnh ring cho RBTV duy nht. Cc thuc tnh c khai
bo RBTV duy nht c th xem nh cc thuc tnh ca kho ng vin. Mi bng c th
khai bo nhiu kho ng vin.
FOREIGN KEY: S dng dnh ring cho vic to RBTV tham chiu hoc kho
ngoi. Cc thuc tnh kho ngoi phi tham chiu n cc thuc tnh kho (kho
chnh hoc kho ng vin).
CHECK: S dng dnh ring cho vic to cc RBTV khc. Lc ny cc RBTV
c m t nh mt biu thc iu kin m cc d liu phi tho biu thc iu kin
.
Cch s dng cc k thut ny c trnh by trong phn xy dng cu trc C
s d liu.
2.2 RULE
RULE c thit lp nh l mt quy tc ca mt thuc tnh. Trnh t cc bc
to v s dng RULE:
To RULE:
CREATE RULE [Tn_Rule]
AS [Biu_thc_m_t_iu_kin] [ ; ]
Trong :
[Tn_Rule]: Tn do ngi lp trnh t
[Biu_thc_m_t_iu_kin]: Biu thc tng ng vi ni dung ca RULE.
Trong biu thc ny ch c s dng 1 bin (bt u bng @) m t RULE. Khi
gn RULE cho thuc tnh no th bin tng ng vi thuc tnh .
Gn RULE cho thuc tnh:
EXEC sp_bindrule [ @rulename = ] 'Tn_rule' ,
[ @objname = ] 'Tn_bng.Tn_thuc_tnh'
Ghi ch: Sinh vin tm hiu thm mt s c php s dng RULE khc: s dng
cc tham s futureonly, gn RULE cho kiu d liu
Tho b RULE cho thuc tnh:
EXEC sp_unbindrule [ @objname = ] 'Tn_bng.Tn_thuc_tnh'
Ghi ch: Khi g b RULE th g b ton b RULE m c gn vo thuc
tnh.
Xa RULE
DROP RULE [Tn_Rule]
V d 1: Ci t RBTV lng ca gio vin thuc khong ($1000, $20000) bng
cch s dng RULE.
(insert, update, delete) c thc hin trn bng chnh. Ngi dng nu mun khi
phc li d liu trong bng chnh th gi lnh rollback. Ngoi ra s dng hm
raiserror thng bo li khi pht hin thy s vi phm RBTV.
Xo Trigger
DROP TRIGGER [Tn_trigger]
Cp nht ni dung Trigger:
ALTER TRIGGER [Tn_trigger] ON [Tn_bng]
FOR [Cc_thao_tc: insert, update hoc delete] AS
IF UPDATE (Tn thuc tnh)
BEGIN
Thn_ca_trigger: M ngun kim tra hoc cp nht
TH1: M ngun kim tra
IF (iu kin RBTV vi phm ) BEGIN
raiserror (N'Li: XXXX ', 16, 1)
rollback END
TH2: M ngun cp nht UPDATE
END
2.3.3 Mt s v d:
V d 2: Ci t RBTV Lng ca gio vin phi >= 1000 s dng k
thut trigger.
+(LUONG)
GIAOVIEN
CTHD
+ (SoLuong, DonGia,
ThanhTien)
GIAOVIEN
+ (MABM)
BOMON
+ (TRBOMON)