题目:(10)某高校科研管理系统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 gxkyon 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_asGO各个表的创建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_bumenForeign key (部门号)references部门(部门号)Alter table教师Add constraint fk_js_xibuForeign key (系部号)references系部(系部号)Alter table职务Add constraint fk_zw_jsForeign key (教师编号)references教师(教师编号)Alter table职称Add constraint fk_zc_jsForeign key (教师编号)references教师(教师编号)Alter table科研计划Add constraint fk_kyjh1_jsForeign key (教师编号)references教师(教师编号)Alter table科研计划Add constraint fk_kyjh2_xbForeign 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_ysbzDefault '未验收'for 验收标志创建触发器,验收项目时自动修改项目的验收标志为“验收通过”Create trigger up_ysbzOn科研计划For updateAsBeginIf update(验收标志)Update科研计划set验收标志='验收通过'end创建存储过程统计个院系科研项目的申报和完成数量create proc up_sbwcsl(@xbh int)ASbeginselect科研计划.系部号,是否申报,完成数量from科研计划Where科研计划.系部号=@xbh and是否申报='是'end插入数据后各个表的情况5.结束语(结论)通过这次课程设计让我收获很大,这次课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,在课程设计中碰到了很多的问题,通过查阅相关书籍,资料,通过自己钻研,向同学请教。