网络数据库工资管理系统设计项目设计报告doc_第1页
网络数据库工资管理系统设计项目设计报告doc_第2页
网络数据库工资管理系统设计项目设计报告doc_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、网络数据库课程项目设计课程名称 网络数据库设计题目 工资管理系统专业班级 计应0602班学生姓名 XXX 学号 18指导教师 YYYYQQQQ年P月R日目录一、项目名称:工资管理系统设计 1二、系统功能的基本要求 1三、课程设计的目的和意义 1四、应掌握的知识点 1五、应训练的能力点 1六、数据库设计内容 2(一) 需求分析 .2(二)概念结构设计 .2(三)逻辑结构设计 3(四)数据库与数据表设计一一物理结构设计 41数据库与数据表设计 42数据完整性设计 .5七、数据库操作实施与结果数据库对象的设计. 5(一 )建数据库一一工资管理库 .5(二)建表一一员工信息表、部门信息表、工资信息表

2、.6(三)视图 .7(四)存储过程 .7(五)触发器 8(六)索引 9(七)运行和维护 91. 关系图的建立 .92. 简单查询 .93. 复杂查询 .11八、总结 12九、参考文献 13、项目名称: 工资管理系统设计、系统功能的基本要求:? 员工每个工种基本工资的设定;? 加班津贴管理,根据加班时间和类型给予不同的加班津贴;? 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;? 员工年终奖金的生成,员工的年终奖金计算公式= (员工本年度的工资总和+津贴的总和) /12;企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计。三、课程设计的目的和意义网络

3、数据库是实践性教学环节之一,是网络数据库课程的辅助教学课程。通过 课程设计, 使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使 学生掌握数据库系统的基本概念、 原理和技术, 将理论与实际相结合, 应用现有的数据建模 工具和数据库管理系统软件, 规范、科学地完成一个小型数据库的设计与实现, 把理论课与 实验课所学内容做一综合, 并在此基础上强化学生的实践意识、 提高其实际动手能力和创新 能力。实训目的:了解数据库系统的理论掌握数据库设计的基本方法,熟悉数据库设计的步骤;通过设计数据库系统应用课题, 进一步熟悉数据库管理系统的操作技术, 提高动手能力, 提高分析问题和解决问题

4、的能力学习基本数据库编程方法快速跟踪数据库系统软件的新技术及市场应用动态。四、应掌握的知识点数据库基本原理关系数据库的设计方法、设计思路 初步掌握一种关系数据库语言五、应训练的能力点SQL Server 2000 的操作与使用数据库的概念设计与逻辑设计 数据库的建立与管理、数据表的建立与操作SQL查询语言的使用与编程设计和开发一个数据库应用系统的数据库设计部分六、数据库设计内容(一)需求分析本系统要求实现以下主要功能:1数据录入功能主要任务是对各种工资信息进行日常的管理,如工资信息的输入、查询、修改、增加、 删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。2数据查询功能系统需

5、要提供以下查询功能:1)员工考勤情况2)员工工种情况,反映员工的工种、等级,岗位工资等信息3)员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、岗位补贴情况等4)员工基本信息情况5)员工月工资情况:年,月,职工号,姓名,部门名,基本工资,病假扣款,事假扣款,应发工资,实发工资3数据统计功能1)统计员工年终奖金2)统计每部门月工资情况(二)概念结构设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。员工是本系统的第一个实体。为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。

6、部门是本系统的第二个实体。工资是以员工工作情况来制定的。需要建立一个表来记录各种工资、津贴、扣款的信息。它主要为各种查询和统计功能提供工资数据。工资是第3个实体。据此可以绘出工资管理系统数据库的E-R图如下:(加班工资側门编部加班天数)(、岗位补贴工种员工涪息获得0工资SICC麺门名柝上三=二门负责人)实体属性列表如下:(三)逻辑结构设计 将数据库的概念模型转换为关系模型: 实体转换成的关系模式有:员工信息(工号,姓名,性别,年龄,籍贯,学历,工种,工龄,职务等级,部门名 称)关系-工作(工号,部门名称)部门(部门编号, 部门名称,部门负责人,部门人数)关系-获得(工号,姓名)工资(工号,岗位

7、工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加 班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资,部门名 因为,员工与工资是 1: N的关系,所以各关系模式为:员工信息(工号,姓名,性别,年龄,籍贯,学历,工种,工龄,职务等级,部门名称) 部门(部门编号, 部门名称,部门负责人,部门人数)工资(工号,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加 班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资,部门名 带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。关系规范式:工资管理系统 1NF每个属性均不可再分(四)数据库与数据表设计一一

8、物理结构设计在SQL数据库中需要建立 3个数据表:员工信息数据表、部门数据表和工资数据表。 1数据库与数据表设计员工信息数据表定义号名剧龄貫S种験嘉门 工姓性年籍学工工职部int斗L.Jvarchar50char2Vixitv*rch*r50varchar50V50V50varcLiir站10列名数据凳型 I底度此许空其中,“工号”是表的主键,惟一标识。“部门名称”是外键。“工号”将记录员工的编号,在员工信息表中增加这一列时,虽然 增加了数据冗余,但可以在查询每个员工信息时,提高系统的性能。因为员工信息表的记录数相对固定,相比之下, 增加这个冗余的列对于整个系统来说是有利的。通过它,系统将引用

9、到工资信息。此表取名为“员工信息” 部门数据表定义刿名数长度部门躺号imt4部门!S称chartorare li ar50部门人数varcliaK50其中,部门名称是该表的主键,惟一标识一个部门。 此表取名为“部门”工资数据表定义列名数皓类型|长度|允许空1工导int4hiiii/岗位工资岗位棚占9出勤天数decimal9加班工时g加班工琏decimalg加班天数decimal97加班类别varchar50V病假扣敦gV爭假扣款gV苴融扣款g应煖工资9实发工资decimO,3却门名称char10其中,“工号”作为该表的主键,唯一标识,保证客房信息表数据的参照完整性。 此表表取名为“工资”根据上

10、面三个数据表的设计,可执行下面的步骤创建数据表1)打开企业管理器,在本地服务器上创建新的数据库“工资管理库”2)创建表员工信息、部门、工资2.数据完整性设计1)给每个表实施主键约束。主键约束、非空值约束员工:工号为主键,所以此项非空部门:部门名称为主键,所以此项非空工资:工号为主键,所以此项非空2)实施CHECK约束员工表中建立一个检查约束,即员工性别不是男就是女 CHECK 性别 IN('男','女')3)外键约束员工信息表中,部门名称为外键。工号为主键工资FOREIGN KEY(部门名称)REFERENCES 部门(部门名称)通过此键建立3个表的联系4)惟一

11、约束a)每个表的主键需定义为惟一性:对于工资表,因为工号是主键,联系着员工表,所以建立唯一性alter table 工资 add constraint UQ_ 工号 unique(工号)b)对于员工表,员工的工号、部门名称都是用于识别员工身份,所以建立唯一约束alter table 员工 add constraint UQ_ 工号 unique(工号)七、数据库操作实施与结果一一数据库对象的设计(一)建数据库一一工资管理库IF EXISTS(SELECT * FROM sysdatabases WHERE name=' 工资管理库 ') drop database工资管理库GO

12、CREATE DATABASES 资管理库ON PRIMARY(NAME工资管理库,工资管理库 _data.mdf',SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOG ON (NAME ='工资管理库 _log',工资管理库 .ldf',SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)(二) 建表员工信息表、部门信息表、工资信息表IF EXISTS(SELECT * FROM sysobjects WHERE name=' 员工') DROP TABLE 员工GOcreate table 员

13、工信息(工号 int NOT NULL primary key,姓名 VARCHAR(50) NOT NULL,性另ij CHAR(2) DEFAULT'男'CHECK(性另U IN('男','女'), 年龄 int NOT NULL,籍贯 VARCHAR(50) NOT NULL,学历 VARCHAR(50),工种 VARCHAR(50),工龄 VARCHAR(50) NOT NULL,职务等级 VARCHAR(50),部门名称 char(10) NOT NULL foreign key references 部门(部门名称 ) GOIF EX

14、ISTS(SELECT * FROM sysobjects WHERE name=' 部门') DROP TABLE 部门GOcreate table 部门 (部门编号 int, 部门名称 char(10) primary key,部门负责人 VARCHAR(50) NOT NULL,部门人数 VARCHAR(50) GOIF EXISTS(SELECT * FROM sysobjects WHERE name=' 工资 ')DROP TABLE 工资GOCREATE TABLE工资(工号 int NOT NULL primary key,岗位工资 decima

15、l not null, 岗位补贴 decimal, 出勤天数 decimal not null,加班工时 decimal,加班工资 decimal,加班天数 decimal,加班类别 varchar(50),病假扣款 decimal,事假扣款 decimal,其他扣款 decimal, 应发工资 decimal not null, 实发工资 decimal not null,部门名称 char(10) NOT NULL foreign key references 部门(部门名称 ) GO(三) 视图(1) 查询员工工资情况 建立一个视图,反映员工姓名及工资情况。CREATE VIEW 员工信

16、息 _工资ASSELECT员工信息 .姓名, 工资.*FROM 员工信息 , 工资WHERE员工信息 .工号=工资.工号(四) 存储过程 (1)指定员工工资情况的查询定义一个名为staffCost 的存储过程,该存储过程以以出勤天数(staffchuqin)、加班工资( staffjiaban)、应发工资(staffying)、实发工资( staffshi) 为输入参数返回指定员工工资信息的存储过程。stsffCost 代码如下:CREATE PROCEDURE staffCoststaffchuqin decimal,staffjiaban decimal,staffying decimal

17、,staffshi decimalASSELECT *FROM工资WHEREB 勤天数=staffchuqin AND 加班工资=staffjiaban AND 应发工资=staffyi ng AND 实发工资=staffshiGO(2) 指定范围的员工的信息查询。以员工工号、部门编号为输入参数返回指定员工基本信息的存储过程,要求输入部分员工信息查询员工全部信息。定义一个名为stsffInfo的存储过程,该存储过程以员工工号(staffNum)、部门编号(bmNum作为输入参数,存储过程返回查询到的结果集。satffI nfo的定义代码如下:CREATE PROCEDURE staffI nf

18、ostaffNum V ARCHAR(50)='%',bmNum V ARCHAR(50)='%'ASSELECT *FROM员工信息,部门WHERE员工信息部门名称=部门部门名称 AND(员工信息工号 LIKE staffNum V ARCHAR(50)+'%') AND(部门编号 LIKE bmNum V ARCHAR(50)+'%')GO(3) 统计某职工年终工资总额。以为输入参数,以奖金总额为输出参数,产生该年度12个月份的每员工奖金统计的存储过程。定义该存储过程名为bmMonhSum输入参数为 staffNum,实现代码

19、如下:CREATE PROCEDURE bmMo nthSumstaffNum CHAR(10)ASSELECT sum(实发工资+岗位补贴)/12 AS 奖金总额FROM员工信息,工资,部门WHERE员工信息工号=工资工号AND员工信息部门名称=部门部门名称 AND工号=102GO(五) 触发器(1 )关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发器名称为insert_工资。代码如下:create trigger in sert_asdeclare i char(20) declare bb int set i=case when bb=100 then wh

20、en bb=102 then endprint i工资 on 工资 for insert工资,'实发工资'(六)索引为提高检索性能,为表创建符合索引,其索引项为工号、姓名。CREATE INDEX工号姓名ndON员工信息(工号,姓名)GO(七)运行和维护1.关系图的建立使用SQL Server 2000的企业管理器创建工资管理系统关系图工资管理系统的关系图部门=同门编号部门名称部口负责人1部门人数a工资员工信息工号岗住补贴 出勤黃数 枷班工时 加班工资 加班天数 M班类别 病假扣款 爭儼扣謨 苴帼扣載 应绘工贺 冥疑工费 部门名称2.简单查询1)员工基本信息情况 代码如下:se

21、lect * from员工信息部门名称工龄职务等级|工号姓名 性别年龄籍贯学历职工销售部财勢部长财务部 职工公董都生产部音帐生产部 企划部音®长企划部2 8 4 3 6 销算台工划 外预前电企 刑咒科科科 右研本专右 京海南车苏 北上、河山江 5-3O6 J-2 3 3 2-3 文男男女男1100 f2101 :.3102 j4103 |5104 :2)员工考勤情况; 代码如下:芳菠翰丽 ft晓明红明 陆李旭肖刘select出勤天数,工号from工资1出勤天数工号IS1002201CH3171024181035201043)员工每个工种基本工资的设定。代码如下:Select岗位工资,

22、职务等级from工资,员工信息where工资工号=员工信息工号1岗位工资职务等级1500职工22E00财务部长32000职工41200生产部部长51E00企划部部长4)加班津贴管理,根据加班时间和类型给予不同的加班津贴; 代码如下:select加班工时,加班天数,加班类别,加班工资from工资WHERE加班工资01加班工时加班天数加班矣别加班工資21加急100233核查&003243加急TOO4NULL加煮2005)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; 代码如下:select工资.部门名称,职务等级,岗位工资,出勤天数,实发工资 from员工,工资WHER

23、E 员工信息工号=工资工号部门名称职鶴等级岗住工燹出勒天数实笈工賢1销售部职工1500162财务部财务部长25002018003公关詐20001721004生产部生产都喜帐1200182005企划部企封腊轄帐1S0D2019003.复杂查询1)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总 和)/12;代码如下:SELECT姓名,sum(实发工资+岗位补贴)/12 AS奖金总额FROM员工信息,工资,部门WHERE 员工信息工号=工资工号 group by姓名姓名奖金总蔽1隊红芳666.672李晓波375.003刻明875.004肖红丽291.6?5旭明翰1,04

24、1.612)企业内财务部的工资情况查询:代码如下:select员工信息.工号,姓名,职务等级,实发工资 from工资,员工信息where工资工号=员工信息工号AND工资部门名称='财务部工号堆名聪务零级实绘工務11101财务部长13003)企业工资报表。能够查询单个员工的工资情况代码如下:select工资工号,岗位工资,病假扣款,事假扣款,应发工资,实发工资 from工资,员工信息WHERE工资工号=员工信息工号 AND 姓名 LIKE'李%'1工号崗位工馥病假相款事假扣款应塩工歿实幾工资1012500NULLNULL20001SOO4)员工月工资情况:月,职工号,姓名

25、,部门名,基本工资,病假扣款,事假扣款,应发 工资,实发工资。代码如下:select员工信息工号,姓名,员工信息部门名称,岗位工资,病假扣款,事假扣款,应发工资, 实发工资from工资,员工信息where工资.工号=员工信息工号;工号堆名部门名称向位工资病假扣款事假扣款应发工賢实发工資1100销售部1500100NULL1500140012101李晓破250DNULLNULL200018003102旭明翰200C100ICO25002100-4103肖红丽生产部1200NULLICO22002Q05104刘明企划部1800IDONULL210D1900八、总结经过一周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本达 到了工资管理系统的要求。这次数据库课程设计给我的最大的印象是: 流程是一切的根本;架构是重要 的,想像的还要重要;实践比一切空谈和理论更能学到东西。从做这个数据库开 始无论遇到什么困难,我都没有一丝的放

温馨提示

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

评论

0/150

提交评论