본문 바로가기

CDS View(Core Data Service)/Core Data Service 기초

Core Data Service 소개

SAP NetWeaver 7.40 SP05부터 SAP은 CDS를 권장하는 Code Pushdown 기술로 도입하여 의미론적으로 풍부한 데이터 모델을 정의하고 사용을 간소화합니다. CDS는 향상된 뷰를 정의하기 위해 쿼리의 기술적 복잡성 대신 비즈니스 의도나 목적을 포착하기 위해 표준 SQL 문을 확장하는 도메인별 언어를 수집합니다. 이러한 확장에는 연관 관계(association), 어노테이션(annotation), 표현식(expression), 중첩된 절(nested clause) 및 경로(path), 필터 표현식(filter expression) 등이 포함됩니다.

Open SQL과 마찬가지로 CDS 뷰도 도메인별 언어로 분류됩니다. CDS 뷰의 경우, 이러한 언어는 데이터 정의 언어(DDL), 쿼리 언어(QL) 및 데이터 제어 언어(DCL)로 구분됩니다.


Domain-Specific Language


도메인별 언어는 의미론적으로 풍부한 데이터 모델을 정의하기 위해 추가로 확장되어 개선되어 왔고 새로운 기능을 포함하게 되었습니다.

Core Data Service Extension
Data definition language (DDL) ■ 표준 SQL 문을 개선하여 풍부한 데이터 모델을 정의하고 사용하기 위해 향상되었습니다.
■ 접근 방식을 단순화하고 표준화하였습니다.
■ 애플리케이션 개발에 필요한 기술적 복잡성과 노력을 줄였습니다. 
■ Associations
■ Annotations
■ Built-in expressions
■New object type DDLS
Query language (QL) ■ 표준 SQL 문을 개선하여 Open SQL 문을 사용하여 ABAP 애플리케이션에서 CDS 엔티티를 사용할 수 있도록 했습니다.
■ 완전히 명백해진(Transparent) 확장 기능입니다
■ Path expressions
■ Filter expressions
■ Nested project clause
Data control language (DCL) ■ CDS 엔티티의 정의 및 접근 제어에 대한 새로운 접근 방식입니다.
■ 기존의 ABAP 권한 개념과 독립적으로 또는 함께 구현할 수 있습니다.
■ 실행 시 암묵적인 권한 체크가 수행됩니다.
■ New approach
■ New object type DCLS

이제 위 표에 표시된 대로 각 도메인별 언어와 관련 확장 기능에 대해 설명해보겠습니다

■ Data Definition Language (DDL)
DDL은 표준 SQL 언어를 확장하여 테이블이나 뷰와 같은 의미론적으로 풍부한 데이터 모델을 정의하는 데 도움을 주는 언어입니다. 이러한 확장 기능은 Annotation을 포함하여 추가적인 도메인 별 메타데이터를 지원하며, 연관 관계를 정의함으로써 복잡한 조인을 단순한 경로 표현식으로 대체하고, 모델을 정의하는 동안 내장 SQL 함수와 표현식을 사용하여 복잡한 계산을 수행할 수 있습니다. DDL은 CDS 프레임워크를 통해 표준화된, 재사용 가능하고 단순화된 데이터 모델을 정의할 수 있기 때문에 개발자의 노력을 크게 줄일 수 있습니다.

■ Query Language (QL)
QL은 DDL을 사용하여 정의된 CDS 뷰의 소비를 지원하고 간소화합니다. SAP는 Open SQL 문을 경로 표현식(path expression), 필터 표현식(filter expression) 및 중첩 프로젝션 절(nested projection clause)과 같은 완전히 투명한(transparen) 확장 기능을 포함하도록 확장했습니다. QL은 또한 Open SQL 문을 사용하여 ABAP 애플리케이션에서 CDS 엔티티를 직접 소비할 수 있도록 합니다.

■ Data Control Language (DCL)
DCL은 CDS 뷰에 대한 액세스 제한을 정의하고 제어하기 위한 새로운 접근 방식입니다. 이는 독립적으로 또는 클래식한 권한 개념과 결합하여 사용할 수 있습니다. CDS 권한 개념은 CDS 엔티티가 Open SQL 문을 사용하여 소비되거나 액세스될 때 ABAP 런타임에 의해 암묵적으로 권한 확인이 수행됩니다. 반면 권한(authorization) 개체를 기반으로 하는 전통적인 권한 개념에서는 해당 확인이 응용 프로그램(예: 트랜잭션 또는 프로그램)에 액세스되거나 암묵적으로 AUTHORITY-CHECK 문을 사용하여 명시적으로 수행되었습니다.


Availability and Feature


CDS 프레임워크를 사용하여 정의된 뷰는 SAP 플랫폼 전체에서 일관된 모델을 제공하여 재사용성과 상호 운용성을 지원합니다. CDS 뷰는 SAP HANA 또는 SAP에서 인증한 다른 데이터베이스에서 다음과 같은 SAP 플랫폼 릴리스와 함께 사용할 수 있습니다.

■ SAP NetWeaver 7.4 SP05 이상의 모든 데이터베이스
■ SAP HANA 1.0 SP06 이상
■ SAP Business Warehouse (SAP BW) 7.3 및 SAP BW/4HANA
■ SAP Business Suite on SAP HANA EHP7
■ SAP S/4HANA (모든 릴리스)

ABAP CDS의 기본적인 기능은 다음과 같습니다.


데이터베이스 독립적(Database independent)
CDS 뷰는 SAP HANA나 SAP에서 인증한 다른 데이터베이스에서 사용할 수 있습니다. 추가 조인, 복잡한 SQL 표현식 및 함수 등 다양한 기능을 지원하여 이전의 SQL 뷰 및 딕셔너리 뷰의 제한 사항을 극복합니다. 중첩 뷰는 이제 지원되며, 더 고급 CDS 뷰 개발에 도움이 됩니다.

ABAP Integration(ABAP integration)
CDS 뷰는 ABAP 인프라에 완전히 통합되어 ABAP 딕셔너리 개체, Open SQL 문 및 전송 관리를 활용할 수 있습니다.

Annotation
CDS는 사용자 텍스트, 통화 키 및 버퍼 설정과 같은 추가 의미 정보를 제공하여 SQL 문으로는 불가능한 기능을 제공합니다. 소비자를 위한 의미 정보에는 내장 분석, OData, SAPUI5, Angular 등이 포함될 수 있습니다.

Association
CDS는 CDS 뷰 간의 관계를 정의함으로써 복잡한 조인 작업을 대체할 수 있습니다.

Implicit authorization check
CDS는 DCL을 사용하여 액세스 제어를 정의하는 권한 규칙을 정의함으로써 암묵적인 권한 체크를 가능하게 합니다.

CDS table function
SAP HANA 데이터베이스 특정 기능을 사용하기 위해 ABAP 관리형 데이터베이스 프로시저(AMDP)를 통해 SQLScript를 기반으로 뷰를 정의하는 데 사용됩니다.


Integration with ABAP : ABAP과의 통합


CDS 뷰 정의는 ABAP 환경에 완전히 통합되어 있습니다. 따라서 CDS 프레임워크는 테이블/뷰와 같은 ABAP Dictionary 개체를 활용하여 CDS 뷰를 정의할 수 있습니다. 뷰가 활성화되면 시스템은 ABAP Dictionary 기반의 SQL 뷰를 생성하며, 이는 ABAP Dictionary(트랜잭션 SE11)에서 확인할 수 있습니다.

CDS 뷰 정의는 ABAP Dictionary의 기능을 활용하여 데이터 모델을 구축하고 관리할 수 있습니다. 이를 통해 CDS 뷰는 데이터베이스와의 상호 작용을 위한 SQL 문을 생성하고 실행할 수 있습니다. CDS 뷰는 ABAP 개발자가 익숙한 개발 도구와 환경에서 Dictionary 개체와 함께 작업할 수 있으며, ABAP Dictionary를 통해 생성된 SQL 뷰를 검토하고 조작할 수 있습니다.

이러한 ABAP 환경과의 완전한 통합을 통해 CDS 프레임워크는 ABAP 개발자에게 편리한 개발 경험을 제공하고 데이터 모델의 정의와 관리를 용이하게 합니다.

그림 1에서 볼 수 있듯이, 데이터베이스 프로시저와 SAP HANA 뷰와 달리 CDS 뷰 정의의 전체 라이프사이클 관리, 즉 생성, 변경 및 이동은 표준 이동 관리 절차를 사용하여 ABAP Layer에서 관리될 수 있습니다. 다시 말해, ABAP Development Tool(ADT)의 DDL source editor(소스 편집기)를 사용하여 데이터 정의를 작성하고 저장하면 해당 정의가 ABAP transport request에 할당되며, 정의된 이동 경로에 따라 후속 시스템( subsequent system)으로 가져올 수 있습니다.

데이터 정의가 이관된 후(transporting)에는 CDS 엔티티나 SQL 뷰의 이름을 변경할 수 없습니다. 이러한 엔티티의 이름을 변경하려면 개발 환경에서 해당 데이터 정의를 삭제하고 새 이름으로 다시 생성해야 합니다.

또한, ABAP에서 이러한 뷰를 사용하는 것은 Open SQL 문을 확장하여 경로 표현식(Path Expression)과 필터 표현식(Filter ExpressioN)을 포함시킴으로써 간소화되었습니다. 이제 CDS 엔티티는 ABAP 애플리케이션에서 Open SQL 문을 사용하여 직접 사용할 수 있습니다. 적절한 접근 제한(Access Restriction)이 정의된 뷰의 경우, CDS 엔티티가 Open SQL 문을 통해 접근될 때 암묵적인 권한 체크(implicit authorization check)가 수행됩니다.

반응형