You are on page 1of 15

Rng buc ton vn 1

Rng buc ton vn


(Integrity Constraint)
Chng 6
Ni dung trnh by
Gii thiu
Cc yu t ca RBTV
Phn loi RBTV
Ci t RBTV
Rng buc ton vn 2
Gii thiu
RBTV
Cc iu kin mi trng thi ca quan h u phi tha bt k thi im
no.
Xut pht t cc qui tc qun l c p t ln cc i tng trong th
gii thc.
Mc ch ca RBTV
m bo tnh nht qun ca d liu.
- Ngi gim st phi l mt nhn vin trong cng ty.
- D n phi c iu phi bi mt phng trong cng ty.
m bo ng ngha thc t ca CSDL.
- Ngy nhn chc > Ngy sinh.
- Lng nhn vin < Lng trng phng.
RBTV c 3 yu t
Ni dung.
Bi cnh.
Bng tm nh hng.
Ni dung ca RBTV
c pht biu bng
Ngn ng t nhin.
- n gin, d hiu.
Ngn ng hnh thc
- i s quan h, php tnh quan h, m gi (pseudo
code).
- C s ton hc, i lc kh hiu.
Rng buc ton vn 3
V d
RB-1
Mi nhn vin c mt m s ring bit dng phn bit vi cc
nhn vin khc.
t
1
, t
2
NHANVIEN (t
1
t
2
t
1
.MaNV t
2
.MaNV)
RB-2
Mi nhn vin phi lm vic trong mt phng ban.
NHANVIEN[MaPhong] PHONGBAN[MaPB]
RB-3
Mi nhn vin ch c php tham gia khng qu 3 d n.
s THAMGIA (card({t | t THAMGIA t.MaNV = s.MaNV}) 3)
RB-4
Mi phng ban phi c t nht mt nhn vin
s PHONGBAN (t NHANVIEN (t.MaPhong = s.MaPB))
Bi cnh ca RBTV
L nhng quan h m RBTV c hiu lc.
Bi cnh c th l mt quan h hoc nhiu quan
h.
V d
RB-1 c bi cnh l NHANVIEN.
RB-2, RB-4 c bi cnh l NHANVIEN, PHONGBAN.
RB-3 c bi cnh l THAMGIA.
Rng buc ton vn 4
Bng tm nh hng ca RBTV (1)
RBTV c th b vi phm khi thc hin cc thao tc cp nht
trn bi cnh
Thm
Xa
Sa
Bng tm nh hng dng xc nh thi im cn kim
tra RBTV.
- - + Quan h k
... ... ... ...
- + + Quan h 1
Sa Xa Thm Tn RBTV
+ : cn phi kim tra RBTV
- : khng cn kim tra RBTV
Cc quan h
bi cnh
V d
- - + NHANVIEN
Sa Xa Thm RB-1
- + - PHONGBAN
+ - + NHANVIEN
Sa Xa Thm RB-2
- - + THAMGIA
Sa Xa Thm RB-3
- - + PHONGBAN
+ - - NHANVIEN
Sa Xa Thm RB-4
Rng buc ton vn 5
Bng tm nh hng ca RBTV (2)
Bng tm nh hng tng hp
Xy dng trn c s bng tm nh hng ca cc RBTV.
xc nh thi im kim tra RBTV khi mt thao tc cp nht trn
mt quan h no c thc hin.
...
...
...
...
...
+
T
Tn RBTV r
...
-
X
+
...
+
S S X T
- + Quan h n
... ... ... ...
- - + Quan h 1
Tn RBTV 1
V d
+
-
T
RB-4
-
-
X
-
+
S
...
- - + THAMGIA
- + - PHONGBAN
+ - + - - + NHANVIEN
... S X T S X T S X T
RB-3 RB-2 RB-1
Rng buc ton vn 6
Phn loi RBTV
Phn loi theo bi cnh
Bi cnh l mt quan h.
Bi cnh l nhiu quan h.
Mc ch
Gip ngi thit k pht hin cc RBTV ca mt CSDL.
RBTV c bi cnh l mt quan h
RBTV min gi tr.
RBTV lin thuc tnh.
RBTV lin b.
RBTV c bi cnh l nhiu quan h
RBTV tham chiu.
RBTV lin thuc tnh - lin quan h
RBTV lin b - lin quan h.
RBTV thuc tnh tng hp.
RBTV min gi tr (1)
RB-5
Lng ca nhn vin khng thp hn 10.000.
t NHANVIEN (t.Luong 10.000)
+ - + NHANVIEN
Sa Xa Thm RB-5
Rng buc ton vn 7
RBTV min gi tr (2)
RB-6
Gi s quan h NHANVIEN c thm thuc tnh ngy xp
lng. Khi mc lng thay i, th gi tr ca ngy xp
lng phi lun tng.
: NHANVIEN NHANVIEN
t NHANVIEN (t.NgXepLuong < (t).NgXepLuong)
+ - - NHANVIEN
Sa Xa Thm RB-6
RBTV lin thuc tnh
RB-7
Ngy xp lng phi ln hn ngy sinh ca nhn vin.
t NHANVIEN (t.NgSinh < t.NgXepLuong)
RB-8
Mt nhn vin khng c gim st chnh mnh.
t NHANVIEN (t.MaGSat t.MaNV)
+ - + NHANVIEN
Sa Xa Thm RB-7
+ - + NHANVIEN
Sa Xa Thm RB-8
Rng buc ton vn 8
RBTV lin b
S tn ti ca b ny ph thuc vo b
khc.
Trng hp c bit l rng buc kha chnh.
RB-1 v RB-3.
RBTV tham chiu (1)
RB-9
Ch c nhn vin ca cng ty mi c tham gia vo d
n ca cng ty.
- S tn ti ca mt b t THAMGIA ph thuc vo s tn ti ca
mt b u NHANVIEN v mt b v DUAN.
t THAMGIA (u NHANVIEN, v DUAN (u.MaNV
= t.MaNV v.MaDA = t.MaDA))
- + - DUAN
- + - NHANVIEN
- - + THAMGIA
Sa Xa Thm RB-9
Rng buc ton vn 9
RBTV tham chiu (2)
RB-10
Mi thn nhn phi c mi quan h h hng vi nhn
vin ca cng ty.
- S tn ti ca b mt t THANNHAN ph thuc vo s tn ti
ca mt b u NHANVIEN.
t THANNHAN (u NHANVIEN (u.MaNV = t.MaNV))
- - + THANNHAN
- + - NHANVIEN
Sa Xa Thm RB-10
RBTV tham chiu (3)
RB-11
Ngi gim st trc tip (nu c) phi l mt nhn vin
trong cng ty.
- S tn ti ca b mt t NHANVIEN ph thuc vo s tn ti
ca mt b u NHANVIEN.
t NHANVIEN (t null u NHANVIEN (u.MaNV =
t.MaGS))
Nhn xt
RBTV tham chiu c th c bi cnh l mt quan h.
+ + + NHANVIEN
Sa Xa Thm RB-11
Rng buc ton vn 10
RBTV lin thuc tnh - lin quan h
Mi lin h gia cc thuc tnh trong nhiu lc
quan h.
RB-12
Ngy nhn chc ca trng phng phi ln hn ngy
sinh.
t PHONGBAN (u NHANVIEN (u.MaNV =
t.TrPhong u.NgSinh < t.NgNhanChuc))
+ - + PHONGBAN
+ - - NHANVIEN
Sa Xa Thm RB-12
RBTV lin b - lin quan h
Mi lin h gia cc b trn nhiu lc quan
h.
RB-4.
RB-13
Lng ca nhn vin khng c cao hn lng trng
phng.
t NHANVIEN (u PHONGBAN (v NHANVIEN
(v.MaNV = u.TrPhong u.MaPB = t.MaPhong v.Luong
> t.Luong)))
+ - + PHONGBAN
+ - + NHANVIEN
Sa Xa Thm RB-13
Rng buc ton vn 11
RBTV thuc tnh tng hp
Thuc tnh ca lc ny c tnh ton t cc
thuc tnh hoc cc b ca cc lc khc.
RB-14
Gi s PHONGBAN c thm thuc tnh lu s nhn vin
ca phng. Khi s nhn vin ca phng phi bng
tng s nhn vin thuc phng .
t PHONGBAN (t.SoNV = card({u | u NHANVIEN
u.MaPhong = t.MaPB}))
+ - + PHONGBAN
+ + + NHANVIEN
Sa Xa Thm RB-14
Ci t RBTV vi Assertion (1)
create assertion <Tn assertion> check <iu kin>
drop assertion <Tn assertion>
RB-12
create assertion RB_12
check (not exists (
select *
from PHONGBAN, NHANVIEN
where TrPhong = MaNV and
NgSinh > NgNhanChuc));
Rng buc ton vn 12
Ci t RBTV vi Assertion (2)
RB-3
create assertion (
check (not exists (
select MaNV
from THAMGIA
group by MaNV
having count(*) > 3));
Ci t RBTV vi Check (1)
create table <Tn bng> (
<khai bo thuc tnh> check <iu kin>,
...,
check <iu kin>
);
RB-5
create table NHANVIEN (
...,
Luong int check (Luong >= 10000),
...,
)
Rng buc ton vn 13
Ci t RBTV vi Check (2)
RB-7
create table NHANVIEN (
...,
NgSinh date,
NgXepLuong date,
...,
check (NgSinh < NgXepLuong)
);
Ci t RBTV vi Trigger (1)
Tp hp cc lnh t ng thc hin khi xy ra cc
s kin no .
M hnh ECA (S kin - iu kin - Hnh ng)
S KIN HNH NG IU KIN
ng
-Thm
-Xa
-Sa
Tp hp cc lnh Xc nh trn
cc b c v mi
Rng buc ton vn 14
Ci t RBTV vi Trigger (2)
create trigger <Tn trigger>
<after | before> <insert | delete | update> on <Tn
bng>
[for each row | for each statement]
[when <iu kin>]
<Cc lnh SQL>;
drop trigger <Tn trigger>
Ci t RBTV vi Trigger (3)
RB-13
create trigger RB_13
before insert or update of Luong on NHANVIEN
for each row
when (
new.Luong > (select Luong
from NHANVIEN
where MaNV = new.MaGSat))
ERROR(Luong moi cao hon luong giam sat);
Rng buc ton vn 15
Ci t RBTV trn SQL Server
SQL Server 2000
Khng h tr Assertion.
H tr Check v Trigger.
Trigger trn SQL 2000
Xem Help Book Online
- Transact SQL CREATE TRIGGER.

You might also like