(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.