高校科研管理系统
1.问题的描述
2.需求分析 2.1 需求分析
使用T-SQL语句创建出与题目相对应的数据库,在数据库中创建表格,添加数据,建立数据库相关表之间的参照完整性约束,创建默认、触发器、存储过程查询并将其与数据库中的表进行绑定。
2.2 系统功能结构
(1)实现对科研常规事务的管理
(2)实现科研课题的申请、审批、验收的管理 (3)可以完成对校内各种科研信息的查询、统计
2.3 数据流图
图1-1 科研管理系统的顶层数据流图
实现部门、职务、职称等基本信息的管理; 实现教师信息的管理;
实现可以科研项目的申报、审批管理; 实现科研项目的验收管理;
创建默认,并邦定到科研项目的验收标志,使其默认值为“未验收”; 创建触发器,验收项目时自动修改项目的验收标志为“验收通过”; 创建存储过程统计个院系科研项目的申报和完成数量; 建立数据库相关表之间的参照完整性约束。
图1-2 系统数据流图
3.逻辑结构设计
3.1 局部E-R图
3.2 全局E-R图
3.3 数据字典
4.数据库实现 数据库创建
create database gxky on primary (name=gxky_data,
Filename='E:\data\gxky_data.mdf', Size=5mb, Maxsize=20mb,
4.数据库实现 数据库创建
create database gxky on primary (name=gxky_data,
Filename='E:\data\gxky_data.mdf', Size=5mb, Maxsize=20mb,
Filegrowth=20% ) Log on
(name=gxky_log,
Filename='E:\data\gxky_log.ldf', Size=10mb, Filegrowth=2mb )
Collate chinese_prc_ci_as GO
各个表的创建
Create table 部门
(部门号 int constraint pk_bmh primary key, 部门名 char(12) not null, )
Create table 系部
(系部号 int constraint pk_xbh primary key, 部门号 int not null, 系部名 char(12) not null )
Create table 教师
(教师编号 int constraint pk_js primary key, 系部号 int not null, 教师姓名 char(12) not null )
Create table 职务 (教师编号 int not null, 教师姓名 char(12) not null, 职务 char(12) not null )
Create table 职称 (教师编号 int not null, 教师姓名 char(12) not null, 职称 char(12) not null )
Create table 科研计划
(科研编号 int constraint pk_kybh primary key,
系部号 int not null, 教师编号 int not null, 教师姓名 char(12) not null, 是否申报 char(2) not null, 审批管理 char(12) not null, 验收标志 char(12) not null, 完成数量 int not null )
建立数据库相关表之间的参照完整性约束。
Alter table 系部
Add constraint fk_xibu_bumen
Foreign key (部门号) references 部门(部门号)
Alter table 教师
Add constraint fk_js_xibu
Foreign key (系部号) references 系部(系部号)
Alter table 职务
Add constraint fk_zw_js
Foreign key (教师编号) references 教师(教师编号)
Alter table 职称
Add constraint fk_zc_js
Foreign key (教师编号) references 教师(教师编号)
Alter table 科研计划
Add constraint fk_kyjh1_js
Foreign key (教师编号) references 教师(教师编号)
Alter table 科研计划
Add constraint fk_kyjh2_xb
Foreign key (系部号) references 系部(系部号)
向表中插入数据
insert 部门 values('01','工学院') insert 部门 values('02','理学院') insert 部门 values('03','数学学院') insert 部门 values('04','商学院')
insert 系部 values('01','01','计算机') insert 系部 values('02','01','电气工程') insert 系部 values('03','02','冶金') insert 系部 values('04','02','化学') insert 系部 values('05','03','计算数学') insert 系部 values('06','03','应用数学') insert 系部 values('07','04','物流管理') insert 系部 values('08','04','财务管理')
insert 教师 values('01','01','张三') insert 教师 values('02','02','李四') insert 教师 values('03','03','王五') insert 教师 values('04','04','小马') insert 教师 values('05','05','小东') insert 教师 values('06','06','小红') insert 教师 values('07','07','小明') insert 教师 values('08','08','小赵')
insert 职务 values('01','张三','查资料') insert 职务 values('02','李四','整理资料') insert 职务 values('03','王五','动手实践') insert 职务 values('04','小马','记录数据') insert 职务 values('05','小东','观察现象') insert 职务 values('06','小红','分析问题') insert 职务 values('07','小明','纠正错误') insert 职务 values('08','小赵','汇总')
insert 职称 values('01','张三','教授') insert 职称 values('02','李四','博士') insert 职称 values('03','王五','研究生') insert 职称 values('04','小马','副教授') insert 职称 values('05','小东','助教') insert 职称 values('06','小红','讲师') insert 职称 values('07','小明','博士') insert 职称 values('08','小赵','教授')
insert 科研计划 values('01','01','01','张三','是','已审批','验收','5') insert 科研计划 values('02','02','02','李四','是','未审批','未验收','1') insert 科研计划 values('03','03','03','王五','是','已审批','验收','3') insert 科研计划 values('04','04','04','小马','是','已审批','验收','3') insert 科研计划 values('05','05','05','小东','是','未审批','未验收','6') insert 科研计划 values('06','06','06','小红','是','已审批','验收','8') insert 科研计划 values('07','07','07','小明','是','未审批','未验收','2') insert 科研计划 values('08','08','08','小赵','是','已审批','未验收','4')
创建默认,并邦定到科研项目的验收标志,使其默认值为“未验收”
Alter table 科研计划
Add constraint df_ysbz Default '未验收'for 验收标志
创建触发器,验收项目时自动修改项目的验收标志为“验收通过”
Create trigger up_ysbz On 科研计划 For update As Begin
If update(验收标志)
Update 科研计划 set 验收标志='验收通过' end
创建存储过程统计个院系科研项目的申报和完成数量
create proc up_sbwcsl(@xbh int) AS begin
select 科研计划.系部号,是否申报,完成数量 from 科研计划 Where 科研计划.系部号=@xbh and 是否申报='是' end
插入数据后各个表的情况
5.结束语(结论)
通过这次课程设计让我收获很大,这次课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,在课程设计中碰到了很多的问题,通过查阅相关书籍,资料,通过自己钻研,向同学请教。
这次课程设计让我认识到了自己对以前所学知识的不足方面,我会继续学习更多的知识。但是,我的学习仍有不足之处,我会继续努力。这次课程设计让我意识到我们开发系统所用到的知识,并不是单靠掌握一两门开发工具就能做好的,需要用到更多的基础知识。这就需要我们在未来的路上继续学习新的知识,并把它变为自己的东西,这也正是学习的精髓所在。