一、数据库
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
和
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
1、数据库分析
人力资源管理系统主要实现对企业员工等8项管理。员工管理实现对部门信息的添加、修改、删除、查询以及统计等。
2、数据库概念结构设计
通过对人力资源管理系统中数据及数据处理过程的分析,抽象出员工(EMPLOYEES)等9个实体,画出ER图,包括实体、实体的属性和关系等。
3、数据库逻辑结构设计
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
结构设计:根据人力资源管理系统ER图,设计出9个关系表,其中针对EMPLOYEES 表,设计出字段名、数据类型、长度、约束和说明。包括employee_id、first_name、last_name 等9个字段,其中字段名employee_id,数据类型NUMBER,长度6,约束PRIMARY KEY,说明职位编号。
序列的设计:创建3个序列,其中EMPLOYEES_SEQ用于产生员工编号,起始值为100,步长为1,不缓存,不循环。
索引的设计:创建10个索引,其中在EMPLOYEES表的DEPARTMENT_ID列上创建名为EMP_DEPARTMENT_INDX的平衡树索引,在LAST_NAME和FIRST_NAME列上创建名为EMP_NAME_INDX的复合索引。
视图的设计:创建2个视图,其中EMP_BASE_INFO_VIEW视图用于员工信息,包括员工号、员工名、工资和部门号。
存储过程的设计:创建5个存储过程,其中PROC_SHOW_EMP以部门编号为参数,查询并返回该部门平均工资,以及该部门中比该部门平均工资高的员工信息。
函数的设计:创建3个函数,其中FUNC_EMP_SALARY以员工编号为参数,返回员工的工资。
触发器设计:设计5个触发器,其中TRG_SECURE_EMP保证非工作时间禁止对EMPLOYEES表进行DML操作。
二、数据库的创建和客户端的连接
安装Oracle 11g数据库服务器,包括实例human和数据库human_resource,选择服务器类、单实例数据库、高级安装、企业版、一般用途/事物处理、具有示例
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
的数据库、使用Database Control管理数据库、文件系统、启用自动备份和对所有账户使用相同的口令tiger或admin123。
安装Oracle 11g客户机,选择运行时。通过网络配置助手ONCA配置远程数据库的本地网络服务名。
三、数据库的实现
在human_resource数据库中创建一个名为ehr的用户。以该用户登录数据库并创建各种数据库对象,这些数据库对象都将成为ehr模式的对象。
首先需要给ehr用户授权:
CONNECT sys/admin123@human_resource AS SYSDBA
CREATE USER ehr IDENTIFIDE BY ehrDEFAULT TABLESPACE users;
GRANT CONNECT,RESOURCE,CREATE VIEW TO ehr;
创建过程是在sql plus中执行以下sql语句或pl/sql程序。
1、表的创建
CREATE TABLE employees(
employee_id NUMBER(6) PRIMARY KEY,
first_nmaeVARCHAR2(20),
last_nameVARCHAR2(25) NOT NULL,
email VARCHAR2(25) NOT NULL UNIQUE,
phone_numberVARCHAR2(20),
hire_date DATE NOT NULL,
job_idVARCHAR2(10)NOT NULL,
salary NUMBER(8,2) CHECK(salary>0),
commission_pct NUMBER(2,2),
manager_id NUMBER(6),
department_id NUMBER(4),
)
TABLESPACE USERS ;
说明:省略了REFERENCES jobs(job_id)和departments(department_id)。
2、序列的创建
CREATE SEQUENCE employees_seq START WITH 100 INCREMENT BY 1 NOCACHE NOCYCLE
3、CREATE INDEX emp_department_indx ON employees(department_id) TABLESPACE indx; CREATE INDEX emp_name_indx ON employees(last_name,first_name) TABLESPACE indx;
4、视图的创建
CREATE VIEW emp_base_info_view(empno,fname,lname,sal,deptno)
AS
SELECT employee_id,first_name,last_name,salary,department_id
FROM employees;
5、PL/SQL程序开发-存储过程
CREATE OR REPLACE PROCEDURE proc_show_emp
( p_deptnoemployees.department_id%TYPE
)
AS
v_salemployees.salary%TYPE;
BEGIN
SELECT salary INTO v_sal FROM employees WHERE department_id=p_deptno;
--保证例外正确
SELECT avg(salary) INTO v_sal FROM employees WHERE department_id=p_deptno;
DBMS_OUTPUT.PUT_LINE(p_deptno||' '||'average salary is: '||v_sal);
FOR v_emp IN (
SELECT * FROM employees WHERE department_id= p_deptno AND salary>v_sal) LOOP
DBMS_OUTPUT.PUT_LINE(v_emp.employee_id||' '||v_emp.first_name||' '||v_emp.last_name);
END LOOP;
EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE ('The department doesn''t exists!');
ENDproc_show_emp;
6、PL/SQL程序开发-函数的创建
CREATE OR REPLACE FUNCTION func_emp_salary (
p_empnoemployees.employee_id%TYPE)
RETURNemployees.salary%TYPE
AS
v_salemployees.salary% TYPE;
BEGIN
SELECT salary INTO v_salFROM employees WHEREemployee_id= p_empno;
RETURNv_sal;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,'There is not such an employee!');
END func_emp_salary;
7、PL/SQL程序开发-触发器的创建
CREATE OR REPLACE TRIGGER trg_secure_emp
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
IF TO_CHAR(SYSDATE,’HH24:MI’) NOT BETWEEN ‘8:00’ AND ’18:00’
OR TO_CHAR(YSDATE,’DY’,’NLS_DATE_LANGUAGE=AMERICAN’) IN (‘SAT’,’SUN’) THEN
RAISE_APPLICATION_ERROR(-20005,’只能在正常的工作时间内进行改变。’);
END IF;
END trg_secure_emp;
四、向表中插入初始数据
利用子查询插入数据的方式,将hr模式下的表中数据复制到ehr模式下的相应表中。
1、解锁hr账户
ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;
2、以system用户连接数据库
CONN system/admin123@human_resource
3、插入初始数据
INSERT INTO ehr.employees SELECT * FROM hr.employees;