본문 바로가기
IT

DB 트리거와 프로시저 예제 정리 – 데이터베이스 자동화 이해하기

by 카카오망고 2025. 4. 22.
반응형

목차

    👉DB 트리거와 프로시저 예제 정리 바로 보기

    DB 트리거와 프로시저이란

    현대의 데이터베이스 관리 시스템에서 데이터 무결성과 효율적인 데이터 처리는 필수적인 요소입니다. 이를 위해 DB 트리거와 프로시저는 매우 중요한 역할을 합니다. DB 트리거는 특정 이벤트가 발생했을 때 자동으로 실행되는 프로시저를 의미하며, 프로시저는 특정 작업을 수행하기 위해 미리 정의된 SQL 문들의 집합입니다. 이 두 가지 기능은 데이터베이스의 자동화 및 응답성 향상에 큰 기여를 합니다.

     

    본 글에서는 DB 트리거와 프로시저에 대한 기본 개념을 소개하고, 각 기능의 사용 예제를 통해 이해를 돕고자 합니다. 또한, SQL 언어에서 트리거와 프로시저가 어떻게 동작하는지에 대한 구체적인 내용을 설명할 것입니다. 이를 통해 독자들이 데이터베이스 기술에 대한 깊이 있는 이해를 가지게 되기를 바랍니다.

    DB 트리거란?

    DB 트리거는 데이터베이스 테이블에서 특정 이벤트가 발생했을 때 자동으로 실행되는 프로시저입니다. 이러한 이벤트에는 데이터의 삽입, 수정, 삭제 등이 포함됩니다. 트리거는 데이터 무결성을 유지하고, 자동화된 데이터 처리를 구현하는 데 유용합니다. 예를 들어, 사용자가 특정 테이블에 데이터를 삽입할 때마다 자동으로 로그를 기록하는 트리거를 설정할 수 있습니다.

     

    트리거는 크게 두 가지로 나뉘어집니다. 첫 번째는 행 수준 트리거로, 데이터가 추가되거나 수정되거나 삭제될 때마다 각 행에 대해 트리거가 실행됩니다. 두 번째는 문 수준 트리거로, SQL 문이 실행될 때마다 한 번만 트리거가 실행됩니다. 이러한 기능은 데이터베이스의 반응성을 높이고, 데이터의 정확성을 보장하는 데 중요한 역할을 합니다.

    DB 프로시저란?

    DB 프로시저는 미리 정의된 SQL 문들의 집합으로, 특정 작업을 수행하기 위해 호출됩니다. 프로시저는 여러 SQL 문을 조합하여 복잡한 작업을 수행할 수 있도록 해주며, 코드의 재사용성을 높이는 데 기여합니다. 예를 들어, 데이터의 삽입과 업데이트를 동시에 수행하는 복잡한 로직을 프로시저로 구현할 수 있습니다.

     

    프로시저는 매개변수를 받을 수 있으며, 이를 통해 입력 값에 따라 다양한 작업을 수행할 수 있습니다. 또한, 프로시저는 실행 후 결과를 반환할 수 있습니다. 이러한 특성 덕분에 프로시저는 대규모 데이터베이스 애플리케이션에서 매우 유용하게 활용됩니다.

    👉DB 트리거와 프로시저 예제 정리 확인하기

    DB 트리거의 기본 구조

    트리거는 다음과 같은 기본 구조로 작성됩니다:

    • CREATE TRIGGER: 트리거를 생성하는 명령어입니다.
    • BEFORE/AFTER: 어떤 이벤트가 발생하기 전 또는 후에 트리거가 실행될지를 결정합니다.
    • INSERT/UPDATE/DELETE: 트리거가 실행될 이벤트의 종류입니다.
    • FOR EACH ROW: 행 수준에서의 트리거를 정의하는 옵션입니다.
    • BEGIN... END: 트리거가 실행할 SQL 문을 포함하는 블록입니다.

    트리거를 통해 자동으로 데이터 무결성을 유지할 수 있으며, 복잡한 비즈니스 로직을 데이터베이스 수준에서 처리할 수 있습니다.

    DB 프로시저의 기본 구조

    프로시저는 다음과 같은 기본 구조로 작성됩니다:

    • CREATE PROCEDURE: 프로시저를 생성하는 명령어입니다.
    • AS: 프로시저의 본문을 시작하는 키워드입니다.
    • BEGIN... END: 프로시저의 실행 코드를 포함하는 블록입니다.

    프로시저는 매개변수를 통해 외부 입력을 받을 수 있으며, 이를 통해 다양한 조건에 따른 처리가 가능합니다. 이러한 기능은 대량의 데이터를 다룰 때 더욱 유용합니다.

    트리거 사용 예제

    예를 들어, 특정 테이블에 데이터가 삽입될 때마다 자동으로 로그를 기록하는 트리거를 작성해 보겠습니다. 아래는 간단한 예제입니다:

    • 트리거 이름: log_insert_trigger
    • 테이블 이름: employee
    • 이벤트: INSERT

    트리거의 코드는 다음과 같습니다:

     

    CREATE TRIGGER log_insert_trigger
    BEFORE INSERT ON employee
    FOR EACH ROW
    BEGIN
    INSERT INTO employee_log (employee_id, action) VALUES (NEW.id, 'Inserted');
    END;

     

    이 트리거는 'employee' 테이블에 새로운 직원 데이터가 추가될 때마다 'employee_log' 테이블에 로그를 기록합니다.

    프로시저 사용 예제

    다음으로, 직원의 급여를 업데이트하는 프로시저 예제를 살펴보겠습니다. 이 프로시저는 직원 ID를 입력받아 해당 직원의 급여를 업데이트합니다:

    • 프로시저 이름: update_salary
    • 매개변수: emp_id, new_salary

    프로시저의 코드는 다음과 같습니다:

     

    CREATE PROCEDURE update_salary(emp_id INT, new_salary DECIMAL(10, 2))
    BEGIN
    UPDATE employee SET salary = new_salary WHERE id = emp_id;
    END;

     

    이 프로시저는 주어진 직원 ID에 따라 급여를 업데이트하는 간단한 로직을 구현하고 있습니다. 프로시저 호출 시 매개변수로 전달된 값을 통해 데이터베이스의 급여 정보를 업데이트할 수 있습니다.

    트리거와 프로시저의 차이점

    트리거와 프로시저는 유사한 점이 있지만, 몇 가지 주요 차이점이 있습니다:

    • 실행 시점: 트리거는 특정 이벤트가 발생할 때 자동으로 실행되는 반면, 프로시저는 명시적으로 호출되어야 실행됩니다.
    • 목적: 트리거는 데이터 무결성을 유지하고 자동화된 프로세스를 지원하는 데 중점을 두며, 프로시저는 복잡한 비즈니스 로직을 처리하는 데 사용됩니다.

    이러한 차이점은 각 기능을 적절한 상황에서 활용하는 데 중요한 기준이 됩니다.

    FAQ

    Q1: 트리거를 사용하면 어떤 이점이 있나요?
    트리거를 사용하면 데이터 무결성을 자동으로 유지할 수 있으며, 특정 이벤트 발생 시에 자동으로 처리 로직을 실행할 수 있어 업무의 효율성을 높일 수 있습니다.

     

    Q2: 프로시저와 함수의 차이는 무엇인가요?
    프로시저는 값을 반환하지 않는 반면, 함수는 특정 값을 반환하는 기능을 가지고 있습니다. 함수는 일반적으로 계산을 수행하는 데 사용됩니다.

    결론

    DB 트리거와 프로시저는 데이터베이스의 효율성과 무결성을 높이는 데 중요한 도구입니다. 특히 대규모 데이터베이스 환경에서 이들은 필수적 요소로 자리 잡고 있습니다. 본 글에서는 이 두 가지 개념의 기본 구조와 사용 예제를 통해 이해를 도왔습니다. 이를 바탕으로 데이터베이스 기술을 활용하여 더 나은 시스템을 구축하실 수 있기를 바랍니다.

     

    트리거와 프로시저를 적절히 활용함으로써 데이터 처리의 자동화와 효율성을 높이는 데 기여할 수 있습니다. 데이터베이스 관리자가 되기 위한 첫걸음으로, 이러한 기술들을 깊이 이해하고 활용하는 것이 중요합니다.

    👉DB 트리거와 프로시저 예제 정리 바로보기

    반응형