ABAP CDS概述
ABAP核心数据服务(ABAP CDS)是AS ABAP(Application Server ABAP 的缩写,即 ABAP 应用服务器)通用CDS概念的平台独立实现。ABAP CDS使得在标准AS ABAP数据库上定义语义数据模型成为可能。与特定于SAP HANA的变体HANA CDS不同,ABAP CDS独立于数据库系统。与ABAP字典中定义的现有数据库表和视图相比,在ABAP CDS中定义的模型实体提供了增强的访问功能,从而可以优化基于ABAP SQL的应用程序。当AS ABAP使用SAP HANA数据库时,这一点尤其明显,因为它的内存特性可以以最佳方式实现。
数据模型以CDS对象的形式定义,使用ABAP CDS提供的CDS DDL(Data Definition Language,即数据定义语言)和CDS DCL(Data Control Language,即数据控制语言),使用的是CDS源代码中的ABAP CDS语法。用这些语言定义的CDS对象被集成到ABAP字典中并在这里进行管理。CDS annotations可用于定义CDS对象的元数据。
CDS注释-CDS Annotations
CDS annotation将元数据添加到CDS对象中。Annotations 可以在DDL源代码和DCL源代码中指定,并移动到元数据扩展中。Annotation definitions可用于将注释本身创建为CDS对象.Annotation definitions规定了如何使用注释。
CDS数据定义-CDS Data Definitions
CDS data definitions使用DDL源代码中的ABAP CDS的CDS DDL创建。它们定义了以下CDS实体( CDS entities)。这些单元可以作为数据类型(在ABAP程序中)和数据源(在ABAP SQL读语句中)访问。
CDS数据定义包括以下几种类型:
CDS视图(CDS Views):CDS实体基于ABAP字典中的CDS数据库视图(从技术角度看)。
CDS表函数(CDS Table Functions):在AMDP(ABAP Managed Database Procedures)功能中实现的CDS实体。
CDS层次结构(CDS Hierarchies):从数据源创建层次结构的CDS实体。
CDS抽象实体(Abstract CDS Entities):仅描述类型属性且不为其创建数据库对象实例的CDS实体。
ABAP CDS中的CDS DDL还包含CDS实体增强的语言元素(language elements)。
CDS访问控制-CDS Access Control
CDS访问控制基于CDS角色,这些角色在DCL源代码的CDS DCL中定义。分配了CDS角色的非抽象CDS实体被访问时,默认情况下会评估额外的访问条件。
备注说明
CDS objects是使用CDS源代码传输的。在目标系统中激活传输后,使用DDL源代码中的CDS数据定义的CDS实体将被创建。
CDS源代码只能在基于eclipse的ABAP开发工具(ADT)中编程。数据定义语言(DDL)和数据控制语言(DCL)使用不同的编辑器。ADT文档描述了如何使用这些编辑器。CDS源代码也可以显示在ABAP工作台中的Repository浏览器中。
除了独立于数据库的ABAP CDS之外,HANA CDS也是CDS概念的另一种变体。HANA CDS只存在于SAP HANA数据库中。HANA CDS中的实体是使用特定于HANA的工具(如SAP Web IDE for SAP HANA)开发的,而不是使用ABAP开发工具(ADT)。
从功能的角度来看,ABAP CDS是与平台无关的,这并不意味着所有平台在访问CDS实体时的性能都是相同的。