[sql] 뷰와 트리거의 관계

SQL에서 뷰(view)트리거(trigger)는 데이터베이스 개체로 사용자가 데이터를 조회하고 조작하는 데 유용한 기능을 제공합니다. 이들은 각각 데이터의 가상화와 자동화에 기여하며 상호 작용하는 방식으로 데이터를 제어합니다.

1. 뷰(View)

뷰는 하나 이상의 테이블로부터 가져온 결과를 가상의 테이블 형태로 보여주는 쿼리 결과를 나타냅니다. 뷰를 사용하면 사용자는 기존의 테이블에서 데이터를 직접적으로 보지 않아도 됩니다. 이를 통해 데이터 접근 권한 제어, 복잡한 쿼리의 간소화 등 다양한 장점을 얻을 수 있습니다.

예시:

CREATE VIEW employee_salary AS
SELECT emp_id, emp_name, salary
FROM employee
WHERE salary > 50000;

2. 트리거(Trigger)

트리거는 데이터베이스에서 특정 이벤트가 발생했을 때 자동으로 실행되도록 하는 저장된 절차(Stored Procedure)입니다. 트리거는 데이터 변경, 테이블 액션 등과 관련된 작업을 감지하고 처리할 수 있으며 데이터 일관성과 무결성 유지에 중요한 역할을 합니다.

예시:

CREATE TRIGGER update_salary
AFTER UPDATE OF salary ON employee
FOR EACH ROW
BEGIN
   IF NEW.salary < OLD.salary THEN
      INSERT INTO salary_log (emp_id, old_salary, new_salary, change_date)
      VALUES (NEW.emp_id, OLD.salary, NEW.salary, NOW());
   END IF;
END;

3. 뷰와 트리거의 관계

뷰와 트리거는 개별적으로 사용될 수 있지만, 두 가지를 함께 사용하면 데이터의 가시성과 일관성을 높일 수 있습니다. 예를 들어, 뷰를 이용해 특정 조건에 맞는 데이터를 추출하고 트리거를 사용해 해당 데이터에 변경이 일어날 때 특정 작업을 수행하는 등의 활용이 가능합니다.

이러한 관계를 통해 데이터베이스 시스템은 보다 효율적이고 안전한 데이터 관리가 가능해집니다.

결론

뷰와 트리거는 SQL 데이터베이스 시스템에서 중요한 역할을 합니다. 두 가지를 적절히 활용하여 데이터 관리 및 조작 프로세스를 최적화할 수 있으며, 데이터의 가시성과 일관성을 제고할 수 있습니다.