C s d liu - Khoa CNTT - H KHTN TPHCM 2 Ni dung chi tit Khi nim Cc c trng ca RBTV Phn loi Cai t
C s d liu - Khoa CNTT - H KHTN TPHCM 3 Khi nim RBTV (Integrety Constraints) xut pht t nhng qui nh hay iu kin - Trong thc t - Trong m hnh d liu Cc thao tc lm thay i d liu khng nn c thc hin mt cch ty tin v c th a CSDL n mt tnh trng xu
RBTV l mt iu kin c nh ngha trn mt hay nhiu quan h khc nhau Cc RBTV l nhng iu kin bt bin m mi th hin ca quan h u phi tha bt k thi im no C s d liu - Khoa CNTT - H KHTN TPHCM 4 Khi nim (tt) Ti sao cn phi c RBTV? - Bo m tnh kt dnh ca cc thnh phn cu to nn CSDL - Bo m tnh nht qun ca d liu - Bo m CSDL lun biu din ng ng ngha thc t
V d - Mc lng ca mt ngi nhn vin khng c vt qu trng phng (R1) - Ngi qun l trc tip (ca mt nhn vin) phi l mt nhn vin trong cng ty (R2) C s d liu - Khoa CNTT - H KHTN TPHCM 5 Ni dung chi tit Khi nim Cc c trng ca RBTV - Bi cnh - Ni dung - Bng tm nh hng Phn loi Ci t C s d liu - Khoa CNTT - H KHTN TPHCM 6 Bi cnh Bi cnh ca mt RBTV - L nhng quan h c kh nng b vi phm RBTV khi thc hin cc php cp nht
V d (R1) - Mc lng ca mt ngi nhn vin khng c vt qu trng phng Cc php cp nht - Cp nht lng cho nhn vin - Thm mi mt nhn vin vo mt phng ban - B nhim trng phng cho mt phng ban Bi cnh: NHANVIEN, PHONGBAN C s d liu - Khoa CNTT - H KHTN TPHCM 7 Bi cnh (tt) V d (R2) - Ngi qun l trc tip phi l mt nhn vin trong cng ty Cc php cp nht - Cp nht ngi qun l trc tip ca mt nhn vin - Thm mi mt nhn vin Bi cnh: NHANVIEN C s d liu - Khoa CNTT - H KHTN TPHCM 8 Ni dung Ni dung ca mt RBTV c pht biu bng - Ngn ng t nhin D hiu nhng thiu tnh cht ch
- Ngn ng hnh thc C ng, cht ch nhng i lc kh hiu Biu din thng qua - i s quan h - Php tnh quan h - M gi (pseudo code) C s d liu - Khoa CNTT - H KHTN TPHCM 9 Ni dung (tt) V d (R1) - Ngn ng t nhin Mc lng ca mt ngi nhn vin khng c vt qu trng phng
- Ngn ng hnh thc
t e NHANVIEN ( -u e PHONGBAN ( -v e NHANVIEN ( u.TRPHG = v.MANV . u.MAPHG = t.PHG . t.LUONG s v.LUONG ))) C s d liu - Khoa CNTT - H KHTN TPHCM 10 Ni dung (tt) V d (R2) - Ngn ng t nhin Ngi qun l trc tip phi l mt nhn vin trong cng ty
- Ngn ng hnh thc t e NHANVIEN ( t.MA_NQL = null . -s e NHANVIEN (t.MA_NQL = s.MANV )) C s d liu - Khoa CNTT - H KHTN TPHCM 11 Bng tm nh hng Bng tm nh hng - Xc nh thao tc cp nht no cn phi kim tra RBTV khi c thc hin trn quan h bi cnh
C 2 loi - Bng tm nh hng cho mt RBTV - Bng tm nh hng tng hp C s d liu - Khoa CNTT - H KHTN TPHCM 12 Bng tm nh hng mt RBTV Tn_RB Quan h n Quan h 1 Quan h 2
Thm Xa Sa + + (Thuc tnh) + + (+) Vi phm RBTV () Khng vi phm RBTV C s d liu - Khoa CNTT - H KHTN TPHCM 13 Bng tm nh hng tng hp Quan h 1 Quan h 2 Quan h 3 Quan h n
T X S T X S T X S Rng buc 1 Rng buc 2 Rng buc m + - - - + - + - + + - - + + - + - - - + - + - + C s d liu - Khoa CNTT - H KHTN TPHCM 14 Ni dung chi tit Khi nim Cc c trng ca RBTV Phn loi - Mt quan h Min gi tr Lin b Lin thuc tnh - Nhiu quan h Tham chiu Lin b, lin quan h Lin thuc tnh, lin quan h Thuc tnh tng hp Chu trnh Ci t C s d liu - Khoa CNTT - H KHTN TPHCM 15 RBTV - Min gi tr Rng buc qui nh cc gi tr cho mt thuc tnh
Min gi tr - Lin tc - Ri rc A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | | e {o, |, } 9 e {1..10} C s d liu - Khoa CNTT - H KHTN TPHCM 16 V d 3 Thi gian tham gia n ca mt nhn vin khng qu 60 gi
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 17 V d 4 Gii tnh ca nhn vin l Nam hoc Nu
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 18 RBTV - Lin b S tn ti ca mt hay nhiu b ph thuc vo s tn ti ca mt hay nhiu b khc trong cng quan h
Trng hp c bit - RB kha chnh - RB duy nht (unique) A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | C s d liu - Khoa CNTT - H KHTN TPHCM 19 V d 5 Tn phng l duy nht
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 20 V d 6 Mt nhn vin c tham gia ti a 5 n
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 21 V d 7 THIDAU(NGAY, GIO, DOI, SOBAN) Mi trn u l cuc thi u ca ng 2 i
- Bi cnh:
- Biu din:
- Bng tm nh hng C s d liu - Khoa CNTT - H KHTN TPHCM 22 RBTV - Lin thuc tnh L rng buc gia cc thuc tnh trong cng quan h A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | C s d liu - Khoa CNTT - H KHTN TPHCM 23 V d 8 Mt nhn vin khng qun l trc tip chnh mnh
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 24 V d 9 KHOAHOC(MAKH, TENKH, BDAU, KTHUC) Mi kha hc ko di t nht 3 thng
- Bi cnh:
- Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 25 RBTV - Tham chiu Gi tr xut hin ti cc thuc tnh trong mt quan h no phi tham chiu n gi tr kha chnh ca mt quan h khc cho trc
Trng hp c bit - RB kha ngoi A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | E F 7 S 3 1 2 Bt buc phi tn ti trc C s d liu - Khoa CNTT - H KHTN TPHCM 26 V d 10 Mi thn nhn phi c mi quan h gia nh vi mt nhn vin trong cng ty
- Bi cnh: - Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 27 RBTV - Tham chiu (tt) Cn gi l ph thuc tn ti Thng c bi cnh l hai quan h - Nhng c trng hp suy bin thnh mt quan h - V d (R2) Ngi qun l trc tip phi l mt nhn vin trong cng ty Bi cnh: Biu din:
Bng tm nh hng C s d liu - Khoa CNTT - H KHTN TPHCM 28 RBTV - Lin b, lin quan h L rng buc xy ra gia cc b trn nhiu quan h khc nhau A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | A B o S o 2 4 |
2 2 C 7 7 3 10 C s d liu - Khoa CNTT - H KHTN TPHCM 29 V d 11 HOADON(SOHD, MAKH, NGAYHD) CTHD(SOHD, MAHH, DGIA, SLG) Mi ha n phi c t nht mt chi tit ha n
- Bi cnh: - Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 30 RBTV - Lin thuc tnh, lin quan h L rng buc xy ra gia cc thuc tnh trn nhiu quan h khc nhau A B o R o | C 1 5 12 | 23 D 1 7 3 9 o | | | A B o S o 2 4 |
2 2 C 7 7 3 10 C s d liu - Khoa CNTT - H KHTN TPHCM 31 V d 12 Ngy sinh ca trng phng phi nh hn ngy nhn chc
- Bi cnh: - Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 32 RBTV - Thuc tnh tng hp Thuc tnh tng hp - L thuc tnh c gi tr c tnh ton t cc thuc tnh khc
Khi CSDL c thuc tnh tng hp - RBTV bo m quan h gia thuc tnh tng hp v cc thuc tnh ngun C s d liu - Khoa CNTT - H KHTN TPHCM 33 V d 13 PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC, SO_NV) S nhn vin ca mt phng ban phi bng tng s lng nhn vin thuc phng - Bi cnh: - Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 34 RBTV Chu trnh Lc CSDL c th c biu din bng th - nh Quan h Thuc tnh - Cnh ng ni mt nh quan h vi mt nh thuc tnh trong lc CSDL
Chu trnh - th xut hin ng i khp kn ~ Lc CSDL c chu trnh Tn quan h Tn thuc tnh Tn quan h Tn thuc tnh C s d liu - Khoa CNTT - H KHTN TPHCM 35 NHANVIEN DEAN PHG=PHONG V d 14 Nhn vin ch c phn cng vao cc n do phng ban ca mnh ph trch
PHANCONG NHANVIEN DEAN PHG=PHONG PHANCONG SODA=MADA MANV=MA_NVIEN MANV, MADA MA_NVIEN, SODA C s d liu - Khoa CNTT - H KHTN TPHCM 36 V d 14 (tt) Nhn vin ch c phn cng vao cc n do phng ban ca mnh ph trch - Bi cnh: - Biu din:
- Bng tm nh hng: C s d liu - Khoa CNTT - H KHTN TPHCM 37 Ni dung chi tit Khi nim Cc c trng ca RBTV Phn loi Ci t - Assertion - Trigger - Transaction (giao tc) - Stored Procedure (th tc lu tr ni) C s d liu - Khoa CNTT - H KHTN TPHCM 38 Ci t Cc RBTV c ci t bi - Primary key - Foreign key - Check contraint
- Assertion - Trigger - Transaction C s d liu - Khoa CNTT - H KHTN TPHCM 39 Assertion L mt biu thc SQL lun mang gi tr TRUE ti mi thi im - Ngi s dng cn cho bit ci g phi ng
C php
CREATE ASSERTION <Tn_assertion> CHECK (<iu_kin>) DROP ASSERTION <Tn_assertion> C s d liu - Khoa CNTT - H KHTN TPHCM 40 V d 12 Ngy sinh ca trng phng phi nh hn ngy nhn chc C s d liu - Khoa CNTT - H KHTN TPHCM 41 V d 15 Lng ca trng phng phi ln hn 50000 C s d liu - Khoa CNTT - H KHTN TPHCM 42 V d 15 (tt) Lng ca trng phng phi ln hn 50000 Check Constraint C s d liu - Khoa CNTT - H KHTN TPHCM 43 V d 16 S lng nhn vin ca mi phng ban khng qu 20 ngi C s d liu - Khoa CNTT - H KHTN TPHCM 44 V d 16 (tt) S lng nhn vin ca mi phng ban khng qu 20 ngi Check Constraint C s d liu - Khoa CNTT - H KHTN TPHCM 45 Assertion hay Check Constraint ? C s d liu - Khoa CNTT - H KHTN TPHCM 46 Trigger L tp hp cc lnh c thc hin t ng khi xut hin mt bin c no row-level statement-level trc sau gi tr mi gi tr c thm xa sa iu kin Tp hp cc lnh Thng bo li Tha Khng tha Bin c C s d liu - Khoa CNTT - H KHTN TPHCM 47 Trigger (tt) C php CREATE TRIGGER <Tn_trigger> AFTER|BEFORE INSERT|UPDATE|DELETE ON <Tn_bng> REFERENCING NEW ROW|TABLE AS <Tn_1> OLD ROW|TABLE AS <Tn_2> FOR EACH ROW | FOR EACH STATEMENT WHEN (<iu kin>) <Tp_lnh_SQL> DROP TRIGGER <Tn_trigger> C s d liu - Khoa CNTT - H KHTN TPHCM 48 V d 15 Lng ca trng phng phi ln hn 50000 C s d liu - Khoa CNTT - H KHTN TPHCM 49 V d 15 (tt) Lng ca trng phng phi ln hn 50000 C s d liu - Khoa CNTT - H KHTN TPHCM 50 V d 15 (tt) Lng ca trng phng phi ln hn 50000 C s d liu - Khoa CNTT - H KHTN TPHCM 51 Transaction L tp cc lnh thc hin mt x l no trong mt ng dng CSDL, sao cho - Hoc l tt c cc lnh u c thc hin thnh cng - Hoc l khng c lnh no c thc hin
V d: x l chuyn tin trong ngn hng Giao tc Chuyn_tin Gim tin trong ti khon ngi gi Tng tin trong ti khon ngi nhn Nu tt c u thnh cng th hon tt giao tc Ngc li quay lui giao tc Cui giao tc C s d liu - Khoa CNTT - H KHTN TPHCM 52 Transaction (tt) Giao tc phi m bo - Tnh nguyn t (atomicity) - Tnh nht qun ca CSDL (consistency) Cc RBTV khng b vi phm - Trong khi thc hin giao tc - Trc v sau khi thc hin giao tc C s d liu - Khoa CNTT - H KHTN TPHCM 53 V d 7 Giao tc Thm_trn_u(t, s) Thm t vo THIDAU Thm s vo THIDAU Nu c mt thao tc tht bi th Quay lui giao tc Ngc li Hon tt giao tc Cui nu Cui giao tc Mi trn u l cuc thi u ca ng 2 i C s d liu - Khoa CNTT - H KHTN TPHCM 54 V d 7 (tt) Giao tc Xa_trn_u(ngay, gio) Vi mi seTHIDAU (s.NGAY=ngay . s.GIO=gio) Xa s khi THIDAU Cui vi mi Nu c mt thao tc tht bi th Quay lui giao tc Ngc li Hon tt giao tc Cui nu Cui giao tc C s d liu - Khoa CNTT - H KHTN TPHCM 55 V d 11 Giao tc Thm_ha_n Thm HOADON Thm chi tit th 1 vo CTHD Thm chi tit th 2 vo CTHD
Nu c mt thao tc thm tht bi th Quay lui giao tc Ngc li Hon tt giao tc Cui nu Cui giao tc Mi ha n phi c t nht mt chi tit ha n C s d liu - Khoa CNTT - H KHTN TPHCM 56 V d 11 (tt) Giao tc Thm_ha_n Thm HOADON Thm chi tit th 1 vo CTHD Thm chi tit th 2 vo CTHD
Nu c mt thao tc thm tht bi th Quay lui giao tc Ngc li Hon tt giao tc Cui nu Cui giao tc C s d liu - Khoa CNTT - H KHTN TPHCM 57 Stored Procedure Cc DBMS thng mi cung cp cch thc lu tr cc hm hay th tc - c lu tr trong lc CSDL - c s dng trong cc cu lnh SQL
C php CREATE PROCEDURE <Tn_th_tc> <DS_tham_s> AS Khai bo bin cc b Thn chng trnh GO EXEC <Tn_th_tc> <DS_ tham_s> C s d liu - Khoa CNTT - H KHTN TPHCM 58 V d 7 Mi trn u l cuc thi u ca ng 2 i CREATE PROCEDURE Thm_trn_u t THIDAU , s THIDAU AS begin tran Thm t vo THIDAU If @@error<>0 rollback tran
Thm s vo THIDAU If @@error<>0 rollback tran commit tran GO
EXEC Thm_trn_u x, y C s d liu - Khoa CNTT - H KHTN TPHCM 59 Nhn xt DBMS s kim tra RBTV - Sau khi mt thao tc cp nht din ra trn CSDL - Cui mi giao tc
Nn ci t RBTV u ??? - DBMS - Application
- Trigger qu nhiu h thng chm chm - Stored Procedure hiu qu cao C s d liu - Khoa CNTT - H KHTN TPHCM 60 Bi tp v nh Bi tp - 7.2 / 331-333 - 7.3 / 335-336 - 7.4 / 345-347