PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
1. Tema:
Bases de Datos
Unidad 6 : SQL (Stored Procedure & Trigger)
Asignatura:
Base de Datos – INF-4200-1
Participante:
Juan Miguel Custodio Morillo
100480765
Docente:
Edward Ureña Mejía
Fecha:28//04/2021
2. I. Procedimientos almacenados
Es un programa almacenado físicamente en una base de datos. Su implementación varia
de un gestor de base de datos a otro. La ventaja de un procedimiento almacenado es que, al ser
ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases
de datos. Estos se encuentran dentro de los gestores de bases de datos, aunque con sintaxis
diferentes dependiendo del gestor donde se implemente.
Los procedimientos almacenados pueden recibir y devolver información; para ello se
emplean parámetros, de entrada y salida, respectivamente. Permiten realizar todas las
operaciones que los usuarios necesitan evitando que tengan acceso directo a las tablas.
Los procedimientos MySQL tienen un nombre, una lista de parámetros y una o varias
declaraciones SQL.
Cuando un procedimiento almacenado es ejecutado por primera vez se compila, se crea y
se guarda en memoria su plan de ejecución., luego SQL utiliza ese plan de ejecución cuando se
vuelve a llamar al procedimiento sin volver a compilarlo nuevamente.
Nos proporcionan a nosotros los usuarios un acceso fácil a la base de datos, se puede
tener acceso a la base de datos sin tener que conocer los detalles de la arquitectura de tablas -
simplemente se ejecutan los procedimientos almacenados que llevan a cabo las tareas solicitadas.
Los procedimientos almacenados pueden recibir y devolver información; para ello se
emplean parámetros, de entrada y salida, respectivamente. Permiten realizar todas las
operaciones que los usuarios necesitan evitando que tengan acceso directo a las tablas.
3. Los procedimientos almacenados pueden aceptar datos de entrada, utilizar variables
locales y devolver datos.
Para que un procedimiento almacenado admita parámetros de entrada se deben declarar
variables como parámetros al crearlo.
Los parámetros se definen luego del nombre del procedimiento. Los parámetros son
locales al procedimiento, es decir, existen solamente dentro del mismo. Pueden declararse varios
parámetros por procedimiento, se separan por comas.
Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de los
parámetros (en el orden que fueron definidos), a menos que se haya definido un valor por
defecto, en tal caso, pueden omitirse. Pueden ser de cualquier tipo de dato (excepto cursor).
Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un valor por
defecto; tal valor es el que asume el procedimiento al ser ejecutado si no recibe parámetros. Si no
se coloca valor por defecto, un procedimiento definido con parámetros no puede ejecutarse sin
valores para ellos. El valor por defecto puede ser "null" o una constante, también puede incluir
comodines si el procedimiento emplea "like".
El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del
procedimiento y un valor para el parámetro.
Cuando pasamos valores con el nombre del parámetro, el orden en que se colocan puede
alterarse.
Los procedimientos no pueden usar, el uso de parámetros no es obligatorio, aunque esto
vas a depender del motor de la base de datos donde se ejecute.
4. No podríamos ejecutar el procedimiento anterior sin valores para los parámetros. Si
queremos ejecutar un procedimiento que permita omitir los valores para los parámetros debemos,
al crear el procedimiento, definir valores por defecto para cada parámetro.
Podemos eliminar una tabla de la cual dependa un procedimiento, SQL Server lo permite,
pero luego, al ejecutar el procedimiento, aparecerá un mensaje de error porque la tabla
referenciada no existe.
En comparación con la función; un procedimiento almacenado es mucho más flexible para
escribir cualquier código que uno desee, mientras que las funciones tienen una estructura y
funcionalidad rígidas.
Como se puede apreciar, es posible invocar funciones dentro de un procedimiento
almacenado y no se puede invocar un procedimiento almacenado dentro de una función.
II. Los disparadores “triggers”
Un "trigger" (disparador o desencadenador) es un tipo especial de procedimiento
almacenado que se ejecuta cuando se intenta modificar los datos de una tabla.
Los desencadenadores DML se ejecutan cuando un usuario intenta modificar
datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos
5. DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista. Estos
desencadenadores se activan cuando se desencadena cualquier evento válido, con
independencia de que las filas de la tabla se vean o no afectadas.
Los triggers se crean con la instrucción "create trigger". Esta instrucción especifica la
tabla en la que se define el disparador, los eventos para los que se ejecuta y las instrucciones que
contiene.
"create trigger" debe ser la primera sentencia de un bloque y sólo se puede aplicar a una
tabla.
Un disparador se crea solamente en la base de datos actual, pero puede hacer referencia a
objetos de otra base de datos.
Las siguientes instrucciones no están permitidas en un desencadenador: create database,
alter database, drop database, load database, restore database, load log, reconfigure, restore log,
disk init, disk resize.
Se pueden crear varios triggers para cada evento, es decir, para cada tipo de modificación
(inserción, actualización o borrado) para una misma tabla. Por ejemplo, se puede crear un "insert
trigger" para una tabla que ya tiene otro "insert trigger".