Está en la página 1de 13

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS DE LA COMPUTACION


Carrera de Ingeniería Informática

TEMA 1

“Funciones y Procedimientos Almacenados”

Elaborado por: ING. Ubaldo Pérez Ferreira.

Santa Cruz de la Sierra – Bolivia


Lógica del negocio en los SGBD
Muchas aplicaciones tienen incluida en sus "clase",
funciones que hacen referencia a código con sentencias
SQL, tal como se muestra en el siguiente ejemplo:

Es decir, que los programadores en los lenguajes


convencionales (Java, C#, etc) desarrollan las
transacciones que actualizan la Base de Datos, por lo
tanto, deben conocer a detalle el diseño de la BD.
Lógica del negocio en los SGBD
Los SGDB permiten almacenar en la BD programas que incluyen
sentencias SQL y de control de flujo (Transac-SQL), a estos
programas los denomina Funciones y Procedimientos
Almacenados (PA). Cada Base de Datos almacena
sus propios Funciones y PA

Funciones y PA
Function String GetNombre(xcode int)

Select xnomb=nomb from prov
where cprv=xcprv

return xnomb

Por lo tanto, toda la logica de instrucciones que


están embebidas en los lenguajes
convencionales, pueden almacenarse en la BD
y ser invocada desde cualquier lenguaje
convencional.
Excecute Proc GetNombre(xcode int)
Consumo de Funciones y PA
Las Funciones y PA también pueden ser consumidos desde los
Servicios Web (WS).

Servicio Web
PA
Function String GetNombre(xcode int)

Select xnomb=nomb from prov
where cprv=xcprv

Aplicaciones Clientes

return xnomb

Web, Móvil y Escritorio


Base de Datos con PA
Instrucciones Pre-Compiladas

El uso de Funciones y PA mejora notablemente la


potencia, eficacia y flexibilidad de SQL.

Las Funciones y PA se diferencian de las instrucciones


SQL en que están pre-compilados. La primera vez
que se ejecuta un procedimiento, el procesador de
consultas del SGBD lo analiza y prepara un Plan de
Ejecución que se almacena de forma definitiva en una
tabla del sistema.
Posteriormente, la Funcion y el PA se ejecuta según el
Plan Almacenado, lo que implica, que la Funcion y el
PA se ejecute casi de forma instantánea.
Porque usar Funciones y PA

¿Para que usarlos, si puedo tener mis consultas bien


bonitas metida en mi código (como consultas SQL Ad-
hoc)?

El uso más típico de las Funciones y PA es proveer una


validación integrada en la base de datos, así como proveer
mecanismos de control de acceso a la misma.

Las Funciones y PA son usados para consolidar y


centralizar lógica que originalmente se
implementaba en las aplicaciones.
Beneficios

– Simplifican la ejecución de tareas repetitivas


– Corren más rápido que las mismas instrucciones
ejecutadas en forma interactiva
– Reducen el tráfico a través de la red
– Pueden capturar errores antes que ellos puedan entrar a
la base de datos
– Establece consistencia porque ejecuta las tareas de la
misma forma
– Permite el desarrollo modular de aplicaciones
– Ayuda a proveer seguridad
– Puede forzar reglas y defaults complejos de los negocios
Almacenamiento de Funciones y PA
Los SGBD permite el almacenamiento de Funciones y
PA, como parte de las estructura de la Base de Datos.
Por ejemplo en el SQL Server los PA´s se tiene una
ares denominado Programación donde se guardan:
Funciones, Procedimientos Almacenados y Trigger,
entre otros.
Funciones

Una función es una rutina que recibe parámetros, realiza


una acción (Ej. Un calculo complejo) y devuelve
resultado de esa acción como un valor.
Tipos de Funciones:

• Funciones Escalares, retornan un valor


• Funciones con valores de tabla, retorna un conjunto
de valores (filas y columnas)
Como crear Funciones

Funciones Escalares

Sintaxis para crear:


CREATE FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ] data_type [ = default ]}
[ ,...n ] ] )
RETURNS return_data_type
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
Como crear Funciones

Funciones con valor de tabla

Sintaxis para crear:


CREATE FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ] data_type [ = default ]}
[ ,...n ] ] )
RETURNS @return_variable TABLE <table_type_definition>
[ AS ]
BEGIN
function_body
RETURN
END
Tipos de PA

• Procedimientos almacenados definidos por el usuario


– Son procedimientos definidos por el usuario que se
deben llamar explícitamente
• Triggers
– Son procedimientos definidos por el usuario que se
ejecutan automáticamente cuando se modifica un dato
en una tabla
• Procedimientos del sistema
– Procedimientos suministrados por el sistema
• Procedimientos extendidos
– Procedimientos que hacen llamadas al sistema operativo
y ejecutan tareas a ese nivel
Como crear y ejeutar un PA

Sintaxis para crear:


create procedure nombre_procedure
(parametros tipo dato default_valor
[, parametros tipo dato default_valor...] ,
(nombre_parametro datatype output
[, nombre_parametro datatype output...] )
as
instrucciones
return

Sintaxis para ejecutar:

[exec | execute] nombre_procedure

También podría gustarte