Está en la página 1de 17

Triggers y Stored Procedures con MicroOLAP Database Designer en MySQL 5

Universidad San Pedro Victor Hugo Salas Diaz

Introduccin

Unas opciones no muy usadas cuando se trabaja con MySQL son los triggers y los procedimientos almacenados (stored procedures), pero esto se debe a que es algo nuevo en mysql y la gente no est acostumbrada a estas dos funcionalidades que nos permiten reducir la complejidad de las aplicaciones que usan la base de datos.

Triggers (Disparadores)

Un trigger es un mecanismo de la base de datos para ejecutar automticamente una sentencia SQL cuando ocurre un evento. Una tabla slo pueden tener trigger de INSERT o DELETE, y mas de un UPDATE mientras que las columnas que intervienen en el update sean disjuntas.

Stored Procedures (Procedimientos Almacenados)

Son un conjunto de sentencias SQL y sentencias SPL (stored procedure language) agrupadas como un objeto que se almacena en la base de datos en las tablas del sistema. Son chequeadas sintcticamente y optimizadas en el momento de su creacin.

Caso Practico

Vamos a mostrar un ejemplo de uso de triggers y procedimientos almacenados paso a paso. Quizs el ejemplo no sea el ms correcto, o simplemente sea poco til, pero lo importante es el uso en s, no el ejemplo. Nuestro sistema tendr dos tablas, una con ventas y la otra con comisiones. En la primera se almacenarn cada venta que se realiza en un comercio, y en la segunda las comisiones que le corresponden a cada vendedor en el momento.

Paso 1

Primero crearemos las tablas ventas y comisiones con sus respectivos atributos y tipos de dato, para ello cargamos el MicroOLAP Database Designer y procedemos a crear un proyecto nuevo haciendo click en File New, despus de esto procedemos a cambiar el tipo de base datos dando click en Diagram Default Database Options y en Default table type elegimos InnoDB y le damos en OK, luego click en Table y procedemos a crear ambas tablas, presionamos ESC y dando doble click ingresamos sus atributos en el separador Columns y finalmente creamos la entidad relacin.

Captura

Paso 2

Procederemos a crear el Stored Procedure (Procedimiento Almacenado) para ello daremos click en Stored Routine y se creara una tabla que representa al Stored Procedure le damos doble click y procedemos a ingresar los parmetros y el procedimiento en si donde se realizaran los siguientes clculos:

Las comisiones se calcula de una forma especial, le corresponde un porcentaje de las ventas segn el tipo de producto, y es importante para los vendedores el que se sepa en cada momento qu comisiones lleva ganadas. Para calcular qu comisin le corresponde a un vendedor, calcularemos los porcentajes para cada tipo de producto vendido y luego lo aadiremos/actualizaremos en la tabla de comisiones.

Paso 3

Colocamos el nombre al procedimiento almacenado ( sp_comisiones ), luego ingresamos los parametros nombre, clase y tipo de dato ( mivendedor, IN y INT respectivamente).

Luego procedemos a crear el procedimiento en si declarando primero las variables a utilizar y ingresando los clculos en si, luego le damos en OK.

Captura

Paso 4

Ahora crearemos el Trigger o Disparador para ello le daremos doble click en la tabla ventas nos vamos al separador Triggers y damos click en Add, all ingresamos nombre, tiempo en que se ejecutara, antes de que accin y en boddy le damos click y aparecer un botn le damos click y nos abrir un editor all ira la sentencia que llamara al procedimiento almacenado cuando se inserta un nueva venta de un vendedor determinado y finalmente le damos en OK y otra ves en OK.

Capturas

Paso 5

Ahora crearemos el script para ello iremos a Database Generate Database y nos cargara una ventana all seleccionaremos donde guardar el script y con que nombre, luego iremos a options all en la opcin Delimiter solo dejaremos una sola barra horizontal | y finalmente le daremos en Generate script.

Captura

Ultimo Paso

Finalmente nos queda insertar este script en mysql para ello se necesitara de wamp server a partir de la versin 2.0b o 2.0c estas versiones traen el phpmyadmin 2.11.5 que permiten trabajar con sentencias mysql que contengan stored procedures y triggers. Primero abriremos el phpmyadmin http://localhost/phpmyadmin/ luego iremos a la opcin importar y buscamos el script a traves de examinar y le damos continuar eso sera todo con eso tendremos creado la base datos.

Capturas

FIN

También podría gustarte