트리거(Trigger)는 이름 그대로 방아쇠처럼, 미리 정한 사건이 발생하면 정의해 둔 작업을 자동으로 실행하는 데이터베이스 객체다. INSERT, UPDATE, DELETE 같은 이벤트가 일어날 때마다 관련 절차가 자동으로 수행된다. 사용자가 매번 명령을 입력하지 않아도 시스템이 정한 규칙을 적용한다는 점이 핵심이다.
활용 범위는 데이터 변경에 딸린 부수 작업이다. 주문 테이블에 새 주문이 입력되거나 금액이 변경되면 재고 테이블을 자동으로 갱신하거나 로그를 남길 수 있다. 데이터 무결성을 유지하거나 감사 로그를 기록하는 데 주로 쓴다. 트랜잭션을 취소하는 조치 이외에, 메시지를 보내거나 어떤 값을 자동으로 갱신하도록 프로시저를 기동시키는 경우에도 트리거가 쓰인다.
트리거와 헷갈리는 개념은 역할이 다르다. 무결성은 데이터의 정확성과 일관성을 유지하는 제약 조건 자체이고, 잠금은 여러 사용자가 동시에 데이터를 수정할 때 충돌을 막는 동시성 제어 기법이며, 복귀(롤백)는 트랜잭션을 취소하는 기능이다. 이들은 자동으로 다른 작업을 기동하는 절차가 아니다. 특히 롤백은 트랜잭션 취소 자체를 가리키므로, 취소 이외의 조치를 자동 수행하는 기능을 묻는 자리와는 정반대다.
예제
선지 판단은 이벤트 발생 시 관련 작업을 자동 수행하는 절차형 SQL 객체를 트리거로 고르는지, 자동 갱신용 프로시저 기동을 트리거로 읽는지, 무결성을 데이터 정확성의 제약 조건으로, 잠금을 동시성 제어로, 롤백을 트랜잭션 취소로 구분해 자동 실행 기능과 섞지 않는지에서 갈린다.
대표 기출 2문항
데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL은?
트리거(trigger)
무결성(integrity)
잠금(lock)
복귀(rollback)
정답과 해설 보기
정답 ① · 삽입, 갱신, 삭제 등의 이벤트 발생 시 관련 작업이 자동으로 수행되는 절차형 SQL을 묻는 문제이다. 트리거(trigger)는 데이터베이스에서 INSERT, UPDATE, DELETE 같은 이벤트가 발생하면 정의된 절차가 자동으로 실행되는 절차형 SQL 객체이다.
이벤트 발생 시 자동으로 관련 작업을 수행하는 절차형 SQL 객체는 트리거입니다.
트랜잭션을 취소하는 이외의 조치를 명세할 필요가 있는 경우 메시지를 보내 어떤 값을 자동적으로 갱신하도록 프로시저를 기동시키는 방법은?
트리거(trigger)
무결성(integrity)
잠금(lock)
복귀(rollback)
정답과 해설 보기
정답 ① · 트랜잭션 취소 외의 조치를 위해 이벤트 발생 시 자동으로 프로시저를 기동시키는 DBMS 기능을 묻는 문제이다. 특정 이벤트(INSERT, UPDATE, DELETE 등)가 발생하면 정의된 프로시저를 자동으로 수행하여 값을 갱신하는 기능은 트리거의 고유 역할이다.
트랜잭션 취소 외 자동 갱신은 트리거가 담당하며, 무결성·잠금·롤백은 각각 제약·동시성·취소 기능이다.