본문 바로가기
oracle

pl/sql

by 신방동불주먹 2023. 4. 18.

관계형 데이터베이스 시스템(RDBMS) 에서 사용하는 표 준 언어인 SQL 은 절차형 언어가 아님.

 SQL의  DDL/DML/DCL 을 통해 데이터베이스를 정의 조작 제어 하는 것이 가능하지만 SQL은 결국 데이터의 처리 집합 만을 기술할 뿐  어떠한 절차를 걸쳐서 데이터 집합을 얻어야 하는지에대한 절차적 과정을 제공하지는 않는다.

일반적인 SQL 로직을 작성하면 이 문장의 실행순서는 옵티마이저에 의해 이루어지는데 , 이는 여러가지 데이터베이스 통계를 기초로 실행 게획을 처리하기 때문에 데이터를 일반적으로 빠르게 다루어 주지만 결국 개발자 입장에서는 융통성 있는 데이터 처리는 불가능 하다.

 이러한 단점을 극복하기 위한 대안으로 대부분의 상용 DBMS 는 절자척으로 작성이 가능한 PL/SQL을 제공하고 있다. PL/SQ은 절차적 언어의 특성을 가지고 있기 때문에 원하는 결과, 제약조건, 처리 절차를 개발자가 작성해야 한다.

 

PL/SQL 의 특징 

 1. 프로그래밍 언어와 데이터 처리의 통합 :  PL/SQL의 본질적은 목적은 데이터 처리를 보다 효울적으로 하는것에 있기 때문에  프로그래밍 언어 처럼 구성을 하지만 SELECT, DELETE, UPDATE, INSERT, MERGE와 같은 일반 SQL 문을 일반적따로 작업없이 사용할 수 있다. 

 

 2. 블록 단위 구성 : PL/SQL 모두 블록 구조로 이루어져있다. 이 블록 구조는 선언부 , 실행부 , 예외처리 부로 나뉘며  DECLARE - BEGIN - EXCEPTION - END  가 이에 해당.

 

 3. 순차 처리 지원 : 순차 처리를 지원하는 언어이기 떄문에 IF , LOOP, FOR WHILE 등과 같은 제어문, 반복문의 사용이 가능

 

 4. 예외처리 지원 : PL/SQL은 강력한 예외처리기능을 가지고 있습니다. 실행중에 정상적인 흐름에 위반되는 상황이 발생하면 예외 처리기가 동작하여 이를 처리할 수 있다

 

 5. 서브프로그램지원 : 서브프로그램은 PL/SQL FUNCTION 과 프로시저를 지원

 

 6. 패키지를 사용한 모듈화를 지원 : 패키지는 연관성을 가지는 타입, 상수, 변수 , 커서, 예외처리, 서브프로그램들을 역어서 하나의 응용 단위로 구성하는 것을 말하는데 PL/SQL은 이를 제공한다.

 

7. 트리거 : 트리거는 데이터 베이스에서 발생하는 이벤트를 처리하는 기능을 제공하며 이벤트 발생 시에 트리거는 자동으로 실행되어 작성된 PL/SQL 로직을 호출

 

8. 객체 지향 프로그래밍 지원 : PL/SQL 은 JAVA ,C++ C# 같은 언어와 같이 객체 타입을 제공

 

9. 다양한 내장 API : 오라클 DBMS 는 수많은 API를 제공하며 이들은 패키지나 함수 , 프로시저 등으로 제공이 되는데  PL/SQL을 작성하는데 있어서 요긴하게 사용할 수 있는 내장API를 많이 지원 하고 있다

 

10. 플랫폼 독립적 : PL/SQL은 어떤 운영체제인것과 별개로 같은 오라클 버전에선 관계없이 수행이 가능하다다

 

'oracle' 카테고리의 다른 글

[DB]공통코드  (0) 2023.03.22
spring date format  (0) 2023.01.28
NLS_DATE_FORMAT 변경  (0) 2023.01.28
식별관계 비식별관계  (0) 2023.01.27
ERD CLOUD  (0) 2022.11.25