您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > oracle企业员工管理课程设计
2013-2014学年第二学期《大型数据库技术》考查报告课题名称:企业员工系统班级:12软工设计二班学号:1215115274姓名:吕祖豪成绩:2014年5月1.课题概述1.1课题简介随着时代的手工记录信息、小型的数据库已经满足不了大型企业的需要,Oracle数据的出现给大型公司提供了便利的条件,此系统则是实现企业员工信息的基本管理!1.2功能描述该数据库主要实现的功能是用户的登录,和用户密码的修改。企业员工基本信息的增加、删除、修改、查询,员工工资和出勤情况的登记和查询!2、数据库设计及实现2.1数据库表清单此部分主要介绍数据库所有数据表的清单,包括表的类型、表的名称和中文含义。用户表(user)字段名含义字段类型约束username用户名Char(5)主键userpassword密码Varchar2(10)NOTNULL企业员工表(staff)字段名含义字段类型约束sno员工编号Char(10)主键sname员工姓名Char(5)NOTNULLssex员工性别Char(2)Check(‘男’,‘女’)sage员工年龄intstel员工电话Char(11)hiredate入职日期dateNOTNULLdeptno部门编号Char(5)与dept表中的deptno外键关联员工工资表(salary)字段名含义字段类型约束sname员工姓名Char(10)主键job员工工作Cahr(5)sal员工基本工资Number(7,2)bonus员工奖金Number(7,2)deptno部门编号Char(5)与”dept”表中的deptno外键关联员工部门表(dept)字段名含义字段类型约束deptno部门编号Char(5)主键dname部门名称Char(5)location部门地址Char(10)员工出勤表(attendance)字段名含义字段类型约束sno员工编号Char(10)主键sname员工姓名Char(5)与salary表中的sname外键关联Attendance_day出勤天数intLost_day缺勤天数int2.2创建表空间createtablespacemytbsdatafile'E:\mytbs1.dbf'size250M,'F:\mytbs2.dbf'size250M;2.3创建用户配置文件要求密码的生存周期为30天,允许输入错误的密码不得超过5次,超过5次密码锁2天。createprofilelock_countlimitpassword_life_time30failed_login_attempts5password_lock_time2;2.4创建用户及分配权限createuserlzhidentifiedby1215115274defaulttablespaceMYTBS;grantconnect,resourcetolzh;2.5基本表实现2.5.1用户表的实现(1)users表的功能概述。该表主要用于实现系统用户登录的用户名和密码的存储,存储在默认的表空间MYSTB中。(2)表的实现代码createtableusers(usernamechar(5),userpasswordvarchar2(10)NOTNULL,constraintusers_username_pkprimarykey(username))2.5.2部门表的实现(1)dept表的功能描述该表主要用于实现存储员工的部门信息,包括部门编号,部门名称,部门所在地址,存储在默认的表空间MYTBS中。(2)表的实现代码createtabledept(deptnochar(5),dnamechar(5),loctionchar(10),constraintdept_sdeptno_pkprimarykey(deptno));2.6索引表的实现2.6.1工资表(salary)的实现(1)表的功能概述。主要描述表的功能、表的存储空间的分配等该表主要用于存储员工的工资信息包括员工的姓名、工作、基本工资、奖金和部门号。由于需要是实现多次查询,所以创建了索引表,存储在默认的表空间MYTBS中。(2)表的实现代码createtablesalary(snamechar(5),jobchar(5),salnumber(7,2),bonusnumber(7,2),deptnochar(5),constraintsalary_sname_pkprimarykey(sname),constraintsalary_deptno_fkforeignkey(deptno)referencesdept(deptno))organizationindextablespacemytbs;2.7分区表的实现2.7.1员工表(staff)列表分区的实现createtablestaff(snochar(10),snamechar(5)NOTNULL,ssexchar(2),sasgeint,stelchar(11),hiredatedateNOTNULL,constraintstaff_sno_pkprimarykey(sno),constraintstaff_ssxe_ckcheck(ssexin('男','女')))partitionbylist(ssex)(partitionstaff_malevalues('男')tablespacemytbs,partitionstaff_femalevalues('女')tablespaceusers)/2.7.2员工出勤表(attendance)散列分区表createtableattendance(snoChar(10),snamechar(5),attendance_dayint,lost_dayint,constraintattendance_sno_pkprimarykey(sno),constraintattendance_sname_fkforeignkey(sname)referencessalary(sname))partitionbyhash(sno)(partitionp1tablespacemytbs,partitionp2tablespaceusers)3.功能实现(1)用户登录模块:CREATEORREPLACEPROCEDURElogin(v_usernameinVARCHAR2,v_userpasswordinvarchar2,FLAGOUTint)iscountsnumber(2);pcountsnumber(2);BEGINSELECTCOUNT(*)INTOcountsFROMUSERSWHEREusername=v_username;IFCOUNTS0THENSELECTCOUNT(*)INTOpcountsFROMUSERSWHEREuserpassword=v_userpassword;IFPCOUNTS0THENFLAG:=1;ELSIFPCOUNTS=0THENFLAG:=-1;ENDIF;ELSEFLAG:=0;ENDIF;Endlogin;登录模块测试代码:declarev_numint;v_usernamechar(10);v_userpasswordvarchar2(10);Beginv_username:='&username';v_userpassword:=&userpassword;login(v_username,v_userpassword,v_num);dbms_output.put_line(v_num);end;(2)员工信息添加模块:createorreplacefunctionadd_staff(addstaffinstaff%rowtype,informationinoutvarchar2)returnvarchar2isinfrormationvarchar2(10);begininsertintostaffvalues(addstaff.sno,addstaff.sname,addstaff.ssex,addstaff.sasge,addstaff.stel,addstaff.hiredate);information:='员工信息添加成功!';returninformation;endadd_staff;测试代码:declareinformationvarchar2(20);v_add_staffstaff%rowtype;beginv_add_staff.sno:=004;v_add_staff.sname:='李四';v_add_staff.ssex:='男';v_add_staff.sasge:=22;v_add_staff.stel:=15839952201;v_add_staff.hiredate:=to_date('2011-05-01','YY-MM-DD');information:=add_staff(v_add_staff);dbms_output.put_line(information);*end;/(3)员工信息删除模块:createorreplacefunctiondelete_staff(v_snoinstaff.sno%type)returnvarchar2Isinformationvarchar2(20);begindeletefromstaffwheresno=v_sno;information:=’员工信息删除成功!’;enddelete_staff;测试代码:declareinformationvarchar2(20);begininformation:=delete_staff(001);dbms_output.put_line(information);end;(4)员工信息查找createorreplacefunctionfind_staff(v_snoinstaff.sno%type)returnstaff%rowtypeisshow_staffstaff%rowtype;beginselect*intoshow_stafffromstaffwheresno=v_sno;dbms_output.put_line(show_staff.sno||’’||show_staff.sname||’’||show_staff.ssex||’’||show_staff.sasge||’’||show_staff.stel||’’||show_staff.hiredate);returnshow_staff;exceptionwhenno_data_foundthendbms_output.put_line(‘没有此员工!’);endfind_staff;测试代码:declareshow_staffstaff%rowtype;beginshow_staff:=find_staff(1);end;(5)员工信息的修改createorreplaceprocedurealter_staff(find_staffinstff%rowtype,v_snoinstaff.sno%type)isbeginupdatestaffsetsno=find_staff.sno,sname=find_staff.sname,ssex=find_staff.ssex,sasge=find_staff.sasge,stel=find_staff.stel,hiredate=find_staff.hiredatewheresno=v_sno;dbms_output.put_line('修改成功!');endalter_staff;测试代码:declarev_snostaff.sno%type;show_staffstaff%rowtype;begindbms_output.put_line('输入要修改的员工编号:');v_sno:=&sno;show_staff.sno:=v_sno;Show_staff.sname:='金久茂'
本文标题:oracle企业员工管理课程设计
链接地址:https://www.777doc.com/doc-6233256 .html