学籍管理系统源代码+ER图+下载 第6页
Tupdata:
CREATE TRIGGER Tupdate ON [dbo].[Teacher]
FOR UPDATE
AS
update TC
set TC.教师号 = ( select 教师号 from inserted)
where TC.教师号=(select 教师号 from deleted) ;
② Sdelete:
CREATE TRIGGER Tdelete ON [dbo].[Teacher]
FOR DELETE
AS
DELETE
FROM TC
WHERE TC.教师号=(select 教师号 from deleted) ;
(5)Major表上的触发器 当专业编号发生改变或专业取消,对应的学生表的专业号应该发生改变或置为空值。
① Mupdata:
CREATE TRIGGER Mupdate ON [dbo].[Major]
FOR UPDATE
AS
update StudentsInfo
set 专业号= ( select 专业号 from inserted)
where 专业号=(select 专业号 from deleted) ;
② Mdelete:
CREATE TRIGGER Mupdate ON [dbo].[Major]
FOR DELETE
AS
update StudentsInfo
set 专业号 = NULL
where 专业号=(select 专业号 from deleted) ;
2.6.2存储过程设计
下面是部分存储过程的描述,包括插入数据、更新数据与查询数据。
(1)插入学生基本信息的存储过程
CREATE PROCEDURE TnsertStudentsInfo
@班级 varchar(16), @学号 int(4), @姓名 varchar(6),
@性别varchar(2), @出生年月 datatime(8), @籍贯varchar(8),
@民族varchar(2), @家庭住址 varchar(20), @入学时间 datatime(8),
@政治面貌varchar(6), @院系代号varchar(5), @专业号varchar(5),
@身份证号char(18), @电话号码varchar(12), @备注varchar(14),
as
insert into StudentsInfo(班级,学号, 姓名,性别,出生年月,籍贯,民族,家庭住址,入学时间,
政治面貌,院系代号,专业号,身份证号,电话号码,备注)
values (@班级,@学号, @姓名,@性别,@出生年月,@籍贯,@民族,@家庭住址,@入学时间,
@政治面貌,@院系代号,@专业号,@身份证号,@电话号码,@备注)
GO
(2)Update 学生成绩信息的存储过程
CREATE PROCEDURE UpdateSC
@学号 int(4),
@课程号 varchar(5),
@分数 float,
AS
update SC
set 分数=@分数
where 学号=@学号 and 课程号=@课程号
GO
(3) 对不有不及格科目的所有学生的信息查询的存储过程
CREATE PROCEDURE selectstuendt_1
AS
SELECT StudentsInfo.学号, 姓名,班级,课程名,分数
FROM StudentsInfo, SC,Course
Where 分数 in(0, 60) And StudentsInfo.学号=SC.学号 And SC.课程号=Course.课程号
GO
3.设计结果与分析
3.1数据库的试运行
(1) 触发器功能的试运行
在对StudentsInfo上的SUpdate触发器的验证时,先运行sql语句:
select *
from dbo.SC;
得到在update操作前的SC表的所有内容,如图16所示,接着执行对StudentsInfo表的Update操作,即如下语句:
update dbo.StudentsInfo
set 学号='2005541007'
where 学号='2005541023';
select *
from dbo.SC;
得到新的SC表,如图17所示, 学号为2005541023的自动修改为2005541007。
图16 update执行前SC表 图17 update执行后SC表
(2)存储过程的试运行
这里只列出一个存储过程的试运行结果,为了不重复,其它的就略去,下面是存储过程selectstuendt_1的运行情况,图18显示了SC表的内容即学生成绩情况,运行了存储过程后便筛选出了不及格的学生信息,如图19所示。
图18 SC表内容 图19 筛选结果
3.2 数据库的运行和维护
当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在sqlserver中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。当然也可以利用其他各种方法进行数据维护。
4.设计体会
通过两星期的数据结构课程设计实习,我从中受益匪浅,并且对数据库这一门课程有了更深一步的认识。在实习中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的程序中渐渐融会贯通。虽然我们对这些知识还运用得还不是很熟练,但是相信在现在和今后的学习中会得到更加深刻的掌握。
在课程设计中,设计了一个学生学籍管理系统,其中包含了对学生基本信息的管理,学生必修课程以及成绩管理,学校教师资源管理,学校专业以及院系等。基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。但是这是一个完全不能真正用与实际的系统,它没有操作界面,没有完善的数据完整性的约束,也不具有可靠的安全性。但总之在设计当中我们学习到了许多东西,用到了很多的数据库的理论知识,增强了一定的实践能里。
实习过程中我们一边设计一边探索,发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。在实习中我们学到了很多,希望在以后我们能充分利用实习的机会充实自己,并希望这样的机会能被更好更多地提供。
5.参考文献
[1] 谢宋和, 甘 勇. 单片机模糊控制系统设计与应用实例[M]. 北京: 电子工业出版社, 1999.5:20-25
[2] 潘新民, 王燕芳. 微型计算机控制技术[M], 第2版. 北京: 电子工业出版社, 2003.4:305-350
[3] 范立南, 谢子殿. 单片机原理及应用教程[M]. 北京: 北京大学出版社, 2006.1:123-130
[4].周桓,徐薇.数据库系统开发.北京:人民邮电出版社,2006:260-271
[5].Bain T 等.SQL Server2000数据库.北京:电力出版社,2003:125-220
[6].贾讽波,杨树青,杨玉顺.数据库应用实例.北京:人民邮电出版社,2006:25-46