Diferencia entre aserciones y disparadores en DBMS

1. ¿Qué son las afirmaciones?  
Cuando una restricción involucra 2 (o) más tablas, el mecanismo de restricción de tablas a veces es difícil y es posible que los resultados no sean los esperados. Para cubrir tal situación, SQL admite la creación de aserciones que son restricciones no asociadas con una sola tabla. Y una declaración de afirmación debe garantizar que siempre existirá una cierta condición en la base de datos. DBMS siempre verifica la aserción cada vez que se realizan modificaciones en la tabla correspondiente. 

Sintaxis – 

CREATE ASSERTION  [ assertion_name ]
CHECK ( [ condition ] );

Ejemplo –  

CREATE TABLE sailors (sid int,sname varchar(20), rating int,primary key(sid),
CHECK(rating >= 1 AND rating <=10)
CHECK((select count(s.sid) from sailors s) + (select count(b.bid)from boats b)<100) ); 

En el ejemplo anterior, aplicamos la restricción CHECK de que el número de barcos y marineros debe ser inferior a 100. Así que aquí podemos CHECK las restricciones de dos tabletas simultáneamente. 

2. ¿Qué son los disparadores ?  
Un disparador es un objeto de base de datos que está asociado con la tabla, se activará cuando se ejecute una acción definida para la tabla. El disparador se puede ejecutar cuando ejecutamos las siguientes declaraciones: 

  1. INSERTAR
  2. ACTUALIZAR
  3. ELIMINAR

Y se puede invocar antes o después del evento. 

Sintaxis –  

create trigger [trigger_name]       
[before | after]          
{insert | update | delete} 
on [table_name]  
[for each row]    
[trigger_body]  

Ejemplo –  

create trigger t1  before  UPDATE on sailors
for each row
begin
   if new.age>60 then
      set new.age=old.age;
   else
      set new.age=new.age;
   end if;
end;
$ 

En el ejemplo anterior, estamos creando disparadores antes de las actualizaciones. entonces, si la nueva edad es mayor a 60, no debemos actualizar, de lo contrario, debemos actualizar. Podemos llamar a este disparador usando el símbolo «$». 

Diferencia entre aserciones y disparadores: 

S.No afirmaciones disparadores
1. Podemos usar Aserciones cuando sabemos que la condición particular dada es siempre verdadera. Podemos usar Triggers incluso si una condición en particular puede ser cierta o no.
2. Cuando no se cumple la condición de SQL, existe la posibilidad de que se bloquee una tabla completa o incluso una base de datos. Los disparadores pueden detectar errores si la condición de la consulta no es verdadera.
3. Las aserciones no están vinculadas a una tabla o evento específico. Realiza tareas especificadas o definidas por el usuario. Ayuda a mantener las restricciones de integridad en las tablas de la base de datos, especialmente cuando la restricción de la clave principal y la clave externa no están definidas.
4. Las aserciones no mantienen ningún registro de los cambios realizados en la tabla. Los disparadores mantienen un registro de todos los cambios ocurridos en la tabla.
5. Las aserciones tienen una sintaxis pequeña en comparación con los disparadores. Tienen una gran sintaxis para indicar todos y cada uno de los disparadores creados.
6. Las bases de datos modernas no utilizan aserciones. Los disparadores se utilizan muy bien en las bases de datos modernas.

Las aserciones no pueden modificar los datos y no están vinculadas a ninguna tabla o evento específico en la base de datos, pero los disparadores son más poderosos porque pueden verificar las condiciones y también modificar los datos dentro de las tablas dentro de una base de datos, a diferencia de las aserciones. 

Publicación traducida automáticamente

Artículo escrito por dadimadhav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *