数据库原理课程设计报告_第1页
数据库原理课程设计报告_第2页
数据库原理课程设计报告_第3页
数据库原理课程设计报告_第4页
数据库原理课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——数据库原理课程设计报告

重庆科技学院

课程设计报告

院(系):_电气与信息工程学院专业班级:计科1203学生姓名:赵弈胰学号:2023442084设计地点(单位)______I308__________设计题目:___工资管理系统设计

完成日期:2023年1月7日指导教师评语:

____________________________________

______________________________________________________________________________________________________________________________________________________

成绩(五级记分制):________________

指导教师(签字):

摘要

本次数据库课程设计不要求界面和外部应用程序的设计,只设计数据库部分。工资管理系统采用mysql作为数据库后台。工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除等,设计触发器、存储过程使管理更便利,迅速确凿地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。

重庆科技学院课程设计任务书3

设计题目:工资管理系统设计

教研室主任:王双明指导教师:游明英/王双明

2023年12月25日

目录

摘要II1需求分析1

1.1系统目标设计11.2系统功能分析11.3数据流程分析11.4数据字典22概念结构设计4

2.1构成系统的实体型42.2E-R图43规律结构设计5

3.1规律结构简介53.2关系模型54物理模型设计6

4.1定义数据库64.2创立表64.3创立存储过程84.4创立视图94.5创立触发器10总结12

1需求分析

1.1系统目标设计

信息时代不断发展,工资管理系统也需要不断更新,现代化,才能更加便利!

1.2系统功能分析

根据不同的用户角色,进行授权,使不同用户具有相应的权限,譬如管理员可以管理该数据库的全部数据更新;员工可以修改自己的基本信息等等。

基本工种,基本工资的管理;公司部门、部门福利、员工的管理;加班类型,加班工资的管理;公司员工的考勤信息管理;

员工月工资管理,月工资=基本工资+部门福利-缺勤扣掉的工资;查询统计上述信息,生成企业工资报表

1.3数据流程分析

图1.3数据流程图

1.4数据字典

表1.4工资表

表1.5考勤表

2概念结构设计

2.1构成系统的实体型

由工资管理系统的数据流图和数据字典,抽取出系统的几个个主要实体,包括:员工实体,工种实体,部门实体,工资实体。

员工实体型属性:StaffId,staffName,staffAge,staffSex,staffPhone工种实体型属性:professionId,professionName

部门实体型属性:departmentId,departmentName,departmentPhone工资实体型属性:basicSalarydepartmentAllowance

2.2E-R图

图2.2E-R图

3规律结构设计

3.1规律结构简介

规律结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的规律结构。设计规律结构一般分为3步进行:

(1)将概念结构转换为一般的关系、网状、层次模型;

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。

3.2关系模型

将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如:

(1)员工与部门是多对一的关系,所以将员工与部门设计成以下关系模式:

员工(StaffId,staffName,staffAge,staffSex,staffPhone)部门(departmentId,departmentName,departmentPhone)

属于(StaffId,staffName,staffAge,staffSex,staffPhonedepartmentId,departmentName,departmentPhone)

(2)员工和工种是多对一的关系,所以将员工与工种设计成以下关系模式:员工(StaffId,staffName,staffAge,staffSex,staffPhone)

工种(professionId,professionName)

属于(StaffId,staffName,staffAge,staffSex,staffPhoneprofessionId,professionName

(3)员工与工资是一对一的关系,所以将员工与工资设计以下关系模式:

工资(basicSalarydepartmentAllowance)

员工(StaffId,staffName,staffAge,staffSex,staffPhone)属于(basicSalarydepartmentAllowanceStaffId,staffName,staffAge,staffSex,staffPhone)

4物理模型设计

数据库物理设计是将规律设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。

4.1定义数据库

通过SQL语言进行数据库创立,创立数据库的语句如下:Createdatabasesms;

4.2创立表

创立部门信息表

DROPTABLEIFEXISTS`department`;CREATETABLE`department`(

`departmentId`int(11)NOTNULLAUTO_INCREMENT,//部门编号,主键自增`departmentName`varchar(255)NOTNULL,//部门名字`departmentAllowance`int(11)NOTNULL,//部门补贴`departmentPhhone`int(11)NOTNULL,//部门电话PRIMARYKEY(`departmentId`),)

创立离职员工表

DROPTABLEIFEXISTS`dimissionstaff`;CREATETABLE`dimissionstaff`(

`staffId`int(11)NOTNULL,//员工编号,主键,唯一`staffName`varchar(255)NOTNULL,//员工名字`staffSex`varchar(255)DEFAULTNULL,//员工性别`staffAge`int(11)DEFAULTNULL,//员工年龄`staffPhone`varchar(255)DEFAULTNULL,//员工电话

`departmentId`int(11)DEFAULTNULL,//员工所在部门编号,外键`professionId`int(11)DEFAULTNULL,//员工所属工种,外键

PRIMARYKEY(`staffId`))

创立工种表

CREATETABLE`profession`(

`professionId`int(11)NOTNULLAUTO_INCREMENT,//工种号,主键自增`professionName`varchar(255)NOTNULL,//工种名字`departmentId`int(11)NOTNULL,//工种所属部门,外键`basicSalary`int(11)NOTNULL,//工种的基本工资PRIMARYKEY(`professionId`),)

创立工资表

CREATETABLE`salary`(

`staffId`int(11)NOTNULL,//员工号,外键

`departmentId`int(11)NOTNULL,//员工所属部门号,外键`basicSalary`int(11)NOTNULL,//员工的基本工资,外键

`departmentAllowance`int(11)NOTNULL,//员工所在部门的补贴,外键`isGet`int(11)NOTNULL,//员工是否领取工资PRIMARYKEY(`staffId`),)

创立员工表

CREATETABLE`staff`(

`staffId`int(11)NOTNULLAUTO_INCREMENT,//员工编号,主键自增`staffName`varchar(255)NOTNULL,//员工姓名`staffAge`int(11)DEFAULTNULL,//员工年龄`staffSex`varchar(255)DEFAULTNULL,//员工性别`staffPhone`varchar(255)DEFAULTNULL,//员工电话

`departmentId`int(11)DEFAULTNULL,//员工所在部门,外键`professionId`int(11)DEFAULTNULL,//员工所属工种,外键PRIMARYKEY(`staffId`),)

创立考勤表

CREATETABLE`works`(

`staffId`int(11)NOTNULL,//员工编号,外键`workDate`dateNOTNULL,//工作日`isWork`int(11)NOTNULL,//是否打卡)

4.3创立存储过程

/*创立查询部门全部员工的存储过程,只有一个输入参数:部门编号*/DROPPROCEDUREIFEXISTS`dpt_staff`;DELIMITER;;

CREATEDEFINER=`root`@`localhost`PROCEDURE`dpt_staff`(`id`int)BEGIN

SELECT*FROMstaffwheredepartmentId=id;END;;

DELIMITER;

/*调用该存储过程*/

Calldpt_staff(部门编号(1或2));

/*创立查询单人月工资的存储过程,一个输入参数:员工编号;一个输出参数:月总工资;*/

DROPPROCEDUREIFEXISTS`monthSalary`;DELIMITER;;

CREATEDEFINER=`root`@`localhost`PROCEDURE`monthSalary`(IN`id`int,OUT`c`int)BEGIN

DECLAREaINT;DECLAREbINT;

/*把查询到的结果赋值给变量*/

SELECTbasicSalaryintoaFROMsalaryWHEREstaffId=id;

SELECTdepartmentAllowanceintobFROMsalaryWHEREstaffId=id;setc=a+b;

selectcasmonthSalary;END

;;

DELIMITER;

/*创立生成年终奖的存储过程,一个输入参数:员工编号*/DROPPROCEDUREIFEXISTS`yearBonus`;DELIMITER;;

CREATEDEFINER=`root`@`localhost`PROCEDURE`yearBonus`(`id`int)BEGIN

DECLAREaINTDEFAULT1000;DECLAREbDOUBLE;

DECLAREcINTDEFAULT12;DECLAREmonth_SalaryINT;/*调用存储过程monthSalary(),得到其输出参数*/callmonthSalary(id,month_Salary);SETb=(month_Salary*c+a)/c;SELECTb;END;;

DELIMITER;

/*调用存储过程*/

CallyearBonus(员工编号)

4.4创立视图

/*创立部门员工考勤状况的试图*/

DROPVIEWIFEXISTS`dpt_stf_workinfo`;

CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`dpt_stf_workinfo`ASSELECTdepartment.departmentId,staff.staffId,

fessionId,works.isWork,works.workDateFROM

department

INNERJOINprofessionONprofession.departmentId=department.departmentId

INNERJOINstaffONfessionId=fessionIdANDstaff.departmentId=department.departmentIdINNERJOINworksONworks.staffId=staff.staffId;

/*创立员工是否领取工资的试图*/DROPVIEWIFEXISTS`isgetsalary`;

CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`VIEW`isgetsalary`ASSELECTstaff.staffId,staff.staffName,salary.isGetFROMstaff

INNERJOINsalaryONsalary.staffId=staff.staffId;

/*创立各个员工工资状况的试图*/DROPVIEWIFEXISTS`salaryinfo`;

CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`salaryinfo`ASSELECTdepartment.departmentId,staff.staffId,staff.staffName,fessionId,

department.departmentAllowance,profession.basicSalaryFROM

department

INNERJOINprofessionONprofession.departmentId=department.departmentId

INNERJOINstaffONfessionId=fessionIdANDstaff.dep

温馨提示

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

评论

0/150

提交评论