ABAP 딕셔너리
ABAP 딕셔너리(SAP Data Dictionary)는 SAP 시스템에서 데이터베이스 정의, 데이터 구조 관리, 데이터 타입 생성 및 데이터 일관성을 유지하기 위한 도구입니다. 딕셔너리는 SAP 시스템과 데이터베이스 간의 인터페이스 역할을 하며, 데이터베이스 객체를 정의하고 관리합니다.
1. Describing the ABAP Dictionary
ABAP 딕셔너리란?
- SAP 시스템의 데이터 정의 언어(DDL)로, 데이터베이스 테이블, 데이터 요소, 도메인, 뷰, 검색 도움말 등을 정의하고 관리.
- 물리적 데이터베이스와 연결되어 있으며, 데이터 모델을 설계하고 데이터 무결성을 보장.
ABAP 딕셔너리의 주요 구성 요소
-
테이블 (Tables):
- 투명 테이블(Transparent Tables): 데이터베이스와 직접 연결.
- 클러스터 테이블(Cluster Tables): 여러 논리적 테이블이 하나의 물리적 테이블에 저장.
- 풋 테이블(Pooled Tables): 여러 테이블이 하나의 테이블에 그룹화되어 저장.
-
데이터 요소 (Data Elements):
- 필드에 사용될 데이터 타입, 길이, 설명을 정의.
- 재사용 가능하며, 사용자 정의 가능.
-
도메인 (Domains):
- 필드의 속성(데이터 타입, 길이, 유효 값)을 정의.
- 데이터 무결성을 보장하고 데이터 요소의 일관성을 유지.
-
뷰 (Views):
- 여러 테이블의 데이터를 논리적으로 통합하여 보여줌.
- 읽기 전용.
-
검색 도움말 (Search Helps):
- 사용자 입력 필드에서 데이터를 검색할 때 도움을 제공.
ABAP 딕셔너리와 데이터베이스의 관계
- 일관성 보장: 딕셔너리에서 정의된 모든 객체는 데이터베이스와 동기화되어 유지.
- 물리적/논리적 분리: 개발자는 논리적 객체만 다루며, 물리적 데이터베이스 작업은 딕셔너리가 관리.
2. Creating Domains and Data Elements
1. 도메인 (Domains)
-
정의: 필드의 데이터 타입, 길이, 유효 값 범위를 지정.
-
역할: 데이터 요소를 통해 여러 테이블과 필드에서 재사용 가능.
-
도메인 생성 절차:
- 트랜잭션 코드
SE11 실행.
- 도메인 이름 입력 후 "Create" 버튼 클릭.
- Data Type, Length, Decimal Places 등 속성 입력.
- Value Range 탭에서 유효 값 범위를 설정.
- 도메인 활성화(Activate).
-
예제:
도메인 ZAGE_DOMAIN 정의
- 데이터 타입:
NUMC.
- 길이:
3.
- 유효 값 범위:
0에서 120.
2. 데이터 요소 (Data Elements)
-
정의: 데이터 필드의 의미, 도메인과 연결된 속성, 설명을 정의.
-
역할: 테이블 필드, 구조체 필드 등에서 사용 가능.
-
데이터 요소 생성 절차:
- 트랜잭션 코드
SE11 실행.
- 데이터 요소 이름 입력 후 "Create" 버튼 클릭.
- Domain 필드에 생성한 도메인 이름 입력.
- 설명 및 추가 속성 입력 후 활성화.
-
예제:
데이터 요소 ZEMP_AGE 정의
- 도메인:
ZAGE_DOMAIN.
- 설명: "Employee Age".
도메인과 데이터 요소의 관계
- 도메인: 데이터의 기술적 속성을 정의.
- 데이터 요소: 도메인을 활용하여 필드의 의미를 부여.
3. Creating Transparent Tables
투명 테이블(Transparent Tables)란?
- 물리적 데이터베이스 테이블과 1:1로 매핑되는 테이블.
- 데이터를 직접 저장하며, Open SQL을 통해 읽고 쓸 수 있음.
투명 테이블 생성 절차
-
테이블 정의:
- 트랜잭션 코드
SE11 실행.
- 테이블 이름 입력 후 "Create" 버튼 클릭.
-
필드 정의:
- 각 필드의 이름, 데이터 요소를 입력.
- 기본 키(Primary Key) 필드 지정.
-
기술 설정 (Technical Settings):
- 테이블 데이터의 물리적 저장 방법 정의.
- 데이터 클래스, 크기 카테고리 설정.
- 로그 활성화 여부 선택.
-
외래 키 설정 (Optional):
- 다른 테이블의 기본 키를 참조하여 데이터 무결성 유지.
-
테이블 활성화:
- 테이블 정의 완료 후 "Activate" 버튼 클릭.
예제: 투명 테이블 ZEMPLOYEE
- 필드 정의:
| 필드 이름 | 데이터 요소 | 설명 | 데이터 타입 |
|-----------|-------------|--------------|-------------|
| EMP_ID | ZEMP_ID | Employee ID | NUMC(10) |
| EMP_NAME | ZEMP_NAME | Employee Name| CHAR(50) |
| EMP_AGE | ZEMP_AGE | Employee Age | NUMC(3) |
SELECT * FROM zemployee INTO TABLE lt_employees.
LOOP AT lt_employees INTO DATA(ls_employee).
WRITE: / 'ID:', ls_employee-emp_id, 'Name:', ls_employee-emp_name, 'Age:', ls_employee-emp_age.
ENDLOOP.
ABAP 딕셔너리의 추가 개념
1. 뷰(Views)
- 여러 테이블의 데이터를 조합하여 논리적으로 보여줌.
- 뷰의 유형:
- Database Views: 데이터베이스에 물리적으로 존재.
- Projection Views: 특정 필드만 표시.
- Help Views: 검색 도움말에 사용.
- Maintenance Views: 데이터 입력 및 유지보수에 사용.
2. 검색 도움말(Search Helps)
- 사용자 입력 필드에서 데이터를 검색하고 선택할 수 있도록 지원.
- 검색 도움말을 테이블 필드와 연결하여 사용.
3. 테이블 유지보수 생성(Maintenance Views)
- 테이블 데이터를 쉽게 관리할 수 있는 사용자 인터페이스 생성.
요약
- ABAP 딕셔너리: 데이터베이스와 SAP 시스템 간 데이터 정의 및 관리 도구.
- 도메인과 데이터 요소: 재사용 가능한 데이터 속성 정의 및 필드 의미 부여.
- 투명 테이블: 데이터베이스와 직접 연결된 물리적 테이블.
- 뷰와 검색 도움말: 데이터 조회 및 사용자 입력 지원.