더북(TheBook)

많은 데이터베이스 설계 요소와 마찬가지로 동일한 결과를 얻는 방법은 여러 가지다. 트리거는 데이터를 관리하는 한 가지 접근 방법일 뿐 최상의 방법은 아니다. 물론 다음과 같이 트리거를 사용하는 것이 적절할 때도 있다.

중복 또는 파생 데이터의 관리 : 역정규화된 데이터베이스는 일반적으로 데이터를 중복으로 저장한다. 트리거로 이런 데이터를 동기화할 수 있다.

복잡한 컬럼 제약 조건 : 컬럼의 제약 조건이 동일한 테이블의 다른 로우 또는 다른 테이블의 로우에 의존한다면, 트리거가 이 컬럼의 제약 조건을 유지하는 최상의 방법이다.

복잡한 기본 값 : 다른 컬럼, 로우, 테이블에 있는 데이터를 기준으로 기본 값을 생성하는 데 트리거를 사용할 수 있다.

데이터베이스 간 참조 무결성 : 관련 테이블을 두 데이터베이스에 나누었다면 트리거로 데이터베이스 간 참조 무결성을 확보할 수 있다.

Note ≣

이 경우 테이블보다는 뷰에 트리거를 생성하면 좋다. 이렇게 하면 대량의 가져오기(Import)(임포트)/내보내기(Export)(익스포트) 작업을 할 때는 트리거를 작동하지 않고, 애플리케이션에서 데이터를 처리할 때만 트리거를 작동할 수 있기 때문이다.

Note ≣

DBMS별로 제약 조건이나 기본 값을 처리하는 데 제약이 있다. 예를 들어 일부 DBMS는 서브쿼리에서 CHECK 제약 조건을 생성할 수 없는데, 그 대안으로 트리거를 사용해 처리할 수 있다. 트리거 없이 필요한 처리를 할 수 있는지는 관련 DBMS 문서를 참고하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.