Está en la página 1de 9

Ing.

Luis Alberto de la Cruz Daz


Leonardo Daniel Cruz De La Cruz
Taller de Bases de Datos
Inv. Unidad 5 (SQL Procedural)
Ing. Sistemas Computacionales
5
Matutino

A
Fecha de Entrega:

03 de Noviembre de 2016

ndice
Introduccin..................................................................................................................................... 2
SQL Procedural............................................................................................................................... 3
Procedimiento almacenado ......................................................................................................... 3
Tipos de parmetros para un stored procedure .................................................................... 3
Ejemplo de un procedimiento almacenado en SQL .............................................................. 3
Funciones ......................................................................................................................................... 4
Ejemplo de creacin de una funcin ........................................................................................ 4
Llamar a una funcin..................................................................................................................... 4
Ejemplo ............................................................................................................................................. 4
Disparadores ................................................................................................................................... 5
Tipos de disparadores segn la cantidad de ejecuciones a realizar: .............................. 5
Ejemplo de un disparador ............................................................................................................ 6
Conclusin ....................................................................................................................................... 7
Referencias bibliogrficas ........................................................................................................... 8

Introduccin
SQL Procedural se define como un subconjunto de SQL que aporta construcciones
de procedimiento que se pueden utilizar para la validacin de datos, como el
procedimiento triggers. Tambin nos permite la creacin de funciones para
encapsular reglas o frmulas para el mejoramiento de legibilidad y la capacidad de
mantenimiento de cdigo de procesamiento.

SQL Procedural
Procedimiento almacenado
Un procedimiento almacenado es un programa que se hace llamado con una nica
sentencia SQL y que puede ejecutarse de manera local dentro del espacio de
proceso del servidor de la base de datos. Los resultados obtenidos pueden
empaquetarse en un resultado ms grande y devolverse a la aplicacin, o la lgica
puede realizarse directamente en el servidor, sin necesidad de transmitir los
resultados al cliente [1].
Los procedimientos pueden ser ventajosos cuando una base de datos es
manipulada desde muchos programas externos, ya que est directamente bajo
el control del motor del manejador de bases de datos, lo cual corre generalmente
en un servidor separado de manejador de DB y as aumenta la rapidez de
procesamiento de requerimientos del manejador.
Los usos tpicos de stored procedure s e aplican en la validacin de datos,
integrados dentro de la estructura del banco de datos. Los procedimientos
almacenados usados con tal propsito se llaman comnmente disparadores, o
triggers.
Otro uso comn es la encapsulacin de un API para un proceso complejo o grande
que podra requerir la 'ejecucin' de varias consultas SQL o tambin pueden ser
usados para el control de gestin de operaciones [2].

Tipos de parmetros para un stored procedure

IN: Son argumentos para los procedimientos almacenados.


OUT: Son resultados del procedimiento almacenado, este asigna valores a
todos los parmetros OUT que el usuario pueda procesar.
INOUT: Combinan las propiedades de los parmetros IN y OUT.

Ejemplo de un procedimiento almacenado en SQL [1]


CREATE PROCEDURE MostrarNumeroDePedidos
SELECT Cliente.idc, Cliente.nombrec, COUNT(*)
FROM Clientes, Pedidos
WHERE Cliente.idc = Pedidos.idc
GROUP BY Cliente.idc, Cliente.nombrec;

Funciones
Una funcin almacenada es un programa almacenado de tipo especial que devuelve
un valor nico. Utiliza funciones almacenadas para encapsular frmulas comunes o
reglas empresariales que se pueden reutilizar entre sentencias SQL o programas
almacenados.
Esto ayuda a mejorar la legibilidad y la capacidad de mantenimiento del cdigo de
procedimiento [3].
Ejemplo de creacin de una funcin
La funcin devolver el nmero total de CLIENTES en la tabla de clientes.
CREATE OR REPLACE FUNCTION totalCustomers
RETURN number IS
total number(2) := 0;
BEGIN
SELECT count(*) into total
FROM customers;
RETURN total;
END;

Llamar a una funcin


Para utilizar una funcin ya antes creada, se tiene que llamar para que realice la
tarea definida. Cuando un programa llama a una funcin, el control de programa se
transfiere a la funcin llamada.
Una funcin llamada realiza una tarea definida y cuando se ejecuta su instruccin
de devolucin o cuando se alcanza la ltima instruccin final, devuelve el control de
programa al programa principal.
Para llamar a una funcin simplemente necesita pasar los parmetros requeridos
junto con el nombre de la funcin y si la funcin devuelve un valor [4].
Ejemplo [4]
DECLARE
c number(2);
BEGIN
c := totalCustomers();
dbms_output.put_line('Total no. of Customers: ' || c);
END;

Disparadores
Un trigger (o disparador) en una Base de datos , es un procedimiento que se
ejecuta cuando se cumple una condicin establecida al realizar una operacin
de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE).
Son usados para mejorar la administracin de la Base de datos, sin necesidad
de contar con que el usuario ejecute la sentencia de SQL. Adems, pueden
generar valores de columnas, previene errores de datos, sincroniza tablas, modifica
valores de una vista, etc.
La estructura bsica de un trigger es:
Llamada de activacin: es la sentencia que permite "disparar" el cdigo a
ejecutar.
Restriccin: es la condicin necesaria para realizar el cdigo.
Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez
que se han cumplido las condiciones iniciales.

Tipos de disparadores segn la cantidad de ejecuciones a realizar:

Disipadores de nivel fila: Los disparadores de nivel fila se crean


utilizando la clusula For each row en el comando crate trigger.
Disparadores de nivel de instruccin: Los disparadores de nivel
de instruccin son el tipo predeterminado que se crean mediante el
comando.

Disparadores Before y After: puesto que los disparadores son


ejecutados por sucesos, puede establecerse que se produzcan
inmediatamente antes (before) o despus (after) de dichos
sucesos.

Disparadores de esquema: puede crear disparadores sobre


operaciones en el nivel de esquema tales como create table, alter
table, drop table, audit, rename, truncate y revoke.

Disparadores en nivel de base de datos: puede crear


disparadores que se activen al producirse sucesos de la base de
datos, incluyendo errores, inicios de sesin, conexiones y
desconexiones. Se usa para automatizar el mantenimiento de la
base de datos o las acciones de auditora [2].

Ejemplo de un disparador [2]


CREATE TRIGGER ver_salario
BEFORE UPDATE ON empleados
REFERENCING NEW ROW AS n, OLD ROW AS o
FOR EACH ROW
IF n.salario <> o.salario THEN
END IF;

Conclusin
De acuerdo con el trabajo se llega a la conclusin, que los procedimientos
almacenados son creados con el propsito de ayudar a la base de datos cuando es
manipulada desde varios programas externos, esto consiste que estar circulando
en un servidor por separado de manejado, aumentando la rapidez de
procesamiento. El procedimiento utilizado es el disparador (tigger), esto porque
ayuda al mejoramiento de la administracin de la base de datos. En ocasiones
permiten la modificacin y generacin de valores.
Por ultimo las funciones son creadas para almacenar datos y devolver valores
nicos. Al ser creadas se hace llamado de ella para que realice una tarea definida
en cuanto se inicie la ejecucin del programa.

Referencias bibliogrficas
1. Raghu R., Johannes Gehrke. (2007). Sistema de Gestin de Base de Datos
(Tercera edicin). Espaa: Mc Graw Hill.
2. Scribd. (2016). SQL Procedural. Obtenido de
https://es.scribd.com/doc/266585257/Unidad-6-SQL-Procedural
3. Johnson, M. (2016). MySQL Stored Function. Obtenido de
http://www.mysqltutorial.org/mysql-stored-function/
4. Walker. (2016). PL/SQL- Functions. Obtenido de
https://www.tutorialspoint.com/plsql/plsql_functions.htm

También podría gustarte