Sunteți pe pagina 1din 26

Modelado de Base de Datos

PROCEDIMIENTOS ALMACENADOS

Universidad Politecnica de los Llanos

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Procedimiento Almacenado
Un Procedimiento almacenado es un Objeto de Base de Datos que puede encapsular logica y sentencias de SQL, se utiliza como una extension de subrutina para las aplicaciones y para otros objetos de Base de Datos que pueden contener logica. Los procedimiento almacenados se pueden escribir en una variedad de lenguajes incluyendo sql, c, c++ y java. MySQL proporciona una forma por el cual los procediminetos almacenados escritos en uno de estos lenguajes los puenden acceder un programa escrito en otro lenguajes.

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Conceptos sobre Procedimientos Almacenados


RED

Aplicacin Cliente

Cliente Tiempo de Ejecucin

Servidor MySQL

Base de Datos MySQL

Comunicacin entre el cliente y el servidor MySQL

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Conceptos sobre Procedimientos Almacenado


Cuando un cliente y el servidor de base de datos se comunica entre si, intercambian gran cantidad de informacin. Esto consume un gran numero de recursos de red.

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Conceptos sobre Procedimientos Almacenados


Cliente Tiempo de Ejecucin

Aplicacin Cliente

Procedimientos Almacenados

Base de Datos MySQL

RED

Servidor MySQL

Comunicacin a travs de Procedimientos Almacenados

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Conceptos sobre Procedimientos Almacenados


La comunicacin a travs de procedimientos almacenados permita establecer una conexin entre el cliente y el servidor consumiendo poco recursos de red comparado con el enfoque tradicional lo que aumenta en Performance del sistema. Los procedimientos almacenados tambien pueden tomar algunos parametros de entrada y devolver un resultado declarado como la salida.
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenados


Tipos
Existen dos tipos distintos de procedimientos que pueden crearse mediante la utilizacin de esta sentencia: Externo:El cuerpo del procedimiento se escribe en un lenguaje de programacin por ejemplo, java el ejecutable externo hace referencia a un procedimiento que se ha definido en el servidor actual, junto con diversos atributos del procedimiento. SQL: el cuerpo del procedimiento se escribe en SQL PL y se define en el servidor actual, junto con diversos atributos del procedimiento.
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Ventajas Algunas Ventajas de los procedimientos almacenados con respecto a las llamadas SQL tradicionales son: Uso reducido de la red entre clientes y servidores: Una aplicacin cliente pasa el control a un procedimiento almacenado en el servidor de base de datos. El procedimiento almacenado realiza un procesamiento intermedio en el servidor de base de datos, sin transmitir los datos innecesarios a travs de la red. Solo se transmiten los registros que realmente necesitan la aplicacin cliente. Utilizar un procedimiento almacenado puede dar como resultado un uso reducido de la red y un mejor rendimiento general
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Ventajas Mejora de la posibilidades de hardware y software Las Aplicaciones que utilizan procedimientos almacenados tienen acceso a un aumento de memoria y de espacio de disco en sistema del servidor. Estas aplicaciones tambin tienen acceso al software que solo esta instalado en el servidor de bases de datos. Pueden distribuirse la lgica comercial ejecutable entre maquinas que tengan memoria y procesadores suficientes.
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Ventajas Mejora la seguridad Al incluir privilegios de base de datos con procedimientos almacenados que utilicen SQL estatico, el administrador de base de datos (DBA) puede mejorar la seguridad. El DBA o el desarrollador que crea el procedimiento debe tener los privilegios de la base de datos que necesita el procedimiento almacenado. Los usuarios de las aplicaciones cliente que llaman al procedimiento almacenado puede proporcionar una manera enormemente eficaz de resolver estas situaciones repetitivas
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Ventajas Reduccin en el costo de desarrollo y aumento en la fiabilidad En un eterno de aplicacin de Base de datos se repiten muchas tareas. Entre las tareas repetidas pueden encontrarse la devolucin de un conjunto fijo de datos (ejemplo: IVA, conversin monetaria, parmetros de configuracin, registros de auditoria) o la realizacin del mismo conjunto de peticiones a una base de datos. Al volver a utilizar un procedimiento comn, un procedimiento almacenado puede proporcionar una manera enormemente eficaz de resolver esta situaciones repetitivas
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Ventajas Seguridad, administracin y mantenimiento centralizados para las rutinas Al gestionar la lgica compartida en un lugar del servidor, puede simplificarse la seguridad, la administracin y el mantenimiento. Las aplicaciones cliente pueden llamar a procedimientos almacenados que ejecuten consultas de SQL con escaso o ningn procedimiento adicional

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Conceptos sobre Procedimientos Almacenado


Limitaciones de los Procedimientos Almacenados
Aunque un procedimiento almacenados sirve para muchos propsitos, tiene sus propias limitaciones: Trabaja con la conexin que consigue de la aplicacin cliente. Por el cual no puede tener algunas de las siguientes sentencias relacionadas con la conexin: BACKUP, CONNECT, CONNECT TO, CONNECT RESET, CREATE DATABASE, DROP DATABASE, FORWARD RECOVERY, RESTORE. Dado que un procedimiento almacenado se ejecuta en segundo plano, no puede tener alguna sentencia que imprima en pantalla. Sin embargo, un procedimiento almacenado puede tener la capacidad de controlar el flujo a los archivos
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Conceptos sobre Procedimientos Almacenado


Limitaciones de los Procedimientos Almacenados Dado que es el cliente quien invoca un procedimiento almacenado, debe devolverse el control al cliente y no debe tener alguna sentencia que termine el proceso No puede ser invocado como parte de alguna sentencia SQL, con excepcin de CALL Los resultados no pueden ser usados directamente por otra sentencia SQL. No puede preservar el estado entre llamadas.

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Modelado de Base de Datos

TRIGGERS

Universidad Politecnica de los Llanos

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Los triggers son un conjunto de programas que residen dentro de la base de datos definen un conjunto de acciones que deben invocarse cuando ocurra alguna actividad en la base de datos. Los triggers tambin pueden invocar una accin fuera de la base de datos, como enviar un email. Se pueden usar para una variedad de requerimientos de la aplicacin

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Los triggers son programas manejados por eventos que residen dentro de un RDBMS. El manejador de la base de datos (databese manager que es un objeto del RDBMS que cotrola todas las actividades de la base de datos) administra los triggers

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Los triggers se crean solo una vez y el manejador de base de datos los dispara siempre que ocurra un evento o actividad particular. Los triggers pueden considerarse como un conjunto de reglas dentro del RDBMS. Las reglas pueden basarse en uno de los procesos de actualizacion.

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Operacin INSERT: Los triggers pueden crearse para cualquier operacin de insercion de datos Operacin UPDATE: Los triggers pueden crearse para cualquier actualizacin de datos en la base datos. El proceso de actualizacin se puede deber a una sentencia de actualizacin (UPDATE) o a causa de restricciones referenciales. Operacin DELETE: Los triggers pueden crearse para cualquier operacin de eliminacin de datos. La operacin de eliminacin de datos (DELETE), se puede deber a una sentencia delete o a causa de restricciones referenciales
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Triggers
Los triggers se implementa a nivel de tabla. Se enlazan a una tabla particular y cualquier cambio que sucede en la tabla disparara el triggers. Una vez creado, un triggers puede ser evitado si se realiza un control del errores dentro de las sentencias a ejecutar, en caso contrario, no puede ser evitado, independientemente desde donde ocurra la operacion de manipulacion de datos: a traves de una sentencia de SQL desde el centro operacion de manipulacion de datos: a traves de una sentencia de SQL dinamica, a traves de una sentencia de SQL embebido ejecutandose dentro de un programa, entre otros
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Triggers
Hay algunas terminologias que se necesitan conocer antes de desarrollar triggers: Evento disparador: Cada trigger esta asociado con un evento. Los triggers son activados cuando ocurre su evento correspondiente en la base de datos. El evento disparado puede ocurrir cuando se inserta datos, actualiza una columna o elimina un registro de una tabla. Accion disparada: una accin disparada es el proceso ejecutado por el trigger sentencia SQL o un conjunto de sentencias SQL, que ejecutan una operacin particular en la base de datos. La accin disparada tambin puede ser una llamada a un procedimiento almacenado (store procedure) o una llamada a funciones definidos por el usuario(UDF)
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Triggers
Ventajas de los triggers Las siguientes son las ventajas de usar triggers: Librera global para un conjunto de reglas del negocio: Las aplicaciones de negocio construidas alrededor de una base de datos tiene un numero de reglas del negocio que deben cumplirse a nivel de base de datos. Se necesita colocar restricciones sobre los datos para cumplir estas reglas. Algunas de las reglas del negocio son la siguientes Ejemplos: Se debe enviar un correo electrnico al gerente de abastecimiento cuando la existencia de lapiceros en el departamento de papelera, esta por debajo de 500
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Triggers
Se debe enviar un correo electrnico al administrador cuando se registre un nuevo usuario al sistema. Se debe actualizar la tabla registro de actividades (bitacora) siempre que ocurre algunas operaciones. Se debe fijar un limite superior sobre el crdito que un empleado puede disponer

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Los triggers pueden ser muy tiles en la implementacin de reglas del negocio, como las listadas anteriormente. Una vez que se construyen estas reglas como triggers, se pueden usar a travs de las aplicaciones. Menor acoplamiento: Los triggers permiten menos acoplamiento entre la logica del negocio y la aplicacin construida.

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

Triggers
Considere el siguiente ejemplo. El gerente de abastecimiento del departamento de papelera desea estar notificado cuando la existencia de almohadillas sea menor que 150. sin embargo este numero cambiar a medida que la compaa crezca. Si la regla se codifica dentro de la aplicacin construida de base de datos, resulta difcil para los programadores cambiarlo a cada momento. En cambio si se ubica dentro de un trigger, resulta muy fcil cambiar el valor
Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012

Triggers
Hacer cumplir la integridad de los datos: la integridad referencial de la base de datos se puede hacer cumplir usando triggers. Considere el siguiente ejemplo: hay dos tablas, Empleado y departamento. A traves de la columna idDepartamento(clave primaria) de la tabla Departamento. Se tiene un requerimiento en la aplicacin que establece que un registro de empleado se puede aadir solo si el departamento al que pertenece, ya existe. Esto puede hacerse verificando el idDepartamento del nuevo registro con la columna idDepartamento de la tabla Departamento. Los triggers ayudan en la implementacin de este requerimiento sin tener que usar la restriccin referencial

Programa Nacional de Formacion Informatica

Ing. de Sistemas Miguel Jaime R.

2012

S-ar putea să vă placă și