Fases del Proyecto de BD
Fases del Proyecto de BD
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 3 / 37
Funciones
Funciones
Se diferencian de los SP:
Solo pueden tener parámetros de entrada IN (no parámetros de
salida OUT o INOUT).
Deben retornar en un valor con algún tipo de dato definido.
Pueden usarse en el contexto de una expresión SQL.
Solo retornan un valor individual, no un conjunto de registros.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 6 / 37
Funciones
Funciones
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 7 / 37
Funciones
Funciones
Cree un función que calcule la edad de un empleado.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 8 / 37
Funciones
Funciones
Cree un función que calcule la edad de un empleado.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 9 / 37
Funciones
Funciones
Cree un función que calcule la edad de un empleado.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 10 / 37
Funciones
Funciones
Cree un SP que muestre la edad de todos los empleados (use
la función anterior).
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 11 / 37
Funciones
Funciones
Cree un SP que muestre la edad de todos los empleados (use
la función anterior).
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 12 / 37
Triggers o Disparadores
Triggers
Un Trigger es un SP creado para ejecutarse automaticamente
cuando ocurra un evento en nuestra base de datos.
Dichos eventos son generados por los comandos INSERT,
UPDATE y DELETE.
Son utilizados para ejecutar un bloque de instrucciones que
proteja, restrinja o preparen la información de nuestras tablas,
al momento de manipular nuestra información.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 18 / 34
Triggers o Disparadores
Trigger
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 19 / 34
Triggers o Disparadores
Trigger
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 20 / 34
Triggers o Disparadores
Trigger
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 21 / 34
Triggers o Disparadores
Triggers - Identificadores NEW y OLD
Si debemos relacionar el trigger con columnas especificas de
una tabla debemos usar los identificadores OLD y NEW.
OLD indica el valor antiguo de la columna y NEW el valor
nuevo que pudiese tomar. Por ejemplo: [Link] ó
[Link].
Si usamos la sentencia UPDATE podremos referirnos a un
valor OLD y NEW, ya que modificaremos registros existentes
por nuevos valores.
Si usamos INSERT solo usaremos NEW, ya que su naturaleza
es únicamente de insertar nuevos valores a las columnas.
ehinojosa@[Link]
Y, si usamos DELETE usaremos OLD debido a que
borraremos valores que existen con anterioridad.
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 22 / 34
Triggers o Disparadores
Triggers - BEFORE y AFTER
Estas clausulas indican si el Trigger se ejecuta antes o después
del evento.
Existen ciertos eventos que no son compatibles con estas
sentencias. Por ejemplo, si tuvieras un Trigger AFTER que se
ejecuta en una sentencia UPDATE, serı́a ilógico editar valores
nuevos NEW, sabiendo que el evento ocurrió.
Tener cuidado en las tablas relacionadas.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 23 / 34
Triggers o Disparadores
Triggers - AFTER de una sentencia INSERT
Cree un Trigger que aumente en 500 soles el salario de un
empledo si se le asigna un nuevo dependiente.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 24 / 34
Triggers o Disparadores
Triggers - AFTER de una sentencia INSERT
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 25 / 34
Triggers o Disparadores
Triggers - AFTER de una sentencia INSERT
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 26 / 34
Triggers o Disparadores
Triggers - AFTER de una sentencia INSERT
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 27 / 34
Triggers o Disparadores
Triggers - AFTER de una sentencia INSERT
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 28 / 34
Triggers o Disparadores
Triggers - BEFORE en la sentencia UPDATE
Cree un Trigger que antes de modificar la localización de
departamento, la fecha de inicio de gerencia del departamento
se actualiza con la fecha actual.
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 29 / 34
Triggers o Disparadores
Triggers - BEFORE en la sentencia UPDATE
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 30 / 34
Triggers o Disparadores
Triggers - BEFORE en la sentencia UPDATE
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 31 / 34
Triggers o Disparadores
Triggers - BEFORE en la sentencia UPDATE
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 32 / 34
Triggers o Disparadores
Triggers - BEFORE en la sentencia UPDATE
ehinojosa@[Link]
Dr. Edward Hinojosa Cárdenas (UNSA) CS1702226 33 / 34