[DB] 데이터베이스 트리거(Trigger)란?
- Computer Science/[DB]
- 2022. 9. 5.
블로그 이사합니다
아래에서 확인 가능합니다.
https://code-lab1.com/%ED%8A%B8%EB%A6%AC%EA%B1%B0/
데이터베이스 트리거(Trigger)란?
데이터베이스 트리거는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 INSERT, DELETE, UPDATE 같은 DML(데이터 조작 언어)의 데이터 상태 관리를 자동화하는데 사용된다.
트리거(Trigger)는 말 그대로 방아쇠이다. 방아쇠를 당기면 총에서 총알이 발사되듯, 트리거가 실행되면 일련의 작업을 수행하게 된다.
트리거 유형
트리거는 크게 행 트리거와 문장 트리거가 존재한다.
- 행 트리거 : 테이블 안의 영향을 받은 행 각각에 대해 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다.
- 문장 트리거 : INSERT, UPDATE, DELETE 문에 대해 한 번만 실행된다.
또한 트리거는 다음과 같은 속성을 갖는다.
- BEFORE 또는 AFTER : 트리거가 실행되는 시기를 지정한다.
- INSTEAD OF : 트리거를 원래 문장 대신 수행한다.
- WHEN : 트리거를 시작하는 조건식을 지정한다.
일반적으로 트리거는 다음의 3 가지 경우에 시작된다. 트리거는 SELECT 문에 의한 데이터 검색에 영향을 미칠 수 없다.
- INSERT (새로운 행 삽입)
- UPDATE (기존 행의 변경) / UPDATE OF (기존 행의 특정 열 변경)
- DELETE (기존 행 삭제)
트리거의 장점
- 데이터 무결성 강화(참조 무결성)
- 업무 규칙의 설정
- 검사 기능의 확장
트리거의 단점
- 유지보수의 어려움
- 예상치 못한 오류
반응형
'Computer Science > [DB]' 카테고리의 다른 글
[DB] 제 4정규형과 제 5정규형, 4NF와 5NF (4) | 2022.11.01 |
---|---|
[DB] OLTP란? OLAP란? DSS란? OLTP와 OLAP의 차이 (0) | 2022.10.20 |
[DB] 리플리케이션(Replication)이란? 클러스터링(Clustering)이란? (0) | 2022.04.19 |
[DB] 파티셔닝(Partitioning)이란? 샤딩(Sharding)이란? 파티셔닝과 샤딩의 차이점 (0) | 2022.04.12 |
[DB] 시스템 카탈로그(System Catalog)란? (1) | 2022.02.23 |