Professional Documents
Culture Documents
NACIONAL
ESCUELA SUPERIOR DE
CMPUTO
ACADEMIA INGENIERA DE
SOFTWARE
Prctica no. 1:
Implementacin de restricciones en una base
de datos relacional
GRUPO: 3CM5
27. rollback;
Deshace la sentencia insert delete, update//
33. rollback;
36. rollback;
41. rollback;
Segunda parte
11. select TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) as "Fecha y hora
actual" from dual;
13. update employees set salary = salary * 1.1 where employee_id = 100;
14. select salary from employees where employee_id = 100;
16. rollback;
17. update employees set salary = salary * 1.1 where employee_id = 100;
23. rollback;
29. rollback;
Se crea un procedimento y el mismo se ejecuta en el empleado 100 aumentando
su salario en un 10%
30.
create or replace procedure consulta_salario (v_id IN
employees.employee_id%TYPE, v_name OUT employees.last_name%TYPE,
v_sal OUT employees.salary%TYPE, v_com OUT
employees.commission_pct%TYPE)
IS BEGIN
SELECT last_name, salary, commission_pct INTO v_name, v_sal, v_com
from employees WHERE employee_id = v_id;
IF SQL%NOTFOUND THEN RAISE_APPLICATION_ERROR(-
20202, No existe el identificador de empleado);
END IF;
END consulta_salario;
/
31. show errors;
37.
create or replace function obten_salario (v_id IN employees.employee_id%TYPE)
RETURN NUMBER
IS v_sal employees.salary%TYPE := 0;
BEGIN SELECT salary INTO v_sal FROM employees WHERE employee_id
= v_id;
RETURN v_sal;
END obten_salario;
/
42.
create or replace function impuesto(v_dato IN number)
RETURN number
IS impuesto number(3,2) := 0.16;
BEGIN
RETURN (v_dato * impuesto);
END impuesto;
/
/*comentar*/
67.
CREATE OR REPLACE PACKAGE EMP_ADM AS
FUNCTION create_emp(first_name VARCHAR2, last_name VARCHAR2, email
VARCHAR2
phone_number VARCHAR2, hire_date DATE, job_id VARCHAR2, salary
NUMBER,
commission_pct NUMBER, manager_id NUMBER, department_id NUMBER)
RETURN NUMBER;
Se crea un paquete con la funcin crate_emp
68.
FUNCTION create_emp(first_name VARCHAR2, last_name VARCHAR2, email
VARCHAR2,
phone_number VARCHAR2, hire_date DATE, job_id VARCHAR2, salary
NUMBER,
commission_pct NUMBER, manager_id NUMBER, department_id NUMBER)
RETURN NUMBER;
Se crea la funcin create_emp
69.
FUNCTION create_dept(department_name VARCHAR2, manager_id NUMBER,
location_id NUMBER) RETURN NUMBER;
PROCEDURE remove_emp(employee_id NUMBER);
PROCEDURE remove_dept(department_id NUMBER);
END;
/
Cre la funcin con errores de compilacin
70.
CREATE OR REPLACE PACKAGE BODY "EMP_ADM" IS
tot_depts NUMBER;
tot_emps NUMBER;
FUNCTION create_dept(department_name VARCHAR2, manager_id NUMBER,
location_id NUMBER)
RETURN NUMBER
AS
new_deptno hr.employees.department_id%TYPE;
BEGIN
SELECT departments_seq.NEXTVAL
INTO new_deptno
FROM dual;
INSERT INTO hr.departments
VALUES (new_deptno, department_name, manager_id, location_id);
tot_depts := tot_depts + 1;
RETURN(new_deptno);
END CREATE_DEPT;
FUNCTION create_emp
(
FIRST_NAME IN VARCHAR2,
LAST_NAME IN VARCHAR2,
EMAIL IN VARCHAR2,
PHONE_NUMBER VARCHAR2,
HIRE_DATE IN DATE,
JOB_ID IN VARCHAR2,
SALARY IN NUMBER,
COMMISSION_PCT IN NUMBER,
MANAGER_ID IN NUMBER,
DEPARTMENT_ID IN NUMBER
)
RETURN NUMBER
AS
new_empno hr.employees.employee_id%TYPE;
BEGIN
SELECT employees_seq.NEXTVAL
INTO new_empno
FROM DUAL;
INSERT INTO hr.employees
VALUES (new_empno, first_name, last_name, email, phone_number, hire_date,
job_id, salary, commission_pct, manager_id, department_id);
tot_emps := tot_emps + 1;
RETURN(new_empno);
END create_emp;
DECLARE
new_emp_id NUMBER(6);
new_dept_id NUMBER(6);
BEGIN
new_emp_id := emp_adm.hire ('Belden', 'Enrique', 'EBELDEN@MAIL.COM',
'555.111.2222', SYSDATE, 'ST_CLERK', 2500, .1, 101, 110);
DBMS_OUTPUT.PUT_LINE('Empleado agregado: ' || TO_CHAR(new_emp_id));
Cuestionario
1.- Mencione claramente las restricciones propias del modelo relacional y diga un
ejemplo que aplique en cada una de ellas.
a) Unicidad: Los valores de una columna no tiene duplicidad.
d) Lave Fornea: Conjunto de columnas que tienen una relacin con los
valores que pertenecen a otro conjunto de atributos de llave primaria de una
tabla externa.
d) Auditora
e) Vistas
Las vistas tienen la ventaja de que la declaramos solo una vez y cada vez que
necesitemos realizar una consulta de ciertos valores, ya no es necesario
declarar toda la consulta si ya tenemos una vista que nos ayude con ello.
Llave Fornea: La clusula FOREIGN KEY sirve para definir una clave
fornea sobre una columna o una combinacin de columnas. Una clave
fornea es una columna o conjunto de columnas que contiene un valor que
hace referencia a una fila de otra tabla.
c) Regla de validacin de campo Puede utilizar una regla de validacin para
especificar un criterio que deben cumplir todos los valores de campo vlido.
Por ejemplo, un campo de fecha podra tener una regla de validacin que
no permita valores en el pasado.
Conclusiones
Dentro del desarrollo de la prctica pude notar el uso de las restricciones de tipo
check para delimitar las restricciones en los salarios de los empleados, as mismo
las sentencias y triggers para ejecutar lneas de cdigo, por ejemplo, cuando se
asign un sueldo negativo que no poda ser ingresado debido a un trigger.