Professional Documents
Culture Documents
Tn c s d liu : Qun l ng k chuyn Lp Nhm im n STT 1 2 3 MSSV 3309410044 3309410051 3309410064 : DCT309 : 06 : H tn V Tin Pht Nguyn Hu Trng Sn Nguyn B Thng Khi lng cng vic (%) 35 30 35 im
M t hin trng
Phng gio v ti mt trng i hc mun tin hc ha vic qun l hc cc chuyn ca sinh vin. Kt qu ca vic phn tch yu cu trn nh sau: Mi sinh vin c mt m s duy nht, mt h tn, thuc mt phi, c mt ngy sinh, mt a ch v hc mt ngnh duy nht. Mi ngnh c mt m ngnh duy nht, c mt tn ngnh duy nht. Ngoi ra cng c n lu li mt con s cho bit s chuyn m mt sinh vin theo hc mt ngnh c th phi hc, v cng cn lu li tng s sinh vin tng theo hc ngnh ny. Sinh vin phi hc cc chuyn khc nhau. Mi chuyn c mt m duy nht v c mt tn duy nht. Cn lu li thng tin v s sinh vin ti a c th chp nhn c mi khi c mt lp m cho chuyn c th. Mi chuyn c th c hc bi sinh vin thuc nhiu ngnh v sinh vin thuc mi ngnh phi hc nhiu chuyn . Mi ngnh hc ti a l 8 chuyn . Vo mi hc k ca mi nm hc, ta cn lu li cc chuyn no c m ra cho hc k ca nm sinh vin c th ng k. Sinh vi n ch c ng k nhng chuyn c m. Khi sinh vin ng k h c, lu li vic ng k hc mt chuyn ca mt sinh vin vo mt nm ca mt hc k no . Mt sinh vin ch c ng k vo cc chuyn thuc ngnh hc ca sinh vin m thi. Mi nm c 2 hc k. Sinh vin ch c ng k ti a l 3 chuyn trong mt hc k m thi.
Trang 2
3.1 Lc
SinhVien MSSV HoTen Nganh MaNg TenNg SoCD SoSV Phai NgaySinh DiaChi MaNg
ChuyenDe MaCD ChuyenDeNganh MaCDN MaNg MaCD HocKy MaHKy ChuyenDeDuocMo MaCDMo DangKy MSSV MaCDMo SLSVToiDa MaCDN MaHKy HocKy Nam TenCD
3.2 M t lc
1. SinhVien Thuc tnh MSSV Kiu d liu varchar (6) Din gii M s ca sinh vin. Mi sinh vin c mt m s ring bit phn bit vi nhau. H v tn ca sinh vin. Nhn mt trong hai gi tr l Nam hoc N. Ngy sinh ca sinh vin. ia ch ca sinh vin. M ngnh sinh vin ang theo hc.
ti: Qun l ng k chuyn 2. Nganh Thuc tnh MaNg Kiu d liu varchar (4) Din gii M ngnh ca mt ngnh hc, dng phn bit cc ngnh hc vi nhau. Tn ca ngnh hc. S chuyn m mt sinh vin theo hc mt ngnh c th phi hc. Tng s sinh vin ang theo hc trong mt ngnh.
TenNg SoCD
int
HocKy Nam 4. ChuyenDe Thuc tnh MaCD TenCD 5. ChuyenDeNganh Thuc tnh MaCDN MaNg MaCD
int int
6. ChuyenDeDuocMo Thuc tnh MaCDMo SLSVToiDa MaCDN MaHKy Trang 4 Kiu d liu int int varchar (6) varchar (5) Din gii M chuyn c m ca ngnh hc. S lng sinh vin ti a ca mt chuyn . M chuyn ca mt ngnh hc c th. M hc k.
ti: Qun l ng k chuyn 7. DangKy Thuc tnh MSSV MaCDMo Kiu d liu varchar (6) int Din gii M s ca sinh vin ng k chuyn . M ca chuyn c m sinh vin ng k.
Ci t m hnh vt l
4.1 M hnh vt l
Trang 6
Trang 8
Thit k v ci t cc cu truy vn
--Q1: Danh sch chuyn ca ngnh Cng Ngh Thng Tin c MaNg = 'N002' select TenCD from ChuyenDeNganh CDN, ChuyenDe CD where MaNg = 'N002' and CDN.MaCD = CD.MaCD
Q2. Danh sch chuyn ng k ca mt sinh vin. (Danh sch chuyn ng k ca sinh vin c MaSV = SV003 ) R1 (MaCDMo) R2 (MaCDN) R3 (MaCD) KQ MaCDMo (MSSV= SV0003(DangKy)) MaCDN(ChuyenDeDuocMoChuyenDeDuocMo.MaCDMo=R1.MaCDMoR1) MaCD(ChuyenDeNganhChuyenDeNgannh.MaCDN=R2.MaCDNR2) MaCD, TenCD (ChuyenDeChuyenDe.MaCD=R3.MaCDR3)
--Q2: Danh sch chuyn ng k ca sinh vin c MaSV = 'SV003' select 'M S Sinh Vin' = MSSV, 'Tn Chuyn ' = TenCD from DangKy DK, ChuyenDeDuocMo CDDM, ChuyenDeNganh CDN, ChuyenDe CD where DK.MSSV = 'SV0003' and DK.MaCDMo = CDDM.MaCDMo and CDDM.MaCDN = CDN.MaCDN and CDN.MaCD = CD.MaCD order by TenCD ASC
Q3. Danh sch cc sinh vin ca mt ngnh hc. (Danh sch sinh vin ca ngnh Cng Ngh Thng Tin c MaNg = N002) KQ MSSV, HoTen, Phai, NgaySinh, DiaChi (MaNg = N002 (SinhVien))
--Q3: Danh sch sinh vin ca ngnh Cng Ngh Thng Tin c MaNg = 'N002' Select MSSV, HoTen, Phai, NgaySinh, DiaChi from SinhVien where MaNg = 'N002'
ti: Qun l ng k chuyn Q4. Danh sch cc chuyn c m trong mt hc k, ca mt nm hc. (Danh sch cc chuyn c m ca hc k 1 nm 2009) R1 (MaHKy) R2 (MaCDN) R3 (MaCD) KQ MaHKy (Nam=2009 AND HocKy=1 (HocKy)) MaCDN(ChuyenDeDuocMoChuyenDeDuocMo.MaHKy=R1.MaHKyR1) MaCD(ChuyenDeNganhChuyenDeNgannh.MaCDN=R2.MaCDNR2) MaCD, TenCD (ChuyenDeChuyenDe.MaCD=R3.MaCDR3)
--Q4: Danh sch cc chuyn c m ca hc k 1 nm 2009 create view Q4_R1 as select MaCDN from HocKy HK, ChuyenDeDuocMo CDDM where HK.Nam = 2009 and HK.HocKy = 1 and CDDM.MaHKy = HK.MaHKy select CD.MaCD, CD. TenCD from ChuyenDe CD, ChuyenDeNganh CDN, Q4_R1 where Q4_R1.MaCDN = CDN.MaCDN and CDN.MaCD = CD.MaCD
--Q5: S lng chuyn ng k ca tng sinh vin select SV.MSSV, SV.HoTen , 'S C' = count(MaCDMo) from SinhVien SV left join DangKy DK on SV.MSSV=DK.MSSV group by SV.MSSV, SV.HoTen
Q6. Cho bit ngnh hc c nhiu sinh vin nht R1(MSSV,MaNg,TenNg) MSSV, MaNg( SinhVienMaNgNganh) R2(MaNg,TenNg ,SLSV) MaNg COUNT(MSSV)(R1) KQ MaNg, TenNg, SLSV( SLSV>= R2)
Trang 10
PK
FK2
PK
FK2, FK3, FK4
PK, R8
FK5
PK
FK4, FK5, FK7
PK
FK1, FK6
PK
FK6, FK7
Ghi ch:
FK1: FK2: FK3: FK4: FK5: FK6: FK7: fk_sv_ng fk_cdn_cd fk_cdn_ng fk_cddm_cdn fk_cddm_hk fk_dk_sv fk_dk_cddm
R2: S chuyn sinh vin ng k ca mi ngnh phi t 1 n 8. ng TNganh, ng.SoCD BETWEEN 1 AND 8 Cui ------ALTER TABLE NGANH ADD CONSTRAINT CHK_SOCD CHECK (SOCD BETWEEN 1 AND 8)
ng.SoSV > 0 Cui ------ALTER TABLE NGANH ADD CONSTRAINT CHK_SOSV CHECK (SOSV > 0)
R4: Trong mt nm hc ch c 2 hc k.
hk THocKy,
hk.HocKy IN (1, 2) Cui ------ALTER TABLE HOCKY ADD CONSTRAINT CHK_HOCKY CHECK (HOCKY IN (1, 2))
hk.Nam > 0 Cui ------ALTER TABLE HOCKY ADD CONSTRAINT CHK_NAM CHECK (NAM > 0)
Trang 12
ti: Qun l ng k chuyn R6: S lng sinh vin ti a ca mi chuyn c m phi l s dng.
cddm TChuyenDeDuocMo,
cddm.SLSVToiDa > 0 Cui ------ALTER TABLE CDDM ADD CONSTRAINT CHK_SLSVTOIDA CHECK (SLSVTOIDA > 0)
sv.NgaySinh now Cui ------ALTER TABLE SINHVIEN ADD CONSTRAINT CHK_NGAYSINH CHECK (NGAYSINH <= NOW())
R8: Trong mt nm hc ch c 2 hc k.
hk1, hk2 THocKy,
NOT (hk1.Nam = hk2.Nam AND hk1.HocKy = hk2.HocKy) Cui THM HocKy + SA - (Nam, HocKy) XA -
Countdk.MSSV, cddm.MaHKy (dk.MaCDMo) 3 Cui THM ChuyenDe DuocMo DangKy + SA - (MaHKy) - (MaCDMo) XA + -
R10: S lng sinh vin ng k 1 chuyn khng vt qu s lng do chuyn quy nh.
cddm TChuyenDeDuocMo, dk TDangKy: cddm.MaCDMo = dk.MaCDMo
R11: Tng s sinh vin trong mt ngnh phi bng s sinh vin ca ngnh .
ng TNganh, sv TSinhVien: ng.MaNg = sv.MaNg
sv.MaNg cdn.MaNg Cui THM ChuyenDeNganh ChuyenDe DuocMo SinhVien DangKy + SA - (MaNg) - (MaCDN) - (MaNg) + XA + + + -
Trang 14
R9
- (MaHKy)
(MaCDMo) (MaCDMo)
R10
+ (SLSVToiDa) (MaNg)
R11
(SoSV)
R12
+ (MaNg)
- (MaCDN)
+ (MaNg)
Trang 15
--Trigger cho sa s lng sinh vin ca mt ngnh (R11) create trigger trgNganhUpd on Nganh for update as begin if not update(SoSV) return update Nganh set SoSV = (select count(MSSV) from SinhVien where SinhVien.MaNg=Nganh.MaNg) end
--Trigger cho bng Hc k (R8) create trigger trgHocKyInsUpd on HocKy for insert, update as begin declare @nam int, @hk int, @daco int select @nam=Nam, @hk=HocKy from inserted select @daco=count(MaHKy) from HocKy where Nam=@nam and HocKy=@hk if (@daco > 1) begin raiserror ('Hc k %d ca nm %d c', 16, 1, @hk, @nam) rollback tran end end --Trigger khi sinh vin ng k mt chuyn mi --Sinh vin ch c ng k chuyn thuc ngnh hc ca mnh (R12) create alter trigger trgDangKyIns on DangKy for insert as begin declare @MSSV varchar(6), @MaCDM int, @MaNgSV varchar(4), @MaNgCD varchar(6) select @MSSV=MSSV, @MaCDM=MaCDMo from inserted select @MaNgSV=MaNg from SinhVien where MSSV=@MSSV select @MaNgCD=CDN.MaNg from ChuyenDeNganh CDN, ChuyenDeDuocMo CDDM where CDDM.MaCDMo=@MaCDM and CDN.MaCDN=CDDM.MaCDN if (@MaNgSV <> @MaNgCD) begin raiserror ('Bn khng th ng k chuyn thuc ngnh hc khc', 16, 1) rollback tran end end
Trang 16