본문 바로가기
컴퓨터과학[3-2]/D.B

데이터베이스 설계 및 구현 - [제11강] 저장 프로그램 2

by boolean 2016. 7. 31.
728x90

데이터베이스 설계 및 구현 - [제11강] 저장 프로그램 2

․함수 ․커서 ․트리거

데이터베이스 용어정리

  • 함수
    일반적인 프로그래밍 언어와 같이 복잡한 프로그래밍이 가능하고 RETURN 문에 의해서 특정 값을 반환하는 기능. SELECT 문에 포함되어 실행
  • 커서
    테이블에서 여러 개의 레코드를 질의한 후에 질의의 결과 레코드 집합을 한 레코드씩 처리하는 객체
  • 트리거
    어떤 테이블의 데이터가 변경될 때 자동으로 지정된 애플리케이션이 동작한다든지 다른 테이블의 데이터를 변경하도록 설계된 저장 프로시저
  • 요점정리

    1. 함수는 저장 프로시저와 유사하게 일반적인 프로그래밍 언어에서 사용하는 함수처럼 복잡한 프로그램이 가능하다. 또한 함수는 RETURN 문에 의해서 특정 값을 돌려주는 기능을 한다.
    2. 저장 프로시저‘CALL’ 명령어를 사용하여 호출되지만, 함수는 자체적으로 수행이 불가능하고 ‘SELECT’ 문에 포함되어서 실행된다는 점에서 차이가 있다.
    3. 커서는 테이블에서 여러 개의 레코드를 질의한 후에 질의의 결과인 레코드 집합을 하나의 레코드씩 처리하기 위한 방식이다.
    4. 트리거는 어떤 테이블의 데이터가 변경될 때 자동으로 지정된 애플리케이션이 동작한다든지 다른 테이블의 데이터를 변경하도록 설계된 저장 프로시저의 특별한 형태이다.
    5. MySQL은 BEFORE INSERT, AFTER INSERT, BEFORE UPDATE, AFTER UPDATE, BEFORE DELETE, AFTER DELETE의 여섯 가지 트리거를 제공한다. 

    연습문제

    • 연습문제1

      다음 중 함수에 대한 설명이 아닌 것은?

      답을 체크하세요
      정답 :
      함수는 저장 프로시저와 유사하지만 저장 프로시저와 다르게 매개변수를 받아들일 수는 있으나 반환할 수는 없다.
    • 연습문제2

      다음 중 데이터 타입이 CHAR(4)인 값을 받아들이고 VARCHAR(10)인 값을 반환하는 ClassLevel 함수에 대한 정의로 옳은 것은?

      답을 체크하세요
      정답 :
      함수는 저장 프로시저와 달리 매개변수를 받아들일 수 있으나 매개변수를 반환할 수 없다. 따라서 매개변수에 IN, OUT, INOUT을 지정하지 않는다. 또한 반환하는 값은 RETURNS 키워드와 타입만을 통해 함수의 결과값을 명시한다.
    • 연습문제3

      함수를 호출하는 명령어는?

      답을 체크하세요
      정답 :
      함수는 독립적으로 실행이 불가능하여 저장 프로시저와 같이 CALL 명령어를 통해 호출 될 수 없다. 함수는 SELECT 문 내부에 SELECT 절과 WHERE 절에 포함되어 일반적인 수학, 문자, 날짜 함수와 같이 사용된다.
    • 연습문제4

      커서에서 결과 레코드로부터 현재 커서가 가리키고 있는 포인터의 다음 레코드를 가져오고 커서의 위치를 다음 레코드로 지정하는 명령어는 무엇인가?

      답을 체크하세요
      정답 :
      커서는 질의문을 통해 레코드 집합을 가져온 후, 각각의 레코드에 대해서 별도의 처리를 하는 저장 프로그램이다. 각각의 레코드를 가져올 때 FETCH 명령어를 사용하여 현재 포인터가 가리키는 레코드를 반환하고 포인터를 다음 레코드를 지정하게 할 수 있다.
    • 연습문제5

      다음 중 MySQL에서 지원하는 트리거가 아닌 것은?

      답을 체크하세요
      정답 :
      트리거는 테이블의 변화가 생기면 변화의 유형에 따라 자동으로 실행되는 저장 프로그램의 일종이다. 변화 유형에 따라 반응하는 INSERT, UPDATE, DELETE 트리거가 있다.

    댓글