数据库课程设计-企业人事管理系统_第1页
数据库课程设计-企业人事管理系统_第2页
数据库课程设计-企业人事管理系统_第3页
数据库课程设计-企业人事管理系统_第4页
数据库课程设计-企业人事管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、徐州工程学院课程设计目 录1.系统概述11.1 系统开发背景和意义1 1.2开发环境.12.系统分析12.1可行性分析12.2安全性、完整性分析22.3需求分析32.4系统模块设计33. 数据库设计43.1数据字典43.2系统数据流图53.3数据库概念设计53.4数据库逻辑设计83.5数据库物理设计94.系统的实现与调试94.1建立企业人事管理系统数据库94.2建立了数据库的各基本表104.3插入数据184.4建立索引194.5视图204.6存储过程224.7触发器234.8主要的查询SQL语句255.思考与总结276.参考文献27261.系统概述1.1 系统开发背景和意义随着计算机技术的飞速

2、发展,计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。人事管理是很多厂矿、公司、个体事业单位所须的,人事信息管理系统包括对人事信息的统计、查询、更新、打印输出等,如果靠人,工作量将很大,若公司人数有几万甚至更多,人工统计将变得不可想象,仅一些简单的操作便可及时、准确地通过计算机获得需要的信息。计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率

3、,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。经过分析,我们使用SQL Server 2005 和C#开发工具。系统能够提供对人事信息输入、查询、编辑以及工资设定、查询、修改、算出工资发放各项合计数据;可自主设定条件从而达到对工资数据的多角度查询功能;方便导入、导出数据及输出报表。财务部门人员以管理员身份登录,对本系统的可登录人员进行管理;实现了财务部门对本单位工资发放系统的集中管理,保证了系统的安全性。1.2 开发环境开发环境的选择会影响到数据库的设计,所以在这里给出人事管理系统开发环境的选择如下:开发环境

4、:Windows 7数据库管理系统:MS SQL SERVER数据库2.系统分析2.1可行性分析可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是在对系统目标和环境精心分析的基础上,由于本系统知识面向机关和事业单位内人事信息管理人员和在职人员开发的信息管理系统,尽管这些人员可能没有使用过类似的系统,但

5、是以Windows的友好界面和本系统良好的安全性设置,可以是人事信息管理员在专业人员的指导帮助下迅速掌握系统的操作方法。本系统对计算机的硬件环境有一定的要求,对计算机的操作系统、内存、主频、外设等都有最低要求,如果低于这个要求将影响到本系统的正常运行。机关和事业单位的人事信息管理目前还完全以传统的人工管理方式进行管理,耗时多,效率低下并且极容易出现错误。由于认为失误而造成有形和无形的经济损失时间层出不穷,我们也无法估算出所造成损失的总额。而利用计算机来实现人事管理以成为适应当今人事管理的方式。开发一套能满足人事信息管理的软件是十分必要的,实现人事管理的自动化,在减少由于认为失误而造成损失的同时

6、,也可以是认识信息管理部门减少许多费用支出,如实现自动化管理后可以精简人员,减少工资支出等。由上述三方面的分析可以看出,本系统的开发时机已经成熟,从多种角度考虑开发此系统都是可行的,并且也是十分必要的。2.2安全性、完整性分析数据库的安全性是指保护数据库,以防止非法使用所造成的数据泄露、更改或破坏。安全性问题有许多方面,在法律、社会、伦理方面,例如请求查询信息的人是否有合法的权利;法律控制方面,例如计算机机房或者中断是否应该加锁或用其他方法保护;政策方面,确定存取原则允许哪些用户存取哪些数据;运行于技术方面,使用口令时,如何使口令保持秘密;操作系统安全性方面,在主存储器和数据文件用过后,操作系

7、统是否把它们的内容清除掉。安全性控制的方法有用户的标识和鉴定,存取控制,定义视图,数据加密和审计等,在本系统中的安全性体现在用户的标识和鉴定,例如在登陆界面时,首先会输入账户名称,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器上对数据库的使用权。当你不是该系统的合法用户时,则账号是错误的就无法进入该系统。就用户存取权限控制而言,在系统登陆界面时会选择是一般用户登陆还是管理员登陆,当为一般用户登陆时,只能查询员工信息和部门信息,而不能对其进行管理。当以管理员身份登陆时不仅仅可以查询部门和员工的基本信息,也可以对其进行添加、删除、修改等操作。数据库的

8、完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。在本系统中对数据类型的约束,包括数据的类型、长度、单位和精度等。例如规定员工性别的数据类型应为字符型,长度为2.对数据格式的约束例如规定出生日期的数据格式为XXXX.XX.XX。对取值范围的约束,例如月份的取值范围为1-12月,日期为1-31号。对空格的约束,例如员工姓名和编号不能为空,但是员工学历即可为空。实体完整性约 白斑病束说明了关系主键(主码)的属性列必须唯一,其职不能为全空或部分为空。2.3需求分析调查本地的企业,根据企业的具体情况分析、设计和实现企业人事管理系统。其主要功如下:1、 人事档案管

9、理:户口状况、政治面貌、生理状况、合同管理等。 2、 考勤、加班、出差管理。 3、 人事变动:新进员工登记、员工离职登记、人事变更记录。 4、 考核奖惩。 5、 员工培训。 6、 系统维护:操作员管理、权限设置等。2.4系统模块设计3. 数据库设计3.1数据字典3.2系统数据流图3.3数据库概念设计数据库ER图: 3.4数据库逻辑设计由数据库E-R图,可得以下关系:员工(员工编号,姓名,性别,政治面貌,出生日期,部门,职位,身份证号,民族)加班(加班编号,员工编号,加班起始,加班结束)出差(出差编号,员工姓名,出差起始,出差结束)考勤(考勤编号,员工编号,考勤日期,上班时间,下班时间)奖惩(奖

10、惩编号,员工编号,奖惩方式,奖惩原因,奖惩日期)职务调动(调动编号,员工编号,调往部门,调往职位,调动日期)合同(合同编号,员工编号,合同起始,合同到期)新员工(登记编号,员工编号,到港日期,部门,职位)员工离职(离职编号,员工编号,部门,职位,离职日期)薪资管理(薪资编号,员工编号,基本工资,总工资,发薪日期)管理员(管理员编号,管理员姓名,管理员密码)3.5数据库物理设计 数据库物理设计阶段的任务是根据具体的计算机系统的特点,为给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度要体现

11、在后者。(1)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库对象分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。所以,系统应将日志文件和数据文件存放在不同的磁盘上。(2)评价物理结构数据库物理结构设计过程中需要对时间效率,空间效率,维护代价和各种用户需求进行权衡,其结果可以产生多种方案,因此要从中选择一个最优的方案。评价物理结构的方法依赖于所选用的DBMS,主要是定量估算各种方案的存储空间,存储时间和维护代价,对估算结果进行权衡,选择一个较优的物理结构。4.系统的实现

12、与调试4.1建立企业人事管理系统数据库 create database mmon(name=mmdat, filename='E:StudySQLmydatammdat.mdf', size=100, maxsize=300, filegrowth=10)log on(name=mmlog, filename='E:StudySQLmydatammdat.ldf', size=50, maxsize=150, filegrowth=10%)4.2建立了数据库的各基本表建立员工表:create table 员工表(员工编号 char(4) primary key,

13、 姓名 char(10) not null,性别 char(2) check(性别 in('男','女'),出生日期 char(16),身份证号 char(32) not null,民族 char(16) default '汉', 职位 char(16),部门 char(16),政治面貌 char(10); 建立新员工表:create table 新员工表(登记编号 char(4) primary key,员工编号 char(4),部门 char(16),职位 char(16),入职日期 char(16), foreign key(员工编号) r

14、eferences 员工表(员工编号);建立离职表:create table 离职表(离职编号 char(4) primary key,员工编号 char(4),部门 char(16),职位 char(16),离职日期 char(16),foreign key(员工编号) references 员工表(员工编号);建立人事表:create table 人事表(调动编号 char(4) primary key,员工编号 char(4),调后部门 char(16),调后职位 char(16),调动日期 char(16),foreign key(员工编号) references 员工表(员工编号);

15、 建立合同表:create table 合同表(合同编号 char(4) primary key,员工编号 char(4),合同起始 char(16),合同到期 char(16),foreign key(员工编号) references 员工表(员工编号);建立奖惩表:create table 奖惩表(奖惩编号 char(4) primary key,员工编号 char(4),奖惩原因 varchar(50),奖惩方式 char(10),奖惩日期 char(16),foreign key(员工编号) references 员工表(员工编号);建立加班表:create table 加班表(加班编

16、号 char(4) primary key,员工编号 char(4),加班起始 char(16),加班结束 char(16),foreign key(员工编号) references 员工表(员工编号); 建立出差表:create table 出差表(出差编号 char(4) primary key,员工编号 char(4),出差起始 char(16),出差结束 char(16),foreign key(员工编号) references 员工表(员工编号);建立考勤表:create table 考勤表(考勤编号 char(4) primary key,员工编号 char(4),考勤日期 cha

17、r(16),上班时间 char(16),下班时间 char(16),foreign key(员工编号) references 员工表(员工编号); 建立薪资表:create table 薪资表(薪资编号 char(4) primary key,员工编号 char(4),基本工资 char(10),总工资 char(10),发薪日期 char(16),foreign key(员工编号) references 员工表(员工编号); 建立管理员表:create table 管理员(管理员编号 char(4) primary key,管理员姓名 char(10),管理员密码 char(8);4.3插入

18、数据(1)(2)(3)(4)(5)(6)(7)4.4建立索引create index 员工表_姓名_index on 员工表(姓名)create index 奖惩管理表_奖惩方式_index on 奖惩表(奖惩方式)create index 薪资表_总工资_index on 薪资表(总工资)4.5视图(1)建立一个视图,反映员工姓名及工资情况。create view 员工_工资 as select 员工表.姓名, 薪资表.* from 员工表,薪资表 where 员工表.员工编号=薪资表.员工编号 (2)建立一个视图,反应管理员信息create view 系统管理员信息(编号,姓名,密码)as

19、select 管理员编号,管理员姓名,管理员密码from dbo.管理员4.6存储过程1、创建存储过程proc1用于查看所有信息create proc proc1asselect * from 员工表,管理员,人事表exec proc12、设计存储过程,实现根据传递参数(员工编号和部门编号)查询指定员工的部门名称。create proc proc4员工编号 char(10),编号 char(10)as select 企业员工.员工编号,姓名,部门.编号,部门.部门名称from 企业员工,部门where 企业员工.员工编号=部门.员工编号 and 企业员工.员工编号=员工编号and 部门.编号=

20、编号exec proc4 '0001','001'4.7触发器(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发器名称为insert_工资。代码如下:create trigger insert_工资 on 薪资表 for insertasdeclare i char(20)declare bb intset i=casewhen bb=0001 then '实发工资'when bb=0002 then '实发工资'endprint i (2)员工新调入进行员工新调入操作是在员工信息表中添加一条新的

21、记录,可以为员工信息表设计一个Insert触发器,当员工信息表执行Insert操作后自动更改出部门信息表相应记录的数据。定义这个触发器名称为staff_insert。其代码如下:create trigger staff_insert on 员工for insertas if (select count(*) from 部门,inserted,工资 where 部门.部门人数=inserted.部门人数and 工资.工号=inserted.工号)=0rollback transactiongo4.8主要的查询SQL语句(1)查询编号为1的员工姓名select distinct 姓名from 员工表where 员工编号=1;(2)查询工资编号为1的基本工资select 基本工资from 薪资表where 薪资编号=1; (3)查询14:00点开始加班的人select 员工编号from 加班表where 加班起始=14:00(4)统计基本工资大于2000的人数 select count(基本工资) as 人数 from 薪资表where 基本工资>2000 (5)统计企业中经理的人数select count(职位)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论