数据库课程设计工资管理系统_第1页
数据库课程设计工资管理系统_第2页
数据库课程设计工资管理系统_第3页
数据库课程设计工资管理系统_第4页
数据库课程设计工资管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计要求:1 .对各个系统进行系统功能需求分析2 .数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3 .设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4 .通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5 .根据系统功能需求设计相应的查询视图6 .要求根据系统功能需求建立存储过程7 .根据功能需求建立相应的触发器以保证数据的一致性8 .通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的

2、备份与恢复(此内容选作)一、需求分析企业的工资管理是公司管理的一个重要内容。随着科学技术的发展,一些公司的规模也越来越大,职工的数量也在不断的增加,企业的管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务的重要组成部分。面对如此大的信息量,单凭传统的表格、手工操作已不能满足实际的需要。因此,我设计工资管理系统来提高财务管理方面的效率。通过这个系统可以使信息的管理更加规范,统计更科学。模块功能分析:(1)部门模块:用来管理部门;(2)工资模块:用来管理员工的工资;(3)职工模块:用来管理工厂的职工信息;、概念结构设计经分析,本系统的e-r图如下:三、逻辑结构设计1.工

3、资管理基本信息表Ddepartment(部门)列名数据长度是否允许空备注department。(部门可)char8否主关键字department_name(部门名)一char15否depart_manage(部门蚕理)char6否depart_people(部门入数)int6否staff(职工)列名数据长度是否允许空备注staff_no(职f)char10否主关键字staff_name(职工姓名)char20否staff_sex(职工姓别)char25否默认“男”Enducational(学历)char10否dapartment_no(部门号)一char8否department_name(部门

4、名称)一char15否salary(工资)列名数据类型长度是否允许空备注staff_no(职G号)char10否外键m_salary(方薪)int6否默认3000Allowance(津贴)int10是默认0out_days(讪)天数)int2否out_days=0work_overtim(加加时间)datetime10是w_overtime_days口班天数)一int2否默认0w_overtime_days=0andw_overtime_days=31Deduct(事故扣薪)int4否默认0issue_salary(应爰薪水)int4否iss_salary(实发薪水)Int4否建库create

5、databasesalary_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,/期工姓名*/staf

6、f_sexchar(25)notnulldefault男check(staff_sexin傍,女),/*性另U*/enducationalchar(10)default本科,/*学历*/dapartment_nochar(8)notnull,/*部门编号*/department_namechar(15)/*部门名称*/*建立工资表*/createtablesalary(staff_nochar(10)notnullforeignkeyreferencesstaff(staff_no)睽工工号*/m_salaryintdefault3000,/*月薪*/allowanceintdefault0,

7、/神贴*/out_daysintnotnullcheck(out_days=0),/*勤天数*/work_overtimedatetime(10),/*加班时间*/w_overtime_daysintdefault0check(w_overtime_days=0andw_overtime_days3000andsalary.staff_no=staff.staff_noorderbysalary.staff_noselectstaff_no,staff_namefromstaffwherestaff_namelike刘;2、数据更新插入(前面已插入)修改updatesalarysetiss_s

8、alary=1.2*iss_salarywhereiss_salary2600;删除deletefromstaffwhereenducationalW科;3 .索引建立索引createindexjonsalary(staff_no,issue_salary,iss_salary)createuniqueindexindex_staffonstaff(staff_name)createuniqueindexindex_departondepartment(depart_people)查询索引execsp_helpindexsalaryexecsp_helpindexstaffexecsp_hel

9、pindexdepartment修改索引execsp_renamesalary.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/*修改视图*/Altervie

10、wtable_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),s

11、taff_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,a

12、llowanceint,add_moneyint,deductintasupdatesalarysetiss_salary=(m_salary+allowance+add_money-deduct)wherem_salary=m_salaryandallowance=allowanceandadd_money=add_moneyanddeduct=deduct查看存储过程execsp_helptextpro_staffexecsp_helptextpro_salary执行存储过程execpro_staffstaff_no=0614,staff_name=王敏,staff_sex=女,enduc

13、ational=不科,department_no=071011,department_name=A部门;删除存储过程dropprocedurepro_staff6 .触发器创建触发器createtriggermonsalaryforupdateasifupdate(m_salary)beginrollbacktransactionprint月薪不能修改,请联系财务科endCREATETRIGGERTRI_salaryONsalaryFORupdate,insertASBEGINupdatesalarysetadd_money=(w_overtime_days*50)updatesalaryse

14、tissue_salary=m_salaryupdatesalarysetiss_salary=(m_salary+allowance+add_money-deduct)ENDcreatetriggertri_departmentondepartmentforinsertasdeclarestaff_nochar(8)declaredepartment_nochar(15)updatedepartmentsetdepart_people=depart_people+1wheredepartment_no=department_nocreatetriggertri_changeonstafffo

15、rdeleteasbegindeletefromsalarywheresalary.staff_no=any(selectstaff_nofromdeleted)updatedepartmentsetdepart_people=depart_people-1wheredepartment_no=any(selectdepartment。fromdeleted)end触发器的删除droptriggertri_department;7 .用户与权限/*创建登陆账号*/execsp_addloginzhangsan,1234,salaiy_manage,null/*把用户加入到数据库中*/execs

16、p_adduserzhangsan/*删除登陆账号*/execsp_droploginzhangsan/*系统权限*/grantcreatetabletozhangsan/*收回系统权限*/revokecreatetablefromzhangsan/*对象权限*/grantallonstafftozhangsanwithgrantoptiongrantselectonsalarytopublic/*收回系对象权限*/revokeselectonsalaryfromzhangsan五.实验总结本报告主要介绍的是对自建的一个工资管理系统数据库,利用在数据库中的表、存储过程、视图、约束等组合,设计出比较实用的应用软件代码;对表中的信息能够进行简单的查询,子查询,视图的创建、修改与删除,与约束的创建,存储过程与触发器的创建与删除等基本操作,加深对SQLServer数据库的进步研究。通过这次实训I,是我对SQL有了进一步了解,虽然在此期间遇到过麻烦,但通过查阅资料与尝试解决问题,使我更加了解SQL的基础知识,从

温馨提示

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

最新文档

评论

0/150

提交评论