1、员工工资管理系统报告课程设计课程名称数据库应用课程设计题目名称 工资管理系统学生学院摘要本报告介绍了一个使用 Visual Basic 为前台,SQL Server 2000为后台,用于工资管 理的数据库管理系统。该系统能够实现对部门信息、管理员信息、员工信息、工资信息和 考勤信息的管理功能,即对这些信息的编辑、查询。报告首先分析了用户的需求,设计出了系统的功能结构图,然后对系统进行了概念结 构设计,设计出了系统的局部 ER图和全局ER图,根据全局ER图对系统进行了逻辑结构设 计,确定出系统的数据结构即关系模式,根据这些关系模式,在 SQL Server 2000中,创建了部门信息、管理员信息
2、、员工信息、工资信息和考勤信息等五张基本表对象;同时, 利用这些表对象,创建了满足用户需求的各种查询对象;实现了在 SQLServer环境下的工资管理系统功能。最后,使用数据库连接技术,以设计完成的 SQL Server 2000数据库文 件为后台,VB界面为前台,设计了系统登录窗体和员工基本信息管理窗体,实现了工资管 理系统的部分功能。关键词:数据库,SQL Server 2000,工资管理小组情况本系统是通过小组全体成员的共同努力,经过分工合作完成的,具体情况如下:1.合作的工作需求分析、概念结构设计、逻辑结构设计和报告的草稿通过小组讨论完成。2.分工在数据库系统的总体方案确定之后,小组成
3、员开始分工,独立完成不同的模块及工作1 需求分析 错误!未定义书签。系统设计的意义 错误!未定义书签。系统功能 错误!未定义书签。系统数据 错误!未定义书签。2概念结构设计 错误!未定义书签。实体分析及其局部 ER图 错误!未定义书签。实体之间的联系及其 ER图 错误!未定义书签。系统全局ER图 错误!未定义书签。3逻辑结构设计 错误!未定义书签。4数据库设计 错误!未定义书签。创建表对象 错误!未定义书签。创建表之间的关系 错误!未定义书签。创建视图 错误!未定义书签。创建存储过程 错误!未定义书签。创建触发器 错误!未定义书签。5前台界面设计 错误!未定义书签。系统工程结构设计, 错误!未
4、定义书签。登录模块设计 错误!未定义书签。界面设计 错误!未定义书签。连接设计 错误!未定义书签。登陆窗体代码设计 错误!未定义书签。主窗体(MDIForml)模块设计 错误!未定义书签。总结 错误!未定义书签。致谢 错误!未定义书签。参考文献 错误!未定义书签。1需求分析系统设计的意义随着信息化技术的发展及普及,工资管理模式也发生了巨大的变化,由 原来的手工管理模式逐步转变为信息化管理,通过信息化管理,将管理员、员 工及部门等信息集成在一个系统中,使公司能够方便地处理工资发放操作,也 使公司及相关人员能够在第一时间掌握工资信息及员工情况,并根据这些信息 做出今后的管理决策计划。系统功能为了使
5、本小组设计的系统能够尽可能满足工资管理的实际需求,在进行系 统设计之前,小组全体成员通过查资料、亲临公司进行调查和小组多次激烈的 讨论,最后确定本系统应该具有如下的功能:部门信息管理:能够对部门的信息进行有效的管理,其中包括部门信息 的添加、修改和删除,以及部门信息查询。员工信息管理:能够对员工的信息进行有效的管理,其中包括员工信息 的添加、修改和删除,以及员工信息查询。工资管理:能够对聘任信息进行有效的管理,其中包括聘任信息的添加、 修改和删除,以及聘任信息查询。考勤管理:能够对考勤信息进行有效的管理,其中包括考勤信息的添加、 修改和删除,以及考勤信息查询。管理员管理:能够对管理员信息进行有
6、效的管理,其中包括管理员信息 的添加、修改和删除,以及管理员信息查询。上述的需求分析可以总结为如图1-1所示的功能结构图图1-1 工资管理功能结构图系统数据数据库的核心是数据,相互关联的数据构成数据结构。对于数据库设计来说, 通常使用数据字典对各类数据及其集合进行描述,数据字典是进行数据收集和数 据分析所获得的主要成果。下面将根据系统功能对本系统设计的数据项和数据结 构分别进行分析。本系统涉及部门、员工和管理员三个对象,所以系统涉及的数据项由这三 个对象本身的属性和它们之间关系的属性确定。 下面将分别讨论他们的数据结构 和数据项。员工名称:公司员工含义:员工是工资管理系统的主要数据结构,包含了
7、员工的所有信息。既然 员工属于系统管理的对象范畴,应具有统一的编号,每一位员工给一个编号, 同一部门的员工有多个,故员工编号是员工的一个重要属性。组成:员工对象分别由员工编号、员工姓名、性别、部门名称、出生日期、 籍贯、员工职位、住址、联系电话九个数据项组成。各数据项的含义如下:数据项:员工编号含义:员工编号,能够唯一标识每一位员工 别名:员工编号数据类型:字符型长度:10数据项:员工姓名含义:员工所取的名字别名:姓名数据类型:字符型长度:10数据项:性别含义:员工的性别数据类型:字符型长度:10数据项:部门名称含义:员工所属部门别名:部门名称数据类型:字符型长度:20数据项:出生日期含义:员
8、工的出生年月日别名:员工出生日期数据类型:时间日期型长度:8数据项:籍贯含义:员工的出生地别名:员工籍贯数据类型:字符型长度:10数据项:员工职位含义:员工所任职的岗位别名:职位数据类型:字符型长度:10数据项:住址含义:员工的住址别名:员工家庭地址数据类型:字符型长度:40数据项:联系电话含义:员工的联系电话别名:员工联系方式数据类型:字符型长度:11部门名称:部门名称含义:企业的部门组成:部门对象分别由部门编号、部门名称、人数组成各数据项的含义如下:数据项:部门编号含义:部门编号能够唯一确定部门的所有信息。别名:编号数据类型:字符型长度:10数据项:部门名称含义:部门的名称别名:名称数据类
9、型:字符型长度:20数据项:人数含义:部门的人数数据类型:int长度:4管理员名称:管理员含义:在系统中起非常重要的作用,负责管理系统。组成:管理员对象分别由管理员编号、管理员姓名和密码组成。各数据项的含义如下:数据项:管理员编号含义:系统为每一位管理员进行统一编号管理,编号能够唯一确定管理 员对象。别名:工号数据类型:字符型长度:10数据项:管理员姓名含义:管理员的姓名数据类型:字符型长度:10数据项:密码含义:管理员登录系统的安全编码,最初由系统分配一个登录密码,但 管理员一旦登录系统,就可以修改密码了。数据类型:字符型长度:6(4)工资名称:工资含义:员工在公司上班,所获得的工资报酬。组
10、成:日期、基本工资、工龄工资、地区补贴组成。各数据项的含义如下:数据项:日期含义:发工资的日期数据类型:时间日期型长度:8数据项:员工编号含义:员工编号,能够唯一标识每一位员工。别名:员工编号数据类型:字符型长度:10数据项:员工姓名含义:员工所取的名字别名:姓名数据类型:字符型长度:10数据项:部门名称含义:员工所属部门别名:部门名称数据类型:字符型长度:20数据项:基本工资含义:员工所得的基本工资数据类型:int长度:4数据项:工龄工资含义:参与该公司工作的时间所额外获得的工资数据类型:int长度:4数据项:地区补贴含义:补贴给员工的地区差额数据类型:int长度:4(5)考勤名称:员工考勤
11、含义:员工经过考勤之后才能够进行有效管理,考勤由管理员完成,员工考勤时会产生旷工、请假、迟到、 早退等属性。组成:员工编号、考勤日期、员工姓名、旷工 、请假、迟到、早退各数据项的含义如下:数据项:员工编号含义:员工编号,能够唯一标识每一位员工数据类型:字符型长度:10数据项:考勤日期含义:对员工每月进行考勤数据类型:时间日期型长度:8数据项:员工姓名含义:员工所取的名字别名:姓名数据类型:字符型长度:10数据项:旷工含义:记录每一个员工的旷工次数数据类型:int长度:4数据项:请假含义:记录每一个员工的请假次数数据类型:int长度:4数据项:迟到含义:记录每一个员工的迟到次数数据类型:int长
12、度:4数据项:早退含义:记录每一个员工的请假次数数据类型:int长度:42概念结构设计概念结构设计就是将需求分析阶段得到的用户需求抽象为数据库的概念结 构,是逻辑结构设计的基础。本论文使用 ER图来描述系统的概念结构。在实际 设计过程中,首先分析系统中以实体为基本单位的局部 ER图,然后分析两两实体之间的联系,画出两两实体联系的局部 ER图,再将两两实体之间联系的ER图 作为基本单位,画出多个实体之间联系的 ER图,依次类推,最后将各局部 E-R 图合并成全局E-R图,下面将针对该系统分别进行分析。实体分析及其局部ER图通过需求分析得知工资管理系统的研究对象有部门、员工、公司和管理员四 个对象
13、,也就是四个实体。(1)部门对于工资管理系统来说,比较重要的部门信息是部门编号、部门名称、人数。 其中部门的编号能够唯一确定某个部门的所有信息, 故在该实体中定义部门编号 为实体标识符。部门的ER图如2-1所示。部门图2-1部门ER图(2)管理员工资管理系统中的所有管理工作由管理员来完成,管理员在系统中发挥着非 常重要的作用,故系统必须对管理员进行统一管理,给每个管理员设置管理员编 号和密码。本系统中管理员实体的属性为管理员编号、管理员姓名和密码,其中, 管理员编号能够唯一标识管理员的各个属性, 所以定义管理员编号为管理员实体 的标识符。管理员的ER图如2-2所示。图2-2管理员ER图(3)员
14、工在员工实体中,包含员工编号、员工姓名、性别、部门名称、出生日期、籍 贯、员工职位、住址、联系电话九个属性。其中,编号能够唯一标识每一位员工, 故定义编号为员工实体的标识符。员工实体的 ER图如2-3所示。图2-3员工ER图(4)公司在工资管理系统里,公司信息由名称、地址和负责人。其中公司的名称能够 唯一确定公司的所有信息,故在该实体中定义公司名称为实体标识符。公司的 ER图女口 2-4所示。公司图2-4公司ER图实体之间的联系及其ER图(1)员工与部门联系的ER图企业中的每一位员工均由某个部门管理,一个部门管理多个员工,每一位员工仅能由一个部门管理,故部门和员工之间联系类型是1:N的联系。部
15、门在管理员工的过程中将产生部门编号、部门名称和人数等属性,由于在部门里, 部门可能会出现姓名相同的员工,为了方便灵活的管理每个员工,需要为每个员工建立 一个员工编号。员工和部门联系的 ER图如图2-5所示。部门图2-5部门与员工的联系(2)公司和员工联系的ER图应聘者一旦成为公司员工之后,就可以对员工进行考勤管理了。随后公司与员工之间通过工资建立联系,两个实体之间是 1: N联系。在这过程中,产生了考勤和工资两个联系。ER图如图2-6所示。工龄工资基本工资地区补贴日期岀生日期图2-6 公司与员工的联系系统全局ER图2.3.1 属性整合在整合的过程中,各局部 ER图的属性发生如下的冲突,所以需要
16、重新进行 定义。(1)编号:编号属性分别在四处出现,所以要进行重新定义。根据数量所处的 位置,分别定义为部门编号、员工编号、考勤编号、管理员编号。2.3.2关系整合全局ER图是创建数据结构的基础,故由局部 ER图向全局ER图整合的过程 中,应该根据系统的功能和实际操作需要做取舍。(1) 在公司和员工两实体联系中,产生考勤与工资的联系。(2)员工是系统一个非常重要的实体,员工编号又是员工一个非常重要的 属性,该属性正好是员工实体的主键,故通过该属性可以建立员工和部门之 间的联系。将图2-5、2-6合并,同时对各个属性和关系进行整合, 就得到系统全局ER图。在本工资管理系统中,管理员不是系统研究的
17、重点内容,为了简化系 统,故在全局ER图中,可以不考虑管理关系,在系统中仅将管理员作为独 立的对象处理。整合后的全局 ER图如图2-7所示。图2-7全局ER图整合后各实体及其联系的属性如下:管理员(管理员编号,管理员姓名,密码);部门(部门编号,部门名称,人数,);员工(员工编号,员工姓名,性别,出生日期,籍贯,员工职位,住址) 考勤(员工编号,考勤日期,请假,早退,迟到,旷工) ;工资(员工编号,日期,地区补贴,工龄工资,基本工资) 。公司(名称,地址,负责人);说明:由于公司只有一个,而且其所有属性都是确定的,所以不必考虑公司 实体。3逻辑结构设计逻辑结构设计的目的是将全局概念模型(ER图
18、)转换成DBMS支持的概念 模式或关系模式(或者称为数据结构)。本系统选用SQL Server 2000作为后台 数据库,该数据库属于关系型数据库,即使用表结构表示系统中的所有实体及其 联系。要在SQL Server 2000中实现图2-7所示的全局ER图(系统概念结构),必须将其转换成关系模式。从 ER图出发,导出关系模式数据结构遵循如下的两个 原则:第一,对ER图中的每个“实体”,都应该转换成一个关系,该关系内至少要 包含对应实体的属性,并根据语义关系确定关系的主键。第二,对ER图中的“联系”,要根据实际联系的方式及数据处理的需要,或 者将其作为独立的关系来处理,或者将关系的属性(如果有)
19、 纳入相关联的实体的属性中。如果实体之间是1:N联系,且联系没有产生对系统来说非常重要的属性,一 般将1端的主键纳入N端的实体关系中,但是如果联系中产生对系统比较重要的 属性,且需要独立研究该属性,则要将联系转换成一个独立的关系。如果实体之间的联系是 M:N联系,且联系中的属性多或者比较重要,则要将 联系作为独立的关系来处理,且在关系中要包含联系的属性和与联系相关联的实 体的属性。根据这个原则,将图 2-7与2-8转换成图3-1所示的数据结构。图3-1将全局ER图转换成数据结构整合后各实体及其联系的属性如下:管理员(管理员编号,管理员姓名,密码);部门(部门编号,部门名称,人数,);员工(员工
20、编号,部门名称,员工姓名,性别,出生日期,籍贯,员工职位, 住址,联系电话);考勤(员工编号,考勤日期,员工姓名,请假,早退,迟到,旷工) ;工资(员工编号,日期,员工姓名,地区补贴,工龄工资,基本工资) 。公司(名称,地址,负责人);说明:由于公司只有一个,而且其所有属性都是确定的,所以不必考虑公司 实体。4数据库设计本系统使用SQL Server 2000作为后台数据库,同时也使用 Visual Basic 设计了一个前台界面,因此,在 SQL Server中,除了创建基本表对象之外,还 创建了视图。创建表对象表对象是数据库最基本的对象,数据库中所有其它的对象都是基于表对象来创建的。表对象
21、要根据逻辑结构设计阶段设计的关系模式来创建。 在创建表结构 之前,首先应该确定表中各字段的数据类型和约束, 然后在设计视图或SQL视图 中创建表对象。下面分别使用表格来表示各个表对象的数据类型和约束。(1)系统管理员在管理员对象的三个字段中,管理员编号能够唯一标识一个管理员,所以将 该字段定义为主键,其它两个字段在管理员表中必不可少,所以定义为非空约束。 表4-1列出了管理员表结构的数据信息。列名数据类型约束情况管理员编号char(10)主键姓名char(10)非空密码varchar(6)非空表4-1 管理员表结构(2)部门信息表部门编号能够唯一标识部门的所有信息,故定义为主键,部门名称和部门
22、人 数字段不能为空,表4-2列出了部门表结构的数据信息。列名数据类型约束情况部门编号char(10)主键部门名称char(20)非空人数smallint非空表4-2 部门表结构(3)员工信息表员工是收发工资的主要对象,在员工关系中定义员工编号为主键,其余为非 空约束,表4-3列出了员工信息表结构的数据信息。列名数据类型约束情况员工编号char(10)主键员工姓名char(10)非空性别char(10)非空部门名称char(20)非空岀生日期datetime非空籍贯char(10)允许空员工职位char(10)非空联系电话char(11)非空住址char(40)允许空表4-3 员工信息表结构(4
23、)考勤信息表考勤通常作为信息统计和凭证使用,每一个考勤信息作为一个独立的记录,故定义员工编号与考勤日期为主键。表 4-4列出了基本考勤表结构的数据信息列名数据类型约束情况员工编号char(10)主键考勤日期datetime员工姓名char(10)非空请假int允许空旷工int允许空早退int允许空迟到int允许空表4-4 考勤表结构(5)工资信息表工资信息表作为工资统计使用,每一个工资信息作为一个独立的记录,故定 义员工编号与日期为主键,其余字段为非空约束。表4-5列出了基本工资信息表 结构的数据信息。列名数据类型约束情况员工编号char(10)主键日期datetime员工姓名char(10)
24、非空部门编号char(20)非空工龄工资smallint非空地区补贴smallint非空基本工资smallint非空表4-5 考勤表结构创建表之间的关系通过表之间关系的创建,为创建多表之间的连接查询做好准备。本系统创建 的关系图如图4-6所示。图4-6系统关系图创建视图根据以上可得知,本系统创建的 SQL Server 2000数据库文件中共包含5个 表对象。为了方便管理员使用该系统进行数据查询,系统还创建了如下的视图。1.单表查询视图:(1)员工信息查询视图能够对所有员工的信息进行查询;(2) 部门信息查询视图(3) 考勤信息查询视图能够对每个部门的所有信息进行查询;能够对考勤的所有信息进行
25、查询;(4)工资信息查询 能够对工资的所有信息进行查询;2.多表查询视图(1)工资信息表和员工信息表联合查询(数据完整)2.统计各部门月工资总数3.统计所有部门月工资总额创建存储过程1.创建cunchul,查询员工的所有信息。create procedure Cun chulasselect * from 员工信息表2.创建cunchu2,按编号查询查询员工的所有信息。create procedure Cun chu2find 员工编号 char(10)asselect 员工编号,员工姓名,部门名称,员工职位from员工信息表where员工编号=find员工编号GO3.创建cunchu3,向部
26、门信息表中添加一个新的记录。create procedure Cun chu3部门编号char(10), 部门名称char (20), 部门人数char (10)asin sert 部门信息表VALUES (B门编号,部门名称,部门人数)GO创建触发器1)创建员工信息表删除触发器 当用户删除员工信息表中的内容时,引发该触发器检查考勤信息表中是否存在该内容,如果存在就不能删除,否则就可以删除。create trigger tr_delete_ 员工 on 员工信息表for delete asdeclare 员工编号 char(10)select 员工编号=员工编号from deletedif e
27、xists (select* from 考勤信息表 where 员工编号=员工编号)beginrollbackend2)创建员工信息表更新触发器,当员工信息表中部门编号发生改变时,引发该 触发器更新工资信息表中的部门属性。create trigger tr_update_ 员工on dbo.员工信息表for updateasif update( 部门名称)begindeclare b 部门名称 char(20),h 部门名称 char(20)select b 部门名称=部门名称from deletedselect h部门名称=部门名称from insertedupdate工资信息表set 部门
28、名称=h部门名称from 工资信息表 where 部门名称=b咅B 门名称print( 记录更新成功)end3)创建考勤信息表添加触发器,当用户向考勤信息表中输入员工的信息时,引 发该触发器检查员工信息表中是否有该项内容,如果有就可以成功输入,否则就 不能输入。create trigger tr_insert_ 考勤 on 考勤信息表for in sert asdeclare 员工编号 char(10), 考勤日期datetime,员工姓名 char(10), 早退int,旷 工int, 迟到int, 请假intselect 员工编号=员工编号 from insertedselect 员工姓名
29、=员工姓名from insertedif not exists (select* from 员工信息表 where 员工姓名=员工姓名 and 员工编号=员工编号)beginrollbackend5前台界面设计本系统使用SQL Server 2000作为后台数据库,使用设计前台界面,因此,在SQLServer 2000中,仅需要创建基本表对象和表之间的关系, 为了减少重复,在VB中仅创建了用户登录界面和员工信息查询和编辑界面。系统工程结构设计,工资管理系统的工程中包含登录窗体、背景窗体、主窗体和各表对象的编辑 窗体和查询窗体,共可创建五个窗体。其结构见图。登录模块设计5.3.1 界面设计(1) 登录窗体的设计界面如图所示。(2) 主窗体的设计界面如图所示。图登陆窗体界面图系统工程结构图图主窗体界面(3) 员工信息编辑窗体的设计界面如图所示。员工信息查询窗体的设计界面如 图所示。图员工信息查询窗体界面(4)窗体中各控件的属性设置登录窗体的两个标签使用默认的 Name属性,其Caption属性如图所示表登录窗体控件属性默认控件名Name属 性其他属性Form
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1