Oracle员工工资管理系统_第1页
Oracle员工工资管理系统_第2页
Oracle员工工资管理系统_第3页
Oracle员工工资管理系统_第4页
Oracle员工工资管理系统_第5页
已阅读5页,还剩23页未读, 继续免费阅读

下载本文档

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

文档简介

1、大型数据库技术设计报告题 目: 员工工资管理系统数据库设计 学生姓名: 李龙 学 号: 201317030120 专业班级: 网工13101班 指导教师: 易明 设计时间: 2015年下学期 指导老师意见:签名:日期:评定成绩:目录1. 需求分析12. 概念模型设计11. 员工信息E-R图(如图1所示)12. 部门信息E-R图(如图2所示)23. 工资实体局部E-R模型设计(如同3所示)24. 职务信息E-R图(如图4所示)35. 考勤信息E-R图(如图5所示)36. 整体简洁E-R图(如图6所示)47. 用户信息E-R图(如图7所示)43. 逻辑结构设计51. 关系模型设计52. 数据库表结

2、构的设计54. 数据库的实现71. 创建用户72. 为用户分配权限73. 用新创建的用户登录数据库74. 创建表空间75. 在表空间上创建员工信息表76. 向员工信息表中插入记录87. 查询员工信息表中的记录98. 在表空间上创建部门信息表99. 向部门信息表中插入记录910. 查询部门信息表中的记录1011. 创建工资信息表1012. 向工资信息表中插入记录1013. 查询工资信息表中的记录1114. 创建职务信息表1115. 向职务信息表中插入记录1116. 查询职务信息表中的数据1317. 创建考勤信息表1318. 向考勤信息表中插入记录1319. 查询考勤信息表中的记录1520. 创建

3、用户信息表1521. 向用户信息表中插入记录1522. 向用户信息表中的性别建立B树索引1523. 给员工信息表建立外键和CHCEK约束1624. 给职务信息表建立外键和CHCEK约束1625. 给考勤信息表建立外键约束165. 主要代码171. 查询代码172. 创建视图203. 创建存储过程214. 创建触发器当某员工辞职后删除该员工记录236. 权限设置及数据库备份231. 创建用户(lilong)并为其分配所有权限232. 创建用户(lixiaolong)并为其分配查询权限243. 导出用户数据247. 心得体会258. 参考文献261. 需求分析实现员工基本信息管理、工资信息管理、部

4、门信息管理等功能,包括员工信息的添加、修改、删除及查询;工资信息的添加、修改、删除及查询等。2. 概念模型设计1. 员工信息E-R图(如图1所示)图 1员工信息E-R图2. 部门信息E-R图(如图2所示)图 2部门信息E-R图3. 工资实体局部E-R模型设计(如同3所示)图 3工资信息E-R图4. 职务信息E-R图(如图4所示)图 4职务信息E-R图5. 考勤信息E-R图(如图5所示)图 5考勤信息E-R图6. 整体简洁E-R图(如图6所示)图 6整体简洁E-R图7. 用户信息E-R图(如图7所示)图 7用户信息E-R图3. 逻辑结构设计1. 关系模型设计1) 员工信息对应的关系模型员工(员工

5、编号(主键),姓名,性别,联系电话,入厂日期,部门编号(外键),工资等级(外键)2) 部门信息对应的关系模型部门(部门编号(主键),部门名称,部门经理)3) 工资信息对应的关系模型工资(工资等级(主键),基本工资,年终奖)4) 职务信息对应的关系模型管理人员(职务编号(主键),联系电话,职位,工资级别(外键),性别)5) 考勤信息对应的关系模型考勤(员工编号(主键一部分),日期(主键一部分),请假次数,迟到次数,缺勤次数)6) 用户信息对应的关系模型用户(用户名,密码,权限)2. 数据库表结构的设计1) 员工信息表结构2) 部门信息表结构3) 工资信息表结构4) 职务人员信息表结构5) 考勤信

6、息表结构4. 数据库的实现1. 创建用户以管理员身份登录数据库,创建新用户create user lilong identified by 123;2. 为用户分配权限grant create session,resource,dba to lilong;3. 用新创建的用户登录数据库conn lilong/1234. 创建表空间create tablespace testdatafile ' D:李龙课程设计test' size 10mautoextend on next 1m maxsize 100mextent management local;5. 在表空间上创建员工信

7、息表create table emp(empno number(4) primary key,ename varchar2(10) not null,sex char(2) not null,tel nvarchar2(11) ,hiredate date not null,deptno number(4) not null,rank char(2) not null)tablespace test6. 向员工信息表中插入记录insert into emp values(1,'刘备','男','11711602970',TO_DATE('

8、2009-02-12','yyyy-mm-dd'),10,'三');insert into emp values(2,'吕布','男','12307366965',TO_DATE('2010-03-02','yyyy-mm-dd'),10,'六');insert into emp values(3,'貂蝉','女','#39;,TO_DATE('2011-11-15','y

9、yyy-mm-dd'),10,'五');insert into emp values(4,'赵云','男','#39;,TO_DATE('2012-11-11','yyyy-mm-dd'),11,'六');insert into emp values(5,'诸葛亮','男','#39;,TO_DATE('2014-04-19','yyyy-mm-dd'),11,&#

10、39;四');insert into emp values(6,'关羽','男','#39;,TO_DATE('2013-05-14','yyyy-mm-dd'),11,'五');insert into emp values(7,'黄忠','男','#39;,TO_DATE('2014-02-12','yyyy-mm-dd'),12,'二');insert into

11、 emp values(8,'鲁肃','男','#39;,TO_DATE('2014-02-13','yyyy-mm-dd'),12,'九');insert into emp values(9,'周瑜','男','#39;,TO_DATE('2012-04-14','yyyy-mm-dd'),12,'十');insert into emp values(10,'曹操

12、','男','12307304165',TO_DATE('2012-02-15','yyyy-mm-dd'),13,'六');insert into emp values(11,'颜良','女','1307304465',TO_DATE('2014-06-13','yyyy-mm-dd'),13,'七');insert into emp values(12,'文丑','男',

13、9#39;,TO_DATE('2013-03-10','yyyy-mm-dd'),13,'八');7. 查询员工信息表中的记录8. 在表空间上创建部门信息表create table dept(deptno number(4) primary key,dname varchar2(10) not null,manager varchar2(10) not null)tablespace test9. 向部门信息表中插入记录insert into dept(deptno,dname,manager,mtel)values(1

14、0,'项目部','李龙','#39;);insert into dept(deptno,dname,manager,mtel)values(11,'人事部','李梦龙','#39;);insert into dept(deptno,dname,manager,mtel)values(12,'财务部','李欣龙','#39;);insert into dept(deptno,dname,manager,mt

15、el)values(13,'IT部','李龙龙','#39;);10. 查询部门信息表中的记录11. 创建工资信息表create table sal(rank char(2) primary key,basalary number(4) not null,bonus number(4) default 0)tablespace test12. 向工资信息表中插入记录insert into sal(rank,basalary,bonus)values('一',9800,3000);insert into sal(ra

16、nk,basalary,bonus)values('二',9500,2500);insert into sal(rank,basalary,bonus)values('三',9200,2300);insert into sal(rank,basalary,bonus)values('四',9000,2200);insert into sal(rank,basalary,bonus)values('五',8000,2100);insert into sal(rank,basalary,bonus)values('六'

17、,7000,2000);insert into sal(rank,basalary,bonus)values('七',6000,1800);insert into sal(rank,basalary,bonus)values('八',5000,1600);insert into sal(rank,basalary,bonus)values('九',4000,1400);insert into sal(rank,basalary,bonus)values('十',3000,1200);13. 查询工资信息表中的记录14. 创建职务信

18、息表create table duty(dutyno number(4) primary key,dname varchar2(10) not null,job varchar2(10) not null,tel nvarchar2(11) ,sex char(2) not null,rank char(2) )tablespace test 15. 向职务信息表中插入记录insert into duty(dutyno,duname,job,tel,sex,rank) values(101,'李龙','总经理','#39;,

19、9;男','一');insert into duty(dutyno,duname,job,tel,sex,rank) values(102,'李小龙','副经理','#39;,'男','二');insert into duty(dutyno,duname,job,tel,sex,rank) values(103,'李子龙','秘书','#39;,'女','三');insert in

20、to duty(dutyno,duname,job,tel,sex,rank) values(104,'李梦龙','总经理','#39;,'女','一');insert into duty(dutyno,duname,job,tel,sex,rank) values(105,'李泽龙','助理','#39;,'女','四');insert into duty(dutyno,duname,job,tel,s

21、ex,rank) values(106,'李云龙','秘书','#39;,'女','五');insert into duty(dutyno,duname,job,tel,sex,rank) values(107,'李欣龙','总经理','#39;,'女','二');insert into duty(dutyno,duname,job,tel,sex,rank) values(108,'李好龙

22、9;,'副经理','#39;,'男','三');insert into duty(dutyno,duname,job,tel,sex,rank) values(109,'李坏龙','秘书','#39;,'男','七');insert into duty(dutyno,duname,job,tel,sex,rank) values(110,'李龙龙','总经理','187076027

23、50','男','一');insert into duty(dutyno,duname,job,tel,sex,rank) values(111,'李章龙','秘书','#39;,'女','八');insert into duty(dutyno,duname,job,tel,sex,rank) values(112,'李宇龙','助理','#39;,'女','九')

24、;16. 查询职务信息表中的数据17. 创建考勤信息表create table attend(day date ,empno number(4), leave number(4) default 0,late number(4) default 0,absence number(4) default 0,primary key (day,empno)tablespace test18. 向考勤信息表中插入记录insert into attend (day,empno,leave,late,absence)values(to_date('2010-12-3','yyyy-

25、mm-dd'),1,1,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2011-10-2','yyyy-mm-dd'),4,0,1,0);insert into attend (day,empno,leave,late,absence)values(to_date('2012-10-12','yyyy-mm-dd'),2,1,0,1);insert into attend (day,empno,leave,late,absence

26、)values(to_date('2014-11-11','yyyy-mm-dd'),3,0,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2013-7-14','yyyy-mm-dd'),4,1,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2012-11-12','yyyy-mm-dd'),5,1,1,0);i

27、nsert into attend (day,empno,leave,late,absence)values(to_date('2013-11-14','yyyy-mm-dd'),6,1,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2014-6-21','yyyy-mm-dd'),7,0,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2

28、015-1-22','yyyy-mm-dd'),8,1,0,0);insert into attend (day,empno,leave,late,absence)values(to_date('2014-4-24','yyyy-mm-dd'),9,0,1,0);insert into attend (day,empno,leave,late,absence)values(to_date('2015-10-11','yyyy-mm-dd'),10,1,0,0);insert into attend (day

29、,empno,leave,late,absence)values(to_date('2010-12-1','yyyy-mm-dd'),11,0,0,1);19. 查询考勤信息表中的记录20. 创建用户信息表create table users(username char(10) not null,password char(30) not null,juris char(30)tablespace test;21. 向用户信息表中插入记录insert into users(username,password,juris)values('lilong

30、9;,'123','所有权限');insert into users(username,password,juris)values('lixiaolong','123','查询');22. 向用户信息表中的性别建立B树索引create index empshow_index ON emp(sex)cablespace test23. 给员工信息表建立外键和CHCEK约束alter table empadd constraint emp_dept foreign key (deptno)references dept

31、(deptno);alter table empadd constraint emp_sal foreign key (rank)references sal(rank);alter table empadd constraint check_sexcheck(sex='男'or sex='女');24. 给职务信息表建立外键和CHCEK约束alter table dutyadd constraint duty_sal foreign key (rank)references sal(rank);alter table dutyadd constraint ch

32、eck_sex1check(sex='男'or sex='女');25. 给考勤信息表建立外键约束alter table attendadd constraint attend_emp foreign key (empno)references emp(empno);5. 主要代码1. 查询代码1) 查询员工号为1的部门号select dname from emp,deptwhere empno=1 and emp.deptno=dept.deptno;2) 查询员工赵云的部门经理是谁select manager from emp,deptwhere ename

33、='赵云' and emp.deptno=dept.deptno; 3) 查询所有员工早退情况并按早退次数降序排列select leave,ename from emp,attendwhere emp.empno=attend.empnoorder by leave desc4) 查询员工工资等级为二的员工编号、姓名和部门名称select empno 员工编号,ename 员工姓名,dname 部门名称from emp,deptwhere rank='二' and emp.deptno=dept.deptno;5) 查询11号部门工资最高的员工编号,员工姓名,工

34、资和年终奖金select empno 员工编号,ename 姓名,basalary 工资,bonus 年终奖金from emp,salwhere deptno=11 and basalary=(select max(basalary) from emp,sal where deptno=11)6) 查询所有员工的工资并按升序排列select basalary 工资,ename 员工姓名 from emp,salwhere emp.rank=sal.rankorder by basalary asc7) 查询工资级别等于五的姓名和该人的部门经理的电话号码select ename 员工名字,mte

35、l 经理电话from emp,deptwhere rank='五' and emp.deptno=dept.deptno8) 查询缺勤次数最少的员工名字,电话和他的部门经理select ename 员工姓名,tel 电话号码, manager 部门经理from emp,dept,attendwhere absence in (select min(absence)from attend) and emp.deptno=dept.deptno and emp.empno=attend.empno9) 查询职务编号为104的姓名,职务,工资select duname 姓名,job

36、职务,basalary 工资from duty,salwhere dutyno=104 and duty.rank=sal.rank10) 查询性别为男的入厂时间并按从早到晚排序select hiredate 入厂时间,ename 姓名 from empwhere sex='男'order by hiredate asc;2. 创建视图1) 创建视图(sal_avg)查询各部门平均工资create or replace view sal_avgas select deptno,avg(basalary) 平均工资from emp,salwhere emp.rank=sal.ra

37、nkgroup by deptno 2) 调用视图(sal_avg)中的记录select * from sal_avg;3. 创建存储过程1) 为员工表增加一个字段用于调整员工工资2) 创建存储过程,调整某一员工的工资(chang_sal)create or replace procedure addsalary(empnos in emp.empno%type,addsal in emp.change_sal%type)asbeginupdate emp set change_sal=change_sal+addsal where empno=empnos;end addsalary;给2号

38、员工的工资增加200exec change_sal(2,200);3) 创建一个调整员工部门的存储过程create or replace procedure change_empdept(empnos in emp.empno%type,deptnos in dept.deptno%type)asbeginupdate emp set deptno=deptnos where empno=empnos;exceptionwhen no_data_found thendbms_output.put_line('没有找到数据');end change_empdept;执行存储过程exec change_empdept(3,12);查看结果4. 创建触发器当某员工辞职后删除该员工记录create or replace trigger removeafter dele

温馨提示

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

评论

0/150

提交评论