Download uniandes UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Document related concepts

Lenguaje de definición de datos wikipedia , lookup

Procedimiento almacenado wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

PL/SQL wikipedia , lookup

MyBatis wikipedia , lookup

Transcript
UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES
UNIANDES
SANTO DOMINGO
FACULTAD DE Sistemas Mercantiles
ESCUELA DE Sistemas
MÓDULO Desarrollo de Aplicaciones Cliente-Servidor II
TEMA: PROCEDIMIENTOS ALMACENADOS
AUTOR: Raúl Yépez, Edison Jaya
TUTOR: Ing. Javier Ulloa
FECHA: 5 de Diciembre del 2011
PERIODO NOVIEMBRE – ABRIL 2012
1. INTRODUCCIÓN
Un procedimiento es un subprograma que ejecuta una acción específica y que no devuelve
ningún valor. Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un
bloque de código.
Al crear un procedimiento almacenado, las instrucciones que contiene se analizan para
verificar si son correctas sintácticamente. Si se encuentra algún error, el procedimiento se
compila, pero aparece un mensaje "con advertencias" que indica tal situación.
Un procedimiento almacenado se invoca llamándolo.
En primer lugar se deben tipear y probar las instrucciones que se incluyen en el procedimiento
almacenado, luego, si se obtiene el resultado esperado, se crea el procedimiento.
Los procedimientos almacenados pueden hacer referencia a tablas, vistas, a funciones
definidas por el usuario, a otros procedimientos almacenados.
Un procedimiento almacenado pueden incluir cualquier cantidad y tipo de instrucciones DML
(de manipulación de datos, como insert, update, delete), no instrucciones DDL (de definición
de datos, como create..., drop... alter...).
Para crear un procedimiento almacenado empleamos la instrucción "create procedure". La
sintaxis básica parcial es:
Saed
create or replace procedure NOMBREPROCEDIMIENTO
as
begin
INSTRUCCIONES
end;
2. OBJETIVOS
2.1.
GENERAL
Con esta investigación se puede saber las definiciones y el uso correcto de los procedimientos
almacenados ya que la correcta utilización de estos servirá a lo largo de la materia y nuestra
carrera.
2.2.
ESPECÍFICOS
a) Explicar cuáles son las ventajas y desventajas de usar un procedimiento almacenado.
b) Dar ejemplos de algunos procedimientos almacenados.
c) Aprender correctamente su sintaxis para su correcta utilización.
3.
FUNDAMENTACIÓN CIENTÍFICA
Procedimiento Almacenado.- Es un módulo o rutina que encapsulan código para su
reutilización.
Saed
BDD.- Base de datos. Es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso.
DLL.- Biblioteca de Enlace Dinámico. Los archivos con código ejecutable que se cargan bajo
demanda de un programa por parte del sistema operativo.
DML.- Lenguaje de Manipulación de Datos. Es un lenguaje proporcionado por el sistema de
gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de
consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
DDL.- Lenguaje de Definición de Datos. Es un lenguaje proporcionado por el sistema de
gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de
definición de las estructuras que almacenarán los datos así como de los procedimientos o
funciones que permitan consultarlos.
PL-SQL.- Procedural Language/Structured Query Language. En un entorno de base de datos
los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o
funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro
objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los
programas se ejecutan en el servidor para ahorrar recursos a los clientes.
Saed
4.
DESARROLLO
Procedimientos almacenados
Los procedimientos almacenados son módulos o rutinas que encapsulan código para su
reutilización. Un procedimiento almacenado puede incluir parámetros de entrada, devolver
resultados tabulares o escalares y mensajes para el cliente, invocar instrucciones de lenguaje
de definición de datos (DDL) e instrucciones de lenguaje de manipulación de datos.
Uso
Los usos típicos de los procedimientos almacenados se aplican en la validación de datos,
integrados dentro de la estructura del banco de datos. Los procedimientos almacenados usados
con tal propósito se llaman comúnmente disparadores, o triggers. Otro uso común es la
encapsulación de un API para un proceso complejo o grande que podría requerir la ejecución
de varias consultas SQL, tales como la manipulación de un dataset enorme para producir un
resultado resumido.
También pueden ser usados para el control de gestión de operaciones, y ejecutar
procedimientos almacenados dentro de una transacción de tal manera que las transacciones
sean efectivamente transparentes para ellos.
Implementación
Estos procedimientos, se usan a menudo, pero no siempre, para realizar consultas SQL sobre
los objetos del banco de datos de una manera abstracta, desde el punto de vista del cliente de
Saed
la aplicación. Un procedimiento almacenado permite agrupar en forma exclusiva parte de algo
específico que se desee realizar o, mejor dicho, el SQL apropiado para dicha acción.
Ventajas
-
La ventaja de un procedimiento almacenado, en
respuesta a una petición de usuario,
está directamente bajo el control del motor del manejador de bases de datos.
-
posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus
resultados de regreso al usuario.
Desventajas
 Una posible desventaja es que en los procedimientos almacenados tenemos
frecuentemente tanto SQL estándar como utilidades dependientes del fabricante de la
base de datos, con lo que se resta portabilidad.
Sintaxis
CREATE [OR REPLACE]
PROCEDURE <procedure_name> [(<param1> [IN|OUT|IN OUT] <type>,
<param2> [IN|OUT|IN OUT] <type>, ...)]
IS
-- Declaración de variables locales
BEGIN
-- Sentencias
[EXCEPTION]
-- Sentencias control de excepción
END [<procedure_name>];
Saed
Ejemplos
CREATE
OR REPLACE
PROCEDURE Actualiza_Saldo(cuenta NUMBER,
new_saldo NUMBER)
IS
-- Declaracion de variables locales
BEGIN
-- Sentencias
UPDATE SALDOS_CUENTAS
SET SALDO = new_saldo,
FX_ACTUALIZACION = SYSDATE
WHERE CO_CUENTA = cuenta;
END Actualiza_Saldo;
CREATE
OR REPLACE
PROCEDURE Actualiza_Saldo(cuenta NUMBER,
new_saldo NUMBER DEFAULT 10 )
IS
-- Declaracion de variables locales
BEGIN
-- Sentencias
UPDATE SALDOS_CUENTAS
SET SALDO = new_saldo,
FX_ACTUALIZACION = SYSDATE
WHERE CO_CUENTA = cuenta;
END Actualiza_Saldo;
CREATE PROCEDURE spEjecutar
@Codigo VARCHAR(10)
AS
BEGIN
SELECT Codigo, Nombre
FROM Tabla
WHERE Codigo = @Codigo
END
GO
Saed
CREATE PROCEDURE spEjecutar
@Codigo VARCHAR(10),
@Nombre VARCHAR(100) OUT
AS
BEGIN
SELECT @Nombre = Nombre
FROM Tabla
WHERE Codigo = @Codigo
END
GO
CREATE PROCEDURE autos(IN velocidad INT,IN marca VARCHAR(50))
BEGIN
IF velocidad < 120 THEN
INSERT INTO familiares VALUES(velocidad,marca);
ELSE
INSERT INTO deportivos VALUES(velocidad,marca);
END IF;
END;
Tipos de Procedimientos Almacenados
1. Procedimientos almacenados definidos por el usuario
Los procedimientos almacenados son módulos o rutinas que encapsulan código para
su reutilización. Puede incluir parámetros de entrada, devolver resultados tabulares o
escalares y mensajes para el cliente, invocar instrucciones de lenguaje de definición de
datos (DDL) e instrucciones de lenguaje de manipulación de datos (DML), así como
devolver parámetros de salida.

Transact-SQL.- Es una colección guardada de instrucciones Transact-SQL
que puede tomar y devolver los parámetros proporcionados por el usuario.
Saed

CLR.- Un procedimiento almacenado CLR es una referencia a un método
Common Language Runtime (CLR) de Microsoft.NET Framework que puede
aceptar y devolver parámetros suministrados por el usuario.
2. Procedimientos almacenados extendidos
Permiten crear sus propias rutinas externas en un lenguaje de programación como
pueda ser C. La integración CLR es una alternativa más consolidada y segura para
escribir procedimientos almacenados extendidos.
3. Procedimientos almacenados del sistema
Se almacenan físicamente en la Base De Datos “Resource” e incluyen el prefijo “sp_”. Los
procedimientos almacenados del sistema aparecen de forma lógica en el esquema “sys” de
cada base de datos definida por el usuario y el sistema.
5.
CONCLUSIONES
Fueron varias las observaciones que se han realizado durante esta investigación y se ha
aprendido cada uno de los conceptos, funciones y usos correctos de los procedimientos
almacenados que destacan la reutilización del código y la aplicación de mayor seguridad en
un sistema.
Es necesario realizar una observación a cada una de las sintaxis que se pueden realizar con los
procedimientos almacenados ya que su aprendizaje facilitaría de muchas formas al
programador.
Saed
6.
BIBLIOGRAFÍA
http://msmvps.com/blogs/jvargas/archive/2008/09/19/como-trabajar-con-procedimientosalmacenados.aspx
http://msdn.microsoft.com/es-es/library/ms187644.aspx
http://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos
http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html
http://www.devjoker.com/contenidos/Tutorial-PLSQL/52/Procedimientos-almacenados-enPLSQL.aspx
http://es.wikipedia.org/wiki/Lenguaje_de_Manipulaci%C3%B3n_de_Datos
http://www.bit-util.com/mysql/stored-procedures.html
http://es.wikipedia.org/wiki/Biblioteca_de_enlace_din%C3%A1mico
http://www.oracleya.com.ar/temarios/descripcion.php?cod=250&punto=92
http://es.wikipedia.org/wiki/Base_de_datos
Saed