Professional Documents
Culture Documents
Lab 1 - CSDL Nang Cao
Lab 1 - CSDL Nang Cao
Lab 1 - CSDL Nang Cao
I. Mc ch:
- Xy dng Stored Procedure, Function v Trigger thc hin cc chc nng ca h thng.
- S dng cc lnh Transact-SQL, Cursor.
II. Yu cu:
- Sinh vin thc hnh nghim tc
- Lm v np bi theo yu cu ca gio vin
III. Ni dung thc hin:
A. Stored-Procedure
nh ngha: Mt Stored procedure c nh ngha gm nhng thnh phn chnh sau:
- Tn ca stored procedure
- Cc tham s
- Thn ca stored procedure: bao gm cc lnh ca Transact-SQL dng thc thi procedure. Mt stored
procedure c to bng lnh Create Procedure, v c th thay i bng cch dng lnh Alter Procedure, v c th
xa bng cch dng lnh Drop Procedure trong lp lnh ca Transact SQL.
Lnh to Procedure:
Lu :
o Trong SQL Server, c th ghi tt mt s t kha m tn c chiu di hn 4 k t. V d: c th thay th Create
Procedure bng Create Proc; C th to, chnh sa Store bng giao din.
o Tn hm, tn bin trong SQL Server khng phn bit hoa thng.
Khai bo bin v gn gi tr cho bin:
V d:
- Stored-procedure tnh tng ca 2 s nguyn:
- Stored procedure lit k nhng thng tin ca u sch, thng tin ta sch v s lng sch hin cha c mn ca mt
u sch c th (ISBN).
B. Trigger
Gii thiu: Trigger l mt trng hp c bit ca store procedure, n s c hiu lc khi chng ta thay i d
liu trn mt bng d liu c th, hoc cc x l lm thay i d liu ca cc lnh: insert, update, delete. Trigger c
th cha cc lnh truy vn t cc bng khc hoc bao gm nhng lnh SQL phc tp.Chng ta s xy dng mt v
d n gin u tin vi mt bng v v d lin quan n lu tr, ly d liu, cp nht v xa cc mu tin.
Lnh to Trigger:
V d:
C. Function
Gii thiu: Trong SQL Server ta c th vit hm v ly gi tr tr v. Cc dng hm c th vit nh sau :
- Hm tr v gi tr v hng (scalar value) : varchar, int, .
- Hm tr v gi tr l bng tm (inline table-valued) : table
C php:
V d:
- Vit hm tnh tui ca ngi c nm sinh l @ns:
IV. Luyn tp
1. M t CSDL Qun l th vin
Mt th vin cn qun l vic ng k, mn v tr sch ca cc bn c th vin. Sau y l phn m t theo
cc nghip v hng ngy ca th vin:
Th th gi ni dung ca mt cun sch l ta sch. V d: ni dung c th l Ton Cao Cp A1, truyn
Harry Porter tp 8, . Mi ta sch c dch thnh nhiu ngn ng khc nhau v tng bn dch nh vy gi l
mt u sch ca ta sch . Mi u sch c nhiu bn sao, mi bn sao c gi l cun sch.
3 Thi Duy Qu ITFac DLU thaiduyquy@gmail.com
THC HNH C S D LIU NNG CAO
V. Bi tp
Bi tp 1:
- M SQL Server, to CSDL Th vin v n nh m t phn luyn tp.
- Nhp mt s mu tin c tun th mt s quy tc nu trong phn luyn tp.
Bi tp 2:
Ci t cc Store Procedure ca CSDL Qun l th vin theo m t nh sau:
Ni dung: Thm cun sch vo h thng vi iu kin phi bo m quy nh Q-2 c tun th. V phi cp nht
trng thi ca u sch.
Bc thc hin:
[1] Kim tra m isbn nu khng tn ti th thng bo & return.
[2] Xc nh m cun sch s cp cho cun sch ny tha quy nh Q-2.
[3] Thm cun sch mi vi m cun sch xc nh v tnh trng l yes.
[4] Thay i trng thi ca u sch l yes
2.9. Thm c gi ngi ln:
Tn: sp_ThemNguoilon
Ni dung: thm thng tin mi vo bng d liu ngi ln v bng d liu c gi ca h thng.
Bc thc hin:
[1] Xc nh m c gi s cp cho c gi ngi ln ny tha quy nh Q-1.
[2] Thm mt b d liu vo bng c gi.
[3] Kim tra tui ca c gi ny c 18 tui.
[4] Nu khng tui :
[4.1] Thng bo li.
[4.2] Chm dt stored procedure.
[5] Nu tui th: Thm mt b d liu vo bng ngi ln.
2.10. Thm c gi tr em:
Tn: sp_ThemTreEm
Ni dung: thm thng tin mi vo bng d liu tr em v bng d liu c gi trong h thng.
Bc thc hin:
[1] Xc nh m c gi s cp cho c gi tr em ny tha quy nh Q-1.
[2] Thm mt b d liu vo bng c gi.
[3] m s tr em ca c gi ngi ln bo lnh tr em mi ny.
[4] Kim tra, nu khng tha quy nh Q-3 th:
[4.1] Thng bo li.
[4.2] Chm dt stored procedure.
[5] Nu tha quy nh Q-3 th: Thm mt b d liu vo bng tr em.
2.11. Xa c gi:
Tn: sp_XoaDocGia
Ni dung: xa ton b thng tin lin quan n c gi ny gm c: qu trnh mn, ng k, mn, c gi, ngi
ln (nu c gi ny l ngi ln), tr em (nu c gi l tr em hay c gi ngi ln c bo lnh tr em). Ch thc
hin xa khi c gi khng ang mn sch.
Bc thc hin:
[1] Kim tra xem c gi c tn ti hay khng ?
8 Thi Duy Qu ITFac DLU thaiduyquy@gmail.com
THC HNH C S D LIU NNG CAO
begin tran
--khi lnh thm,xa,sa
rollback
3.5 tg_SaSach
Ni dung: Vit trigger khi sa tn tc gi cho mt (hoc nhiu) ta sch th in ra:
- Danh sch m cc ta sch va c sa.
- Danh sch m ta sch va c sa v tn tc gi mi.
- Danh sch m ta sch va c sa v tn tc gi c.
- Danh sch m ta sch va c sa cng tn tc gi c v tc gi mi.
Gi :
+ Cu lnh insert into T select from cho php insert cng lc nhiu dng.
+ Dng bng Inserted (hoc/v Deleted).
- Cu thng bo bng Ting Vit Va sa thng tin ca ta sch c m s xxx vi xxx l m ta sch va c
sa.
Gi : Sch c sa trong bng Inserted (hoc Deleted).
3.6 tg_KiemTraTrung
Ni dung: Vit trigger khi Khi thm mi mt ta sch th kim tra xem c ta sch trng tn vi ta sch va
c thm hay khng. X l 2 trng hp :
- Trng hp x l 1: ch thng bo vn cho insert
- Trng hp x l 2: thng bo v khng cho insert
Bi tp 3:
Vit cc Function sau trong CSDL n
1. Vit hm tr v tng tin lng trung bnh ca mt phng ban ty (truyn vo MaPB)
2. Vit hm tr v tng lng nhn c ca nhn vin theo d n (truyn vo MaNV v MaDA)
3. Vit hm tr v tng tin lng trung bnh ca cc phng ban
4. Vit hm tr v tng tin thng cho nhn vin da vo tng s gi tham gia d n(Time_Total) nh sau:
- Nu Time_Total >=30 v <=60 th tng tin thng = 500 ($)
- Nu Time_Total >60 v <100 th tng tin thng = 1000 ($)
- Nu Time_Total >=100 v <150 th tng tin thng =1200($)
- Nu Time_Total >=150 th tng tin thng = 1600 ($)
5. Vit hm tr ra tng s d n theo mi phng ban.
6. Vit hm tr v kt qu l mt bng (Table), vit bng hai cch: Inline Table-Valued Functions v
Multistatement Table-Valued. Thng tin gm: MaNV, HoTen, NgaySinh, NguoiThan, TongLuongTB.
Bi tp 4:
Vit cc trigger theo m t nh sau trong CSDL n:
11 Thi Duy Qu ITFac DLU thaiduyquy@gmail.com
THC HNH C S D LIU NNG CAO
1. To triggers trn bng nhn vin cho thao tc UPDATE. Khi c thao tc UPDATE xy ra trn field TENNV th
thng bo cho ngi dng Khng c cp nht v hy thao tc.
2. Thm mt ct ToTal_Time vo trong bng nhn vin. Vit trigger cho thao tc insert, update, delete trn bng
PhanCong. Khi c mu tin c thm vo, hay cp nht, hay xa th ToTal_Time c tnh li tng ng cho nhn
vin c phn cng. Lu , gi s ban u ToTal_Time = 0. ToTal_Time l tng thi gian phn cng cho nhn
vin ca cc d n.
3. To trigger cho thao tc insert, update trn bng Nhanvien kim tra rng buc lin thuc tnh gia ngy sinh v
Hire_date, trong ngy sinh lun lun < Hire_date 40. (40 l gi tr ca datepart yy).
4. To trigger kim tra thao tc insert trn bng THANNHAN sao cho s lng thn nhn c thm vo tng
ng vi mt nhn vin khng qu 5 ngi.
Bi tp 5:
Gi s c s d liu qun l sinh vin nh sau:
SinhVien (MSSV, HoSV, TenSV, Phai, NgaySinh, DiaChi, DienThoai, MaLop, DiemTB)
Lop (MaLop, TenLop, MaKhoa, GVCN, MaLT)
Diem (MSSV, MaMH, LanThi, Diem)
Monhoc (MaMH, TenMH, TinChi)
To cc trigger sau:
1. Khi thm bng SinhVien: Nu m lp khng tn ti bn bng lop, nu m sv trng hoc b trng th khng
cho thm vo
2. Khi thm vo bng Lop: Hai k t u ca m lp l CD, hai k t sau l TH hoc KT. Ngc li khng cho
thm vo
3. Khi thm vo bng KetQua: Kim tra s tn ti ca MSSV, MaMH, cp nht DiemTB cho bng SinhVien.
4. Khi thm vo bng MonHoc: tinchi phi >=2 v <=6
5. Khi sa bng Diem: kim tra MSSV, MaMH c hp l hay khng. Cp nht DiemTB bn bng SinhVien
6. Khi sa bng SinhVien, sa i MSSV tng ng bng Diem. Khng c sa DiemTB
7. Khi sa bng Lp, sa i MaLop trn bng SinhVien
8. Khi sa bng monhoc, sa i mamh trn bng KetQua.
9. Khi xa bng SinhVien. Xa nhng sinh vin tng ng trong bng KetQua.
10. Khi xoa bng Lop: trng m lp cho cho nhng sinh vien c m lp trng vi m lp va b xa bn bng
Lop
11. Xa bng MonHoc, xa m mn hc tng ng trn bng KetQua.
=== Ht ===