Bridging The Gap Between Relational Data and Application-Level Business Objects
Bridging The Gap Between Relational Data and Application-Level Business Objects
PUBLIC
Agenda
HANA
DBMS
HTAP in S/4HANA
MBVMBEW
ACDOCA_M_EXTRACT ⨝ FINSV_CURTP_ML
BUKRS, RLDNR, MANDT Π
FMLT_CURTP_ML
• MBVMBEW, NSDM_V_MARC and friends are simple elements of the S/4 stack
• Pull data modeling, retrieval, and processing to a semantic level close to the domain experts
• Key concepts
• Entities with structured types (instead of flat tables)
• Custom-defined/Semantic Types (instead of primitive types)
• Associations for foreign key relations with cardinalities and simple path filter expressions
• Annotations to enrich the data models with additional metadata – e.g. for Analytics
• Supported Types:
• „built-in“ Primitive Types (like String, Integer, DecimalFloat, Date)
• Custom-defined Simple- and Structure Types
• Examples:
type Derived : String(111);
type Structured {
descr : Derived; // reusing a custom-defined type
amount : Decimal(10,2);
grossAmount : Decimal(10,2) = amount * (1.00 + taxrate()); // calculated element
kind : AddressType default home;
}
• Entities
• Define the persistence layer of an application
• Structured types with an underlying persistency and a uniquely identifying key
• Entity is defined like a structured type, just with a leading keyword entity instead of type
entity Address {
key streetAddress : String(77);
key zipCode : String(11);
city : String(44);
}
entity Employee {
key ID : UUID;
name : String(77);
salary : Amount; // Amount is a structured type
addresses : Association to Address[0..*] via entity Employee2Address;
}
• Examples:
• Many platforms ease the use of SQL through some kind of persistence framework
• Microsoft’s Entity Framework (EF) and LinQ
• Apple’s Core Data (CD)
• Force.com’s SOQL CDS Also supported in…
• CDS stays in the relational model, instead of hiding it behind object-relational mappers
• Preserves advantages such as declarative/functional approach
Client Client
Object-Relational Relational / SQL
Active Records
SQL +CDS
Database Database