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 Aplicación Cliente Cliente Tiempo de Ejecución Servidor MySQL Base de Datos MySQL Comunicación 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 información. 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 Aplicación Cliente Cliente Tiempo de Ejecución RED Procedimientos Almacenados Base de Datos MySQL Servidor MySQL Comunicación a través de Procedimientos Almacenados Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012 Conceptos sobre Procedimientos Almacenados La comunicación a través de procedimientos almacenados permita establecer una conexión 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 utilización de esta sentencia: Externo:El cuerpo del procedimiento se escribe en un lenguaje de programación 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 aplicación 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 través de la red. Solo se transmiten los registros que realmente necesitan la aplicación 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 también tienen acceso al software que solo esta instalado en el servidor de bases de datos. Pueden distribuirse la lógica 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 Reducción en el costo de desarrollo y aumento en la fiabilidad En un eterno de aplicación de Base de datos se repiten muchas tareas. Entre las tareas repetidas pueden encontrarse la devolución de un conjunto fijo de datos (ejemplo: IVA, conversión monetaria, parámetros de configuración, registros de auditoria) o la realización del mismo conjunto de peticiones a una base de datos. Al volver a utilizar un procedimiento común, 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, administración y mantenimiento centralizados para las rutinas Al gestionar la lógica compartida en un lugar del servidor, puede simplificarse la seguridad, la administración y el mantenimiento. Las aplicaciones cliente pueden llamar a procedimientos almacenados que ejecuten consultas de SQL con escaso o ningún 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 propósitos, tiene sus propias limitaciones: • Trabaja con la conexión que consigue de la aplicación cliente. Por el cual no puede tener algunas de las siguientes sentencias relacionadas con la conexión: 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 excepción 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 también pueden invocar una acción fuera de la base de datos, como enviar un email. Se pueden usar para una variedad de requerimientos de la aplicación 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 • Operación INSERT: Los triggers pueden crearse para cualquier operación de insercion de datos • Operación UPDATE: Los triggers pueden crearse para cualquier actualización de datos en la base datos. El proceso de actualización se puede deber a una sentencia de actualización (UPDATE) o a causa de restricciones referenciales. • Operación DELETE: Los triggers pueden crearse para cualquier operación de eliminación de datos. La operación de eliminación 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 acción disparada es el proceso ejecutado por el trigger sentencia SQL o un conjunto de sentencias SQL, que ejecutan una operación particular en la base de datos. La acción disparada también 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: Librería 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 electrónico al gerente de abastecimiento cuando la existencia de lapiceros en el departamento de papelería, esta por debajo de 500 Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012 Triggers • Se debe enviar un correo electrónico 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 crédito 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 implementación de reglas del negocio, como las listadas anteriormente. Una vez que se construyen estas reglas como triggers, se pueden usar a través de las aplicaciones. Menor acoplamiento: Los triggers permiten menos acoplamiento entre la logica del negocio y la aplicación 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 papelería desea estar notificado cuando la existencia de almohadillas sea menor que 150. sin embargo este numero cambiará a medida que la compañía crezca. Si la regla se codifica dentro de la aplicación construida de base de datos, resulta difícil para los programadores cambiarlo a cada momento. En cambio si se ubica dentro de un trigger, resulta muy fácil 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 aplicación que establece que un registro de empleado se puede añadir 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 implementación de este requerimiento sin tener que usar la restricción referencial Programa Nacional de Formacion Informatica Ing. de Sistemas Miguel Jaime R. 2012