Download Descargar

Document related concepts

Procedimiento almacenado wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transact-SQL wikipedia , lookup

Vista materializada wikipedia , lookup

Transcript
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