您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数据库课程设计工资管理系统
课程设计要求:1.对各个系统进行系统功能需求分析2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3.设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4.通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5.根据系统功能需求设计相应的查询视图6.要求根据系统功能需求建立存储过程7.根据功能需求建立相应的触发器以保证数据的一致性8.通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)一、需求分析企业的工资管理是公司管理的一个重要内容。随着科学技术的发展,一些公司的规模也越来越大,职工的数量也在不断的增加,企业的管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务的重要组成部分。面对如此大的信息量,单凭传统的表格、手工操作已不能满足实际的需要。因此,我设计工资管理系统来提高财务管理方面的效率。通过这个系统可以使信息的管理更加规范,统计更科学。模块功能分析:(1)部门模块:用来管理部门;(2)工资模块:用来管理员工的工资;(3)职工模块:用来管理工厂的职工信息;二、概念结构设计经分析,本系统的e-r图如下:三、逻辑结构设计1.工资管理基本信息表①department(部门)列名数据类型长度是否允许空备注department_no(部门号)char8否主关键字职工属于部门职工姓名型性别学历职工号部门编号部门名称部门名称部门经理部门人数部门编号获得工资应发薪水事故扣薪实发薪水加班天数加班时间职工号月薪津贴出勤天数加班费department_name(部门名)char15否depart_manage(部门经理)char6否depart_people(部门人数)int6否②staff(职工)列名数据类型长度是否允许空备注staff_no(职工号)char10否主关键字staff_name(职工姓名)char20否staff_sex(职工姓别)char25否默认”男”Enducational(学历)char10否dapartment_no(部门号)char8否department_name(部门名称)char15否③salary(工资)列名数据类型长度是否允许空备注staff_no(职工工号)char10否外键m_salary(月薪)int6否默认3000Allowance(津贴)int10是默认0out_days(出勤天数)int2否out_days=31andout_days=0work_overtim(加班时间)datetime10是w_overtime_days(加班天数)int2否默认0w_overtime_days=0andw_overtime_days=31Deduct(事故扣薪)int4否默认0issue_salary(应发薪水)int4否iss_salary(实发薪水)Int4否①建库createdatabasesalary_manageon(name=salary_manage_data,filename='d:\salary_manage_data.mdf',size=25,maxsize=35,filegrowth=5)logon(name=manage_log,filename='d:\salary_manage_data.ldf',size=25,maxsize=35,filegrowth=5)②建表/建立职工表/createtablestaff(staff_nochar(10)primarykey,/*职工工号*/staff_namechar(20)notnull,/*职工姓名*/staff_sexchar(25)notnulldefault'男'check(staff_sexin('男','女')),/*性别*/enducationalchar(10)default'本科',/*学历*/dapartment_nochar(8)notnull,/*部门编号*/department_namechar(15))/*部门名称*//*建立工资表*/createtablesalary(staff_nochar(10)notnullforeignkeyreferencesstaff(staff_no),/*职工工号*/m_salaryintdefault3000,/*月薪*/allowanceintdefault0,/*津贴*/out_daysintnotnullcheck(out_days=31andout_days=0),/*出勤天数*/work_overtimedatetime(10),/*加班时间*/w_overtime_daysintdefault0check(w_overtime_days=0andw_overtime_days=31),/*加班天数*/deductintdefault0,/*事故扣薪*/add_moneyintdefault0,/*加班费*/issue_salaryint(4)notnull,/*应发薪水*/iss_salaryint(4)notnull)/*实发薪水*//*建立部门表*/createtabledepartment(department_nochar(8)primarykey,/*部门编号*/department_namechar(15)notnull,/*部门名称*/depart_managechar(6)notnull,/*部门经理*/depart_peopleint(6)/*部门人数*/③添加记录insertintodepartmentvalues('071011','A部门','王经理',100);insertintodepartmentvalues('071012','B部门','李经理',200);insertintodepartmentvalues('071013','C部门','张经理',100);insertintostaffvalues('0610','李明','男','本科','071011','A部门');insertintostaffvalues('0613','张三','男','专科','071011','A部门');insertintostaffvalues('0611','刘丽','女','本科','071012','B部门');insertintostaffvalues('0612','张新','男','本科','071013','C部门');insertintosalaryvalues('0610',3000,100,30,'2011-10-8',2,50,0,3000,3200);insertintosalaryvalues('0611',3000,0,20,'',0,0,500,3000,2500);insertintosalaryvalues('0612',3000,100,31,'2011-10-10',1,50,0,3000,3150);四、功能处理1、查询①表查询select*fromdepartment/*查询部门表*/select*fromstaff/*查询职工表*/select*fromsalary/*查询工资表*/②数据查询selectsalary.staff_no,staff_name,issue_salary,iss_salaryfromsalary,staffwhereiss_salary3000andsalary.staff_no=staff.staff_noorderbysalary.staff_noselectstaff_no,staff_namefromstaffwherestaff_namelike'刘%';2、数据更新①插入(前面已插入)②修改updatesalarysetiss_salary=1.2*iss_salarywhereiss_salary2600;③删除deletefromstaffwhereenducational='专科';3.索引①建立索引createindexjonsalary(staff_no,issue_salary,iss_salary)createuniqueindexindex_staffonstaff(staff_name)createuniqueindexindex_departondepartment(depart_people)②查询索引execsp_helpindexsalaryexecsp_helpindexstaffexecsp_helpindexdepartment③修改索引execsp_rename'salary.j','salary_index'④删除索引dropindexindex4.视图①创建视图createviewtable_salary(staff_no,staff_name,issue_salary,iss_salary)asselectsalary.staff_no,staff_name,issue_salary,iss_salaryfromsalary,staffwheresalary.staff_no=staff.staff_no②查找视图select*fromtable_salary③/*修改视图*/Alterviewtable_salary(staff_no,staff_name,department_name,issue_salary,iss_salary)asselectsalary.staff_no,staff_name,department_name,issue_salary,iss_salaryfromsalary,staffwheresalary.staff_no=staff.staff_no;④删除视图dropviewtable_salary5.存储过程①创建存储过程。createprocedurepro_staff(@staff_nochar(10),@staff_namechar(25),@staff_sexchar(25),@enducationalchar(10),@department_nochar(8),@department_namechar(15))asinsertintostaffvalues(@staff_no,@staff_name,@staff_sex,@enducational,@department_no,@department_name)updatedepartmentsetdepart_people=depart_people+1wheredepartment_no=@department_nocreateprocedurepro_salaryas(@m_salaryint,@allowanceint,@add_moneyint,@deductint)asupdatesalarysetiss_salary=(@m_salary+@allowance+@add_money-@deduct)wherem_salary=@m_salaryandallowance=@allowanceandadd_money=@add_moneyanddeduct=@deduct②查看存储过程execsp_helptextpro_staffexecsp_helptextpro_salary③执行存储过程execpro_staff@staff_no='0614',@staff_name='王敏',@staff_sex='女',@enducational='本科',@department_no='071011',@department_name='A部门';④删除存储过程dropprocedurepro_staff6.触发器①创建触发器
本文标题:数据库课程设计工资管理系统
链接地址:https://www.777doc.com/doc-8497320 .html