예제 데이터 모델

이 예제의 데이터 모델은 매우 간단합니다. 항공편 연결 세부사항(항공사, 항공편 번호, 출발 공항 및 목적지 세부사항)이 포함된 단일 데이터베이스 테이블이 있습니다.
노트
이 그림에는 동시성 제어를 관리하기 위해 런타임에 필요한 추가 필드가 포함되어 있지 않습니다. 이 내용은 잠시 후에 살펴보겠습니다.
데이터베이스 테이블 생성
먼저 데이터베이스 테이블을 생성하는 방법을 살펴보겠습니다.
기본 테이블 특성 정의
이제 기본 테이블 특성을 정의하는 방법을 살펴보겠습니다.
테이블 정의 추가
다음 비디오에서는 테이블 정의를 추가하는 방법을 보여줍니다.

기본 제공 ABAP 딕셔너리 유형을 사용하여 테이블 열의 유형을 지정하지 않는 경우, 데이터 요소를 대신 사용하십시오. 데이터 요소는 UUID 또는 항공사 코드와 같은 단일 필드의 유형을 정의하는 ABAP 딕셔너리 오브젝트입니다. 데이터 요소에는 기술적 유형 내역뿐만 아니라 필드 레이블과 같은 의미 정보도 포함됩니다. 데이터 요소를 사용하여 테이블 열의 유형을 정의하면 생성된 사용자 인터페이스에서 필드 레이블을 자동으로 사용할 수 있습니다.
데이터 요소 그림의 데이터 요소는 항공사 필드에 대해 설명합니다. 길이는 3인 문자 필드입니다. 생성된 UI에서 필드 레이블이 자동으로 사용됩니다.

신규 데이터 요소를 생성하려면 파일→신규→기타 를 선택한 다음 필터 텍스트 필드에 데이터 요소를 입력합니다. 패키지 이름과 데이터 요소 이름을 입력하고 다음 을 선택합니다. 전송 요청을 선택하고 종료 를 선택합니다.
그런 다음 데이터 요소의 데이터 유형을 지정해야 합니다. 이 도메인은 도메인이어야 합니다. 예제는 기존 도메인 /DMO/CITY를 재사용합니다. 두 데이터 요소 모두 동일한 도메인을 사용합니다. 즉, 나중에 누군가가 도메인의 길이를 변경하면 이를 사용하는 모든 데이터 요소에 변경사항이 적용됩니다.
마지막으로, 짧은 필드 레이블, 중간 레이블, 긴 필드 레이블, 열 제목에 사용되는 레이블을 입력합니다. 나중에 Fiori 요소 앱을 생성하면 이 텍스트가 자동으로 사용됩니다.

정의하는 각 테이블에는 기본 키가 있어야 합니다. 테이블 내역의 시작 부분에 있는 일련의 필드로서, 테이블의 각 엔트리를 고유하게 식별합니다.
테이블의 첫 번째 필드(키 정의의 첫 번째 필드 포함)는 클라이언트 필드여야 하며, abap.clnt 데이터 유형이어야 합니다. 또한 예시에서는 고유 키에 UUID를 사용하는 것이 편리합니다. 데이터 요소 sysuuid_x16 을 사용하여 이 필드의 유형을 지정하는 경우, 신규 레코드를 생성할 때 런타임에 UUID가 자동으로 지정되도록 할 수 있습니다.

트레이스 지원을 위해 일부 관리 정보를 데이터(예: 생성 및 최종 변경을 위해 데이터 및 타임스탬프를 생성하거나 변경한 사용자)와 함께 저장하는 것이 좋습니다. 생성하는 데이터베이스 테이블에는 그림에 표시된 필드가 포함되어야 합니다.
노트
이 필드는 나중에 사용할 생성기의 필수 필드입니다. 해당 생성기가 제대로 작동하기 위해 여기에 나열된 데이터 유형을 사용하여 필드도 정의해야 합니다.
특히 fieldslocal_last_changed_at 및 last_changed_at는 관리 필드만이 아닙니다. ABAP RESTful 어플리케이션 프로그래밍 모델에서는 동시성 제어에도 사용됩니다.
RESTful 어플리케이션은 상태 비저장이므로 배타적 잠금만으로 데이터 일관성을 보장할 수 없습니다. ABAP RESTful 어플리케이션 프로그래밍 모델은 배타적 잠금과 ETag를 함께 사용하여 데이터 불일치를 방지합니다. ETag는 데이터 세트가 업데이트될 때마다 값을 변경하는 필드입니다. ETag 필드의 값을 비교하여 프레임워크는 마지막으로 읽은 이후 데이터 세트가 변경되지 않았는지 확인할 수 있습니다. 마지막 변경의 타임스탬프는 완벽한 ETag 필드를 만듭니다.

ADT에서 데이터베이스 테이블을 활성화하면 해당하는 물리적 테이블이 데이터베이스에 생성됩니다. 이 작업을 완료하면 앱에 필요한 추가 오브젝트를 자동으로 생성할 수 있습니다.


