본문 바로가기
자격증/SQLD

SQLD 요약 - (8) SQL활용_절차형SQL,PROCEDURE, TRIGGER

by 땅콩둘기 2021. 5. 25.
반응형

절자형SQL

SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장모듈인 PROCEDURE, TRIGGER, USER DEFINED FUNCTION을 만들 수 있다.

T-SQL : SQL Server를 제어하기 위한 언어

USER DEFINED FUNCTION : PROCEDURE처럼 절차형 SQL을 로직과 함께 데이터베이스 내에 저 장해 놓은 명령문의 집합을 의미. PROCEDURE과 달리 RETURN 사용해서 하나의 값을 반드시 되 돌려주어야 한다.


PROCEDURE

저장 모듈 : PL/SQL DB 문장을 서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL , 컴포넌트 프로그램 독립적으로 실행 되거나 다른 프로그램으로부터 실행될 수 있는 완전한 실행 프로그램

 

PL/SQL (Procedural Language extension to SQL)

 ➡ SQL을 확장한 절차적 언어(Procedural Language)

➡ 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어로, 프로시저 생성자를 SQL과 완벽하게 통합한다.

 

PL/SQL 특징

 

1. Block 구조로 되어있어 각 기능별로 모듈화 가능

2. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환

3. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.

4. DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.

5. PL/SQL Oracle 은 에 내장되어 있으므로 호환성이 좋다.

6. 응용 프로그램의 성능을 향상시킨다.

7. Block -> 단위로 처리 통신량을 줄일 수 있다.

 

PL/SQL Block 구조

DECLARE  BEGIN~END 절에서 사용될 변수와 인수 에 대한 정의 및 데이터 타입 선언부
BEGIN~END  개발자가 처리하고자 하는 SQL문과 여러 가지 비교문 제어문을 , 이용 필요한 로직 처리
EXCEPTION BEGIN~END절에서 실행되는 SQL문이 실행될 때 에러가 발생하면 그 에러를 어떻게 처리할지 정의하는 예외 처리부

 


TRIGGER 

특정한 테이블에 INSERT,UPDATE,DELETE 와 같은 DML 문이 수행되었을 때, 데이터 베이스에서 자동으로 동작하도록 작성한 프로그램 사용자가 직접 호출하여 사용하는 것이 아니고 데이터베이스에서 자동적으로 수행

✔ 이벤트 발생 대상 : 테이블, 뷰, 데이터베이스

✔ 발생 범위 : 전체트랜잭션 작업, 각 행에 대해서 발생

 

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

프로시저 트리거
Create procedure Create trigger
Execute 명령어로 실행 생성 후 자동으로 실행
COMMIT, ROLLBACK 가능 COMMIT, ROLLBACK 불가능

 


옵티마이저

✔ 규칙기반 옵티마이저 : 우선순위가 높은 규칙이 적은 일량으로 해당작업을 수행하는 방법

✔ 비용기반 옵티마이저 : SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식

실행계획 : SQL에서 요구한 사항을 처리하기 위한 절차와 방법을 의미 실행계획을 구성하는 요소에는 조인순서(Join Order), 조인기법(Join Method), 엑세스 기법(Access Method), 최적화 정보(Optimization Information), 연산(Operation) 등이 있다.

반응형

댓글