You are on page 1of 6

INTEGRANTES:

Jiménez Martínez Beatriz


Burguete López Erick Jonathan

DOCENTE:
DRA. Hernández Castillo Jehiely Belem
MATERIA:
Taller de Base de Datos
CARRERA:
ING EN SISTEMAS COMPUTACIONALES
TRABAJO:
INVESTIGACION DEL TEMA SQL PROCEDURAL
SEMESTRE: 5° GRUPO: “C”

TAPACHULA, CHIAPAS; A 09 DE NOVIEMBRE DEL 2018


SALON: JG
TAPACHULA, CHddd7
6.1 PROCEDIMIENTOS ALMACENADOS

Un procedimiento almacenado (stored procedure en inglés) es un programa


(o procedimiento) el cual es almacenado físicamente en una base de datos. Su
implementación varía de un manejador de bases de datos a otro. La ventaja de
un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición
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 sólo necesita enviar sus resultados de regreso
al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes
cantidades de datos salientes y entrantes.

Los procedimientos pueden ser ventajosos: Cuando una base de datos es


manipulada desde muchos programas externos. Al incluir la lógica de la
aplicación en la base de datos utilizando procedimientos almacenados, la
necesidad de embeber la misma lógica en todos los programas que acceden a los
datos es reducida. Esto puede simplificar la creación y, particularmente, el
mantenimiento de los programas involucrados.

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.
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, lo cual corre generalmente en un servidor separado de manejador de bases
de datos aumentando con ello, la rapidez de procesamiento de requerimientos
del manejador de bases de datos.
Ejemplos:

Una vez que PL/pgSQL ha realizado un plan de consulta para una determinada consulta
en una función, éste reusará dicho plan durante toda la vida de la conexión a la base
de datos. Esto significa normalmente una ganancia en el rendimiento, pero puede
causar algunos problemas si usted altera dinámicamente su esquema de base de
datos. Por ejemplo:

CREATE FUNCTION populate() RETURNS INTEGER AS '

DECLARE

-- Declarations

BEGIN

PERFORM my_function();

END;

' LANGUAGE 'plpgsql';

Una buena forma de desarrollar en PL/pgSQL es simplemente usar el editor de


textos de su elección y, en otra ventana, usar psql (monitor interactivo de
PostgreSQL) para cargar las funciones. Si lo está haciendo de ésta forma, es una
buena idea escribir la función usando CREATE OR REPLACE FUNCTION. De esta
forma puede recargar el archivo para actualizar la definición de la función. Por
ejemplo:
CREATE OR REPLACE FUNCTION testfunc(INTEGER) RETURNS INTEGER AS '
....
end; '
LANGUAGE 'plpgsql';

Mientras corre psql, puede cargar o recargar la definición de dicha función con

\i filename.sql
6.2 DISPARADORES
Un trigger (o disparador) en una Base de datos , es un procedimiento que se
ejecuta cuando se cumple una condición establecida al realizar una operación
de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).

Son usados para mejorar la administración de la Base de datos, sin necesidad


de contar con que el usuario ejecute la sentencia de SQL. Además, pueden
generar valores de columnas, previene errores de datos, sincroniza tablas, modifica
valores de una vista, etc. Permite implementar programas basados en paradigma
lógico (sistemas expertos, deducción).
La estructura básica de un trigger es:

 Llamada de activación: es la sentencia que permite "disparar" el código a


ejecutar.
 Restricción: es la condición necesaria para realizar el código.
 Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez
que se han cumplido las condiciones iniciales.

Existen tipos de disparadores que se clasifican según la cantidad de ejecuciones a


realizar:
 Disipadores de nivel fila: se ejecutan una vez para cada fila
afectada por una instrucción DML. Los disparadores de nivel fila se
crean utilizando la cláusula For each row en el comando créate
trigger.
 Disparadores de nivel de instrucción: se ejecutan una vez para
cada instrucción DML. Por ejemplo, si una única instrucción INSERT
inserta 500 filas en una tabla un disparador de nivel de instrucción
para dicha tabla sólo se ejecutará una vez. Los disparadores de nivel
de instrucción son el tipo predeterminado que se crea con el comando
create trigger.

 Disparadores Before y After: puesto que los disparadores son


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

 Disparadores Instead Of: puede utilizar INSTEAD OF para indicar a


Oracle lo que tiene que hacer en lugar de realizar las acciones que
invoca el disparador. Por ejemplo, podría usar un disparador
INSTEAD OF en una vista para gestionar las inserciones en una tabla
o para actualizar múltiples tablas que son parte de una vista.
 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. Puede incluso
crear disparadores para impedir que los usuarios eliminen sus
propias tablas. En su mayor parte, los disparadores de nivel de
esquema proporcionan dos capacidades: impedir operaciones DDL y
proporcionar una seguridad adicional que controle las operaciones
DDL cuando éstas se producen.

 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 sesión, conexiones y desconexiones. Puede utilizar
este tipo de disparador para automatizar el mantenimiento de la base
de datos o las acciones de auditoría.
Ejemplos:

Un sencillo ejemplo (para SQL Server) sería crear un Trigger para insertar un pedido de algún
producto cuando la cantidad de éste, en nuestro almacén, sea inferior a un valor dado.

MySQ

You might also like