국민대학교에서 "오라클로 배우는 데이터베이스 개론과 실습(2판)" 을 이용한
신인수 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다
1. 데이터베이스 프로그래밍의 개념
프로그래밍 : 프로그램을 설계하고 소스코드를 작성하여 디버깅하는 과정
데이터베이스 프로그래밍
=> DBMS에 데이터를 정의하고 저장된 데이터를 읽어와 데이터를 변경하는 프로그램을 작성하는 과정
(일반 프로그래밍과는 데이터베이스 언어인 SQL을 포함한다는 점이 다름)
데이터베이스 프로그래밍 방법
1. SQL 전용 언어를 사용하는 방법
- SQL 자체의 기능을 확장하여 변수, 제어, 입출력 등의 기능을 추가한 새로운 언어를 사용하는 방법
- Oracle은 PL/SQL 언어를 사용하며, MS-SQL Server는 T-SQL이라는 언어를 사용함
2. 일반 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법
- 자바, C, C++ 등 일반 프로그래밍 언어에 SQL 삽입하여 사용하는 방법
- 일반 프로그래밍 언어로 작성된 응용 프로그램에서 데이터베이스에 저장된 데이터를 관리, 검색함
- 삽입된 SQL문은 DBMS의 컴파일러가 처리함
3. 웹 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법
- 호스트 언어가 JSP, ASP, PHP 등 웹 스크립트 언어인 경우
4. 4GL(4th Generation Language)
- 데이터베이스 관리 기능과 비주얼 프로그래밍 기능을 갖춘 ‘GUI 기반 소프트웨어 개발 도구’를 사용하여 프로그래밍하는 방법
(Delphi, Power Builder, Visual Basic 등이 있음)
2. PL-SQL
Procedural Language/Structured Query Language의 줄임말로 데이터베이스 응용 프로그램을 작성하는 데 사용하는 오라클의 SQL 전용 언어이다.
SQL 전용 언어로 SQL문에 변수, 제어, 입출력 등의 프로그래밍 기능을 추가하여 SQL만으로 처리하기 어려운 문제를 해결
PL/SQL은 SQL Developer에서 바로 작성하고 컴파일한 후 결과를 실행함
프로시저
프로시저를 정의하려면 CREATE PROCEDURE문을 사용함
정의 방법
- PL/SQL은 선언부와 실행부(BEGIN-END)로 구성됨
(선언부에서는 변수와 매개변수를 선언하고, 실행부에서는 프로그램 로직을 구현함) - 매개변수(parameter)는 저장 프로시저가 호출될 때 그 프로시저에 전달되는 값임
- 변수(variable)는 저장 프로시저나 트리거 내에서 사용되는 값임
- 소스코드에 대한 설명문은 /*와 */ 사이에 기술
(만약 설명문이 한 줄이면 이중 대시(--) 기호 다음에 기술해도 됨)
삽입 작업을 하는 프로시저
프로시저로 데이터를 삽입 작업을 하면 좀 더 복잡한 조건의 삽입 작업을 인자 값만 바꾸어 수행할 수도 있고, 저장해 두었다가 필요할 때마다 호출하여 사용할 수도 있음
제어문을 사용하는 프로시저
PL/SQL의 제어문은 어떤 조건에서 어떤 코드가 실행되어야 하는지를 제어하기 위한 문법으로, 절차적 언어의 구성요소를 포함함
결과를 반환하는 프로시저
SET SERVEROUTPUT : SQL Plus 나 SQL Developer와 같은 Oracle 클라이언트에서 서버의 출력을 활성화 함
DECLARE : 로컬 변수를 선언함
DBMS_OUTPUT.PUT_LINE() : 출력
커서를 반환하는 프로시저
커서(cursor)는 실행 결과 테이블을 한 번에 한 행씩 처리하기 위하여 테이블의 행을 순서대로 가리키는 데 사용함
트리거
트리거(trigger)는 데이터의 변경(INSERT, DELETE, UPDATE)문이 실행될 때 자동으로 따라서 실행되는 프로시저를 말함
사용자 정의 함수
사용자 정의 함수는 수학의 함수와 마찬가지로 입력된 값을 가공하여 결과 값을 되돌려줌
PL/SQL 문법 요약
데이터베이스 연동 자바 프로그래밍 실습은 추후에 다뤄보자..
'Database > 데이터베이스' 카테고리의 다른 글
Chapter 07. 정규화 (0) | 2024.05.17 |
---|---|
Chapter 06. 데이터 모델링 (0) | 2024.05.15 |
Chapter 04. SQL 고급 (1) | 2024.04.15 |
Chapter 03. SQL 기초 (1) | 2024.04.14 |
Chapter 02. 관계 데이터 모델 (1) | 2024.04.12 |