본문 바로가기

Languages/Visual Basic

IT Business - 데이터모델링 계속 -> 프로시저 , 트리거



 데이터모델링-프로시저


▶프로시저? (Procedure)

  • SQL문을 컴파일하여, 서버의 데이터베이스에 저장합니다.
  • 프로그래밍에서, 프로시저는 루틴 이나, 서브루틴 및 함수 와 같은 뜻입니다. 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램 의 일부입니다. 일반적인 의미의 프로시저란, 어떤 행동을 수행하기 위한 일련의 작업 순서를 말합니다. 출처 : 텀즈(http://www.terms.co.kr/procedure.htm)
  • 서버에 내장되는 함수이며, 반복적으로 발생되는 쿼리를 함수화하여 저장해 놓은 것입니다.
  • 일반적으로 부를 때 '저장 프로시저' 라고 합니다.
    • 장점★
      • 서버가 해당 프로시저를 컴파일 해둔 상태로 캐싱이 가능하므로, 해당 쿼리를 빠른 속도로 수행이 가능합니다.
    • 작성의 예★[1]
      • Create Proc 프로시저명
      • AS
      • Declare ..... 변수명 정의 (변수명을 정의할 때는 @를 붙입니다)
      • @ Grade TinyINT, @Class TinyTINT
      • Set 초기화 값
      • @ Grade = 0
      • .......
      • END
    • 작성의 예★[2]
      • CREATE PROCEDURE [dbo].[simple_if]
        @indata varchar(16),
        @result varchar(8) OUTPUT
        AS
        SET NOCOUNT ON
      • BEGIN
        if @indata not in ('A','B','C','D') 
        begin
        SET @result = 'FALSE';
        end;
        else
        begin
        SET @result = 'TRUE';
        end;
        end;
  • [따라하기]


▲ [-] 위와 같이 프로시저를 생성합니다.




▲ [-] 생성된 프로시저는 바로 실행되지 않습니다. 따라서 EXECUTE 명령을 통하여 실행합니다.




▲ [-] 실행은 한번만 하는데 3개의 행이 적용됐네요. 저것은 프로시저가 동작함으로서 반복 작업을 해주었기 때문입니다.




▲ [-] 또 다른 프로시저의 예입니다.






▲ [-] 마찬가지로 반복작업이 동작되죠~? ^^

# 이처럼 프로시저는 반복적인 작업을 하고자 할때 사용하면 편리합니다.





 데이터모델링-트리거


▶트리거? (Trigger)

  • 트리거(Trigger)의 원 의미는 ‘방아쇠’입니다. 트리거는 지정된 어떤 변경이 시도되면, 일련의 행동들을 취하도록 시스템에게 알릴 수 있으며, 트리거는 부정확하고, 허가 받지 않았으며, 일관성이 없는 데이터 변경을 방지함으로써, 데이터베이스의 ...
  • 출처 : 텀즈 (www.terms.co.kr/trigger.htm)
  • 종속된 테이블에 Insert,Update, Delete 작업 발생시 자동으로 실행되는 이벤트 입니다.
    • 장점★
      • 복잡한 업무 규칙을 단순화시키며 강력한데이터의 무결성을 보장합니다.
    • [따라하기]


▲ [-] 트리거는 각 테이블마다 존재하는 함수입니다.






▲ [-] 좀 복잡해 보여도 뜯어보면 그렇게 복잡한 것은 아니에요. 트리거는 # 뒤에 설명문 처럼

어떠한 DML이 실행되고 난 후에 수행하는 함수입니다.






▲ [-] 트리거를 만들고 나면, 다음과 같이 해당테이블에 트리거가 생긴것을 확인할 수 있습니다.






▲ [-] 트리거는 추적자의 역할을 하게되는데, 어떠한 테이블에 자료를 입력하면 거기에 맞는 트리거가 동작하게 됩니다.






▲ [-] 동일한 내용이 다른 테이블에도 입력된 것을 볼 수 있습니다.






▲ [-] 트리거 생성의 예 입니다.






▲ [-] 마찬가지로 업데이트를 하면 이전에 만들었던 트리거에 적용되어 2행이 변경됐다는 것을 확인할 수 있습니다.






▲ [-] 쿼리를 전송하여 출력해도 그렇죠?~ ^ㅡ^/

 

'Languages > Visual Basic' 카테고리의 다른 글

VB - Data Environment Designer [1]  (0) 2012.10.26
VB - Data Environment Designer [2]  (0) 2012.10.26
VB - Data Report Designer [1]  (0) 2012.10.26
VB - Data Report Designer [2]  (0) 2012.10.26
VB 데이터베이스 - 데이터 차트  (0) 2012.10.26