SQL(Structured Query Language)

모든 관계형 데이터베이스 시스템은 SQL(Structured Query Language)의 변형을 사용하여 작업할 수 있습니다. 표준 SQL은 다음과 같은 세 가지 주요 컴포넌트로 구성됩니다.
- 데이터 조작 언어(DML, Data Manipulation Language)
- DML은 데이터베이스 테이블의 정보로 작업해야 하는 명령문으로 구성됩니다. 신규 레코드를 추가하기 위한 INSERT, 데이터를 읽는 SELECT, 기존 레코드를 변경하려면 UPDATE, 테이블 내용을 삭제하는 DELETE가 있습니다. 이러한 명령문은 ABAP에 ABAP SQL의 형태로 반영됩니다.
- 데이터 정의 언어(DDL, Data Definition Language)
- 데이터 정의 언어는 데이터베이스 테이블 및 기타 데이터베이스 아티팩트(예: 스키마, 테이블 인덱스, 뷰)를 생성하고 삭제할 수 있는 명령을 제공합니다. SAP 시스템에서는 ABAP 프로그램이 아닌 ADT의 전용 편집기를 사용하여 이러한 태스크를 수행합니다. 한 가지 예로 앞에서 살펴본 데이터베이스 테이블 정의 편집기가 있습니다.
- 데이터 제어 언어(DCL, Data Control Language)
- SQL에서는 데이터 제어 언어를 사용하여 데이터베이스의 데이터에 대한 특정 사용자의 액세스를 제한합니다. 데이터베이스 레벨의 사용자는 최종 사용자와 일대일로 일치하지 않기 때문에 이는 ABAP에서 기존 형태로 사용되지 않습니다. 따라서 ABAP에는 고유 권한 개념이 있습니다.
ABAP SQL 아키텍처

이전에는 SAP 시스템에서 다양한 데이터베이스 플랫폼을 지원해야 했으며, 각 플랫폼의 SQL 표준 구현에는 조금씩 차이가 있었습니다. 즉 각 플랫폼에서 특정 태스크를 수행하기 위한 명령어도 조금씩 달랐습니다. ABAP 코드가 데이터베이스별로 고유해지는 것을 방지하기 위해 SAP는 원래 호출된 ABAP SQL 또는 Open SQL을 개발했습니다.
노트
ABAP SQL은 ABAP 레벨에서 구현되고 ABAP 언어에 통합된 추상 SQL 명령어 세트입니다. 런타임 시 ABAP SQL은 데이터베이스에서 인식되는 SQL 변형으로 변환됩니다. ABAP에 통합된 SQL 변형인 ABAP SQL과 구분하기 위해 이 변형을 Native SQL이라고 합니다. ABAP SQL에서 Native SQL로의 변환은 데이터베이스 인터페이스에서 수행되며, 이는 일반 부분과 데이터베이스 고유 라이브러리로 구성된 ABAP 시스템의 컴포넌트입니다.
최신 ABAP 릴리스는 SAP HANA만 DBMS로 지원하지만 SAP는 여전히 ABAP SQL과 데이터베이스 인터페이스의 개념을 유지해 왔습니다. 그 이유는 다음과 같습니다.
- 아키텍처 호환성
- ABAP SQL과 데이터베이스 인터페이스는 시스템 아키텍처의 핵심 요소입니다.
- 코드 호환성
- 이전 SAP 제품(고객 고유 개발 포함)의 ABAP SQL 코딩은 최신 SAP HANA 전용 ABAP 환경에서 부작용 없이 실행되어야 합니다.
- 데이터베이스 인터페이스 태스크
- 데이터베이스 인터페이스는 명령문만 번역하는 것이 아니라 자동 클라이언트 처리와 같은 ABAP 고유 태스크도 담당합니다.




