资源描述
数据库原理及应用课程设计设计报告题目:学校人力资源管理系统学号:学生姓名 :方新运指导教师:余建国提交时间:目录学校人力资源管理系统第1章需求分析需求调查通过对各个用户的调查,该学校人力资源管理系统有如下需求:1) 家庭管理:实现学校教职工家庭信息管理包括父母,子女等信息。2) 学历管理:实现学校教职工学历信息管理,包括教职工从小学到大学的学校情况。3) 基本信息:实现显示教职工基本信息及邮箱信息的记录。4) 奖惩管理:实现在教职工奖惩情况记录。5) 部门管理:包含最基本的部门名、部门总人数信息。系统功能分析1) 家庭管理:用于记录和管理职工的父母子女等亲属的名字。2) 学历管理:用于记录教职工从小到大所在学校的名称。3) 个人基本管理:用于记录职工的姓名性别工号出生年月电子邮件职称号等信息。4) 奖惩管理:用于记录职工奖惩情况。5) 部门管理:对各部门和人数进行管理。第 2 章 面向对象分析和设计类第 3 章结构局部图图 3-13-2个人基本信息姓名: char工号: char性别 : char出生年份 :int职称号: char电子邮件: char所属部门: char添加 ()删除 ()查询 ()修改 ()和对象设计学历信息家庭关系职称信息工号: char姓名: char职称名: char姓名: char工号: char职称号: char父母: char小学: char人数: int子女 1:char初中: char子女 2:char高中: char子女 3:char大学: char查询 ()查询 ()添加 ()添加 ()修改 ()添加 ()修改 ()删除 ()修改 ()删除 ()删除 ()查询 ()如下:逻辑设计E-R图图3-3图 3-4 图 3-5类和对象向关系模式转换个人基本信息(姓名、工号、性别、出生年份、电子邮件、职称号、所属部门)职称(姓名、职称号、人数)部门(人数、部门名)家庭关系(工号、姓名、父、母、妻(夫)、子女1、子女 2、子女 3)学历信息(姓名、工号、小学、初中、高中、本科、研究生、博士)奖惩(姓名、工号、奖励、惩罚、日期)第 4 章数据库物理结构设计4.1存取方法设计数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。对于教务管理系统来说,为了提高某些属性( 如:学生学号,教职工号,课程号,学生成绩,选课信息等) 的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。这样在查询某个学院或是查询某个专业或某学年等的学生成绩或选课等时就会大大提高查询速度。因此,该系统中选择聚簇存取方法。存储结构设计教务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/ 服务器( B/S ),客户端 / 服务器( C/S)混合的应用体系结构来建设教务管理系统。数据库管理系统采用Microsoft公司推出的SQL Server 2000或以上版本,并用SQL 进行数据库的建立和数据库中数据的维护和查询。物理设计实现该设计的环境为Windows XP Professional + MS SQL Server 2005或以上版本。1、建立学校人力资源管理系统数据库create database学校人力资源管理系统on primary (name=学校人力资源管理系统,学校人力资源管理学校人力资源管理系统数据文件.mdf,size=5,maxsize=10,filegrowth=1)log on (name=学校人力资源管理日志文件,学校人力资源管理学校人力资源管理日志文件.ldf,size=3,maxsize=10,filegrowth=1)2、建立个人基本信息表 USE 学校人力资源管理系统 GO/* Object: Table dbo.个人基本信息Script Date: 01/03/2015 20:32:39*/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.个人基本信息( 姓名 char(10) NULL, 工号 char(10) NOT NULL, 性别 char(10) NULL, 出生年份 char(10) NULL, 电子邮件 char(50) NULL, 职称号 char(10) NULL, 所属部门 char(10) NULL,CONSTRAINT PK_个人基本信息 PRIMARY KEY CLUSTERED(工号ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARYGOSET ANSI_PADDING OFFGOALTER TABLE dbo.个人基本信息 WITH NOCHECK ADD CONSTRAINT FK_ 个人基本信息_部门 FOREIGN KEY( 所属部门 )REFERENCES dbo. 部门 (部门名 )GOALTER TABLE dbo.个人基本信息 NOCHECK CONSTRAINT FK_个人基本信息_部门 GOALTER TABLE dbo.个人基本信息 WITH NOCHECK ADD CONSTRAINT FK_ 个人基本信息_职称 1 FOREIGN KEY( 职称号 )REFERENCES dbo.职称1 (职称号 )GOALTER TABLE dbo.个人基本信息 NOCHECK CONSTRAINT FK_个人基本信息_职称 1GO3、建立家庭关系表USE 学校人力资源管理系统GO/* Object: Table dbo.*/家庭关系Script Date: 01/03/2015 20:30:35SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.家庭关系 ( 工号 char(10) NULL, 姓名 char(10) NULL, 妻(夫) char(10) NULL, 父 char(10) NULL, 母 char(10) NULL, 子女 1 char(10) NULL, 子女 2 char(10) NULL, 子女 3 char(10) NULL) ON PRIMARYGOSET ANSI_PADDING OFFGOALTER TABLE dbo. 家庭关系 WITH CHECK ADD CONSTRAINT FK_ 家庭关系 _个人基本信息 FOREIGN KEY( 工号 )REFERENCES dbo.个人基本信息 (工号 )GOALTER TABLE dbo.家庭关系 CHECK CONSTRAINT FK_家庭关系 _个人基本信息GO4、 建立学历信息表USE 学校人力资源管理系统GO/* Object: Table dbo.学历信息 Script Date: 01/03/2015 20:28:28*/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo. 学历信息 ( 工号 char(10) NULL, 姓名 char(10) NULL, 小学 nchar(20) NULL, 初中 nchar(20) NULL, 高中 nchar(20) NULL, 本科 nchar(20) NULL, 研究生 nchar(20) NULL, 博士 nchar(20) NULL) ON PRIMARYGOSET ANSI_PADDING OFFGOALTER TABLE dbo.学历信息 WITH NOCHECK ADD CONSTRAINT FK_ 学历信息本信息 FOREIGN KEY( 工号 )REFERENCES dbo. 个人基本信息 (工号 )GO_个人基ALTER TABLE dbo.学历信息 CHECK CONSTRAINT FK_学历信息_个人基本信息5、 GO 建立奖惩信息表USE 学校人力资源管理系统GO/* Object: Table dbo.奖惩Script Date: 01/03/2015 20:27:38 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.奖惩 ( 姓名 char(10) NULL, 工号 char(10) NULL, 奖励 nchar(50) NULL, 惩罚 nchar(50) NULL, 日期 nchar(10) NULL) ON PRIMARYGOSET ANSI_PADDING OFFGOALTER TABLE dbo.奖惩 WITH NOCHECK ADD CONSTRAINT FK_ 奖惩 _个人基本信息FOREIGN KEY(工号 )REFERENCES dbo. 个人基本信息 (工号 )GOALTER TABLE dbo.奖惩 CHECK CONSTRAINT FK_奖惩 _个人基本信息GO6、建立职称信息表SET ANSI_NULLS ONGOUSE 学校人力资源管理系统GO/*Object: Tabledbo.SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.职称 1(职称1ScriptDate:01/03/201520:24:24*/ 职称号 char(10) NOT NULL, 职称名 char(10) NULL, 人数 char(10) NULL,CONSTRAINT PK_职称 1 PRIMARY KEY CLUSTERED( 职称号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO7、建立部门表USE 学校人力资源管理系统GO/* Object: Table dbo.部门 Script Date: 01/03/2015 20:25:29 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.部门 ( 部门名 char(10) NOT NULL, 人数 int NULL,CONSTRAINT PK_部门 PRIMARY KEY CLUSTERED( 部门名 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARYGOSET ANSI_PADDING OFF第 5 章数据库完整性设计主键表名主键个人基本信息信息(工号)部门( 部门名)家庭关系(工号)奖惩(工号)学历信息(工号)职称(职称号 )5.2参照完整性设计1、个人基本信息表中把职称号和所属部门设为外键ALTER TABLE dbo.个人基本信息 WITHNOCHECKADD CONSTRAINTFK_ 个人基本信息_部门 FOREIGN KEY(所属部门 )REFERENCES dbo. 部门 ( 部门名 )GOALTER TABLE dbo.个人基本信息 NOCHECK CONSTRAINT FK_个人基本信息 _部门 GOALTER TABLE dbo.个人基本信息 WITH NOCHECK ADD CONSTRAINT FK_个人基本信息 _职称1 FOREIGN KEY( 职称号 )REFERENCES dbo. 职称 1 ( 职称号 )GOALTER TABLE dbo.个人基本信息 NOCHECK CONSTRAINT FK_个人基本信息 _职称 1GO2、家庭关系中工号设计为外键ALTER TABLE dbo.家庭关系 WITH CHECK ADD CONSTRAINT FK_ 家庭关系 _个人基本信息 FOREIGN KEY(工号 )REFERENCES dbo. 个人基本信息 (工号 )GOALTER TABLE dbo.家庭关系 CHECK CONSTRAINT FK_家庭关系 _个人基本信息 GO3、奖惩表中工号为外键ALTER TABLE dbo.家庭关系 WITH CHECK ADD CONSTRAINT FK_ 家庭关系 _个人基本信息 FOREIGN KEY(工号 )REFERENCES dbo. 个人基本信息 (工号 )GOALTER TABLE dbo.家庭关系 CHECK CONSTRAINT FK_家庭关系 _个人基本信息 GO4、学历信息中工号设计为外键ALTER TABLE dbo.学历信息 WITHNOCHECKADD CONSTRAINTFK_ 学历信息 _个人基本信息 FOREIGN KEY(工号 )REFERENCES dbo. 个人基本信息 (工号 )GOALTER TABLE dbo.学历信息 CHECK CONSTRAINT FK_学历信息 _个人基本信息 GOCheck约束1、个人基本信息表中将性别进行check 约束: check ( 性别 in (男 ,女 )触发器设计1、在个人信息表中建立删除职工信息触发器USE 学校人力资源管理系统GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE trigger dbo.人数减少 on dbo.个人基本信息for deleteASbegindeclare a char(50)select a=deleted.所属部门from deletedupdate部门set部门.人数=部门.人数-1where a=部门 . 部门名endGO2、在个人信息表中建立增加教职工触发器USE 学校人力资源管理系统GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate trigger dbo.人数增加on dbo.个人基本信息for insertASbegindeclare a char(50)select a=inserted.所属部门from insertedupdate部门set部门.人数=部门.人数+1where a=部门 . 部门名 +- left(a,3)=班级 . 班级号endGO第 7 章 数据库存储过程设计创建存储过程1. 查询学校各部门各种职称的教职工数量USE 学校人力资源管理系统GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE procedure dbo.查询部门人数a char (50)asselect部门名, 人数from部门where部门 .部门名= aGO总结理论联系实际才能做好一件事,学习一门课程同样是这样。通过16 学时的数据库课程设计实习,受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。并且对大型数据库设计这一门课程有了更深一步的理解。在做课程设计中,可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。同样通过对SQLServer 的应用,也使我们熟练和巩固了对SQL的理解。这次课程设计,完成课题是教务管理系统,在学校人力资源管理系统的开发中采用了完整的数据库设计的全过程, 从需求分析到概念结构设计, 到逻辑结构设计, 最后到数据库的实施和维护,每一步都认真的分析和实施。当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。当然了, 在建表过程中一开始没有用代码来实现, 所以在构建数据库关系图的时候出现了不少的问题导致 6 张表重新建了好几次,不过最后仍然做了出来,收或还是蛮大的。在这次实习中, 我们完全投入到了开发系统的世界里。 结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。这就说明学好基础知识是理论付诸实践的前提。在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。只有这样,才能把一门课程甚至一门学科学精、学透。参考文献:1. 王珊 , 萨师煊 . 数据库系统概论 M. 高等教育出版社 ,20062.郑阿奇等 . SQLserver 实用教程(第3版) M.电子工业出版社 ,20093.赵乃真等 . 信息系统设计与应用 .清华大学出版社 ,2005数据库原理及应用课程设计报告评分标准数据表和数据量数据库对象功能实现设计报告选题合理,功能简单(D)有一定的工作量和实用价值(C)功能设计丰富,有一定的难度系数(B)功能设计合理全面,能体现数据库的存储和整理数据的功能(A)具备基本的数据表,数据量较少,但能够实现系统基本需要(D)具备基本的数据表,数据量适中,实现了一定的数据完整性(C)有多个数据表,数据量适中,有完善的数据完整性(B)有多个数据表,数据量充足,具有较强的数据安全性和数据完整性(A)具备基本的数据表,有主外键约束(D)创建了若干种的数据库对象,并加以利用(C)在实际应用中合理利用了各类数据库对象(B)具有身份验证、数据备份等较复杂的数据管理功能(A)利用存储过程实现了各种查询功能(D)除查询功能,还实现了各种数据操作功能(C)在上一条基础上,还实现了数据统计汇总功能(B)合理利用函数、存储过程、触发器实现各种数据查询、操作、管理功能(A)完成设计报告,阐述了系统功能,结构较完整(D)开题报告反映设计思路,结构完整,格式较规范(C)报告内容完整,图表使用准确,格式清晰,功能描述详尽(B)报告内容完整,图表使用准确,描述详细,代码阐述清楚,反映系统执行流程(A)教师签字:总评成绩:
展开阅读全文