Vous êtes sur la page 1sur 5

UNIDAD 6 SQL PROCEDURAL

6.1 PROCEDIMIENTOS ALMACENADOS


Un procedimiento almacenado (stored procedure en ingls) es un programa
(o procedimiento) el cual es almacenado fsicamente en una base de datos. Su
implementacin vara de un manejador de bases de datos a otro. La ventaja de
un procedimiento almacenado es que al ser ejecutado, en respuesta a una
peticin de usuario, es ejecutado directamente en el motor de bases de datos, el
cual usualmente corre en un servidor separado. Como tal, posee acceso directo a
los datos que necesita manipular y slo necesita enviar sus resultados de
regreso al usuario, deshacindose de la sobrecarga resultante de comunicar
grandes cantidades de datos salientes y entrantes.
Los procedimientos pueden ser ventajosos: Cuando una base de datos es
manipulada desde muchos programas externos. Al incluir la lgica de la
aplicacin en la base de datos utilizando procedimientos almacenados, la
necesidad de embeber la misma lgica en todos los programas que acceden a los
datos es reducida. Esto puede simplificar la creacin y, particularmente, el
mantenimiento de los programas involucrados.
Los usos 'tpicos' de los procedimientos almacenados se aplican en la
validacin de datos, integrados dentro de la estructura del banco de datos. Los
procedimientos almacenados usados con tal propsito se llaman comnmente
disparadores, o triggers. Otro uso comn es la 'encapsulacin' de un API para un
proceso complejo o grande que podra requerir la 'ejecucin' de varias consultas
SQL, tales como la manipulacin de un 'dataset' enorme para producir un
resultado resumido.
Tambin pueden ser usados para el control de gestin de operaciones, y
ejecutar procedimientos almacenados dentro de una transaccin de tal manera
que las transacciones sean efectivamente transparentes para ellos.
La ventaja de un procedimiento almacenado, en respuesta a una peticin
de usuario, est directamente bajo el control del motor del manejador de bases
de datos, lo cual corre generalmente en un servidor separado de manejador de
bases de datos aumentando

con ello, la rapidez de procesamiento de

requerimientos del manejador de bases de datos.

Ejemplos:

6.2 DISPARADORES
Un trigger (o disparador) en una Base de datos , es un procedimiento que se
ejecuta

cuando

se

cumple

una

condicin

establecida

al

realizar

una

operacin de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE).


Son usados para mejorar la administracin de la Base de datos, sin necesidad
de contar con que el usuario ejecute la sentencia de SQL. Adems, pueden
generar valores de columnas, previene errores de datos, sincroniza tablas,
modifica valores de una vista, etc. Permite implementar programas basados en
paradigma lgico (sistemas expertos, deduccin).
La estructura bsica de un trigger es:
Llamada de activacin: es la sentencia que permite "disparar" el cdigo a
ejecutar.

Restriccin: es la condicin necesaria para realizar el cdigo.

Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez


que se han cumplido las condiciones iniciales.

Existen tipos de disparadores que se clasifican segn la cantidad de ejecuciones a


realizar:

Disipadores de nivel fila: se ejecutan una vez para cada fila


afectada por una instruccin DML. Los disparadores de nivel fila se
crean utilizando la clusula For each row en el comando crate
trigger.
Disparadores de nivel de instruccin: se ejecutan una vez para
cada instruccin DML. Por ejemplo, si una nica instruccin INSERT
inserta 500 filas en una tabla un disparador de nivel de instruccin
para dicha tabla slo se ejecutar una vez. Los disparadores de
nivel de instruccin son el tipo predeterminado que se crea con el
comando
create
trigger.

Disparadores Before y After: puesto que los disparadores son


ejecutados por sucesos, puede establecerse que se produzcan
inmediatamente antes (before) o despus (after) de dichos sucesos.

Disparadores Instead Of: puede utilizar INSTEAD OF para indicar


a Oracle lo que tiene que hacer en lugar de realizar las acciones
que invoca el disparador. Por ejemplo, podra usar un disparador
INSTEAD OF en una vista para gestionar las inserciones en una

tabla o para actualizar mltiples tablas que son parte de una vista.

Disparadores de esquema: puede crear disparadores sobre


operaciones en el nivel de esquema tales como create table, alter
table, drop table, audit, rename, truncate y revoke. Puede incluso
crear disparadores para impedir que los usuarios eliminen sus
propias tablas. En su mayor parte, los disparadores de nivel de
esquema proporcionan dos capacidades: impedir operaciones DDL
y proporcionar una seguridad adicional que controle las operaciones
DDL
cuando
stas
se
producen.

Disparadores en nivel de base de datos: puede crear


disparadores que se activen al producirse sucesos de la base de
datos, incluyendo errores, inicios de sesin, conexiones y
desconexiones. Puede utilizar este tipo de disparador para
automatizar el mantenimiento de la base de datos o las acciones de
auditora.

Ejemplos:
Un sencillo ejemplo (para SQL Server) sera crear un Trigger para insertar un pedido de
algn producto cuando la cantidad de ste, en nuestro almacn, sea inferior a un valor dado.

MySQ

Vous aimerez peut-être aussi