《工资管理系统设计报告》由会员分享,可在线阅读,更多相关《工资管理系统设计报告(25页珍藏版)》请在金锄头文库上搜索。
1、目录一、项目名称:工资管理系统设计2二、实训目的:2三、应掌握的知识点2四、应训练的能力点2五、数据库设计内容3 (一)需求分析.3 (二)数据库概念设计.3 (三)数据库逻辑设计5 (四)数据库与数据表设计 物理结构设计5 1.数据库与数据表设计.5 2.数据完整性设计.6六、数据库操作实施与结果数据库对象的设计7 (一)建数据库工资管理库.7 (二)建表员工信息表、部门信息表、工资信息表.7 (三)视图.9(四)存储过程.9(五)触发器 10(六)索引11(七)运行和维护12 1. 关系图的建立.12 2. 简单查询.123. 复杂查询.一五4.数据库的用户与权限管理175.数据库的备份.
2、206.数据的导入与导出.21七、总结22八、评语.2322编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页一、项目名称:工资管理系统设计二、实训目的:l 了解数据库系统的理论l 掌握数据库设计的基本方法,熟悉数据库设计的步骤;l 通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力l 学习基本数据库编程方法l 快速跟踪数据库系统软件的新技术及市场应用动态。三、应掌握的知识点l 数据库基本原理l 关系数据库的设计方法、设计思路l 初步掌握一种关系数据库语言四、应训练的能力点l SQL Server 2000的
3、操作与使用l 数据库的概念设计与逻辑设计l 数据库的建立与管理、数据表的建立与操作l SQL查询语言的使用与编程l 设计和开发一个数据库应用系统的数据库设计部分五、数据库设计内容(一)需求分析本系统要求实现以下主要功能:1.数据录入功能 主要任务是对各种工资信息进行日常的管理,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。2.数据查询功能系统需要提供以下查询功能:1) 员工考勤情况2) 员工工种情况,反映员工的工种、等级,岗位工资等信息3) 员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、岗位补贴情况等4) 员工基本信息情况5)
4、 员工月工资情况:年,月,职工号,姓名,部门名,基本工资,病假扣款,事假扣款,3.应发工资,实发工资3.数据统计功能1) 统计员工年终奖金2) 统计每部门月工资情况(二)数据库概念设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。员工是本系统的第一个实体。为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。部门是本系统的第二个实体。工资是以员工工作情况来制定的。需要建立一个表来记录各种工资、津贴、扣款的信息。它主要为各种查询和统计功能提供工资数据。工资是第3个实体。据此可以绘出工
5、资管理系统数据库的E-R图如下:部门 1工作 N 获得工资员工 M M 1实体属性列表如下:实体属性员工工号姓名性别年龄籍贯身份证号婚姻状况学历部门名称工种工龄职务等级部门部门名称部门负责人部门人数工资工号工资年月岗位工资岗位补贴出勤天数加班工时加班天数加班类别加班工资病假扣款事假扣款其他扣款应发工资实发工资(三)数据库逻辑设计将数据库的概念模型转换为关系模型:实体转换成的关系模式有:员工(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部门名称,工种,工龄,职务等级)部门(部门编号,部门名称,部门负责人,部门人数)获得(工号,姓名)工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,
6、加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)因为,员工与工资是1:N的关系,所以各关系模式为:员工(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部门名称,工种,工龄,职务等级)部门(部门名称,部门负责人,部门人数)工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。关系规范式 :工资管理系统1NF 每个属性均不可再分(四)数据库与数据表设计 物理结构设计在SQL数据库中需要建立3
7、个数据表:员工信息数据表、部门信息数据表和工资数据表。1.数据库与数据表设计员工信息数据表定义 其中,“工号”是表的主键,惟一标识。“部门名称”是外键。“工号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以在查询每个员工信息时,提高系统的性能。因为员工信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。通过它,系统将引用到工资信息。此表取名为“员工” 部门信息数据表定义 其中,部门名称是该表的主键,惟一标识一个部门。此表取名为“部门”工资数据表定义其中,“工号”作为该表的主键,唯一标识,保证客房信息表数据的参照完整性。此表表取名为“工资”根据上
8、面三个数据表的设计,可执行下面的步骤创建数据表 1)打开企业管理器,在本地服务器上创建新的数据库“工资管理库”2)创建表 员工、部门、工资2.数据完整性设计1)给每个表实施主键约束。主键约束、非空值约束员工:工号为主键,所以此项非空部门:部门名称为主键,所以此项非空工资:工号为主键,所以此项非空2)实施CHECK约束l 员工表中建立一个检查约束,即员工性别不是男就是女CHECK(性别 IN(男,女)l 工资表中建立一个对于出勤天数的检查约束,即出勤天数在0-20天之间 check (出勤天数 =0 and 出勤天数=20)3)外键约束员工表中,工号、部门名称为外键。FK_员工_工资 FOREI
9、GN KEY(工号) REFERENCES 工资(工号)FK_员工_部门 FOREIGN KEY(部门名称) REFERENCES 部门(名称)通过此键建立3个表的联系4)惟一约束a) 每个表的主键需定义为惟一性:对于工资表,因为工号是主键,联系着员工表,所以建立唯一性 alter table 工资add constraint UQ_工号 unique(工号)b) 对于员工表,员工的工号、身份证号、部门名称都是用于识别员工身份,所以建立唯一约束 alter table 员工 add constraint UQ_工号 unique(工号)5) 强制约束对INSERT和UPDATE操作强制约束,表
10、明以后对员工表中的工号、部门名称的添加和更新操作都会分别检查在工资表、部门表中是否存在与此相应的内容。6)规则1) 为了检查员工表中输入的身份证号码是有效位数,可以创建一个规则绑定到该列;在数据操作时进行检查。规则的定义语句为: (LEN (身份证号)=一五)OR(LEN(身份证号)=一八)六、数据库操作实施与结果数据库对象的设计(一)建数据库工资管理库IF EXISTS(SELECT * FROM sysdatabases WHERE name=工资管理库) drop database 工资管理库GOCREATE DATABASE 工资管理库 ON PRIMARY(NAME=工资管理库,FI
11、LENAME=D:工资管理库_data.mdf,SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOG ON (NAME =工资管理库_log, FILENAME =D:工资管理库.ldf, SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)(二)建表员工信息表、部门信息表、工资信息表l IF EXISTS(SELECT * FROM sysobjects WHERE name=员工) DROP TABLE 员工 GOcreate table 员工(工号 VARCHAR(50) NOT NULL primary key,姓名 VARCHAR(50
12、) NOT NULL,性别 CHAR(2) DEFAULT男CHECK(性别 IN(男,女),年龄 CHAR(10) NOT NULL,籍贯 VARCHAR(50) NOT NULL,身份证号 VARCHAR(50) UNIQUE NOT NULL,婚姻情况 VARCHAR(50),学历 VARCHAR(50),部门名称 VARCHAR(50) NOT NULL,工种 VARCHAR(50),工龄 VARCHAR(50) NOT NULL,职务等级 VARCHAR(50)GOl IF EXISTS(SELECT * FROM sysobjects WHERE name=部门) DROP TABLE 部门 GOcreate table 部门(部