[Computer Science][Database] 데이터 무결성의 숨은 수호자, 트리거로 자동화의 신세계 열기!

김상욱·2024년 10월 12일
0
post-thumbnail

💡 트리거(Trigger)란 무엇인가?

트리거(Trigger)는 데이터베이스에서 특정 이벤트가 발생할 때 자동으로 실행되는 규칙입니다. 주로 INSERT, UPDATE, DELETE 같은 데이터 변경 작업이 일어날 때 실행되며, 이를 통해 데이터 무결성 유지자동화 작업을 처리하는 데 유용합니다.


트리거의 주요 특징 🔍

  1. 자동 실행
    트리거는 특정 조건이 충족되면 사용자가 명시적으로 실행하지 않아도 자동으로 실행됩니다.

  2. 무결성 유지
    데이터베이스에서 트리거를 사용하여 데이터 무결성을 유지하거나, 특정 데이터 변경에 대한 기록을 남길 수 있습니다.

  3. 이벤트 기반
    트리거는 테이블 단위로 설정되며, 데이터 변경 이벤트(INSERT, UPDATE, DELETE)에 반응하여 동작합니다.


트리거의 동작 방식 💡

  • BEFORE 트리거: 데이터 변경 작업 이전에 실행됩니다. 데이터가 변경되기 전에 유효성 검사를 하거나 특정 로직을 적용할 수 있습니다.

  • AFTER 트리거: 데이터 변경 작업 후에 실행됩니다. 데이터가 변경된 후 관련된 작업을 처리하거나 로그를 기록할 때 사용됩니다.

예시 코드

CREATE TRIGGER before_insert_employee
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
    IF NEW.salary < 0 THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'Salary cannot be negative';
    END IF;
END;

위 트리거는 employees 테이블에 데이터가 삽입될 때 salary가 0보다 작은 경우 에러를 발생시키는 BEFORE 트리거입니다.


트리거의 종류 🎯

  1. BEFORE 트리거: 데이터가 변경되기 전에 실행됩니다.
  2. AFTER 트리거: 데이터가 변경된 후에 실행됩니다.
  3. INSTEAD OF 트리거: 지정된 작업을 대신하여 실행됩니다. 주로 뷰(View)에서 사용됩니다.

트리거의 장단점 ⚖️

장점 😊

  • 데이터 무결성 유지: 트리거를 통해 복잡한 데이터 무결성 규칙을 자동으로 적용할 수 있습니다.
  • 자동화: 특정 이벤트가 발생할 때마다 자동으로 실행되므로 반복 작업을 줄일 수 있습니다.
  • 로깅: 데이터 변경 내역을 자동으로 기록하거나 백업할 수 있습니다.

단점 😅

  • 디버깅 어려움: 트리거는 자동으로 실행되기 때문에 예상치 못한 흐름을 추적하고 디버깅하는 것이 어려울 수 있습니다.
  • 복잡성 증가: 트리거가 많아지면 시스템 복잡도가 높아져 유지보수가 어려울 수 있습니다.
  • 성능 저하: 트리거가 자주 실행되면 데이터 처리 속도가 느려질 수 있습니다.

트리거는 데이터베이스에서 자동화데이터 무결성 유지를 위한 강력한 도구입니다. 하지만, 너무 많은 트리거 사용은 성능 저하를 유발할 수 있으므로 신중히 사용해야 합니다! 😊

0개의 댓글