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

数据库课程设计-职工工资管理系统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总结

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是跨域?什么情况下会发生跨域请求?

    什么是跨域?什么情况下会发生跨域请求?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略:所谓同源是指:协议,域名,端口均相同。即便两个不同的域名指向同一个ip地址,也非同源。http://www.123.com/index.html调用http://www.123.com/server.php(非跨域)http://www.123.com/index.html调用http://www.456.com/server.php(主域名不同:123/456,跨域)http:/

    2022年5月29日
    57
  • Qt css颜色对照表

    Qt css颜色对照表css颜色代码对照FFFFFF#DDDDDD#AAAAAAFFFFFF#DDDDDD#AAAAAA#888888#666666#444444#000000#FFB7DD#FF88C2#FF44AA#FF0088#C10066#A20055#8C0044#FFCCCC#FF8888#FF3333#FF0000#CC0000#AA0000#880000#FFC8B4#FFA488#FF7744

    2022年5月17日
    80
  • 最近招聘和面试的感想

    ​ 本篇博文写给自己,也写给那些在找工作或者找实习工作的伙伴。我的故事​ 刚刚入职新公司一个多月了,刚好前段时间有幸和公司的HR同事一起去湖南大学做公司的校招,湖大之前还是去过几次,只是之前去都是爬岳麓山,下山的时候路过。也没有怎么在湖大校园里面逛逛。这次是去校招,说真的,自己心里还挺激动。我毕业也有三年了,能回到大学校园里,那种感觉还是挺美好的。​ 校园招聘我也经历过,那个时候每天做车跑到…

    2022年2月27日
    36
  • 分布式系统可用性与一致性

    分布式系统可用性与一致性可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos,它们之间究竟有什么联系?分布式系统的挑战        一致性可理解为所有节点都能访问到最

    2022年7月15日
    11
  • python 生成随机矩阵_matlab建立m行n列矩阵

    python 生成随机矩阵_matlab建立m行n列矩阵导入模块random模块numpy中的random函数python中有两个模块可以生成随机数,该博客以的numpy模块为例进行生成随机数。(因为矩阵要生成大量的随机数据,故推荐使用numpy模块生成随机数)生成随机数(以矩阵为例)#生成随机矩阵importnumpyasnp# 设置随机种子,保证每次生成的随机数一样rd=np.random.RandomState(…

    2022年10月23日
    0
  • linux route输出分析,Traceroute原理分析[通俗易懂]

    linux route输出分析,Traceroute原理分析[通俗易懂]traceroute,现代Linux系统上的tracepath,还有Windows系统上的tracert,均是用于同一目的的网络调试工具。它们用于显示数据包在IP网络中经过的路由器的IP地址。原理这些程序是利用IP数据包的存活时间(TTL)值来实现其功能的。当一台计算机发送IP数据包时,会为数据包设置存活时间(TTL)值。每当数据包经过一个路由器,其存活时间值就会减1。当存活时间减到…

    2022年7月21日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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