数据库课程设计人事管理系统_第1页
数据库课程设计人事管理系统_第2页
数据库课程设计人事管理系统_第3页
数据库课程设计人事管理系统_第4页
数据库课程设计人事管理系统_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

1、目 录1 .系统概述 01.1 系统开发背景和意义 01.2 开发环境12 .系统分析 02.1 可行性分析 02.2 安全性、完整性分析 12.3 需求分析 12.4 系统模块设计 13 .数据库设计13.1 数据字典 13.2 系统数据流图 13.3 数据库概念设计 23.4 数据库逻辑设计 23.5 数据库物理设计 34 .系统的实现与调试 34.1 建立企业人事管理系统数据库 34.2 建立了数据库的各基本表 44.3 插入数据 64.4 建立索引 64.5 视图 74.6 存储过程 74.7 触发器 84.8 主要的查询SQL语句 85 .思考与总结 96 .参考文献 91 .系统概

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

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

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

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

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

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

8、对其进行管理。当以管理员身份登陆时 不仅仅可以查询部门和员工的基本信息,也可以对其进行添加、删除、修改等操作。2.3 需求分析调查本地的企业,根据企业的具体情况分析、设计和实现企业人事管理系统。其主要功如下:1、人事档案管理:户口状况、政治面貌、生理状况、合同管理等。2、 考勤、加班、出差管理。3、 人事变动:新进员工登记、员工离职登记、人事变更记录。4、考核奖惩。5、 员工培训。6、系统维护:操作员管理、权限设置等。2.4系统模块设计3 .数据库设计3.1 数据字典3.2 系统数据流图员工情况员工情况 薪资情况下班时间 I下班管理员工奖励或惩S员工离职记录上班时间1调动情况贝工记录档案管理薪

9、资管理上班管理加班管理员工离职合同管理员工记录考勤记录奖惩记录加班记录调动记录贝工记录贝工记录管理员记录薪资记录出差记录(管理员3.3 数据库概念设计数据库E R图:3.4 数据库逻辑设计由数据库E-R图,可得以下关系:员工(员工编号,姓名,性别,政治面貌,出生日期,部门,职位, 身份证 号,民族)加班(加班编号,员工编号,加班起始,加班结束)出差(出差编号,员工姓名,出差起始,出差结束)考勤(考勤编号,员工编号,考勤日期,上班时间,下班时间)奖惩(奖惩编号,员工编号,奖惩方式,奖惩原因,奖惩日期)职务调动(调动编号,员工编号,调往部门,调往职位,调动日期)合同(合同编号,员工编号,合同起始,

10、合同到期)新员工(登记编号,员工编号,到港日期,部门,职位)员工离职(离职编号,员工编号,部门,职位,离职日期)薪资管理(薪资编号,员工编号,基本工资,总工资,发薪日期)管理员(管理员编号,管理员姓名,管理员密码)3.5 数据库物理设计数据库物理设计阶段的任务是根据具体的计算机系统的特点,为给定的数 据库系统确定合理的存储结构和存取方法。所谓的“合理”有两个含义:一个 是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有 尽可能高的速度要体现在后者。(1)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定 关系、索引、日志、备份等的存储安排及存储结构,以及

11、确定系统存储参数的 配置。将日志文件和数据库对象分别放在不同的磁盘,可以改进系统的性能,提 高系统的安全性。所以,系统应将日志文件和数据文件存放在不同的磁盘上。(2)评价物理结构数据库物理结构设计过程中需要对时间效率,空间效率,维护代价和各种 用户需求进行权衡,其结果可以产生多种方案,因此要从中选择一个最优的方 案。评价物理结构的方法依赖于所选用的DBMS主要是定量估算各种方案的存储空间,存储时间和维护代价,对估算结果进行权衡,选择一个较优的物理结 构。4 .系统的实现与调试4.1 建立企业人事管理系统数据库create database mmon(name=mmdat,filename=&#

12、39;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,姓名 char(10) not null,性别 char(2) check(性别 in('男','女'),出

13、生日期 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(员工编号 )references 员工表(员工编号 ) );建立离职表:create table 离职表(离职编号 chap) primary key,员工编号 ch

14、ar(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 员工表(员工编号);建立合同表:create table 合同表(合同编号 char(4) primary key,员工编号 char(4), 合同起始 char(16), 合同到期

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

16、ces 员工表(员工编号) );建立出差表:create table 出差表(出差编号 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),下班时间 char(16),foreign key(员工编号)references 员工表(员工编号);建立薪资表:create tabl

17、e 薪资表(薪资编号 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 插入数据PC-2O15O712LVD.asUr-dba薪资表 PC-20150712LVDa5ter-dbo.mT薪资编号发薪日期0101200010000010102023000200000

18、1020303200010000010304042000100000104NULLNULLNULLNULLNULL PC-2O15O712LVD.Aer - dbo>ral| PU2m50712LVD.a冢cr dbd新霞PL2015登记编号部门职位入职日期0101质检部主管04020202人事部经理03050303人事部06133404行政部二0623米NULLNULLNULLNULLNULL(6)4.4 建立索引create index 员工表姓名_index on 员工表(姓名)create index奖惩管理表_奖惩方式_index on奖惩表(奖惩方式)create index

19、 薪资表 _总工资_index on 薪资表(总工资)4.5 视图(i)建立一个视图,反映员工姓名及工资情况。create view 员工工资asselect员工表.姓名,薪资表.*from员工表,薪资表where 员工表.员工编号=薪资表.员工编号(2)建立一个视图,反应管理员信息create view系统管理员信息(编号,姓名,密码)asselect管理员编号,管理员姓名,管理员密码from dbo.管理员4.6 存储过程1、创建存储过程proci用于查看所有信息create proc prociasselect * from 员工表,管理员,人事表exec proci2、设计存储过程,实

20、现根据传递参数(员工编号和部门编号)查询指定员工的部门名称。create proc proc4员工编号 char(10),编号 char(10)as select企业员工.员工编号,姓名,部门.编号,部门.部门名称from企业员工,部门where企业员工.员工编号二部门.员工编号 and企业员工.员工编号=员工编号and部门.编号=编号exec proc4 '0001','001&QLQuery3&QLQuery6,sql - P.mlni5trator (59) SQLQuery5.sql - P.ministrator (57)create proc

21、 procl 工编号char 10), 域扁号char (10)as select企业息工娃盘越必眠,题工能口全国L fronI ere管4LS工息工M聂二能以退工M聂曲d宦Ji息工息工遍具二员工编号 皿d靓口魂号=编碧 exec proc4 ' 口口01'口01100% - *国消息命令已成功完成;4.7触发器(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发 器名称为insert_工资。代码如下:create trigger insert_ 工资 on 薪资表 for insert asdeclare i char(20)declare b

22、b intset i=casewhen bb=0001 then '实发工资'when bb=0002 then '实发工资' endprint i(2)员工新调入进行员工新调入操作是在员工信息表中添加一条新的记录,可以为员工信息表设计一个Insert触发器,当员工信息表执行Insert操作后自动更改出部门信息表相应记录的数据。定义这个触发器名称为staff_insert。其代码如下:create trigger staff_insert on 员工for insertas if (select count(*)from 部门 ,inserted,工资where

23、部门.部门人数=inserted.部门人数 and工资.工号=inserted.工号)=0 rollback transactiongo4.8 主要的查询 SQL语句(1)查询编号为1的员工姓名select distinct 姓名from 员工表where员工编号='1';SQLQuery6»sql - P.rriiriistrator S9 SQLQueryS.sql - ministrator (!"select dist inct 姓名 from员工表where员工编号='01'100 %- *理结果扇姓名1 候商; « Im raiaiiJ(2)查询工资编号为 1的基本工资select基本工资from薪资表where薪资编号='1SQLQuery6asql - PB.nninistrator (59) SQLQuery5.sql - P.ministrat3 select基本工资 from薪资表 where有资编号='01'100 %- *口结果:工肖息 基本工资1? 2000查询14: 00点开始加班的人select员工编号from加班表where 加班起始='14:00'(4)统计基本工资大于2000的人数select cou

温馨提示

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

评论

0/150

提交评论