CARRERA PROFESIONAL DE : Ingeniería de Sistemas y
Telemática
ASIGNATURA : Base
de datos III
ESTUDIANTE :
ü CHUQUIZUTA
RAMOS, Marleni
ü HERRERA
SILVA, Carlos Jhonatan
CICLO : VIII
GRUPO : “A”
I.
Tema: Trigger - Activadores
1.
Contenido
ü Definición
Los Triggers o Disparadores
son objetos que se asocian con tablas y se almacenan en la base de datos. Su
nombre se deriva por el comportamiento que presentan en su funcionamiento, ya
que se ejecutan cuando sucede algún evento sobre las tablas a las que se
encuentra asociado. Los eventos que hacen que se ejecute un trigger son las
operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE),
ya que modifican los datos de una tabla.
La utilidad principal de un
trigger es mejorar la administración de la base de datos, ya que no requieren
que un usuario los ejecute. Por lo tanto, son empleados para implementar las
REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos. Los
triggers pueden prevenir errores en los datos, modificar valores de una vista,
sincronizar tablas, entre otros.
ü Sintaxis
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ]
}
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL
NAME <method specifier [ ; ] > }
Argumentos
schema_name
Es el nombre del esquema al
que pertenece un desencadenador DML. Los desencadenadores DML tienen como
ámbito el esquema de la tabla o la vista donde se crean. schema_name no se
puede especificar para los desencadenadores DDL o LOGON.
trigger_name
Es el nombre del
desencadenador. El parámetro trigger_name debe cumplir con las reglas de los
identificadores, con la excepción de que trigger_name no puede comenzar con los
símbolos # o ##.
table
| view
Es la tabla o vista en que se
ejecuta el desencadenador DML; algunas veces se denomina tabla del
desencadenador o vista del desencadenador. Especificar el nombre completo de la
tabla o vista es opcional. Solo se puede hacer referencia a una vista mediante un
desencadenador INSTEAD OF. No es posible definir desencadenadores DML en tablas
temporales locales o globales.
DATABASE
Aplica el ámbito de un
desencadenador DDL a la base de datos actual. Si se especifica, el
desencadenador se activa cada vez que event_typeo event_group tienen lugar en
la base de datos actual.
ü Administración de Activadores
·
Creación
Una declaración CREATE TABLE
está formada por las palabras clave CREATE TABLE, seguidas del nombre de la
nueva tabla y (entre paréntesis) una lista de definiciones y restricciones de
columnas. El nombre de la tabla puede ser un identificador o una cadena.
CREATE OR
REPLACE TRIGGER TR_PRODUCTOS AFTER
INSERT ON
PRODUCTOS FOR EACH ROWDECLARE -- local variables
BEGIN
INSERT INTO
PRODUCTOS (CODPRODUCTO, DESCRIPCION, PRECIO, ACTUALIZACION) VALUES (‘P001’,’GALLETA
CASINO’,0.7, SYSDATE)
END
·
Modificación
El comando de actualización
cambia los registros existentes en una tabla. El comando consta de una palabra
clave UPDATE seguida del nombre de la tabla en la que se desean actualizar los
registros.
ALTER OR
REPLACE TRIGGER TR_PRODUCTOS AFTER INSERT ON PRODUCTOS
FOR EACH
ROWDECLARE --
local variables
BEGIN
INSERT INTO
PRODUCTOS (CODPRODUCTO, DESCRIPCION, PRECIO, ACTUALIZACION) VALUES
(‘P001’,’GALLETA CASINO’,0.7, SYSDATE); END
·
Eliminación
El comando DELETE se utiliza
para eliminar registros de una tabla. El comando está formado por las palabras
clave DELETE FROM seguidas del nombre de la tabla de la que se eliminarán los
registros.
DROP TRIGGER
TR_PRODUCTOS
ü 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.
CREATE TRIGGER TR_ARTICULO
ON ARTICULOS
AFTER UPDATE
AS
BEGIN
INSERT INTO HCO_ARTICULO
(IDARTICULO, STOCK, FECHA)
SELECT ID_ARTICULO, STOCK, GETDATE()
FROM INSERTED
END
INSERT INTO ARTICULOS VALUES
(1, 'MEMORIA', 12, '12/03/2014')
SELECT * FROM ARTICULOS
UPDATE ARTICULOS
SET STOCK = STOCK - 20
WHERE ID_ARTICULO = 1
SELECT * FROM HCO_ARTICULO
2.
Resumen
Triggers – Activadores
Los Trigger
o Disparadores son objetos que se asocian con tablas y se almacenan en la base
de datos. Además, son las operaciones de inserción (INSERT), borrado (DELETE) o
actualización (UPDATE), ya que modifican los datos de una tabla.
Sintaxys
CREATE
TRIGGER [ schema_name . ]trigger_name
ON {
table | view }
[ WITH
<dml_trigger_option> [ ,...n ] ]
{ FOR
| AFTER | INSTEAD OF }
{ [
INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH
APPEND ]
[ NOT
FOR REPLICATION ]
AS {
sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
Administración de Activadores
Creación
CREATE OR REPLACE TRIGGER TR_PRODUCTOS AFTER
INSERT ON PRODUCTOS FOR EACH ROWDECLARE -- local
variables
BEGIN
INSERT INTO PRODUCTOS (CODPRODUCTO, DESCRIPCION,
PRECIO, ACTUALIZACION) VALUES (‘P001’,’GALLETA
CASINO’,0.7, SYSDATE)
END
Modificación
ALTER OR REPLACE TRIGGER TR_PRODUCTOS AFTER INSERT
ON PRODUCTOS
FOR EACH
ROWDECLARE -- local variables
BEGIN
INSERT INTO PRODUCTOS (CODPRODUCTO, DESCRIPCION, PRECIO,
ACTUALIZACION) VALUES (‘P001’,’GALLETA CASINO’,0.7, SYSDATE);
END
Eliminación
DROP TRIGGER TR_PRODUCTOS
3.
Summary
Triggers - Activators
Triggers
or Triggers are objects that are associated with tables and stored in the
database. In addition, they are the operations of insertion (INSERT), deletion
(DELETE) or update (UPDATE), since they modify the data of a table.
Sintaxys
CREATE
TRIGGER [schema_name. ] trigger_name
ON
{table | view}
[WITH
<dml_trigger_option> [, ... n]]
{FOR |
AFTER | INSTEAD OF}
{[INSERT]
[,] [UPDATE] [,] [DELETE]}
[WITH
APPEND]
[NOT
FOR REPLICATION]
AS
{sql_statement [; ] [, ... n] | EXTERNAL NAME <method specifier [; ]>}
Activator Administration
Creation
CREATE
OR REPLACE TRIGGER TR_PRODUCTS AFTER
INSERT
ON PRODUCTS FOR EACH ROWDECLARE - local variables
BEGIN
INSERT
INTO PRODUCTS (CODRODUCT, DESCRIPTION, PRICE, UPDATE) VALUES ('P001', 'GALLETA
CASINO', 0.7, SYSDATE)
END
Modification
ALTER
OR REPLACE TRIGGER TR_PRODUCTS AFTER INSERT ON PRODUCTS
FOR
EACH
ROWDECLARE
- local variables
BEGIN
INSERT
INTO PRODUCTS (CODRODUCT, DESCRIPTION, PRICE, UPDATE) VALUES ('P001', 'GALLETA
CASINO', 0.7, SYSDATE);
END
Elimination
DROP
TRIGGER TR_PRODUCTS
4.
Recomendaciones
ü No
aceptan parámetros o argumentos (pero podrían almacenar los datos afectados en
tablas temporales) No pueden ejecutar las operaciones COMMIT o ROLLBACK porque
estas son parte de la sentencia SQL del disparador (únicamente a través de
transacciones autónomas) Pueden causar errores de mutaciones en las tablas, si
se han escrito de manera deficiente
ü Estudiar
bien la sintaxis de un trigger para no confundirnos ya que en la práctica es un
procedimiento almacenado, pero de uso interno al DBMS, por lo cual no usa
parámetros.
ü Investigar
más a fondo el tema de triggers para obtener un conocimiento más amplio y
captar de mejor manera la información
5.
Conclusiones
ü Los
triggers son importantes utilizar en una base de datos para que nos ayuden a
calcular ya sea el stock de un producto, etc. También para que nos ayude a
hacer restricciones de datos entre otros.
ü Los
triggers también te ayudan a replicar los datos que insertas en una tabla,
actualizarlos, etc. Esto nos ayudará a verificar quién fue el usuario que
manipulo o actualizó los datos de una tabla, en otras palabras, sirve de espía.
6.
Apreciación del Equipo
ü Un
tipo especial de procedimiento almacenado es el trigger. Consiste en un,
desencadenador o disparador, lo que hace referencia a la particularidad de
estos procedimientos almacenados de ejecutarse de manera automática disparados
cuando se produce una cierta condición o situación especial en los datos que
componen la base de datos.
ü En
relación a la creación de los triggers, las herramientas disponibles son las
mismas que en el caso de los procedimientos almacenados, si bien deberán
utilizarse las opciones correspondientes. La instrucción que permite la
creación de un trigger es CREATE TRIGGER
7.
Glosario de Términos
ü Regla de Negocio: es
cualquier restricción, requerimiento, necesidad o actividad especial que debe
ser verificada al momento de intentar agregar, borrar o actualizar la
información de una base de datos.
ü Parámetros: Elemento
o dato importante desde el que se examina un tema, cuestión o asunto.
ü Comando: es una
instrucción u orden que el usuario proporciona a un sistema informático, desde
la línea de comandos (como una shell) o desde una llamada de programación.
Puede ser interno (contenido en el propio intérprete) o externo (contenido en
un archivo ejecutable).
ü Desencadenador: (o
Trigger) es una clase especial de procedimiento almacenado que se ejecuta
automáticamente cuando se produce un evento en el servidor de bases de datos.
ü Sincronizar: Hacer
que dos o más hechos, fenómenos, movimientos, mecanismos, etc., sean
sincrónicos, estén en perfecta correspondencia temporal.
8.
Bibliografía o Linkografía
9.
Slideshare
