Computer science theory becomes practice through Hana


While SAP is marketing its own database Hana as a time machine - Realtime Enterprise - some scientists at SAP are trying their hand at serious basic research.
The result is, among other things, a graph engine that provides a database engine based on the principle of graph theory in addition to SQL on the Hana platform. The SAP PAL (Predictive Analysis Library) whitepaper already contains numerous Hana functions that go far beyond the SQL language space.
With graph processing in Hana, however, SAP has gone one step further, because here there is not only the graph engine, but also a compiler for the graph programming language Wipe.
Naturally, graphs are not always better than SQL tables, but many real-life problems can be better represented by graphs or are intuitively already available as graphs anyway. Perhaps the best known example is the Travelling Salesman problem.
A traveling salesman has to visit certain places and tries to optimize the route. The places are the nodes of the graph and the connecting lines - roads, airways, etc. - between the nodes are the edges.
Mostly one uses directed edges. In the colloquial language called arrows, with it one can indicate that not only two places are connected by a link, but also how and whether one can get from one to the other place.
The theory deals with both directed and undirected graphs. At the beginning, graph theory is very intuitive: A complex road system can be represented very well as a graph.
Now, if this system is located on the two land sides of a river and there is only one bridge connecting these two subsystems, then the graph theorist also speaks of bridge. As a database engine, predominantly directed edges are used, which thus define relationships between the nodes.
Accordingly, a graph is the general name for an abstract structure that represents a set of objects together with the connections that exist between those objects, referred to in mathematics as nodes and edges.
Both the nodes and the edges can have properties. Graphs are usually represented by individual circles connected by lines. Other illustrative examples are family trees, mind maps or the subway network of a city.
In a graph database, data can be stored, managed and queried in the form of graphs. They are particularly well suited to displaying highly interconnected and unstructured information in a descriptive manner.
This is because they attach equal importance to the stored data (for example, customers or products) and the relationship between these data (for example, "who buys what" or "which purchase took place first"). So these relationships are no longer dismissed as mere metadata, but rather are at the heart of the model.
Graph databases support myriad of these directed relationships between instances. This creates an extensive semantic context for the data. Connections and dependencies in networks of people, but also product networks, such as telecommunications systems or the ever-growing Internet of Things, can thus be specified extensively. Based on this, new services can be developed or existing ones improved.
The Hana platform offers the possibility to build a graph database. For this purpose, there is the self-developed programming language Wipe, which is still in a closed ramp-up status. It is therefore possible that product names may still change until the final release.
The Graph community among Hana experts and among partners and existing customers is still very manageable. It remains to be seen whether this approach can become a mainstream movement in the ERP environment.
The fact is, however, that many analytical and Big Data problems from real life can be mapped very elegantly with a graph database. Wipe and the Hana Graph Function Library should therefore have a permanent place in the area of predictive analytics.