1. 트리거의 개요
- 데이터베이스 시스템에서 데이터의 삽입 Insert, 갱신 Update, 삭제 Delete 등의 이벤트 Event가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
- 이벤트 : 시스템에 어떤 일이 발생한 것, 트리거에서 이벤트는 데이터 조작 작업이 발생했음을 의미
- 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용
- 무결성 : 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건
- 로그 메시지 출력 : 명령어, 데이터 처리 과정 및 결과 등을 기록으로 남긴 로그를 메시지로 출력할 때 이용
- 트리거의 구문에는 DCL(데이터 제어어)을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류가 발생
- 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거를 생성할 때 세심한 주의가 필요
2. 트리거의 구성
- 선언, 이벤트 시작, 종료로 구성
- 시작과 종료 구문 사이에는 제어 CONTROL, SQL, 예외 EXCEPTION가 포함
- 트리거 구성도
- DECLARE : 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의하는 선언부
- EVENT : 트리거가 실행되는 조건을 명시
- BEGIN / END : 트리거의 시작과 종료를 의미
- CONTROL : 조건문 도는 반복문이 삽입되어 순차적으로 처리
- SQL : DML문이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업을 수행
- EXCEPTION : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법을 정
3. 트리거의 생성
- 명령어 : CREATE TRJIGGER
- 표기 형식
-
CREATE [OR REPLACE] TRIGGER 트리거명 동작시기 동작 ON 테이블명
[REFERENCING NEW | OLD AS 테이블명]
[FOR EACH ROW [WHEN 조건식]]
BEGIN
트리거 BODY;
END; - 동작시기 : 트리거가 실행될 때를 지정
- AFTER : 테이블이 변경된 후에 트리거가 실행
- BEFORE : 테이블이 변경되기 전에 트리거가 실행
- 동작 : 트리거가 실행되게 할 작업 종류를 지정
- INSERT : 테이블에 새로운 튜플을 삽입할 때 트리거가 실행
- DELETE : 테이블의 튜플을 삭제할 때 트리거가 실행
- UPDATE : 테이블의 튜플을 수정할 때 트리거가 실행
- NEW | OLD : 트리거가 적용될 테이블의 별칭을 지정
- NEW : 추가되거나 수정에 참여할 튜플들의 집합(테이블)을 의미
- OLD : 수정되거나 삭제 전 대상이 되는 튜플들의 집합(테이블)을 의미
- FOR EACH ROW : 각 튜플마다 트리거를 적용한다는 의미
- WHEN 조건식 : 선택적인 Optional 예약어, 트리거를 적용할 튜플의 조건을 지정
- 트리거 BODY
- 트리거의 본문 코드를 입력하는 부분
- BEGIN으로 시작해서 END로 끝나는데, 적어도 하나 이상의 SQL문이 있어야 함, 그렇지 않으면 오류 발생
-
4. 트리거의 제거
- 명령어 : DROP TRIGGER
- 표기형식
-
DROP TRIGGER 트리거명;
-
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] SQL 활용 - 089. DBMS 접속 기술 (0) | 2025.02.17 |
---|---|
[정보처리기사 필기] SQL 활용 - 088. 사용자 정의 함수 (0) | 2025.02.16 |
[정보처리기사 필기] SQL 활용 - 086. 프로시저 Procedure (0) | 2025.02.16 |
[정보처리기사 필기] 물리 데이터베이스 설계 - 077. 데이터베이스 백업 (0) | 2025.02.16 |
[정보처리기사 필기] 물리 데이터베이스 설계 - 076. 데이터베이스 보안 - 접근통제 (0) | 2025.02.16 |