티스토리 뷰

728x90

내장 함수

- SQL 명령문 안에서 검색 결과를 반환하거나 원하는 결과로 가공하는 SQL 함수 사용 가능

- DBMS가 제공하는 내장 함수와 사용자가 직접 정의하는 사용자 정의 함수로 구분

 

MySQL 주용 내장 함수 표

 

 

 

 

저장 프로시저

- 미리 작성하여 데이터베이스 안에 저장한 SQL 문의 묶음

- 독립된 프로그램으로 데이터베이스 안에 하나의 객체로 저장

- 보통 DBA가 데이터베이스 관리를 수행하기 위해 사용하는 기능들이 DBMS에 의해 저장 프로시저로 제공됨

- 직접 저장 프로시저를 정의하면, 복잡한 조건의 SQL 작업을 함수처럼 인자만 전달해서 실행 가능

- 최적화된 SQL문을 미리 데이터베이스에 작성해둘 수 있고, 복잡한 SQL문을 전달할 필요가 없어 네트워크 부하가 줄어들며 여러 응용 프로그램간의 공유가 가능한 것이 장점

 

활용

 

커서

- 검색 결과 안의 행들을 한 번에 하나씩 처리하기 위해 테이블의 특정 행을 가리키는 객체

- 검색 저장 프로시저의 실행 결과는 여러 행이나 열을 포함할 수 있음. 이 때 커서를 사용

 

 

트리거

- 데이터 변경 등의 명세된 이벤트가 발생할 때, 이를 감지하여 자동 실행되는 사용자 정의 프로시저

- 트리거가 정의된 테이블 또는 뷰에 대한 삽입, 삭제, 수정 요청이 수행될 때, DBMS에 의해 자동 호출

- 데이터 무결성 제약 조건 이외에 별도의 무결성 조건과 일관성 조건들을 추가로 적용하고자 할 때 매우 유용

 

 

사용자 정의 함수

- 기본 제공 함수가 충분하지 않을 때 필요한 함수를 직접 정의할 수 있음

- 사용자가 직접 정의한 함수로, DBMS 안에 독립된 데이터베이스 객체로 저장

- 변환되는 결과 값에 따라 스칼라 함수와 테이블 함수로 분류

- 스칼라 함수는 하나의 값 또는 NULL을 반환

- 테이블 함수는 각 행이 하나 이상의 열로 구성된 테이블을 반환

 

 

저장 프로시저, 트리거, 사용자 정의 함수의 비교 표

 

저장 프로시저는 여러 응용 프로그램 사이에 공유함으로써 처리의 일관성이 높아지고, 보안을 쉽게 강화할 수 있음

또, 전송되는 SQL문의 양을 줄이고, 미리 컴파일된 코드를 호출함으로써 반복적인 처리를 할 경우 성능 향상

 

트리거는 복잡한 데이터 무결성을 강화하거나, 다양한 데이터 처리 업무 규칙을 구현할 수 있지만 성능이 다소 저하될 수 있음

 

사용자 정의 함수는 특정 값 뿐만 아니라 테이블도 반환할 수 있어 제한된 SQL 명령문의 기능을 확장시키고 명령문 작성의 편의성을 향상시키는 장점

 

 

 

댓글