You are on page 1of 35

i Hc Si Gn Khoa Cng Ngh Thng Tin B Mn H Thng Thng Tin C S D LIU

$5. Rng Buc Ton Vn Integrity Constraint


Ging vin: ThS. Trn nh Ngha

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

Ni Dung
RNG BUC TON VN (RBTV) CC YU T CA RBTV CC LOI RNG BUC TON VN

A)-BI CNH MT QUAN H B)-BI CNH NHIU QUAN H

CI T RNG BUC TON VN

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.1. RBTV & Cc yu t


RBTV l nhng iu kin bt bin lun phi c m bo gia tt c cc b ca tt c cc quan h RBTV dng m t cc mi lin h, rng buc gia cc b, cc thuc tnh

R1: Mi sinh vin c mt m s ring bit, khng trng vi bt c sinh vin no khc. R2: Mi sinh vin phi ng k vo 1 Khoa ca Trng. R3: Mi sinh vin ch c thi ti a 2 ln cho mt mn hc.

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.1. RBTV & Cc yu t

Mi RBTV gm 3 yu t:
iu kin
Ngn ng t nhin M gi i s tp hp, i s quan h

Bi cnh
L nhng quan h c RBTV cp n

Tm nh hng
Nhng thao tc trn bi cnh c th gy vi phm RBTV
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 4

$5.1. RBTV & Cc yu t

Yu t tm nh hng ca RBTV
Cc thao tc Cc quan h Thm Q1 Q2 Qn +/-/-(T) +/-/-(T) +/-/-(T) Sa +/-/-(T) +/-/-(T) +/-/-(T) Xa +/-/-(T) +/-/-(T) +/-/-(T)

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.1. RBTV & Cc yu t

Yu t tm nh hng ca RBTV
R1: Mi sinh vin c mt m s ring bit, khng trng vi bt c sinh vin no khc sv1 TSinhVien, sv2 TSinhVien
sv1 sv2 sv1.MaSV sv2.MaSV

Cui

Thm TNhanVien +

Sa -(MaNV)

Xa -

R1 c bi cnh mt quan h
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 6

$5.1. RBTV & Cc yu t

Yu t tm nh hng ca RBTV
R2: Mi sinh vin phi ng k vo 1 Khoa ca Trng sv TSinhVien, k TKhoa
k.MaKhoa = sv.MaKhoa

Cui

Thm TSinhVien TKhoa + -

Sa -(MaKhoa) -(MaKhoa)

Xa +

R2 c bi cnh hai quan h


Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 7

$5.1. RBTV & Cc yu t

Yu t tm nh hng ca RBTV
R3: Mi sinh vin ch c thi ti a 2 ln cho mt mn hc TKetQua sv
!sv: MaSV, MaMH COUNT(MaSV) (KetQua)>2

Cui

Thm TKetQua +

Sa -(MaMH)

Xa -

R3 c bi cnh mt quan h
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 8

Ni Dung
RNG BUC TON VN (RBTV) CC YU T CA RBTV CC LOI RNG BUC TON VN

A)-BI CNH MT QUAN H B)-BI CNH NHIU QUAN H

CI T RNG BUC TON VN

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.2. Cc loi RBTV

Bi cnh mt quan h
Min gi tr Lin thuc tnh Lin b

Bi cnh nhiu quan h


Ph thuc tn ti Lin b - lin quan h Lin thuc tnh lin quan h Thuc tnh tng hp Chu trnh

Cc bc xc nh RBTV
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 10

$5.2. Cc loi RBTV

Bi cnh mt quan h

Min gi tr:
Lin tc (trong 1 hoc nhiu khong) im ca sinh vin phi trong [0..10]
kq TKetQua kq.Diem BETWEEN 0 AND 10 Cui

Ri rc Quan h thn nhn phi l v, chng, con


tn TThanNhan tn.QuanHe IN (Vo,Chong,Con) Cui

Dng thc nh trc


Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 11

$5.2. Cc loi RBTV

Bi cnh mt quan h
Lin

thuc tnh:

iu kin rng buc gia cc thuc tnh trong cng mt quan h Xt lc quan h HangHoa(MaHH, TenHH, GiaNhap, GiaBan), ta c RBTV:
Gi bn phi ln hn gi nhp
hh THangHoa hh.GiaBan hh.GiaNhap Cui
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 12

$5.2. Cc loi RBTV

Bi cnh mt quan h

Lin b:
iu kin rng buc gia cc b trong cng mt quan h, rt ph bin Thng thng loi rng buc ny l cc RBTV c biu din bng ph thuc hm Sinh vin ch c thi ln 2 khi thi ln 1 kq1, kq2 TKetQua kq1 kq2 kq1.MaSV=kq2.MaSV kq1.MaMH=kq2.MaMH
kq2.LanThi=2 kq1.LanThi=1

Cui

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

13

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

Cn c gi l RBTV kha ngoi, rt ph bin Gi : KQ l tp thuc tnh ca lc quan h Q. V KR l tp thuc tnh lm kha ni ca lc quan h R. KQ c xem l kha ngoi - hay, Kq ph thuc tn ti vo KR - khi :
1. KQ KR nhng KQ R+. 2. KQ KR.

Ph thuc tn ti

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

14

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

Lin b - lin quan h


Rng buc quy nh trn nhiu b gia nhiu quan h vi nhau V d: mi khoa phi c t nht mt sinh vin
k TKhoa, sv TSinhVien
sv.MaKhoa : sv.MaKhoa.k.MaKhoa

Cui

Khc bit vi ph thuc tn ti im: bt buc phi c t nht mt


Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 15

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

Lin thuc tnh - lin quan h


Cho 2 lc quan h
HANGHOA(MaHH, TenHH, SLTon, DGVon) CT_HOADON(SoHD, MaHH, SLBan, DGBan)

Ta c, SLBan SLTon, v y
cthd TCT_HOADON, hh THangHoa cthd.MaHH=hh.MaHH
cthd.SLBan hh.SLTon

Cui

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

16

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

Thuc tnh tng hp


Gi tr thuc tnh A ca mt LQH Q c tnh ton t mt hay nhiu thuc tnh ca mt hay nhiu LQH khc Cho 3 LQH
KHACHHANG(MaKH, TenCT, TienNo) HOADON(SoHD, MaKH, NgayHD, TriGiaHD) PHIEUTHU(SoPT, MaKH, NgayPT, SoTien)

kh KhachHang , hd HoaDon, pt PhieuThu kh.TienNo = hd .MaKH = kh.MaKH TriGiaHD pt .MaKH = kh.MaKH SoTien Cuoi
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 17

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

Chu trnh
Cho 3 LQH
DatHang (SoDH, MaHH) HoaDon (SoHD, SoDH) CTHD (SoHD, MaHH)
SoDH

DatHang
MaHH

HoaDon
SoHD

CTHD

C RBTV chu trnh th hin s lin quan gia:


A= TDatHang[SoDH, MaHH] B= THoaDon

TCTHD[SoHD, MaHH]

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

18

$5.2. Cc loi RBTV

Bi cnh nhiu quan h

DatHang
MaHH

A= TDatHang[SoDH, MaHH] HoaDon B= THoaDon TCTHD[SoHD, MaHH]

SoDH

Chu trnh

CTHD
SoHD

A = B: mt ha n c lp cho ng v s lng hng ha ca 1 n t hng A B: mt ha n c th giao hoc t hn s lng hng c t A B v B A: ha n giao hng ty khng cn ng nhng mt hng hoc s lng t
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 19

$5.2. Cc loi RBTV

Cc bc xc nh RBTV

Bc 1: Lp bng m t cc RBTV
Gm cc table c trong L CSDL Loi RBTV Min gi tr Lin thuc tnh Lin b Ph thuc tn ti Lin b Lin quan h
Table 1 R5 R6 ... R1 ... ... R2 ... ... ... ... ... Table 2 ... Table . . . ... ... R3 ... ... ... ... ... ... ...
20

Bi cnh

Table n ... ... R4 ...

Mt quan h

Nhiu quan h Lin thuc tnh Lin quan h . . . Thuc tnh tng hp Chu trnh
...

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.2. Cc loi RBTV

Cc bc xc nh RBTV

Bc 2: Lp bng tm nh hng
RBTV

v kha ni trong quan h Q Q

Thm Sa Xa
+ -

RBTV

v min gi tr trong quan h Q Q

Thm Sa Xa
+ + -

RBTV

v lin thuc tnh trong quan h Q Q

Thm Sa Xa
+ + -

RBTV

v kha ngoi: R[a] Q[a] Q

Thm Sa Xa + +
21

+ + Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

$5.2. Cc loi RBTV

Cc bc xc nh RBTV

Bc 3: Lp bng tm nh hng tng hp


BNG TM NH HNG TNG HP CC RBTV

TSinhVien T R1 R2 R3 + + S + X T

TKhoa S X T

TKetQua S X

+ + 22

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

Ni Dung
RNG BUC TON VN (RBTV) CC YU T CA RBTV CC LOI RNG BUC TON VN

A)-BI CNH MT QUAN H B)-BI CNH NHIU QUAN H

CI T RNG BUC TON VN

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

23

$5.3. Ci t rng buc ton vn

Cc RBTV c ci t bi
Primary key Foreign key Check constraint Rule (mang tnh tng thch) Trigger Transaction

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

24

$5.3. Ci t rng buc ton vn

Assertion
L mt biu thc SQL lun mang gi tr TRUE ti mi thi im. Ngi s dng cn cho bit ci g phi lun ng C php

CREATE ASSERTION <Tn_assertion> CHECK (<iu_kin>) DROP ASSERTION <Tn_assertion>


Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 25

$5.3. Ci t rng buc ton vn

Assertion

V d: Ngy sinh ca trng phng phi nh hn ngy nhn chc

CREATE ASSERTION R12 CHECK (NOT EXISTS ( SELECT * FROM NHANVIEN, PHONGBAN WHERE MANV=TRPHG AND NGSINH > NGAY_NHANCHUC ) )

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

26

$5.3. Ci t rng buc ton vn

Check constraint
Dng kim tra RBTV min gi tr ca mt ct xc nh trong mt table da trn mt biu thc c kt qu lun l Mt ct c th c nhiu Check Check c to cp table c th tham chiu n nhiu ct trong table Gi tr NULL lun c chp nhn

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

27

$5.3. Ci t rng buc ton vn

Check constraint
create table nhanvien ( manv nvarchar(5) check ( manv like '[a-z]%'), ngsinh datetime, ngvl datetime, luong double, constraint chk_ngay check (ngsinh<ngvl) ) alter table abc add constraint chk_a check (a>0)

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

28

$5.3. Ci t rng buc ton vn

Rule
Tnh nng tng t Check Mang tnh tng thch ngc cc phin bn SQL Server trc Mt ct ch c th gn kt c vi 1 rule Mt rule c th ch nh cho nhiu ct Gi tr NULL lun c chp nhn

Create rule <tn> as <biu thc> sp_bindrule <rule_name>, <table.ct> sp_unbindrule <table.ct>
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 29

$5.3. Ci t rng buc ton vn

Trigger
Tp hp cc lnh t ng thc hin khi xy ra s kin no Hot ng theo m hnh ECA (s kin iu kin hnh ng)

Phc hi ng S kin Trc, sau: Thm Xa Sa iu kin Gi tr mi, c ng Hnh ng

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

30

$5.3. Ci t rng buc ton vn

Trigger
CREATE TRIGGER <Tn> ON <Table> FOR, AFTER <[Insert, Update, Delete]> AS [Khai bo bin = DECLARE] <Cc cu lnh SQL>

Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

31

$5.3. Ci t rng buc ton vn

Trigger

Lng trng phng >= 30000

create trigger trg_lngtrphg on phongban for insert, update as begin --1. Khai bo cc bin ly d liu cn thit declare @trphg nvarchar(3), @lng int -- ly d liu select @trphg=truongphong from inserted select @lng=luong from nhanvien where manv=@trphg -- kim tra RBTV if (@lng<30000) begin raiserror('Nhn vin %s c lng %d < 5000', 16, 1, @trphg, @lng) rollback tran end end Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 32

$5.3. Ci t rng buc ton vn

Trigger

Lng trng phng >= 30000

create trigger trg_lngtrphg on phongban for insert, update as begin --1. Khai bo cc bin ly d liu cn thit declare @trphg nvarchar(3) -- ly d liu select @trphg=truongphong from inserted -- kim tra RBTV if (exists(select * from nhanvien where manv=@trphg and luong<30000)) begin raiserror('Nhn vin %s c lng < 30000', 16, 1, @trphg) rollback tran end end Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 33

$5.3. Ci t rng buc ton vn

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
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
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 34

$5.3. Ci t rng buc ton vn

Transaction

Minh ha bng Stored Procedure

create procedure sp_ThemPB @mapb nvarchar(5), @tenpb nvarchar(20), @trphg nvarchar(3), @ng_nhanchuc datetime as begin begin tran if (exists(select * from nhanvien where manv=@trphg and luong<30000)) begin raiserror('Nhn vin %s c lng < 30000', 16, 1, @trphg) rollback tran end else begin insert into phongban values (@mapb, @tenpb, @trphg, @ng_nhanchuc) commit tran end end
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin

35

You might also like