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

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


相关推荐

  • android系统开机画面_Android开机画面

    android系统开机画面_Android开机画面制作android开机画面AndroidSplashScreenisthefirstscreenvisibletotheuserwhentheapplication’slaunched.Splashscreenisoneofthemostvitalscreensintheapplicationsinceit’stheuser’sfirs…

    2022年5月14日
    38
  • 矩阵乘以其矩阵转置

    矩阵乘以其矩阵转置在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

    2022年6月30日
    58
  • python进阶(6)深拷贝和浅拷贝[通俗易懂]

    python进阶(6)深拷贝和浅拷贝[通俗易懂]深拷贝和浅拷贝不管对于浅拷贝、还是深拷贝,针对不可变对象str、int、tuple(有点特殊)、boolean,它的内存地址是不变的,拷贝的仅仅是值importcopya=1b=co

    2022年7月29日
    10
  • win10系统用激活码激活,用dos命令来激活,只能激活半年时间,暂时没找到永久的。

    win10系统用激活码激活,用dos命令来激活,只能激活半年时间,暂时没找到永久的。自己之前用激活工具激活的,激活时间好像是180天,即将到期了,于是在网上百度各种永久激活方法,参照别人的方法,发现把自己的激活状态由激活即将到期变为通知模式,瞬间一脸懵逼,于是找啊找,终于找到了这种方式,亲测可行。(1)首先查看自己系统的激活状态;快捷键win+r输入命令:slmgr.vbs-xpr; 随后弹出窗口显示2018/9/8过期。 (2)然后以管理员模式打开命令提示符窗…

    2022年5月30日
    119
  • 构建算法模型_模型与算法有什么不同

    构建算法模型_模型与算法有什么不同文章目录1.情感词典内容2.情感倾向点互信息算法(SO-PMI)算法点互信息算法PMI情感倾向点互信息算法SO-PMI3.构建情感词典1.导入项目2.构建情感种子词3.使用TF-IDF方便构建情感种子词4.构建专业词典的效果与使用方法5.其他说明1.情感词典内容情感词典构建方法归为三类,分别是:词关系扩展法、迭代路径法和释义扩展法情感极性:正向、负向;表示正面情感(开心愉快)或负面情感(伤心愤怒)情感极值:情感倾向(微笑、开怀大笑、手舞足蹈虽然都可以表示开心,但有不一样的

    2022年8月23日
    8
  • smb服务配置

    smb文件共享:用internet文件系统(CIFS)也称为服务器是适用于MicrosoftWindows服务器和客户端的标准文件和打印共享系统模块。Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享。实验一、windows共享文件给linux1、实验环境1)、windows系统172.25.254…

    2022年4月13日
    36

发表回复

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

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