7일차 : 2-3 데이터 조작 프로시저 작성

Dev_HG·2020년 7월 4일
0

1. 프로시저

1. 프로시저(Procedure)의 개념

  • SQL를 이용해 생성된 데이터를 조작하는 프로그램이다.
  • 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다.(외부입력, 특정 시간 등)

2. 절차형 데이터 조작 프로시저

  • 절차형 데이터 조작 프로시저를 Oracle PL/SQL 기반으로 설명한다.

1. Oracle 기반 PL/SQL 개념

  • 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다.
  • Oracle 기반의 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수하다.

2. PL/SQL의 장점

  • PL/SQL의 장점으로는 컴파일 불필요, 모듈화 가능, 절차적 언어사용, 에러처리 등이 있다.
  • 컴파일 불필요 : 컴파일(Compile) 없이 스크립트(Script)생성 및 변경 후 실행 가능
  • 모듈화 가능 : 블록 내에서 논리적으로 관련된 문장 그룹화 가능, 복잡한 문제에 대해 나눠진 모듈 집합으로 구성
  • 절차적 언어 사용 : 데이터베이스의 테이블과 레코드(Record)를 기반으로 하는 동적 변수 선언 가능,단일형 데이터 타입과 복합형 데이터 타입 선언 가능
  • 에러처리 : 예외처리(Exception)처리 루틴(Routine)을 이용한 에러 처리가능

3. PL/SQL의 구성

  • PL/SQL은 프로그램을 논리적인 블록으로 나누게 하는 블록구조로 구성된다.
    PL/SQL 구성
  • 선언부(Declare) : 실행부에서 참조할 모든 변수, 상수, CURSOR, EXCEPTION을 선언
  • 실행부(Begin/End) : BEGIN과 END 사이에 기술되는 영역, 데이터를 처리할 SQL문과 PL/SQL 블록을 기술
  • 예외부(Exception) : 실행ㅇ부에서 에러가 발생했을 때 문장 기술

4. PL/SQL을 활용한 저장형 객체 활용

  • 저장형 객체로 저장된 함수, 저장된 프로시저, 저장된 패키지, 트리거가 있다.
    [저장된 프리시저 (Stored Procedure)]
  • 작성한 PL/SQL을 저장해 놓고 피료한 경우 호출
  • 매개 변수를 받을 수 있고, 반복적으로 사용할 수 있는 객체
  • 배치작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장할 수 있도록 기능 제공
  • CREATE OR REPLACE 구문을 사용
    [저장된 함수 (Stored Function)]
  • 저장 프로시저와 용도는 비슷하나, 실행결과를 되돌려 받을 수 있음
  • 값을 계산하고 결괏값을 반환하기 위해 사용
  • 반드시 반환될 값의 데이터 타입을 Return 문에 선언해야 한다.
  • PL/SQL 블록 내에서 Return 문을 통해서 반환해야 하낟.
    [저장된 패키지 (Stored Package)]
  • 프로시저나 함수를 효율적으로 관리하기 위해 패키지 단위로 배포할 때 ㅅ용
  • 패키지는 선언부와 본문으로 구성
  • 선언부 : 프로시저 또는 함수 헤더 부분만 작성되며, 선언한 모든 요소들은 패키지 전체에 적용
  • 본문 : 선언부에서 선언된 하수 헤더를 구현하는 부분으로, 실제 내용에 해당

[트리거 Trigger]

  • 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램
  • 트리거는 테이블과는 별도로 데이터베이스에 저장
  • 트리거는 뷰가 아닌 테이블에 관해서만 정의될 수 있음
  • DBMS_ OUTPUT.PUT_LINEIN을 출력하기 위해 'set serveroutput on'을 사용

2. 프로그램 디버깅

1.프로그램 디버깅(Program Debugging)의 개념

  • 프로시저가 입력 자료를 받아 출력을 올바르게 도출하는지에 관한 확인 과정이다.
  • 데이터베이스 프로시저에 대한 검증 작업을 프로그램 디버깅이라 한다.

2.프로그램 디버깅 도구

  • 프로시저의 디버깅을 위해 SQL*Plus라는 도구를 이용한다.
  • SQL*PLUS는 SQL을 DBMS 서버에 전송하여 처리할 수 있도록 하는 Oracle에서 제공하는 도구이다.
  • 주요 명령어로는 파일 명령어, 편집 명령어, 실행 명령어, 환경 명령어, 형식 명령어, 대화 명령어 등이 있다.

3. 단위 테스트 도구

1. 단위 테스트 도구의 개념

  • 구현된 프로시저의 적합성을 확인하기 위한 방법을 제공하는 도구이다.
  • Oracle DBMS는 모든 데이터 조작 프로시저에 대한 테스트 환경으로 SQL*Plus 기반의 PL/SQL을 활용한다.

2. PL/SQL 테스트

1. DBMS_OUTPUT 패키지 활용

  • 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 패키지 DBMS_OUTPUT

2.DBMS_OUTPUT 패키지 활용 사례

  • 'emp' 테이블에서 직원번호, 직원이름, 급여 정보를 출력하는 패키지 활용 사례이다.
    [DBMS_OUTPUT]
  • DBMS_OUTPUT.DISABLE : 메시지 버퍼 내용 삭제
  • DBMS_OUTPUT.ENABLE : 메시지 버퍼 내용 할당
  • DBMS_OUTPUT.PUT : 메시지의 마지막 라인 끝에 신규라인 문자(EOL)가 추가
  • DBMS_OUTPUT.GET_LINE : 한 번 호출할 댸마다 하나의 라인만을 읽어옴
  • DBMS_OUTPUT.GET_LINES : 지정된 라인을 모두 읽어옴
profile
꾸준함

0개의 댓글