본문 바로가기

Easy Abap 2.0

[3주차] Chapter 3 OPEN SQL & NATIVE SQL PART1

1. OVERVIEW

 

1) R/3 Architecture

 

① Presentation Layer

 

Presentation Layer는 쉽게 말해 개인 컴퓨터를 의미하며, SAP GUI(Graphical User Interface)를 구성하는 
소프트웨어 Component들의 정보를 가지고 있다.

이 Layer는 R/3 시스템과 사용자 간의 인터페이스를 제공한다.

SAP GUI는 개인 컴퓨터에 설치되는 터미널 화면이고, 사용자는 이 GUI를 통해서 데이터를 입력하거나 조회할 수 있다.

 

② Application Layer

 

SAP의 모든 프로그램은 Application Server에서 구동된다.
SAP GUI는 단지 터미널의 역할만 한다.

운영 서버의 Application Layer는 하나 또는 여러 개의 Application Server와 하나의 Message Server로 구성되어 있는데

보통은 시스템 부하 분산을 위해 여러 개의 Application Server로 구동한다.

 

SAP에는 Application Server레벨에서 Local Buffer가 존재하며, ABAP Dictionary 테이블 레벨에서 버퍼 설정을 하게 되면 데이터베이스까지 접근하지 않고, Local Buffer에서 데이터를 읽어온다.

이것은 SAP의 성능을 향상시키는데 기여하며, OPEN SQL을 사용할 때만 가능하다.

 

Dispatcher(분배기)Work Process를 적절히 분배하는 역할을 담당하게 된다.

사용 가능한 Work Process보다 더 많은 사용자가 Application Server에 접속해서 동시에 여러 프로그램을 실행할수 있다.

이 경우 작업 중인 정보와 대기 중인 정보는 Shared memory에 저장되어 관리된다.

 

③ Database Layer

 

SAP의 모든 데이터를 데이터베이스 테이블에 저장하고 있는 계층이다.

데이터베이스는 마스터 데이터, 트랜잭션 데이터 그리고 R/3 시스템의 모든 데이터를 저장하고 있다.

예를 들면, 데이터베이스는 R/3 시스템의 실행 환경을 정의하는
시스템 변수, 모든 프로그램의 소스 코드, 트랜잭션 데이터 등을 저장하고 있다.

 

ABAP프로그램은 코드, 스크린, 함수, 테이블 등 다양한 항목들로 구성되어 있다.

이러한 것들은 R/3 repository라 불리는 특별한 공간에 저장되어 있으며, 
우리는 ABAP Workbench에서 Repository 오브젝트들을 관리(생성, 변경, 조회)하게 된다.

 

ABAP 개발자는 ABAP Dictionary를 통해 데이터베이스 구조(스키마)를 관리한다.

 

2) SQL의 정의

 

SQL이란 Structured Query Language의 약자로서 
관계형 데이터베이스에 사용되는 표준화된 언어이다.

ABAP 프로그램의 OPEN SQL에서는 DML언어만 사용가능하다.

 

언어 종류 설명
Data Manipulation Language(DML) 데이터 처리 언어

데이터베이스(테이블)에 저장된 데이터를
검색, 삽입, 삭제, 갱신 등 재구성하기 위해 사용되는 언어
Data Definition Language(DDL) 데이터 정의 언어

응용 프로그램과 데이터베이스 관리 시스템 간에 데이터 요구를 표현 할 수 있는 인터페이스를 기술하기 위한 언어로서
데이터베이스를 생성할 목적으로 사용하는 언어
Data Control Language(DCL) 데이터 제어 언어

무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어로서
데이터를 보호하고 관리하는 목적으로 사용된다.

 

3) SQL의 종류

 

SQL에는 OPEN SQL과 NATIVE SQL 두 가지가 있다.

OPEN SQL은 ABAP 언어에서만 사용되며 Database Interface를 통해 NATIVE SQL로 번역된다.

NATIVE SQL은 데이터베이스에 사용되는 SQL 언어이다.

 

 

4) OPEN SQL vs NATIVE SQL

 

OPEN SQL NATIVE SQL
데이터베이스 데이터를 조작할 수 있는 ABAP 명령어  
DDL, DCL 사용 불가,
SELECT 문과 같은 DML만 사용 가능
데이터베이스에 직접 접속하여 DML, DCL 언어 사용 가능
Local Buffer 사용 가능하며
NATIVE SQL보다 사용 방법 간단
OPEN SQL로 해결이 되지 않는 복잡한 SQL은 
NATIVE SQL을 이용할 수 있음.
ABAP 프로그램을 활성화 할 때
자동으로 Syntex Check가 수행된 다는 특징이 있음
OPEN SQL의 Command Set
(SELECT, UPDATE, DELETE 등)을 사용할 수 있음

 

5) SQL과 Local Buffer

 

SAP Local Buffer는 R/3 Architecture에서 지원하는 기술로서 데이터베이스의 부하를 줄이는 중요한 역할을 담당한다.

단, 테이블의 Technical Setting에서 Buffer를 사용한다고 설정해야한다.