프로시저(Procedure)

: 프로시져는 프로그램에서 특정 동작을 수행하는 이름이 주어진 일정 부분이다. (함수의 역할)

 

: 프로시져는 특정 동작이나 연산을 위한 명령들을 별도로 마련하여 필요할 때마다 사용하는 것으로 프로그램에서 이름을 부를 때마다 실행이 된다. 이 때 프로시져에서 사용한 값을 매개변수를 통하여 전달하기도 한다.

 

: 프로시져는 컴퓨팅 사고의 요소 중의 하나의 추상화를 프로그램으로 만들 수 있는 방법을 제시하고 있으므로 컴퓨팅 사고에 의한 문제 해결 방법을 프로그래밍하는데 중요한 역할을 할 수 있다.

 

저장 프로시저(Stored procedure)

: 저장 프로시저 또는 스토어드 프로시저는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한(지속성) 것으로, 영구저장모듈이라고도 불린다.

 

: 데이터베이스 언어 표준 SQL에서는 SQL / PSM 기준으로 책정되어 있다. 벤터(제조사) 각사 모두 정적, 동적 SQL에 커서 처리 및 제어 구문, 예외 처리 등을 포함한 사양의 확장 언어로 절차를 설명할 수 있는 DBMS를 제공하는 경우가 많다. 또한 C 언어로 작성된 컴파일한 외부 모듈(공유 라이브러리) 및 Java 클래스 라이브러리에서 함수나 클래스 메소드를 호출하는 것으로 실현하는 '외부 프로시저' 기능을 구현하는 것도 있다. 저장프로시저를 사용하여 다음과 같은 장점이 있다.

 

1. 하나의 요청으로 여러 SQL문을 실행할 수 있다. (네트워크에 대한 부하를 줄일 수 있다.)

2. 미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 하므로 처리 시간이 줄어든다.

3. 데이터베이스 트리거와 결합하여 복잡한 규칙에 의한 데이터의 참조무결성 유지가 가능하게 된다. 간단히 말하면 응용 프로그램 측 로직을 가지지 않고도 데이터베이스의 데이터 앞뒤가 맞게 될 수 있다.

4. Java 등의 호스트 언어와 SQL 문장이 확실하게 분리된 소스 코드의 전망이 좋아지는 것, 또한 웹사이트 등 운용 중에도 저장 프로시저의 고체에 의한 수정이 가능하기 때문에 보수성이 뛰어나다

 

저장 프로시저를 많이 사용하면 다음과 같은 단점이 있다.

1. 데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL / PSM 표준과의 호환성이 낮기 때문에 코드 자산으로의 재사용성이 나쁘다.

2. 비즈니스 로직의 일부로 사용하는 경우 업무의 사양 변경 시 외부 응용 프로그램과 함께 저장프로시저의 정의를 변경할 필요가 있다. 이때 불필요한 수고와 변경 실수에 의한 장애를 발생시킬 가능성이 있다.

+ Recent posts