数据库课程设计-职工工资管理系统

数据库课程设计-职工工资管理系统XXX大学《数据库原理及应用课程设计》设计报告…

大家好,又见面了,我是你们的朋友全栈君。

 

                                                                XXX大学

 

 

                                       《数据库原理及应用课程设计设计报告

                                          

 

 

 

                                            题   目            职工工资管理系统           

                                           学生姓名                                                 

                                           学   号                                                      

                                           专业班级                                                 

                                           学    院                                                    

                                           指导教师                                                 

                                           完成时间                                                 

 

 

1 需求分析

本系统的主要目的是,明确查询公司职工某年某月的工资情况,通过职工工资管理系统,能明确的察看到从入职以来,每位职工的每月工资情况。同时也能查询到职工本身的一些基本信息。(这次的设计以2018年5月为例)

设计如下面所示的数据项:

职工信息包括读者职工号,姓名,性别,出生日期,年龄,部门,职位,入职时间;

工资信息包括职工号,工资年份月份,原始工资,津贴,所得税,最终工资。

2 概念结构设计

概念结构E-R图如下所示。

数据库课程设计-职工工资管理系统

 

3 逻辑结构设计

(1)E-R图转换成关系模式如下:

职工(职工号,姓名,性别,出生日期,年龄,部门,职位,入职时间)

F = {职工号姓名,职工号性别,职工号→出生日期,职工号→年龄,职工号→部门,职工号→职位,职工号→入职时间}

候选码:职工号,最高符合BCFN。

工资(职工号,工资年份月份,原始工资,津贴,所得税,最终工资

F = {职工号工资年份,月份原始工资,职工号工资年份,月份津贴,职工号工资年份,月份所得税,职工号工资年份,月份→最终工资}

候选码:职工号工资年份,月份,最高符合BCNF。

 

 

(2)关系模式中属性的详细说明。

                                                                     职工信息表

字段名

数据类型

约束条件

说明

mno

INT

主键,自增

职工号

mname

VARCHAR(50)

唯一,不能为空

职工姓名

sex

VARCHAR(2)

不能为空

职工性别

birthday

DATE

不能为空

出生日期

age

INT

可以为空

职工年龄

dept

VARCHAR(50)

可以为空

所在部门

post

VARCHAR(50)

可以为空

职工职位

start_date

DATE

可以为空

入职时间

 

 

                                                               工资信息表

字段名

数据类型

约束条件

说明

mno

VARCHAR(50)

主键,自增

职工号

year

VARCHAR(50)

主键

工资年份

month

VARCHAR(50)

主键

月份

wage_jop

float

可以为空

原始工资

allowance

float

可以为空

津贴

tax

float

可以为空

所得税

real_wage

float

可以为空

最终工资

 

4 建表及主要操作SQL语句

(1)建立基本表

//create database mis;

//use mis;

//职工表

create table member(

mno char(15) not null,

mname varchar(15) unique,

sex char(5) not null check(sex=’男’ or sex=’女’),

birthday date not null,

age int not null,

dept varchar(10) not null,

post varchar(15) not null,

start_date date not null

);

 

 

//职工工资表

create table wage(

mno char(15) not null,

year varchar(10) ,

month varchar(10) ,

wage_jop float not null,

allowance float ,  /*津贴*/

tax float not null,/*所得税*/

real_wage float not null

);

(2)录入模拟数据

insert into member

values(‘0001′,’李勇’,’男’,(‘1985-01-02′),’33’,’研发部’,’研发部长’,(‘2012-05-11’));

Insert into member

values(‘0002′,’刘晨’,’男’,(‘1987-01-02′),’31’,’研发部’,’项目策划’,(‘2012-06-01’));

Insert into member

values(‘0003′,’王敏’,’女’,(‘1985-11-02′),’33’,’财务部’,’财务会计’,(‘2011-06-11’));

Insert into member

values(‘0004′,’张立’,’男’,(‘1990-01-02′),’20’,’人事部’,’人事部长’,(‘2011-05-11’));

工资表以2018年5月为例

insert into wage

values(‘0001′,’2018‘,’5,‘5400’,’0′,’100′,’5300′);

insert into wage

values(‘0002′,’2018‘,’5‘,’5000′,’500′,’100′,’4900’);

insert into wage

values(‘0003′,’2018‘,’5,‘4000’,’100′,’150′,’3850′);

insert into wage

values(‘0004′,’2018‘,’5‘,’4000′,’0′,’150′,’3850’);

(3)常用查询

/*查询某个人的所得工资,以查询工号为0002的员工为例*/

select member.mname,wage_jop ,allowance ,tax,real_wage

from member , wage

where wage.mno=’0002′ and wage.mno=member.mno;

/*查询某个部门工资不少于三千的人员信息*/

select * from member

where mno in(

select mno

from wage

where dept=’研发部’ and member.mno=wage.mno and real_wage>=3000);

/*修改员工信息*/

update member

set post = ‘财务部长

where mname=’王敏’;

/*分组查询—统计每个部门的职工人数*/

select dept,count(mno) from member group by dept;

/*嵌套查询—查询津贴为零的职工号和职工姓名*/

select mno,mname from member

where mno in(select mno from wage where allowance=’0′);

 

5总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144698.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号