SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Connexions module: m18780

1

Disparadores en bases de datos
relacionales
∗

Miguel-Angel Sicilia
This work is produced by The Connexions Project and licensed under the
Creative Commons Attribution License

†

Abstract
Se introduce el concepto de disparador (trigger) en bases de datos relacionales, y la sintaxis SQL para
crearlos.

1 Disparadores en SQL
En ocasiones es necesario mantener restricciones en la base de datos que no pueden expresarse directamente
con las sentencias de creación de tablas como

CREATE TABLE. Por ejemplo,

en una aplicación bancaria, si un

cliente se queda sin saldo para un pago en una cuenta (es decir, entra en números rojos), se deberá crear

CUENTAS
saldo), entonces deberíamos observar

automáticamente un crédito personal para el descubierto. Si en la base de datos teníamos una tabla
con la información de las cuentas bancarias (incluyendo un atributo
la tabla, y cuando se ejecutase una sentencia
condición

saldo0,

UPDATE

sobre la misma, habría que comprobar si se cumple la

en cuyo caso, habría que crear una tupla en la tabla

PRESTAMOS.

Esta idea de observar

cambios es la que se implementa en el concepto de disparador (trigger).
Los disparadores (triggers) son funciones denidas por el diseñador de la base de datos que se ejecutan
cuando se producen ciertas operaciones en las bases de datos. Más concretamente, son programas a los que
se les da un nombre de objeto en la base de datos, se asocia con una tabla determinada, y se activa cuando
ocurre un cierto tipo de evento en esa tabla, como una inserción, actualización o borrado.

Si un evento

ocurre, el administrador de disparadores dentro del gestor de bases de datos llama a la función adecuada
para procesar el evento, por lo que cuando ejecutamos un

INSERT, DELETE

o

UPDATE,

es posible que se

desencadene la ejecución de disparadores, cosa que hay que tener muy en cuenta al desarrollar y evaluar
aplicaciones.

1.1 Un primer ejemplo

Pensemos en una aplicación bancaria en la que los

CLIENTES

tienen

diagrama muestra un esquema simplicado para esta base de datos.
∗ Version

1.1: Dec 8, 2008 11:49 am US/Central

† http://creativecommons.org/licenses/by/2.0/

http://cnx.org/content/m18780/1.1/

CUENTAS

y

PRESTAMOS.

El siguiente
Connexions module: m18780

2

Figure 1

Inicialmente, el banco tiene la política de no permitir que un cliente quede en números rojos. Podríamos
pensar en crear un disparador para esa tarea.

1.2 Un primer ejemplo, mejor pensado
1.3 Sintaxis

La sintaxis para la creación de disparadores en SQL es la siguiente:

CREATE TRIGGER nombre
momento evento
ON nombre_tabla FOR EACH [ROW|SENTENCE] sentencia

El nombre del disparador se usará si se desea eliminar el disparador, concretamente, se usa como argumento del comando

•

DROP TRIGGER.

El resto de la sintaxis se describe a continuación:

La palabra siguiente (momento) determina si la función debe ser llamada antes (BEFORE) o después

(AFTER) del evento.

•

El siguiente elemento del comando determina qué eventos dispararán la ejecución (INSERT,

UPDATE).

Es posible especicar múltiples eventos utilizado el operador

http://cnx.org/content/m18780/1.1/

OR.

DELETE,
Connexions module: m18780

•

3

El nombre de la relación (nombre_tabla) determinará la tabla afectada por el evento. La instrucción

FOR EACH

determina si el disparador se ejecutará para cada la afectada o bien antes (o después) de

que la secuencia se haya completado.

•

La

sentencia

es la denición del código que se invocará.

NOTA: En algunos gestores como MySQL 5.1 solo se soportan disparadores que se ejecutan por cada tupla
afectada (FOR

EACH ROW), pero otros permiten la sintaxis FOR EACH STATEMENT que se ejecutan por sentencia.

Es importante consultar la documentación del gestor de bases de datos para saber exáctamente con qué
sentencias se activan los disparadores. Por ejemplo,
no ejecuta los disparadores asociados a

DELETE.

DROP TABLE

en MySQL no utiliza

DELETE,

por lo que

Sin embargo,

Una característica importante de los disparadores es que no se puede tener más de uno para una determinada combinación de tabla, evento y momento. Es decir, no se pueden denir dos disparadores sobre la
tabla

T siendo ambos AFTER INSERT. Esto hace que si hay diferentes acciones a realizar para esa combinación,

habrá que programar el disparador para que ejecute condicionalmente unas acciones u otras.

1.4 Ejecución encadenada

Si una disparador ejecuta sentencias SQL, entonces estas funciones pueden disparar otros disparadores (o
dispararse a sí mismas). A esto se le llama ejecución de disparadores en cascada.
No hay ninguna limitación explicita en cuanto al número de niveles de cascada o encadenamiento. Si un
disparador se ejecuta por un

INSERT en una tabla T e inserta una nueva tupla en la misma tabla, se invocará
INSERT ejecutado en el código del disparador).

de nuevo al mismo disparador (por el nuevo

1.5 Funciones y procedimientos almacenados

http://cnx.org/content/m18780/1.1/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

Statement
StatementStatement
Statement
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Trigger Data Base
Trigger Data BaseTrigger Data Base
Trigger Data Base
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Trigger
TriggerTrigger
Trigger
 
Sintaxis de START TRANSACTION
Sintaxis de START TRANSACTIONSintaxis de START TRANSACTION
Sintaxis de START TRANSACTION
 
Vistas en mySql
Vistas en mySqlVistas en mySql
Vistas en mySql
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Mantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11gMantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11g
 
TRIGGERS Cliente - servidor
TRIGGERS Cliente - servidorTRIGGERS Cliente - servidor
TRIGGERS Cliente - servidor
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Seguridad Oracle 11g R2
Seguridad Oracle 11g R2Seguridad Oracle 11g R2
Seguridad Oracle 11g R2
 
Datos UNDO en Oracle
Datos UNDO en OracleDatos UNDO en Oracle
Datos UNDO en Oracle
 
VISTAS
VISTASVISTAS
VISTAS
 

Destacado

Kafer pak jabbar
Kafer pak jabbarKafer pak jabbar
Kafer pak jabbarWarnet Raha
 
Bài nghiên cứu đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...
Bài nghiên cứu   đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...Bài nghiên cứu   đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...
Bài nghiên cứu đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...https://www.facebook.com/garmentspace
 
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...https://www.facebook.com/garmentspace
 
Taller practico 10 claves para la implementacion de tendencias y enfoques
Taller practico 10 claves para la implementacion de tendencias y enfoquesTaller practico 10 claves para la implementacion de tendencias y enfoques
Taller practico 10 claves para la implementacion de tendencias y enfoquesIvonne Diaz
 
MinhDoanTien's_Resume
MinhDoanTien's_ResumeMinhDoanTien's_Resume
MinhDoanTien's_Resumeminmin0504
 
Virus y vacunas informaticos
Virus y vacunas informaticosVirus y vacunas informaticos
Virus y vacunas informaticosnadiadivantoque
 
Bản tin trường Anh ngữ EV
Bản tin trường Anh ngữ EV Bản tin trường Anh ngữ EV
Bản tin trường Anh ngữ EV MYD Vietnam
 
Harry potter and the deathly hallows
Harry potter and the deathly hallowsHarry potter and the deathly hallows
Harry potter and the deathly hallowsWarnet Raha
 
Diseño grafico julian olaya
Diseño grafico julian olayaDiseño grafico julian olaya
Diseño grafico julian olayaJuliancho11
 
22 журам шинэчлэн батлах тухай ажилгүйдэл
22 журам шинэчлэн батлах тухай ажилгүйдэл22 журам шинэчлэн батлах тухай ажилгүйдэл
22 журам шинэчлэн батлах тухай ажилгүйдэлIggy Enkhee
 
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩmChương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩmhttps://www.facebook.com/garmentspace
 
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлтIggy Enkhee
 
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)https://www.facebook.com/garmentspace
 
CV Bajic Updated 2016[7971]
CV Bajic Updated 2016[7971]CV Bajic Updated 2016[7971]
CV Bajic Updated 2016[7971]Petar Bajic
 

Destacado (20)

Kafer pak jabbar
Kafer pak jabbarKafer pak jabbar
Kafer pak jabbar
 
Bài nghiên cứu đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...
Bài nghiên cứu   đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...Bài nghiên cứu   đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...
Bài nghiên cứu đề tài chính sách khuyến khích và những ảnh hưởng của nó tới...
 
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...
Bài nghiên cứu chính sách khuyến khích và những ảnh hưởng của nó tới tình hìn...
 
Power point
Power pointPower point
Power point
 
Taller practico 10 claves para la implementacion de tendencias y enfoques
Taller practico 10 claves para la implementacion de tendencias y enfoquesTaller practico 10 claves para la implementacion de tendencias y enfoques
Taller practico 10 claves para la implementacion de tendencias y enfoques
 
Philip DeFranco
Philip DeFrancoPhilip DeFranco
Philip DeFranco
 
casos de histericas
casos de histericas casos de histericas
casos de histericas
 
MinhDoanTien's_Resume
MinhDoanTien's_ResumeMinhDoanTien's_Resume
MinhDoanTien's_Resume
 
Virus y vacunas informaticos
Virus y vacunas informaticosVirus y vacunas informaticos
Virus y vacunas informaticos
 
Comercio electronico
Comercio electronicoComercio electronico
Comercio electronico
 
Bản tin trường Anh ngữ EV
Bản tin trường Anh ngữ EV Bản tin trường Anh ngữ EV
Bản tin trường Anh ngữ EV
 
ảNh hưởng của các tác động đến kinh tế brazil
ảNh hưởng của các tác động đến kinh tế brazilảNh hưởng của các tác động đến kinh tế brazil
ảNh hưởng của các tác động đến kinh tế brazil
 
Harry potter and the deathly hallows
Harry potter and the deathly hallowsHarry potter and the deathly hallows
Harry potter and the deathly hallows
 
Dự án kinh doanh đồ ăn nhanh và nước uống
Dự án kinh doanh đồ ăn nhanh và nước uốngDự án kinh doanh đồ ăn nhanh và nước uống
Dự án kinh doanh đồ ăn nhanh và nước uống
 
Diseño grafico julian olaya
Diseño grafico julian olayaDiseño grafico julian olaya
Diseño grafico julian olaya
 
22 журам шинэчлэн батлах тухай ажилгүйдэл
22 журам шинэчлэн батлах тухай ажилгүйдэл22 журам шинэчлэн батлах тухай ажилгүйдэл
22 журам шинэчлэн батлах тухай ажилгүйдэл
 
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩmChương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
 
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт
08 жагсаалт батлах тухай эмийн үнийн хөнгөлөлт
 
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)
2901 bộ đề thi hết môn lý thuyết tài chính tiền tệ (có lời giải)
 
CV Bajic Updated 2016[7971]
CV Bajic Updated 2016[7971]CV Bajic Updated 2016[7971]
CV Bajic Updated 2016[7971]
 

Similar a Trigger o Disparadores (20)

Trigger
TriggerTrigger
Trigger
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Formacion critica
Formacion criticaFormacion critica
Formacion critica
 
Tutorial disparadores
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
 
TRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORES
 
TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORES
 
database trig
database trigdatabase trig
database trig
 
Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
 
Commit y rollback
Commit y rollbackCommit y rollback
Commit y rollback
 
Dbd triggers
Dbd triggersDbd triggers
Dbd triggers
 
Trigger activadores
Trigger activadoresTrigger activadores
Trigger activadores
 
programacion por capas
programacion por capasprogramacion por capas
programacion por capas
 
Transac sq ll
Transac sq llTransac sq ll
Transac sq ll
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 

Último (15)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 

Trigger o Disparadores

  • 1. Connexions module: m18780 1 Disparadores en bases de datos relacionales ∗ Miguel-Angel Sicilia This work is produced by The Connexions Project and licensed under the Creative Commons Attribution License † Abstract Se introduce el concepto de disparador (trigger) en bases de datos relacionales, y la sintaxis SQL para crearlos. 1 Disparadores en SQL En ocasiones es necesario mantener restricciones en la base de datos que no pueden expresarse directamente con las sentencias de creación de tablas como CREATE TABLE. Por ejemplo, en una aplicación bancaria, si un cliente se queda sin saldo para un pago en una cuenta (es decir, entra en números rojos), se deberá crear CUENTAS saldo), entonces deberíamos observar automáticamente un crédito personal para el descubierto. Si en la base de datos teníamos una tabla con la información de las cuentas bancarias (incluyendo un atributo la tabla, y cuando se ejecutase una sentencia condición saldo0, UPDATE sobre la misma, habría que comprobar si se cumple la en cuyo caso, habría que crear una tupla en la tabla PRESTAMOS. Esta idea de observar cambios es la que se implementa en el concepto de disparador (trigger). Los disparadores (triggers) son funciones denidas por el diseñador de la base de datos que se ejecutan cuando se producen ciertas operaciones en las bases de datos. Más concretamente, son programas a los que se les da un nombre de objeto en la base de datos, se asocia con una tabla determinada, y se activa cuando ocurre un cierto tipo de evento en esa tabla, como una inserción, actualización o borrado. Si un evento ocurre, el administrador de disparadores dentro del gestor de bases de datos llama a la función adecuada para procesar el evento, por lo que cuando ejecutamos un INSERT, DELETE o UPDATE, es posible que se desencadene la ejecución de disparadores, cosa que hay que tener muy en cuenta al desarrollar y evaluar aplicaciones. 1.1 Un primer ejemplo Pensemos en una aplicación bancaria en la que los CLIENTES tienen diagrama muestra un esquema simplicado para esta base de datos. ∗ Version 1.1: Dec 8, 2008 11:49 am US/Central † http://creativecommons.org/licenses/by/2.0/ http://cnx.org/content/m18780/1.1/ CUENTAS y PRESTAMOS. El siguiente
  • 2. Connexions module: m18780 2 Figure 1 Inicialmente, el banco tiene la política de no permitir que un cliente quede en números rojos. Podríamos pensar en crear un disparador para esa tarea. 1.2 Un primer ejemplo, mejor pensado 1.3 Sintaxis La sintaxis para la creación de disparadores en SQL es la siguiente: CREATE TRIGGER nombre momento evento ON nombre_tabla FOR EACH [ROW|SENTENCE] sentencia El nombre del disparador se usará si se desea eliminar el disparador, concretamente, se usa como argumento del comando • DROP TRIGGER. El resto de la sintaxis se describe a continuación: La palabra siguiente (momento) determina si la función debe ser llamada antes (BEFORE) o después (AFTER) del evento. • El siguiente elemento del comando determina qué eventos dispararán la ejecución (INSERT, UPDATE). Es posible especicar múltiples eventos utilizado el operador http://cnx.org/content/m18780/1.1/ OR. DELETE,
  • 3. Connexions module: m18780 • 3 El nombre de la relación (nombre_tabla) determinará la tabla afectada por el evento. La instrucción FOR EACH determina si el disparador se ejecutará para cada la afectada o bien antes (o después) de que la secuencia se haya completado. • La sentencia es la denición del código que se invocará. NOTA: En algunos gestores como MySQL 5.1 solo se soportan disparadores que se ejecutan por cada tupla afectada (FOR EACH ROW), pero otros permiten la sintaxis FOR EACH STATEMENT que se ejecutan por sentencia. Es importante consultar la documentación del gestor de bases de datos para saber exáctamente con qué sentencias se activan los disparadores. Por ejemplo, no ejecuta los disparadores asociados a DELETE. DROP TABLE en MySQL no utiliza DELETE, por lo que Sin embargo, Una característica importante de los disparadores es que no se puede tener más de uno para una determinada combinación de tabla, evento y momento. Es decir, no se pueden denir dos disparadores sobre la tabla T siendo ambos AFTER INSERT. Esto hace que si hay diferentes acciones a realizar para esa combinación, habrá que programar el disparador para que ejecute condicionalmente unas acciones u otras. 1.4 Ejecución encadenada Si una disparador ejecuta sentencias SQL, entonces estas funciones pueden disparar otros disparadores (o dispararse a sí mismas). A esto se le llama ejecución de disparadores en cascada. No hay ninguna limitación explicita en cuanto al número de niveles de cascada o encadenamiento. Si un disparador se ejecuta por un INSERT en una tabla T e inserta una nueva tupla en la misma tabla, se invocará INSERT ejecutado en el código del disparador). de nuevo al mismo disparador (por el nuevo 1.5 Funciones y procedimientos almacenados http://cnx.org/content/m18780/1.1/