본문 바로가기
데이터베이스

데이터베이스 트리거, 프로시저, 사용자 정의 함수 개념 정리

by 흰색남자 2022. 9. 25.

https://blog.pages.kr/100

 

트리거 ( Trigger )

트리거는 테이블에 작성한다. 어떤 테이블에 행을 삽입한다든지, 행을 변경, 삭제했을 때에 트리거가 설정되어 있으면, 트리거 안의 SQL문장이 자동으로 실행된다.이 기능을 사용하면 데이터의 추가, 삭제, 변경과 함께, 관계하는 테이블을 조작하여 데이터베이스로서 모순이 없는 상태를 자동적으로 생성할 수 있다. 

 

 

프로시져

(Stored Procedure)

저장 프로시져는 미리 데이터베이스 서버에 일련의 SQL명령을 해 놓고, 프로시져를 샐행하여 몇개의 SQL 명령을 간단히 실행할 수 있도록 하기 위해 고안된 것이다.프로시져 안에는 SQL 문장 뿐만 아니라, IF문, WHILE문 등의 제어 명령이나 반복명령을 기술할 수 있기 때문에 일종의 프로그램도 만들 수 있다.  

리눅스 ALIAS라 생각하면 편할듯?

 

트리거 (TRIGGER) 란?

  • 간단히 말해 INSERT,UPDATE, DELETE 문이 Table 에 대하여 수행 되어질 때 묵시적으로 수행되는 Procedure 이다.
  • 트리거는 table 에 저장되는 것이 아니라 별도로 오라클 데이터베이스 자체에 저장 된다.
  • 트리거는 view 에 대해서는 동작하지 않고 table 자체에 대해서만 정의 될 수 있다.

 

트리거란 특정 테이블의 데이터에 변경이 가해졌을때 묵시적으로 자동으로 수행되는 저장 프로시져라 할 수 있다. C++ 언어 또는 Java 의 Class 의 경우 Constructor 와 Destructor 가 있다. 이들은 Class 가  만들어 질때 자동으로 호출되거나 아니면 소멸되기 전에 자동으로 호출되는 묵시적 수행 함수이다. 바로 이와 같은 기능이 트리거이다.

일반적으로 저장 프로시져 (Stored Procedure)는 사용자가 필요할 때 직접 수행시켜서 해당 프로시져를 수행하였다. 하지만 트리거는 이와 다르게 테이블에 INSERT, UPDATE, DELETE 문에 의하여 변경이 되어질 때 자동으로 수행되므로 이 기능을 이용하여 여러가지 작업을 할 수 있다. 트리거는 이와 같은 특성이 있기 때문에 사용자가 직접 호출 할 수는 없다.