《数据库设计说明书范例.doc》由会员分享,可在线阅读,更多相关《数据库设计说明书范例.doc(23页珍藏版)》请在三一办公上搜索。
1、数据库设计说明书项目名称: XX系统 班级: 成员: 设计日期: 指导教师: 审阅日期: 目录摘要3第一章 绪论41.1概述41.1.1 开发背景41.1.2 XX系统特点41.2 商厦人事劳资管理系统发展41.2.1 商厦人事劳资管理系统存在的问题41.2.2 商厦人事劳资管理系统的开发价值4第二章 开发商厦人事劳资管理系统的问题52.1商厦人事劳资管理系统的简介52.2商厦人事管理系统的用户需求52.2.1 总体功能需求52.2.2 具体系统功能需求描述5第三章商厦人事劳资管理系统的分析和设计63.1 商厦人事劳资管理系统的分析和概要设计63.1.1 商厦人事劳资管理系统结构63.1.2
2、模块概述63.2 商厦人事劳资管理系统数据库基本设计73.2.1 数据库基本设计73.3商厦人事劳资管理系统的数据库结构设计83.3.1 数据库E-R图设计83.3.2 数据库各表之间的关系93.3.3 数据库详细设计93.4数据库代码实现133.4.1 建立数据库133.4.2 建立数据表133.4.3 给各表添加主外键153.4.4 数据的添加173.4.5 数据的统计183.4.6 数据库的存储过程183.4.7 数据库触发器19第四章 结束语21参考文献22 摘要 商厦人事劳资管理系统是典型的信息管理系统(MIS),开发主要包括后台数据库的建立和维护。对于前者要求建立起数据一致性和完整
3、性强.数据安全性好的库。 经过分析如此情况,我们使用Microsoft公司的SQL server2000数据库开发工具, Microsoft公司的SQL server2000是基于客户端/服务器模式的新一代大型关系数据库管理系统。它在电子商务、数据仓库和数据库解决方案等应用中,起着重要的作用,可谓企业的数据库管路提供强大的支持,对数据提供有效的管理,并采用有效的措施实施数据完整性和数据的安全性,直到形成用户满意的可行系统。第一章 绪论1.1概述1.1.1开发背景 人事劳资管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事劳资管理系统应该能够为用户提供
4、充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 1.1.2 商厦人事劳资管理系统特点作为计算机应用的一部分,使用计算机对人事劳资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化
5、管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套商厦人事劳资管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。第二章 开发商厦人事劳资管理系统的问题2.1商厦人事劳资管理系统的简介 商厦人事劳资管理系统是针对商厦人事处的大量业务处理工作而开发的管理软件。根据用户的要求,实现人员基本情况管理、工资管理、和考勤管理。等几个方面的功能。 用户通过输入工资、考勤、职工履历等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定期的更新和删除, 商厦人事劳资管理系统力求给用户方便快捷的途径
6、去管理这些繁琐的数据。2.2商厦人事管理系统的用户需求2.2.1 总体功能需求商厦人事劳资管理系统是针对商厦人事处的大量业务处理工作用计算机进行全面现代化管理.主要包括人员基本情况管理、工资管理、和考勤管理。等几个方面的功能,以实现用户方便的输入、查询、统计、打印相关报表的业务需求。2.2.2 具体系统功能需求描述(1) 人员基本情况管理提供对“商厦人员履历表”数据输入、组合条件查询、统计功能,实现“职工花名册”数据生成、查询、统计功能。(2) 职工工资管理 提供对“商场职工工资表”数据的输入、查询、按商场统计功能,完成每月对“商场职工工资表”数据的月统计,以此生成“商场职工工资总额构成情况表
7、”实现该表的查询、打印功能。实现每季由“商场职工工资总额构成情况表”生成“商厦职工工资总额季度汇总表”及该表的查询、打印功能。(3) 职工考勤管理 提供对各单位(商场)“月考勤登记表”数据的录入、查询、统计功能;根据“月考勤登记表”数据分单位按各种日考勤标志进行分类统计,且生成“商场职工月考勤统计表”,数据及“商厦职工月考勤统计汇总表”数据,实现该表的查询功能。 第三章商厦人事劳资管理系统的分析和设计3.1 商厦人事劳资管理系统的分析和概要设计3.1.1 商厦人事劳资管理系统结构根据实际情况,我们使用原型法,即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然
8、后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。通过对用户需求的分析,我们可以分析出该商厦人事劳资管理系统大致可以分为四个模块:人员基本情况管理模块、职工工资管理模块、职工考勤管理模块、系统维护模块。四者的关系如图3-1人事劳资管理系统人事基本情况管理模块职工工资管理模块职工考勤管理模块系统维护模块 图3-1 人事劳资管理系统关系图 3.1.2 模块概述现在对这四个模块做具体说明: 人事基本情况管理模块: 输入:职工信息 输出:“商厦人员履历表”“职工花名册” 功能:对商厦人事基本信息的查询和统计 职工工资
9、管理模块 输入:人员月工资输出:“商场职工工资表的月统计”,“商场职工工资总额构成表”及以“商 厦职工工资总额季度汇总表” 功能:完成商厦员工工资的查询和统计 职工考勤管理模块 输入;员工每日考勤情况输出:“月考勤登计表”、“商场职工月考勤统计表”、“商厦职工月考勤统计 表”功能:完成对员工考勤情况的查询、根据日考勤标志进行分类统计及表的 打印。 系统维护模块 输入: 输出:功能:完成对系统数据和数据库的维护,如用户名、密码的更新,数据库 数据的备份、恢复以及定期删除,还有单位的编码化。3.2 商厦人事劳资管理系统数据库基本设计3.2.1 数据库基本设计由于考虑到本系统是应用在单机系统上,另外
10、根据商厦人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表:职工基本信息表职工工资表职工考勤表单位编码表系统信息表另外,根据实际统计需要,我们另外建立两个统计表,用以存放部分统计表的信息以便查询。职工工资统计表职工考勤统计表3.3商厦人事劳资管理系统的数据库结构设计3.3.1 数据库E-R图设计 商厦人事劳资管理系统的数据库E-R图:如图3-1所示职 工考 勤出勤得到工 资发放单 位所在考勤情况工资情况统计统计属于属于 图3-1 商厦人事劳资管理系统的数据库E-R图 注:由于字段太多,这里就不在E-R图中一一列出了。3.3.2 数据库各表之间的关系 数据库个表之间人数关系如图3-2
11、所示职工工资表PK日期FK职工编号职工姓名职工岗位实发工资。职工基本信息表PK职工编号FK单位编号档案号职工姓名 性别 职工考勤表PK日期FK职工编号职工姓名应出勤人数。职工工资统 计表FK 单位编码日期季末人数夜班费。单位编码表PK 单位编码 单位职工考勤统计表FK单位编码日期在编人数外界人数考勤人数。注:由于字段过多,就不一一列出了。图3-2数据表关系图3.3.2 数据库详细设计下面我们详细说明:职工基本信息表:如表3-1所示主键 :职工编号 外键: 单位编号表3-1 职工基本信息表列名(中文)数据类型宽度小数点位数是否为空职工编号char12No单位编号char15No档案号char18
12、No职工姓名char10No性别bit1No民族char10No职务char20No出生年月Datetime8No政治面貌char10No加入时间Datetime8Yes文化程度char10No毕业学校 char20Yes毕业时间Datetime8Yes所学专业char20Yes籍贯char20No家庭住址char40No工作时间Datetime8No调入单位时间char20No职称char20Yes批准职称时间Datetime8Yes工人技术等级char20Yes技师职务char20Yes评为先进荣誉称号时间Datetime8Yes称号char40Yes立功情况char40Yes 处分cha
13、r40Yes签订合同时间Datetime8No合同期限char20No续定情况char20No岗位工资float82No技能工资float82No连动工资float82No技能级别char10No备注char100Yes婚姻状况Char10Yes爱人姓名char10Yes爱人单位char10Yes 职工工资表:如表 3-2所示 主键:日期 外键: 职工编号表3-2 职工工资表列名(中文)数据类型宽度小数点位数是否为空职工姓名char10No日期Datetime8No职工编号char10No岗位工资Float82No技能工资Float82No工龄工资Float82No连动工资Float82No房
14、水电费Float82No卫生费Float82No洗理车补费Float82No地区差Float82No房租Float82No病假Float82No公积金Float82No统筹金Float82No备用char200No实发工资Float82No 职工考勤表:如表3-3所示主键:日期 外键: 职工编号表3- 3职工考勤表列名(中文)数据类型宽度是否为空职工姓名char10No职工编号char10No日期Datetime8No应出勤人数Int4No 单位编码表: 如表3-4所示 主键:单位编码 表3-4 单位编码表列名(中文)数据类型宽度小数点位数是否为空单位编码char15No单位char20No
15、系统信息表:如表3-5所示主键:用户ID 表3-5 系统信息表列名(中文)数据类型宽度小数点位数是否为空用户IDchar20No密码char20No用户名char20No 职工工资统计表 :如表3-6所示外键:单位编号 表3-6 职工工资统计表列名(中文)数据类型宽度小数点位数是否为空单位编号char15No日期Datetime8No季末人数int20No夜班费Float82No津贴备用Float82Yes补贴备用Float82Yes加班费Float82No奖金Float82No其他工资Float82No实发工资Float82No 职工考勤统计表:如表3-7所示 外键:单位编号 表3-7职工考
16、勤统计表列名(中文)数据类型宽度小数点位数是否为空单位编号char15No日期Datetime8No在编人数int7No外借人数Int5No应出勤人数Int7No考勤人数Int5No探亲假Int4No婚假Int4No丧假Int4No事假Int4No病假Int4No旷工Int4No产前假Int4No产假Int4No 以上几张表均属于基本表,根据用户需求我们又设计几张视图职工花名册表 数据源:职工基本信息表商场职工工资总额构成表,商厦职工工资总额季度汇总表 数据源: 职工工资表, 职工工资统计表商场月考勤统计表,商厦职工月考勤统计汇总表 数据源:职工考勤表 职工考勤统计表另外,要声明的是,在本数据
17、库的几张表中没有定义外键,其原因主要是几张表的主键的特点。所以为了保持数据一致性就通过程序完成。3.4数据库代码实现3.4.1 建立数据库 注:在“我的电脑”E盘下建立文件夹DATA。create database employeeon primary(name= employee _data,filename=e:data employee _data.mdf,size=1,filegrowth=10%)log on(name= employee _log,filename=e:data employee _log.ldf,size=1,filegrowth=10%)go 3.4.2 建立数
18、据表 注:由于字段过多,就不一一列出了。(1) 建立员工基本信息表 use employeecreate table 员工基本信息表(职工编号 char(12) not null,单位编号char(15) not null,档案号char(18) not null,职工姓名 char(10) not null,性别 bit not null,爱人姓名 char(10),爱人单位 char(10)on primarygo(2) 创建职工工资表 use employee create table 职工工资表(职工姓名char(10) not null,日期 Datetime() not null,
19、职工编号char(10) not null,岗位工资 Float (8),统筹金 Float (8),实发工资 Float (8)on primarygo(3) 创建职工考勤表 use employee create table 职工考勤表(职工姓名char(10) not null,职工编号 char(9) not null,日期 datetime() not null,应出勤人数 int(4) not null)on primarygo(4) 创建单位编码表 use employee create table单位编码表(单位编号char(15) not null,单位 char(20) n
20、ot null)On primaryGo (5)创建系统信息表 use employee create table系统信息表(用户ID char(20) not null,用户名 char(20) not null,密码 char(20),not null)on primarygo(6)创建职工工资统计表 use employee create table 职工工资统计表(单位编号char(15) not null,日期 Datetime() not null,季末人数char(10) not null,夜班费 Float (8),其他工资 Float (8),实发工资 Float (8)on
21、 primarygo (7)建立职工考勤统计表use employeecreate table 职工考勤统计表(单位编号char(15) not null,日期 datetime() not null,在编人数 int(7) not null,应出勤人数 int(4) not null旷工 int(4) not null,产前假 int(4) not null,产假 int(4) not null )on primarygo 3.4.3 给各表添加主外键 use database employeealter table 职工基本信息表with check (性别=1 or 性别=0) add
22、性别 add constraint pk_职工基本信息表 primary key clustered(职工编号) on primarygo alter table职工基本信息表add constraint fk_职工基本信息表_单位编号 foreign key (单位编号)references单位编号表(单位编号),go alter table 职工工资表with nocheck add constraint pk_职工工资表 primary key clustered(日期) on primarygo alter table职工工资表add constraint fk_职工工资表_职工编号
23、foreign key (职工编号)references职工基本信息表(职工编号),goalter table 职工考勤表with nocheck add constraint pk_职工考勤表 primary key clustered(日期) on primarygo alter table职工考勤表add constraint fk_职工考勤表_职工编号 foreign key (职工编号)references职工基本信息表(职工编号),goalter table 单位编号表with nocheck add constraint pk_单位编号表 primary key clustere
24、d(单位编号) on primarygoalter table职工考勤统计表add constraint fk_职工考勤统计表_单位编号 foreign key (单位编号)references单位编号表(单位编号),goalter table职工工资统计表add constraint fk_职工工资统计表_单位编号 foreign key (单位编号)references单位编号表(单位编号),go3.4.4 数据的添加 注:由于字段过多,就不一一列出了。 use employeeinsert职工基本信息表(职工编号,单位编号,档案号,职工姓名,爱人姓名,爱人单位)values(201,12
25、21,1000,张丰,李明,丰田公司)insert职工工资表(职工编号, 日期, 职工姓名,岗位工资,备注,实发工资)values(201,2005-5-5,张丰,1200,无,1200)insert职工考勤表(职工姓名,职工编号, 日期,应出勤人数)values(张丰,201,张丰,2005-5-5,1200)insert单位编码表(单位编码,单位)values(1222,丰田公司)insert系统信息表(用户ID,密码,用户名)values(201,12345,张丰)insert职工工资统计表(单位编号, 日期, 季末人数, 夜班费, 其他工资,实发工资)values(1222,2005-
26、5-5,1222,500,无,)insert职工考勤统计表(单位编号, 日期,在编人数,外借人数,应出勤人数,产前假,产假)values(1222,2005-5-5,1200,0,1200,3,3)3.4.5 数据的统计use employeeselect count(*) as 职工总数from 职工基本信息表gouse employeeselect count(*) as 人数,avg(实发工资) as 平均实发工资from职工基本信息表where 收入2500gouse employeeselect count(*) as 人数from 职工基本信息表where datediff(yy,
27、出生年月,getdate()between 20 and 40go3.4.6 数据库的存储过程 create proc proc_单位编号 职工姓名 char(10) 单位编号 char(15)asselect 单位编号 =单位编号from职工基本信息表 where 职工姓名 = 职工姓名create proc proc_职工信息 职工姓名 char(10)=张丰asselect *from职工基本信息表 where 职工姓名 = 职工姓名3.4.7 数据库触发器 create trigger tri_岗位工资_职工基本信息表on 职工基本信息表for insertasdeclare 岗位工资
28、 float(8)select 岗位工资 =职工基本信息表. 岗位工资from职工基本信息表, insertwhere 职工基本信息表.职工编号 = inserted. .职工编号if 岗位工资 10000rollback transactionraiserror(不能插入大于10000的岗位工资,16,10)endcreate trigger tri_日期_职工工资表on 职工工资表for updateasif update(日期)beginselect inserted.职工编号,inserted.职工姓名,deleted.日期 as 原日期,inserted.日期 as 新日期from
29、deleted , insertedwhere deleted.职工编号 = inserted. .职工编号endcreate teigger tri_职工信息on 职工基本信息表for deletasdeclare 职工编号 char(12)select 职工编号 =delted.职工编号from deletedprint 准备级联删除职工基本信息表中的职工编号为+原职工编号+的纪录第四章 结束语经过一个星期的设计和开发,商厦人事劳资管理系统基本开发完毕。其功能基本符合用户需求,能够完成员工基本信息、工资、考勤的输入和统计。以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。同时也考虑到了单位编码以减少数据冗余的问题,对于数据的一致性的问题也通过程序进行了有效的解决。 但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,如数据库的加密、管理用户的权限、数据存在的冗余、系统对错误的处理等,这有些地方还有待进一步改善。