人事管理系统数据库系统设计说明(Oracle部分)计算机学院-王琪31306030092013-11-13文档信息:项目组成:文档变更历史:相关文档:审核结果:目录1概述 (4)1.1目的 (4)1.2内容 (4)1.3与其他项目的关联 (4)2表 (4)2.1表设计概述 (4)2.2员工表(T_Employee) (5)3视图 (7)3.1查看员工基本信息(Web) (11)3.2查看员工考勤情况(Web) ................................................... 错误!未定义书签。
3.3查看员工信息和所属部门名称(Win) (13)4存储过程 (13)4.1插入一条提交的请假申请(Web) (13)4.2查询员工考勤信息(Win) (14)5用户自定义函数 (15)5.1按部门名称得到本部门所有的员工信息 (15)6触发器 (16)6.1在否决员工请假申请时将请假时间累计返回到请假前的状态 (16)7数据库安全性 (17)7.1概述 (17)7.2数据库验证方式 (17)8数据库管理和设置 (17)8.1概述 (17)8.2数据库属性设置 (17)8.3数据库备份恢复策略 (17)8.4数据库运行日常维护 (18)1 概述1.1目的本文为教学案例项目Oracle功能规范说明书。
本说明书将:●描述数据库设计的目的●说明数据库设计中的主要组成部分●说明数据库设计中涵盖的教学知识要点1.2内容本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系)。
本文档中包含对以下数据库内容的描述:●数据表●视图●存储过程●用户自定义函数●触发器●约束在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。
1.3与其他项目的关联教学案例项目的数据库设计与教学项目(Web部分和Windows部分)功能密切相关。
教学案例项目的数据库将按照教学项目程序部分的功能需求而设计,数据库设计将配合教学案例的程序部分,以实现一个功能完备的企业环境内的应用。
2 表2.1表设计概述根据教学案例功能,数据库将以员工信息为中心存储相关数据,配合Oracle 数据库系统中提供的数据管理,实现员工考勤、请假、加班管理及系统设置等业务功能。
数据库设计将以存储员工信息的员工表为基础,连接多张相关表以实现对以下关系的支持:●员工与请假申请●员工与加班申请●员工与考勤记录●员工与部门●员工与部门经理●员工与业绩评定记录●员工与薪资此外数据库中还将记录教学案例应用中需要的全局配置信息和事件日志记录。
数据库系统主要的实体关系如2-0所示。
图2-02.2员工表(t_emploee)概述员工表用于记录员工基本信息,并作为基础表与其他表连接。
表定义员工表定义如表2-1所示。
表2-1主键员工表的主键是empid字段,类型为number。
外键员工表的外键有部门id,类型为number,用于与部门表中的部门id字段关联。
部门id 字段不可以为空。
员工表的外键有员工类型id,类型为number,用于与员工类型表中的员工类型id字段关联。
员工表的外键有领导id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段员工id具有自动创建的聚集索引。
2.3部门表(t_department)员工表定义如表2-2所示。
表2-2主键部门表的主键为部门id。
外键部门表的外键为部门父id,类型为number,引用部门表的部门id。
索引主键字段员工id具有自动创建的聚集索引。
2.4员工类型表(empType)员工类型表定义如表2-3所示。
表2-3主键员工类型表的主键为员工类型id。
2.5请假表(t_leave)员工类型表定义如表2-4所示。
表2-4主键请假表的主键为请假id。
外键请假表的外键有员工id,类型为number,用于与员工表中的员工id字段关联。
请假表的外键有领导id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段请假id具有自动创建的聚集索引。
2.6业绩表(result)业绩表定义如表2-5所示。
表2-5主键业绩表的主键为业绩表id。
外键请假表的外键有员工id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段业绩表id具有自动创建的聚集索引。
2.7加班表(overTimeWork)业绩表定义如表2-6所示。
表2-6主键加班表的主键为加班表id。
外键加班表的外键有员工id,类型为number,用于与员工表中的员工id字段关联。
加班表的外键有审核人员id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段加班表id具有自动创建的聚集索引。
2.8考情表(attendance)业绩表定义如表2-7所示。
表2-7主键考情表的主键为考情表id。
外键加班表的外键有员工id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段考情表id具有自动创建的聚集索引。
字段员工id有聚集索引。
2.9薪资表(salary)业绩表定义如表2-8所示。
表2-8主键薪资表的主键为薪资表id。
外键薪资表的外键有员工id,类型为number,用于与员工表中的员工id字段关联。
索引主键字段薪资表id具有自动创建的聚集索引。
3 视图3.1查看员工基本信息(Web)概述●此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、员工的部门信息和员工经理信息。
●Web用户具有查看的权限。
基表●员工表●部门表视图包含字段●员工编号●员工姓名●员工电子邮件●员工电话●员工登录名●员工报到日期●员工所属部门编号●员工自我介绍●员工照片●员工剩余假期●所属部门名称概述●此视图通过员工编号内连接员工考勤表和员工表,得到员工的姓名、员工所属部门编号和考勤情况。
通过这个视图可以按部门编号查到整个部门员工的缺勤情况。
●Web用户具有查看的权限。
基表●员工考勤表●员工表视图包含字段●考勤编号●员工编号●部门编号●员工姓名●考勤类型●到达时间3.2查看员工信息和所属部门名称(Win)概述●此视图通过内连接表员工表和部门表,得到员工的详细信息和员工所属部门的名称。
●Windows用户具有查看的权限。
基表●员工表●部门表视图包含字段●员工编号●员工姓名●员工登录名●员工电子邮件●部门名称●员工所属部门编号4 存储过程4.1插入一条提交的请假申请(Web)概述●此存储过程向员工请假表插入一条已提交的请假申请。
●Web用户具有执行权限。
参数返回值4.2查询员工考勤信息(Win)概述●此存储过程根据指定的时间段查询员工考勤信息。
●Windows用户具有执行权限。
参数返回值5 用户自定义函数5.1按部门名称得到本部门所有的员工信息概述此用户自定义函数根据部门名称从视图viwEmployeeList 中得到本部门所有员工的信息。
参数返回值6 触发器6.1在否决员工请假申请时将请假时间累计返回到请假前的状态概述员工请假申请被否决时,之前其年假的总时间已经被减少,否决完成后应该相应增加其年假总时间。
触发器影响范围7 数据库安全性7.1概述基于项目特点,教学案例项目的安全控制主要由程序代码控制。
Oracle 端不特殊地设定安全设置和检查。
项目的用户身份验证、用户授权管理都由应用程序代码实现。
7.2数据库验证方式应用程序端连接数据库时使用的数据库验证方式为Oracle验证。
数据库连接串将加密存储在系统配置文件中。
8 数据库管理和设置8.1概述本节内容与数据库功能无关,将从教学案例系统的数据库运行角度出发,对本数据库的属性设置和备份恢复策略提出指导性说明。
8.2数据库属性设置8.3数据库备份恢复策略数据库的大小和数据修改的频率决定了采用何种数据库备份恢复策略。
如果数据库较小或修改的频度非常低,则可以只实施完全数据库备份,不过此时要定期清理数据库的事务日志,防止数据库的事务日志被填满。
其他情况则需要使用差异备份。
由于本案例教学涉及的数据库规模较小,建议每周做一次完全备份,中间间隔两天做一次差异备份。
8.4数据库运行日常维护Oracle 的一个优势就是对日常维护的要求比较低,但为了追求更高的可用性和安全性,。