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

数据库课程设计-职工工资管理系统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)
上一篇 2022年5月18日 下午10:20
下一篇 2022年5月18日 下午10:20


相关推荐

  • NAL单元的各种类型介绍

    NAL单元的各种类型介绍NAL 单元的各种类型如下表所示 NAL 分为 VCL 的 NAL 单元和非 VCL 的 NAL 单元 一个以 IDRAccessUni 开始的 CodedSequenc 由一个或多个 IDRSlices 组成 每一个都是 IntraCodedSl 然后紧接着就是非 IDRSlice 或分割 Slice 非 VCL 的 NAL 单元包括 PSP SEI 等 这些参数对解码和显示视频都是很有用的 1 A

    2026年3月16日
    1
  • Moltbook:OpenClaw的社交网络

    Moltbook:OpenClaw的社交网络

    2026年3月13日
    2
  • 6种iframe高度自适应的方法

    6种iframe高度自适应的方法js 自适应高度 实际上就是设置 iframe 的高度 设置等于内嵌网页的高度 从而看不到滚动条和嵌套痕迹 对于用户体验和网站美观起着重要作用 我们可以通过 css 来给它直接定义一个高度 同样可以

    2026年3月17日
    1
  • SQLServer2019安装教程「建议收藏」

    打开应用程序点击安装,点第一个全新得SQLserver独立安装下一步这里可能要等他扫描一下,下一步执行全新安装developer和express选哪一个都可以,(,一共有三个,不选Evaluation就可以,虽然可以用,但是他有180天的期限)接受条款,才能点击下一步选择数据库引擎,点击下一步(需要的可以换目录,但最好别换,换到别的(机械)盘可能效率会低)如果这里报错…

    2022年4月17日
    106
  • Java中将xml文件转化为json的两种方式

    Java中将xml文件转化为json的两种方式最近一直没有时间写博客,忙着找房子,天天来回折腾,光地铁费就花了不少,最后综合各种因素考虑,决定沙河高教园,哈哈,没错,别人都是越搬离公司越近,我是越搬越远,但是直觉告诉我应该没有错,昨天晚上刚搬完家,收拾收拾终于安定了,坑爹的二房东再见,以后如果不出什么特殊情况的话应该是有时间写博客了。。。。    好了废话不多说,进入正题,最近有个需求,要将xml转json之后存储在redi

    2022年7月21日
    15
  • Ubuntu 下安装 GCC 的方法[通俗易懂]

    Ubuntu 下安装 GCC 的方法[通俗易懂]1.更新Ubuntu执行下面命令:$sudoaptupdate结果更新老是失败,于是把etc\apt\sources.list文件中的数据源修改成国内站点,才搞定:debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionicmainrestricteduniversemultiversedebhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-updatesmainre

    2022年7月24日
    12

发表回复

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

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