一.需求分析
1. 系统功能分析:
数据库主要是用来对公司、部门有关的人事信息以及对与公司相关的数据进行管理,并提供了相关的人事职能,同时让员工可以通过公司内部网络实现自我管理,提高了整体运作能力。那些重复的,事务性的工作交给HR管理软件来解决。每个月月中发工资,包括考勤、人事信息变动、福利、休假和绩效考核奖金对本月的薪资计算都有影响,为人事部提供了管理工具,因此运用数据库大大提高了公司运行的效率。
2.系统功能模块设计:
员工的基本信息管理:
提供员工的基本信息,如员工登录系统的信息,员工名字,联系方式,所属部门,基本工资,职位信息,部门信息等。 公司部门管理:
提供部门信息,如部门名称,部门描述,部门经理等信息。 公司的工资管理:
记录员工每月的工资信息,包括工资发放日期、工资组成等。 公司的考勤管理:
用于记录员工的考勤信息 公司的请假记录管理:
用于记录员工的请假信息,包括请假提交时间、请假开始时间、请假终止时间、请假原因、请假的类别和请假申请状态等 公司的加班信息管理:
用于记录员工的加班信息,包括加班时间、加班起止时间、加班原因和加班申请批准状态等
二.数据库设计
1.关系模式
(1)员工基本信息表(员工编号,员工姓名,电子邮箱,所属部门,基本工资,职务名称,联系电话)
(2)部门基本信息表(部门编号,部门名称,部门描述,部门经理编号)
(3)工资信息表(工资编号,员工编号,工资发放时间,基本工资,加班工资,缺勤扣除)
(4)考勤信息表(考勤编号,员工编号,到达时间,记录者编号,日期)
(5)请假信息表(员工编号,提交时间,开始时间,结束时间,理由说明)
(6)加班信息表(加班申请编号,员工编号,批准者编号,提交时间,开始时间,结束时间)
2.E-R图
图2.1为几个实体之间的关系图(下图)
缺勤扣除 员工编号 工资编号 加班工资
考勤信息 工资信息到达时间员工编号
1工资发放时间
基本工资
日期记
1录 者
考勤 工 员工编号
编 号
资
员工姓名
1 1所属部门 部门编号 部门名称
n
1
员工基本信息属于
部门基本信息
基本工资 部门经理
1职务名称
1编号
部门描述
请 联系电话 假
加班
开始时间 电子邮箱
理由说明 1提交时间
1结束时间
请假信息
结束时间
加班信息员工编号 提交时间 开始时间 加班申请编号 员工编号 批准者编号
3.各表字段以及数据类型设置
(1)表2-1为员工基本信息表
表2-1
(2)表2-2部门基本信息表
表2-2
(3)表2-3工资信息表
表2-3
(4)表2-4考勤信息表
表2-4
(5)表2-5请假信息表
表2-5
(6)表2-6加班信息表
表2-6
4.关键代码
(1)创建数据库——人事管理: create database 人数管理管理 on
( name=’图书管理_data’,
filename=’d:\sql\data\mssql\data\xueji.mdf, size=5MB, mxsize=50MB, filegrowth=10% ) log on
( name=’图书管理_log’,
filename=’d:\sql\data\mssql\data\xueji_log.ldf’, size=2MB, maxsize=5MB, filegrowth=1MB )
(2)创建员工基本信息关系及其主键约束: create table 员工基本信息
(员工编号 char(10) constraint A primary key, 员工姓名 char(10), 电子邮箱 char(20), 所属部门 char(10), 基本工资 char(10), 职称姓名 char(10), 联系电话 char(20))
(3)创建部门基本信息关系及其主键约束: Create table 部门基本信息
(部门编号 char(10),
部门名称 char(10) constraint A primary key, 部门描述 char(20), 部门经理编号 char(10))
(4)创建工资信息关系及其主键约束: Create table 工资信息 (工资编号 char(10) ,
员工编号 char(10) constraint A primary key, 工资发放时间 datetime(8), 基本工资 char(10), 加班工资 char(10), 缺勤扣除 char(10))
(5)创建考勤信息关系及其主键约束: create table 考勤信息 (考勤编号 char(10) ,
员工编号 char(10) constraint A primary key, 到达时间 char(10), 记录者编号 char(10), 日期 datetime(8))
(6)创建请假信息关系及其主键约束: create table 请假信息
(员工编号 char(10) constraint A primary key, 提交时间 char(10), 开始时间 char(10), 结束时间 char(10),
理由说明 char(10))
(7)创建加班信息关系及其主键约束: create table 加班信息 (加班申请编号 char(10),
员工编号 char(10) constraint A primary key, 批准者编号 char(10), 提交时间 char(10), 开始时间 char(10), 结束时间 char(10))
(8)创建策划部的员工基本信息视图: create view worker
as select 员工姓名,部门名称,职称姓名,联系电话 from 员工基本信息 where 部门名称='策划部' (9)创建学习部的考勤信息视图: create view present
as select 员工基本信息.员工编号,员工姓名,部门名称,到达时间 from 员工基本信息,考勤信息
where 员工基本信息.员工编号=考勤信息.员工编号 and 部门名称='学习部'
5.关系图
图2.2为此数据库的关系图
图2.2
三.详细设计(各关系表格)
(1)表3-1为员工基本信息表:
select * from 员工基本信息
表3-1
(2)表3-2为部门基本信息表: select * from 部门基本信息
表3-2
(3)表3-3为工资信息表: select * from 工资信息
表3-3
(4)表3-4为考勤信息表 select * from 考勤信息
表3-4
(5)表3-5为请假信息表: select * from 请假信息
表3-5
(6)表3-6为加班信息表: select * from 加班信息
表3-6
(7)表3-7为策划部的员工基本信息视图
Select * from worker
表3-7
(8)表3-8为学习部的考勤信息视图
表3-8
四. 课程设计感想
通过这次数据结构课程设计, 使我对数据库设计有了一个比较深刻的了解,对各种数据库方法的性能有了清晰的认识,使我感觉到,一个优秀的数据库应用软件,不仅仅是可以运行的,更应该具有人性化的界面,协调的布局,合理的结构,良好的性能和一定的容错性.一个人要完成所有的工作是非常困难和耗时的.在以后的学习中我会更加注意各个方面的能力的协调发展,通过课程设计全面地对SQL Server 有了更深一步的认识,也更系统的了解了这门学科,在对数据库的创建,E-R图,关系模式,到表的创建、修改以及查询都基本掌握。我想对我以后的学习或是工作都有很大的帮助。
数据库是一门相对比较重要的课程,SQL是数据库的重要精髓,但感觉掌握的不够扎实,特别是其中有一些比较抽象的知识点,只是从逻辑上学习,并没有真正的参与设计或者实践,因此本次课程设计对我们来说是一个很好的机会,不仅能够把以前的书本知识在实验中做出来,更重要的是我们可以学到一些书本中不曾遇到的问题。
在这一周的实训过程中,我遇到了许多困难,有时候想也想不明白,我没有放弃,虽然一时做不出来,但我相信自己会做出来的,每次在机房实训结束后,我回去会查些资料,把不会的知识认认真真的看了有看,最终做了出来,很高兴,这使我明白困难只是一时的,只要坚持,付出足够努力,总会有收获的.
通过这次的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅.非常感谢老师这次课程设计的付出,谢谢!
五. 参考文献以及网址
1. 陈志泊,王春玲.数据库原理及应用教程(第二版).人民邮电出版社 2. 萨师煊,王珊.数据库系统概论(第三版).高等教育出版社 3. 李贺,刘彬彬,孙明丽.SQL Server 2000应用与开发范例宝典.人民邮电出版社
4. 张建沛.数据库原理及应用系统开发.中国水利水电出版社 5. http:///d/7818e2e02bdbcb2e7243b6a2dc75a4dbeb8771125c351300
6. http:///app/preuser?id=6294856¤tPage=4