今天把这张图放在旁边看,很多原本容易混在一起的概念,一下子就清楚了。左边是DDL,右边是DCL,上面两个蓝色框像是入口,下面两大片留白反而很有意思,它提醒我们,ABAP CDS不是一条单纯的查询语法,而是一套把数据模型、语义信息、访问控制同时装进同一个设计面里的语言体系。很多开发者平时写得最多的是define view entity,于是会下意识觉得CDS不过是比Open SQL更高级一点的视图定义。这个理解不算错,但只抓住了左半边,没有看到右半边。从官方文档的角度看,SQL虽然是标准语言,不同数据库依旧会形成各自的平台方言,SAP HANA对应的是HANA SQL。ABAP CDS站在这个数据库方言之上,把底层能力包装起来,给ABAP提供一层数据库抽象,同时补上关系建模、表达式、内置函数以及注解这类更偏语义建模的能力。也正因为这一层抽象存在,开发者平时面对的就不再只是数据库里的表和联接,而是更接近业务对象的语义数据模型。(