To exploit the high performance of the in-memory database of SAP HANA, SAP introduced a new data modeling framework called Core Data Services (CDS). CDS is available in two versions:
ABAP CDS and native SAP HANA CDS. The concepts for both versions are identical.
In this course, we will focus on ABAP CDS, although the principles described apply to native SAP HANA CDS (SAP HANA Cloud and on-premise).
CDS is a data definition language that is used to define views on data sources that encapsulate rich semantics. Semantics provide information about the data and the view that consumption tools can use. For example, to determine how to present the currency of the measures, how to format the dates, how the data can be joined to another view to provide additional fields, whether a view can be consumed directly by an analytic tool or only by another view.
Within the view it is possible to combine any tables or views, add calculations and hierarchy information. CDS views are used in analytics scenarios including planning.
ABAP CDS is a component of SAP NetWeaver and is an enhancement to the traditional ABAP DDIC framework. ABAP CDS goes far beyond the capabilities of the ABAP DDIC tooling where simple views were created using a tool known as SE11.
ABAP CDS views push down the processing steps to the database to optimize performance which is why they are popular with developers who want the best performance from their applications.
Each ABAP CDS view corresponds to a counterpart SQL view in the database. So, if you create an ABAP CDS view from scratch the system would automatically create a mirrored SQL view on the database level to enable the push down principle.

Using ABAP CDS views, we can create a comprehensive virtual data model. The virtual data model is the foundation for all analytical requirements and provides ready-to-consume data that has been processed. The data has undergone a series of steps that started with the raw data in the tables and moved the data through a series of modeling actions to generate the final output. We cannot expect a business user to perform these complex data modeling steps. For example, joining tables requires deep knowledge of the tables, their relationships and the meaning of the columns. Also, without applying filters to the tables, too much data can be exposed and that generates too much information – a problem for ease of understanding.
A data model should also provide rich semantics that are not present in the underlying tables. The additional metadata adds more meaning to the data. For example, we can identify that a numeric column is actually a price and also point to the column where the currency is defined. With metadata defined in the virtual data model we can let the consuming applications know how to process the model. For example, we can indicate to the consuming applications whether a view is suitable for a particular reporting scenario, such as drill-down reporting. We can also indicate whether the view can be consumed directly or needs to be processed by another view. A virtual data model is usually built using views in a layered approach. This supports a low-redundancy model by reusing the lowest-level views. Any change to the lower-level views is consumed through the stack, so a change to the lowest-level view, such as adding a new column, will affect all higher-level views.
The lower layers of the virtual data model consume raw data from the tables and model it into basic, consumable data shapes. Think of these lower-level views as forming the data modeling layer where data is prepared. The top level of the virtual data model is also created using ABAP CDS views but this top level should be regarded as the analytical layer and not data modeling. This is because the top level is where queries are defined. Queries are defined using a special type of ABAP CDS view where additional consumption-related information can be provided, such as whether totals are required.

SAP provides a rich virtual data model with SAP S/4HANA so that analytics can be developed very quickly using consumable data shapes.
For SAP S/4HANA on-premise, ABAP CDS views can be developed and maintained using graphical tools (aimed at business users) or using a code editor (aimed at developers). For SAP S/4HANA Cloud, only graphical tools are used.
Note
The graphical tools used to develop ABAP CDS views actually generate the same types of source files as if they were created manually using a text editor.
ABAP CDS views are defined using a special syntax that was developed by SAP to provide a powerful way to describe data models. In these views you will find a combination of SQL and syntax that provides the additional meta-data. ABAP developers are usually already familiar with ABAP CDS views.