Sei sulla pagina 1di 9

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS

INGENIERA EN SISTEMAS COMPUTACIONALES

TALLER DE BASE DE DATOS

PROCEDIMIENTOS ALMACENADOS Y DISPARADORES

ALUMNO
EDWIN ALEJANDRO BURELO PEA

5 - A

DOCENTE:
LUIS ALBERTO DE LA CRUZ DIAZ

BALANCN TABASCO A 04 DE NOVIEMBRE DEL 2015

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


INTRODUCCIN
En esta investigacin hablaremos sobre los procedimientos almacenados que es un
programa auto controlado escrito en lenguaje del DBMS, son almacenados como
parte de la Base de Datos y sus metadatos. Una vez creado un procedimiento
almacenado, se puede invocar directamente desde una aplicacin, o sustituir el
nombre de una tabla o vista, por el nombre de procedimiento en clusulas SELECT.
Los procedimientos almacenados pueden recibir parmetros de entrada y retornar
valores a la aplicacin y sus ventajas. y el uso de los disparadores.

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


Procedimiento almacenados
Un procedimiento almacenado es un conjunto de comandos SQL que pueden
almacenarse en el servidor. Una vez que se hace, los clientes no necesitan relanzar
los comandos individuales pero pueden en su lugar referirse al procedimiento
almacenado.
Algunas situaciones en que los procedimientos almacenados pueden ser
particularmente tiles:

Cuando mltiples aplicaciones cliente se escriben en distintos lenguajes o


funcionan en distintas plataformas, pero necesitan realizar la misma
operacin en la base de datos.

Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan


procedimientos almacenados para todas las oparaciones comunes. Esto
proporciona un entorno seguro y consistente, y los procedimientos pueden
asegurar que cada operacin se loguea apropiadamente. En tal entorno, las
aplicaciones y los usuarios no obtendran ningn acceso directo a las tablas
de la base de datos, slo pueden ejectuar algunos procedimientos
almacenados.

Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita


enviar menos informacin entre el servidor y el cliente. El intercambio que hay es
que aumenta la carga del servidor de la base de datos ya que la mayora del trabajo
se realiza en la parte del servidor y no en el cliente. Considere esto si muchas
mquinas cliente (como servidores Web) se sirven a slo uno o pocos servidores
de bases de datos.
Los procedimientos almacenados le permiten tener bibliotecas o funciones en el
servidor de base de datos. Esta caracterstica es compartida por los lenguajes de
programacin modernos que permiten este diseo interno, por ejemplo, usando
clases. Usando estas caractersticas del lenguaje de programacin cliente es
beneficioso para el programador incluso fuera del entorno de la base de datos.

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


Implementacin
Estos procedimientos, se usan a menudo, pero no siempre, para realizar
consultas SQL sobre los objetos de la base de datos de una manera abstracta,
desde el punto de vista del cliente de la aplicacin. Un procedimiento
almacenado permite agrupar en forma exclusiva parte de algo especfico que se
desee realizar o, mejor dicho, el SQL apropiado para dicha accin.

Usos
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 conjunto de datos 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.

Ventajas
La ventaja de un procedimiento almacenado, en respuesta a una peticin de
usuario, est directamente bajo el control del motor del gestor de bases de datos,
que corre generalmente en un servidor distinto del servidor web, aumentando con
ello la rapidez de procesamiento de las peticiones del usuario. El servidor de la base
de datos tiene acceso directo a los datos necesarios para manipular y slo necesita
enviar el resultado final al usuario. Los procedimientos almacenados pueden
permitir que la lgica del negocio se encuentre como un API en la base de datos,
que pueden simplificar la gestin de datos y reducir la necesidad de codificar la
lgica en el resto de los programas cliente. Esto puede reducir la probabilidad de
que los datos se corrompan por el uso de programas clientes defectuosos o
errneos. De este modo, el motor de base de datos puede asegurar la integridad de
TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


los datos y su consistencia con la ayuda de procedimientos almacenados. Algunos
afirman que las bases de datos deben ser utilizadas para el almacenamiento de
datos solamente, y que la lgica de negocio slo debera aplicarse en la capa de
negocio de cdigo, a travs de aplicaciones cliente que deban acceder a los datos.
Sin embargo, el uso de procedimientos almacenados no se opone a la utilizacin de
una capa de negocio.

Procedimientos almacenados en MySql


Desde MySQL 5 los procedimientos almacenados empezaron a ser soportados,
como suele suceder en MySQL las sentencias se ejecutan luego de escribir el signo
punto y coma (;), por esta razn antes de escribir el procedimiento almacenado la
funcin

del

punto

coma

se

asigna

otros

caracteres

usando

la

sentencia DELIMITER seguida de un carcter tal como |, de esta manera el


procedimiento puede ser escrito usando los punto y comas sin que se ejecute
mientras se escribe; despus de escrito el procedimiento, se escribe nuevamente la
sentencia DELIMITER ; para asignar al punto y coma su funcin habitual.
El siguiente es un ejemplo de procedimiento almacenado en MySQL:

DELIMITER |

CREATE PROCEDURE autos(IN velocidad int,IN marca varchar(50))


BEGIN
IF velocidad < 120 then
INSERT INTO familiares VALUES(velocidad,marca);
ELSE
INSERT INTO deportivos VALUES(velocidad,marca);
END IF;
END;
|

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


Disparadores (triggers)
Un disparador es un objeto con nombre dentro de una base de datos el cual se
asocia con una tabla y se activa cuando ocurre en sta un evento en particular. Por
ejemplo, las siguientes sentencias crean una tabla y un disparador para
sentencias INSERT dentro de la tabla. El disparador suma los valores insertados en
una de las columnas de la tabla:
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;

Sintaxis de CREATE TRIGGER


CREATE TRIGGER nombre_disp momento_disp evento_disp
ON nombre_tabla FOR EACH ROW sentencia_disp

Un disparador es un objeto con nombre en una base de datos que se asocia con
una tabla, y se activa cuando ocurre un evento en particular para esa tabla.
El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla
permanente, no puede ser una tabla TEMPORARY ni una vista.

momento_disp es el momento en que el disparador entra en accin. Puede


ser BEFORE (antes) oAFTER (despues), para indicar que el disparador se ejecute
antes o despus que la sentencia que lo activa.

evento_disp indica la clase de sentencia que activa al disparador. Puede


ser INSERT, UPDATE, oDELETE. Por ejemplo, un disparador BEFORE para
sentencias INSERT podra utilizarse para validar los valores a insertar.

No puede haber dos disparadores en una misma tabla que correspondan al mismo
momento y sentencia. Por ejemplo, no se pueden tener dos disparadores BEFORE
UPDATE. Pero s es posible tener los disparadores BEFORE UPDATE y BEFORE
INSERT o BEFORE UPDATE y AFTER UPDATE.
TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se
desean ejecutar mltiples sentencias, deben colocarse entre BEGIN ... END, el
constructor de sentencias compuestas. Esto adems posibilita emplear las mismas
sentencias permitidas en rutinas almacenadas.
Un disparador es un objeto de base de datos con nombre que se asocia a una tabla,
y se activa cuando ocurre un evento en particular para la tabla. Algunos usos para
los disparadores es verificar valores a ser insertados o llevar a cabo clculos sobre
valores involucrados en una actualizacin.
Un disparador se asocia con una tabla y se define para que se active al ocurrir una
sentencia INSERT,DELETE, o UPDATE sobre dicha tabla. Puede tambin
establecerse que se active antes o despus de la sentencia en cuestin. Por
ejemplo, se puede tener un disparador que se active antes de que un registro sea
borrado, o despus de que sea actualizado.
Para crear o eliminar un disparador, se emplean las sentencias CREATE
TRIGGER y DROP TRIGGER.

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


CONCLUSIN
Se habl de los Triggers o Disparadores que son objetos que se asocian con tablas

y se almacenan en la base de datos. Su nombre se deriva por el comportamiento


que presentan en su funcionamiento, ya que se ejecutan cuando sucede algn
evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen
que se ejecute un trigger son las operaciones de insercin, borrado o actualizacin,
ya que modifican los datos de una tabla. Mientras un procedimiento almacenado es
un programa almacenado fsicamente en una base de datos. Su implementacin
vara de un gestor de bases de datos a otro.

TALLER DE BASE DE DATOS

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS


BIBLIOGRAFA
http://manuales.guebs.com/mysql-5.0/triggers.html
http://es.scribd.com/doc/10325656/Procedimientos-Almacenados-y-Triggers-enSQL-Server#scribd
http://es.slideshare.net/adita1023/disparadores
http://www.berriart.com/2009/03/31/disparadores-de-mysql-triggers/

TALLER DE BASE DE DATOS

Potrebbero piacerti anche