Вы находитесь на странице: 1из 6

STORED PROCEDURE

Un procedimiento almacenado (stored procedure en ingls) es un programa


(o procedimiento) almacenado fsicamente en una base de datos. Su
implementacin vara de un gestor de bases de datos a otro. La ventaja de
un procedimiento almacenado es que al ser ejecutado, en respuesta a una
peticin de usuario, es ejecutado directamente en el motor de bases de
datos, el cual usualmente corre en un servidor separado. Como tal, posee
acceso directo a los datos que necesita manipular y slo necesita enviar sus
resultados de regreso al usuario, deshacindose de la sobrecarga resultante
de comunicar grandes cantidades de datos salientes y entrantes.
Los stored procedures (procedimientos almacenados) son los equivalentes a
las rutinas, procedimientos, o funciones disponibles en casi todos los
lenguajes de programacin (Visual FoxPro, Visual Basic, C, Delphi, Java,
etc.), all se utilizan los datos que se encuentran en las tablas, se realizan
operaciones aritmticas o lgicas sobre esos datos y se devuelve el
resultado de ese procesamiento.
Implementacin
Los Stored procedures se usan a menudo para realizar consultas SQL,
insertar, actualizar o eliminar registros sobre los objetos de la base de datos
de una manera transparente, desde el punto de vista del cliente de la
aplicacin. Un Stored Procedure, permite agrupar en forma exclusiva parte
de una tarea especfica que se desee realizar o mejor dicho el SQL
apropiado para dicha accin.
Son implementados desde la aplicacin mediante CALL procedure ().
Pueden devolver un conjunto de resultados, es decir, los resultados de un
comando SELECT y dichos conjuntos de resultados pueden ser procesados
por otros procedimientos almacenados utilizando cursores.
Los Procedimientos Almacenados tambin pueden contener variables
declaradas para el procesamiento de los datos y cursores, que le permiten a
los bucles actuar sobre las mltiples filas de una tabla.
Ejecucin
Los Procedimientos almacenados se ejecutan directamente en el servidor de
base de datos.
Usos
Un uso comn es el encapsulamiento de un API para un proceso complejo o
que podra requerir la ejecucin de varias consultas SQL, tales como la
manipulacin de un gran conjunto de datos 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.
Cuando los procedimientos almacenados se aplican en la validacin de
datos, y el control de la integridad dentro de la estructura de la base de
datos se ejecutan a travs de los denominados triggers.
Ventajas y desventajas:
1.

Simplificacin de la Gestin

Los Procedimientos almacenados pueden permitir que la lgica del negocio


se encuentre como una API en la base de datos, que puede simplificar la
gestin de datos y reducir la necesidad de codificar la lgica en el resto de
los programas cliente.
2.

Seguridad

Es mucho mejor usar Stored procedure por seguridad. Los procedimientos


almacenados facilitan algunas tareas de administracin de seguridad y
asignacin de permisos.
3.

Centralizacin de la definicin

Al formar parte de la base de datos los procedimientos almacenados estn


en un lugar centralizado y pueden ser ejecutados por cualquier aplicacin
que tenga acceso a la misma.
4.

Reduccin del trfico de red

una sentencia formada por decenas, cientos o incluso miles de lneas de


cdigo SQL puede escribirse como un procedimiento almacenado en el
servidor y ejecutarse simplemente mediante el nombre de dicho
procedimiento, en lugar de enviar todas las lneas de cdigo por la red
desde el cliente hasta el servidor
5.

Encapsulamiento

Los procedimientos almacenados encapsulan gran parte de la lgica del


negocio a las aplicaciones que los utilizan.
6.

Ejecucin centralizada en el Servidor

Esta ejecucin puede verse como una ventaja o desventaja dependiendo de


los recursos con los que se cuenta.
La ventaja es que cuando est en accin, en respuesta a una peticin de
usuario, el procedimiento almacenado corre directamente bajo el control del
motor de bases de datos, generalmente en un servidor separado
aumentando con ello, generalmente, la rapidez del procesamiento del
requerimiento.

7.

Reduccin de la escalabilidad

los procedimientos almacenados nos esclavizan al motor de base de datos.


Para migrar de un gestor de base de datos con muchos procedimientos
almacenados a otro, se deber reescribir casi la totalidad de los mismos.

Los stored procedures pueden recibir cero, uno, o varios parmetros de


entrada y devolver cero, uno, o varios parmetros de salida.
ETL
Extract, Transform and Load (extraer, transformar y cargar,
frecuentemente abreviado ETL) es el proceso que permite a las
organizaciones mover datos desde mltiples fuentes, reformatearlos y
limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse
para analizar, o en otro sistema operacional para apoyar un proceso de
negocio y que forma parte del ciclo de vida de una implementacin de
Business Intelligence.
Para entender el concepto de ETL, se debe considerar las tecnologas
aplicadas en cada parte del proceso:
Origen de los Datos:
Base de datos, archivos de texto, etc.
Herramienta de ETL:
Data Transformation Service DTS, IBM Cognos DecisionStream, Pentaho
Data integration PDI, Microsoft SQL Server Integration Service SSIS , etc.
Destino de los Datos:
Base de datos
Dicho en trminos simples ETL: "son todas las actividades necesarias
relacionadas a la administracin de datos y metadatos para

satisfacer las necesidades de informacin".

ETL, de forma general debera proporcionar, ciertas funcionalidades tales


como:

Control de la extraccin de los datos y su automatizacin,


disminuyendo el tiempo empleado en el descubrimiento de
procesos no documentados, minimizando el margen de error y
permitiendo mayor flexibilidad.
Proporcionar la gestin integrada del Data Warehouse y los Data
Marts existentes, integrando la extraccin, transformacin y carga
para la construccin del Data Warehouse corporativo y de los Data
Marts.
Acceso a diferentes tecnologas, haciendo un uso efectivo del
hardware, software, datos y recursos humanos existentes.

Qu sistemas se pueden integrar en un proceso ETL?


Los procesos ETL pueden incluir:
Sistemas legacy. Es decir, legados, heredados o antiguos .
Sistemas nuevos. Basados en Windows, Linux y tambin en las redes
sociales modernas: Facebook, Twitter, Linkedin, etc.

Los sistemas legacy o heredados se caracterizan, generalmente, por: ser


cerrados, no permitir cambios y tener un difcil acceso (normalmente se
necesita algn tipo de driver especial). Son sistemas que procesan hacia
dentro y, por lo tanto, no permiten la agregacin de una computadora que
trabaje en paralelo.
Por el contrario, los sistemas nuevos o modernos (basados en Windows o
Linux) son abiertos, amplios e interconectados. Un ejemplo lo constituira
una granja de servidores Linux, la cual permite la interconexin de los
distintos nodos entre s.

Beneficios de los procesos ETL


A cualquier empresa u organizacin le beneficia poner en marcha un
proceso ETL para mover y transformar los datos que maneja por los
siguientes motivos:
Poder crear una Master Data Management, es decir, un repositorio
central estandarizado de todos los datos de la organizacin. Por ejemplo, si
tenemos un objeto cliente en una base de datos de crditos y otro objeto
cliente en la base de datos de tarjetas de crdito, lo que hara el Master
sera definir, de forma concreta e inequvoca, un registro cliente nico con
su nombre y apellidos para la organizacin.
Posibilita a los directivos tomar decisiones estratgicas basadas en el
anlisis de los datos cargados en las bases nuevas y actualizadas: la dama
mart o data warehouse.
Sirve para integrar sistemas. Las organizaciones crecen de forma
orgnica y cada vez se van agregando ms fuentes de datos. Esto provoca
que comience a surgir nuevas necesidades, como por ejemplo integrar los
datos de un banking on line con los datos antiguos de un sistema legacy.
Poder tener una visin global de todos los datos consolidados en una
data warehouse. Por ejemplo, crear una estrategia de marketing basndose
en el anlisis de los datos anteriores.

Procedimiento almacenado (SP) vs herramienta ETL


A continuacin detallamos algunas ventajas de la herramienta ETL en
relacin a los Stored Procedure:
Usando una herramienta ETL es ms fcil de mantener el cdigo:
Una herramienta ETL est basada en una Interfaz Grfica de Usuario (GUI).
SP, por otra parte se basa en texto, lneas de comandos o sentencias que en
algunos casos podra mostrarse complicado para el usuario.
Una herramienta ETL es ms flexible que SPs:
En el caso de los SP, las funciones que ofrece SQL Developer el panorama se
muestra inteligente y agradable, pero con una herramienta ETL es ms fcil
porque tienen una biblioteca de funciones ya hechas.
Cuando se trata de las caractersticas avanzadas, SP no puede hacer
mucho: Bsqueda aproximada, la depuracin, la capacidad para crear
scripts personalizados, algoritmo de coincidencia de datos, las
caractersticas de calidad de datos, perfiles de datos, capacidad de procesar
XML feed, etc.
Una herramienta ETL ofrece un mejor rendimiento que los SP:
Si a futuro el proyecto o negocio decide crecer o hacerlo ms grande, la
herramienta ETL permite realizar tareas en ejecucin en paralelo, utilizando
3 o ms servidores diferentes para ejecutar una carga masiva

https://dwbi1.wordpress.com/2011/04/05/stored-procedure-vs-etl-tool/
http://www.bimonkey.com/2012/06/etl-vs-sql/
http://gravitar.biz/bi/etl-elt/
https://firebird21.wordpress.com/2013/03/17/entendiendo-a-los-storedprocedures/

Вам также может понравиться