已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆科技学院课程设计报告 院(系):_ 数理学院 _专业班级:数学与应用数学10-01学生姓名: 梅明 学 号: 2010443343 设计地点(单位)_ _第一实验楼_ _ _ _ 设计题目:_ _工资管理系统_ _ _ _ 完成日期: 2013年 7月 10日 指导教师评语: _ _成绩(五级记分制):_ _ 指导教师(签字):_ _重庆科技学院数据库原理课程设计报告重庆科技学院课程设计任务书设计题目:工资管理系统设计学生姓名梅明课程名称数据库原理课程设计专业班级应数2010-01地 点i306和计算机自主学习中心起止时间2013.7.8-2013.7.12设计内容及要求内容: 学生根据本课程设计指导书中的题目,进行设计。 员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。 可以对员工的工资项目进行初始化的设置(包括住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩、总工资、所得税、职务等) 加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。 根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。 人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。 单位工资报表的生成。可以按照在每个月的每个固定时间生成该单位全体员工的月工资。对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。 要提供工资管理系统的帮助文件。要求:按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,sql语句的使用和存储过程的使用。设计参数8个表结构;7个存储过程;6个触发器;7个视图、3处使用游标过程报告格式规范进度要求19.1 讲课 阅读分析任务书 制订设计计划19.1 需求分析 概念结构设计19.2 概念结构设计准备文挡19.2-3 逻辑结构设计物理结构设计19.4写文挡答辩交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3c.j.date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军、 2013年 7 月 10 日摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。工资管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的工资进行管理和统计。 工资管理系统分为8个模块,员工基本信息管理模块、部门信息管理模块、基本工资管理模块、出勤信息管理模块、奖惩信息管理模块、津贴管理模块、职称信息管理模块、员工工资管理模块。本系统采用sql server 2008作为数据库,使用odbc作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程。关键词: 工资管理 sql server 2008 触发器 存储过程29目录摘要i1 需求分析11.1 系统目标设计11.2 系统功能分析11.3 功能模块分析21.4 系统全局数据流图31.5 数据字典32 概念结构设计72.1 构成系统的实体型73 逻辑结构设计93.1 逻辑结构简介93.2 关系模型94物理模型设计114.1 定义数据库114.2 创建表114.3 创建存储过程144.4 创建触发器224.5视图24总结27致谢28参考文献291 需求分析1.1 系统目标设计实现企业的工资管理系统化,使企业管理更加现代化1.2 系统功能分析 (1):员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。(2):可以对员工的工资项目进行初始化的设置(包括住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩、总工资、所得税、职务)。(3):根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。 1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块工资管理系统部门信息管理基本工资管理员工信息管理员工出勤管理员工津贴管理工资信息管理奖罚记录管理部门基本信息录入及维护部门基本信息的查询基本工资的录入与维护基本工资的查询员工信息的录入与维护员工信息的查询员工出勤的录入与维护员工出勤信息的查询津贴信息的录入与维护津贴信息的查询工资的录入与维护工资的查询奖罚记录的录入与维护奖罚信息的查询职称评定管理职称评定信息的录入与维护图1.1 功能模块分析1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。奖罚职称评定出勤记录部门信息津贴工资基本工资员工信息图1.2 数据流图1.5 数据字典表1.1 部门信息(departmet_info)列名数据类型说明department_idvarchar(4)部门编号department_namevarchar(6)部门名称managervarchar(6)部门负责人dep_peonumbervarchar(4)部门人数表1.2基本工资(base_salary)列名数据类型说明dutyvarchar(10)职务 关键字base_salaryfloat基本工资表1.3 员工信息(employee_info)列名数据类型说明emp_idvarchar(15)员工编号 关键字emp_namevarchar(8)员工姓名sexchar(2)性别birth_datedatetime出生日期emp_timedatetime参加工作时间deoartment_idvarchar(4)所属部门dutyvarchar(10)职务politics_statusvarchar(10)政治面貌telephonevarchar(11)电话号码表1.4 员工出勤(attendence_info)列名数据类型说明emp_idvarchar(15)员工编号 关键字emp_namevarchar(8)员工姓名months_idvarchar(10)月份编号 关键字months_daysint本月天数holidaysint公休假天数work_daysint出勤天数business_daysint出差天数absent_daysint缺席天数leave_daysint请假天数late_daysint迟到天数leave_early_timesint早退天数表1.5 员工津贴(allowance_info)列名数据类型说明emp_idvarchar(15)员工编号 关键字emp_namevarchar(8)员工姓名allowance_monthvarchar(10)统计时间 关键字allowance_daysvarchar(2)加班天数allowance_salaryfloat津贴工资表1.6 员工工资(worker_salary)列名数据类型说明emp_idvarchar(15)员工编号 关键字base_salaryfloat基本工资house_allowancefloat住房补贴allowance_salaryfloat津贴trade_union_feefloat工会会费utilities_feefloat水电费house_fundfloat住房公积金endownment_insutancefloat养老保险rewards_punishmentfloat奖惩total_salaryfloat总工资income_taxfloat所得税dutyvarchar(10)职务month_idvarchar(10)月工资时间 关键字表1.7 用户账号表(user_table)列名数据类型说明record_idbigint记录编号 关键字emp_idvarchar(15)员工编号emp_namevarchar(8)员工姓名record_datedatetime奖惩日期record_typevarchar(2)奖惩类型record_contentvarchar(30)奖惩内容record_reasonvarchar(30)奖惩原因allow_unitvarchar(20)批准单位remarkvarchar(200)备注 表1.8职称评定信息表(pro_title)名称数据类型说明emp_idvarchar(15)员工编号 关键字emp_namevarchar(8)员工姓名assess_datedatetime评定日期assess_unitvarchar(20)评定单位assess_titlevarchar(8)评定职称remarkvarchar(200)备注2 概念结构设计2.1 构成系统的实体型由工资管理系统的数据流图和数据字典,抽取出系统的8个主要实体,包括:部门、基本工资、员工、出勤、津贴、工资、奖惩、职称。部门实体型属性:department_id department_name manager dep_peonumber基本工资实体型属性:duty base_salary员工实体型属性:emp_id emp_name sex birth_date emp_time department_id duty politics_status telephone出勤记录实体型属性:emp_id emp_name months_id months_days holidays work_days business_days absent_days leave_days late_days leave_early_times津贴实体型属性:emp_id emp_id allowance_month allowance_days allowance_salary工资实体型属性:emp_id base_salary house_allowance allowance_salary trade_union_fee utilities_fee house_fund endownment_instutance rewards_punishment total_salary income_tax duty month_id奖惩实体型属性:record_id emp_id emp_name record_date record_type record_content record_reason allow_unit remark职称实体型属性:emp_id emp_name assess_date assess_unit assess_title remark2.2 工资管理系统e-r图图2.1 工资管理系统e-r图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本e-r图转换为与选用dbms产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定dbms支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型 将e-r图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如: (1) 员工与出勤之间是一对多的关系,所以将员工和出勤以及属于关系设计成以下关系模式:员工(emp_id emp_name sex birth_date emp_time department_id duty politics_status telephone)出勤记录(emp_id emp_name months_id months_days holidays work_days business_days absent_days leave_days late_days leave_early_times) 属于(emp_id emp_name sex birth_date emp_time department_id duty politics_status telephone months_id months_days holidays work_days business_days absent_days leave_days late_days leave_early_times ) (2) 员工与职称评定之间是一对一的关系,所以将员工和职称评定以及属于关系设计成以下关系模式: 员工(emp_id emp_name sex birth_date emp_time department_id duty politics_status telephone) 职称评定 (emp_id emp_name assess_date assess_unit assess_title remark) 属于(emp_id emp_name sex birth_date emp_time department_id duty politics_status telephone assess_date assess_unit assess_title remark ) 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库sql server 2008数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过sql语言进行数据库创建,创建数据库的语句如下:create database salary;4.2 创建表use salary;部门信息departmet_info create table department_info(department_idvarchar(4) primary key,-部门编号department_namevarchar(6) not null,-部门名称managervarchar(6),-部门负责人dep_peonumbervarchar(4)-部门人数);基本工资base_salary create table base_salary(dutyvarchar(10) primary key,-职务base_salaryfloat,-基本工资);员工信息employee_info create table employee_info(emp_idvarchar(15) primary key,-员工编号emp_namevarchar(8),-员工姓名sexchar(2) check(sex=男or sex=女),-性别birth_datedatetime,-出生日期emp_timedatetime,-参加工作时间deoartment_idvarchar(4) foreign key references department_info(department_id),-所属部门dutyvarchar(10),-职务politics_statusvarchar(10),-政治面貌telephonevarchar(11),-电话号码); 员工出勤 attendance_info create table attendance_info( -出勤信息emp_idvarchar(15) foreign key references employee_info(emp_id),-员工编号emp_namevarchar(8),-员工姓名months_idvarchar(10),-月份编号months_daysint,-本月天数holidaysint,-公休假天数work_daysint,-出勤天数business_daysint,-出差天数absent_daysint,-缺席天数leave_daysint,-请假天数late_daysint,-迟到天数leave_early_timesint,-早退天数primary key(months_id,emp_id);员工津贴emp_allowance create table allowance(emp_idvarchar(15) foreign key references employee_info(emp_id),-员工编号emp_namevarchar(8),-员工姓名allowance_monthvarchar(10),-统计时间allowance_daysvarchar(2),-加班天数allowance_salaryfloat,-津贴工资primary key(allowance_month,emp_id);员工工资表emp_salary create table emp_salary(emp_idvarchar(15) foreign key references employee_info(emp_id),-员工编号base_salaryfloat,-基本工资house_allowancefloat,-住房补贴allowance_salaryfloat,-津贴trade_union_feefloat,-工会会费utilities_feefloat,-水电费house_fundfloat,-住房公积金endownment_insutancefloat,-养老保险rewards_punishmentfloat,-奖惩total_salaryfloat,-总工资income_taxfloat,-所得税dutyvarchar(10) foreign key references base_salary(duty),-职务month_idvarchar(10),-月工资时间primary key(month_id,emp_id),);奖罚记录reward_pun create table reward_pun(record_idbigint primary key,-记录编号 关键字emp_idvarchar(15) foreign key references employee_info(emp_id),-员工编号emp_namevarchar(8),-员工姓名record_datedatetime,-奖惩日期record_typevarchar(2),-奖惩类型record_contentvarchar(30),-奖惩内容record_reasonvarchar(30),-奖惩原因allow_unitvarchar(20),-批准单位remarkvarchar(200),-备注 );职称评定信息表(pro_title) create table pro_title(emp_idvarchar(15) foreign key references employee_info(emp_id) primary key,-员工编号emp_namevarchar(8),-员工姓名assess_datedatetime,-评定日期assess_unitvarchar(20),-评定单位assess_titlevarchar(8),-评定职称remarkvarchar(200),-备注);4.3 创建存储过程1. 插入一条员工信息use salarygocreate procedure dbo.insert_employee_info(emp_id_1 varchar(15), emp_name_2 varchar(8), sex_3 char(2), birth_data_4 datetime, emp_time_5 datetime, department_id_6 varchar(4), duty_7 varchar(10), politics_status_8 varchar(10), telephone_9 varchar(11)as insert into salary.dbo.employee_info(emp_id,emp_name,sex,birth_date,emp_time,department_id,duty,politics_status,telephone) values (emp_id_1, emp_name_2, sex_3, birth_data_4, emp_time_5, department_id_6, duty_7, politics_status_8, telephone_9)2. 按部门编号查看部门信息 默认部门编号为-显示全部信息use salarygocreate procedure dbo.select_department_info(department_id_1 varchar(4)as declaredepartment_id varchar(4);beginset department_id=department_id_1;if department_id= select *from department_info;elseselect *from department_info where department_id = department_id;end3. 增加奖罚记录use salarygocreate procedure insert_reward_pun(record_idbigint,emp_idvarchar(15),emp_namevarchar(8),record_datedatetime,record_typevarchar(2),record_contentvarchar(30),record_reasonvarchar(30),allow_unitvarchar(20),remarkvarchar(200)as insert into reward_pun(record_id,emp_id,emp_name,record_date,record_type,record_content,record_reason,allow_unit,remark)values(record_id,emp_id,emp_name,record_date,record_type,record_content,record_reason,allow_unit,remark);4. 按员工编号 月份 更新出勤信息use salarygocreate procedure update_allowance(emp_idvarchar(15),emp_namevarchar(8),months_idvarchar(10),months_daysint,holidaysint,work_daysint,business_daysint,absent_daysint,leave_daysint,late_daysint,leave_early_timesint)as update attendance_infoset emp_id = emp_id,emp_name = emp_name,months_id = months_id,months_days = months_days,holidays = holidays,work_days = work_days,business_days = business_days,absent_days = absent_days,leave_days = leave_days,late_days =late_days,leave_early_times =leave_early_timeswhere emp_id = emp_id and months_id = months_id;5. 插入工资 基本工资根据员工职务插入 津贴根据员工id和月份查找 再插入 use salarygocreate procedure insert_emp_salary(emp_idvarchar(15),house_allowancefloat,trade_union_feefloat,utilities_feefloat,house_fundfloat,endownment_insutancefloat,rewards_punishmentfloat,total_salaryfloat,income_taxfloat,dutyvarchar(10),month_idvarchar(10)as declarebase_salary float,allowance_salary float, base_salary_c cursor select b.base_salary,a.allowance_salary from base_salary b,allowance a where a.allowance_month = month_id and a.emp_id = emp_id and b.duty = dutybeginopen base_salary_cfetch next from base_salary_c into base_salary,allowance_salary insert into emp_salary (emp_id, base_salary, house_allowance, allowance_salary, trade_union_fee, utilities_fee, house_fund, endownment_insutance, rewards_punishment, total_salary, income_tax, duty, month_id) values(emp_id, base_salary, house_allowance, allowance_salary, trade_union_fee, utilities_fee, house_fund, endownment_insutance, rewards_punishment, total_salary, income_tax, duty, month_id)close base_salary_c;deallocate base_salary_c;end6. 按部门编号删除部门信息use salarygocreate procedure delete_department_info(department_id varchar(4)as declaredepartment_id_1 varchar(4),department_id_cursor cursorselect department_id from department_infoopen department_id_cursorfetch next from department_id_cursor into department_id_1if(department_id_1 = department_id)begindelete from department_info where department_id = department_id;print删除成功;endelsebeginprint部门信息不存在;endclose department_id_cursor;deallocate department_id_cursor;7. 按记录编号删除奖罚记录use salarygocreate procedure delete_reward_pun(record_id bigint)as declarerecord_id_1 bigint,record_id_cursor cursorselect record_id from reward_punopen record_id_cursorfetch next from record_id_cursor into record_id_1if record_id_1 = record_idbegindelete from reward_pun where record_id = record_id;print删除成功;endelsebeginprint记录不存在;endclose record_id_cursor;deallocate record_id_cursor;4.4 创建触发器 1. 删除一条员工信息 一并删除相关员工信息create trigger delete_employee_info_tron employee_infofor deleteas delete from pro_title where emp_id in (select emp_id from deleted)delete from reward_pun where emp_id in (select emp_id from deleted)delete from allowance where emp_id in (select emp_id from deleted)delete from emp_salary where emp_id in (select emp_id from deleted)delete from attendance_info where emp_id in (select emp_id from deleted)2. 如果插入员工信息中部门不存在 则打印错误create trigger insert_employee_info_tron employee_infofor insertasif (select department_id from inserted) not in (select department_id from department_info )begin print 部门不存在,您是否输入错误 rollback transactionend3. 如果更新津贴 月份信息错误 打印 错误create trigger update_allowance_tron allowancefor update,insertasif (select allowance_month from inserted)12 or (select allowance_month from inserted)1begin print 输入月份信息错误 rollback transactionend4. 删除一个部门 删除该部门下的所有员工信息create trigger delete_department_info_tron department_infofor deleteas delete from employee_info where department_id in (select department_id from deleted )print成功删除;5.职务更改 员工基本工资更改create trigger update_employee_info_tron employee_infofor insert,updateasdeclare a varchar(15),b varchar(10),c floatselect a=emp_id from deletedselect b=duty from insertedselect c=base_salary from base_salary where duty = bupdate emp_salaryset base_salary = cwhere emp_salary.emp_id = a6.津贴更改 员工工资信息更改create trigger update_allowance_salary_tron allowancefor update,insertas declare a varchar(15),b varchar(10),c floatselect b=allowance_month from insertedselect a=emp_id from updatedselect c=allowance_salary from insertedupdate emp_salaryset allowance_salary = cwhere emp_salary.emp_id = a and emp_salary.month_id = b;4.5视图1. 显示部门信息use salarygocreate view department_info_vas select *from department_info;2. 显示出勤信息use salarygocreate view attendance_vasselect a.emp_id,a.emp_name,a.months_id,a.months_days,a.holidays,a.work_days,a.business_days,a.absent_days,a.leave_days,a.late_days,a.leave_early_timesfrom attendance_info a;3. 显示工资信息 津贴情况use salarygocreate view salary_info_vas select a.emp_id,b.emp_name,d.base_salary,a.house_allowance,c.allowance_salary,c.allowance_days,a.trade_union_fee,a.utilities_fee,a.house_fund,a.endownment_insutance,a.rewards_punishment,a.total_salary,a.income_taxfrom em
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宁夏石嘴山市单招职业倾向性测试题库及答案1套
- 2026年南昌交通学院单招职业倾向性测试题库必考题
- 2026年陕西艺术职业学院单招职业倾向性测试题库附答案
- 2026年甘肃省武威地区单招职业适应性考试题库及答案1套
- 2026年湖南铁路科技职业技术学院单招职业技能考试题库必考题
- 2026年内江卫生与健康职业学院单招职业倾向性考试题库新版
- 2026年南阳职业学院单招职业倾向性考试题库及答案1套
- 2026年安徽水利水电职业技术学院单招职业倾向性测试必刷测试卷附答案
- 2026年广元中核职业技术学院单招职业技能考试题库必考题
- 2026年浙江经济职业技术学院单招职业倾向性考试必刷测试卷及答案1套
- 供水管道工岗位职业健康及安全技术规程
- 自动化生产线运行维护方案及记录表
- 高三试卷:辽宁省沈阳市郊联体2024-2025学年高三上学期11月期中化学+答案
- 2025年中国聚氨酯分散体行业市场分析及投资价值评估前景预测报告
- 2025年等保测评初级测评师考试题库及答案
- 电焊烟尘安全培训课件
- 乌鲁木齐冬季施工方案
- 消防工程消防水灭火系统施工方案
- 2025湖南张家界桑植县交通旅游建设投资集团有限公司招聘考试参考题库及答案解析
- 2025-2026学年人教版(2024)七年级地理第一学期第一章 地球 单元测试(含答案)
- 俄语对外一级考试题目及答案
评论
0/150
提交评论