Professional Documents
Culture Documents
Ni Dung
RNG BUC TON VN (RBTV) CC YU T CA RBTV CC LOI RNG BUC TON VN
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.
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
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)
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
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
Sa -(MaKhoa) -(MaKhoa)
Xa +
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
Bi cnh mt quan h
Min gi tr Lin thuc tnh Lin b
Cc bc xc nh RBTV
Khoa Cng Ngh Thng Tin - B Mn H Thng Thng Tin 10
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
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
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
13
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
14
Cui
Ta c, SLBan SLTon, v y
cthd TCT_HOADON, hh THangHoa cthd.MaHH=hh.MaHH
cthd.SLBan hh.SLTon
Cui
16
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
Chu trnh
Cho 3 LQH
DatHang (SoDH, MaHH) HoaDon (SoHD, SoDH) CTHD (SoHD, MaHH)
SoDH
DatHang
MaHH
HoaDon
SoHD
CTHD
TCTHD[SoHD, MaHH]
18
DatHang
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
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
Mt quan h
Nhiu quan h Lin thuc tnh Lin quan h . . . Thuc tnh tng hp Chu trnh
...
Cc bc xc nh RBTV
Bc 2: Lp bng tm nh hng
RBTV
Thm Sa Xa
+ -
RBTV
Thm Sa Xa
+ + -
RBTV
Thm Sa Xa
+ + -
RBTV
Thm Sa Xa + +
21
Cc bc xc nh RBTV
TSinhVien T R1 R2 R3 + + S + X T
TKhoa S X T
TKetQua S X
+ + 22
Ni Dung
RNG BUC TON VN (RBTV) CC YU T CA RBTV CC LOI RNG BUC TON VN
23
Cc RBTV c ci t bi
Primary key Foreign key Check constraint Rule (mang tnh tng thch) Trigger Transaction
24
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
Assertion
CREATE ASSERTION R12 CHECK (NOT EXISTS ( SELECT * FROM NHANVIEN, PHONGBAN WHERE MANV=TRPHG AND NGSINH > NGAY_NHANCHUC ) )
26
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
27
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)
28
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
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)
30
Trigger
CREATE TRIGGER <Tn> ON <Table> FOR, AFTER <[Insert, Update, Delete]> AS [Khai bo bin = DECLARE] <Cc cu lnh SQL>
31
Trigger
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
Trigger
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
Transaction
Transaction
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