Data Academy Feature Spotlight: Inheritance


Data Academy® is a low-code/no-code software development environment that utilises software automation techniques and principles to enable the development of enterprise grade data management solutions in a fraction of the time using conventional means. This is achieved by leveraging the functionality of Microsoft SQL Server as well as functionality that extends way beyond SQL Server, accessed through Data Academy’s own development interface.

Feature Spotlight – Inheritance

Application developers that have used languages like C#, VB.NET, C++, JAVA and the like will be all too familiar with the term Inheritance in relation to object oriented programming. This is a paradigm that has forever changed software engineering. Developers have been benefitting from the concept of inheritance in their applications for many years. However, SQL Server and OLAP developers will probably be less familiar with the term as it is an alien concept to these environments.

Insource through Data Academy has introduced the inheritance paradigm into the development of data management solutions.

In its purest form it allows developers to build core application code as abstracts that contain the base attributes of the object in question and subsequent inherit them into a new object.

Screen Shot 2019-04-20 at 15.31.09

This new “instance” can then be modified to perform a new specific function based on the old but configured for a new purpose. This new instance however is inextricably linked back to the original abstract that spawned it.

Screen Shot 2019-04-20 at 15.31.39

The nature of this link is such that any changes to the core (abstract) object are reflected in the inherited versions.

Screen Shot 2019-04-20 at 15.32.05

This means that the core abstract object function and structure can be maintained almost independently of the inherited versions but with the ability to upgrade the inherited versions as required.

Inheritance in Data Academy

The concept of inheritance has been implemented in many of the core modules of Data Academy and new modules are being constantly added to the inheritance model. The following modules currently support Inheritance:

  • STAR-it

Inheritance and TRANSFORM-it

Abstract Transformations can be built for the purpose of inheritance. This is used where the same base transformation needs to be used for multiple purposes, but where each purpose needs a level of customisation.

When to original abstract transformation is updated with additional functionality the inherited versions will be upgraded in synchronisation enabling a single point of maintenance, reducing change management effort and development time.

Schema Inheritance

The inheritance concept is also implemented within the STAR-it and STARCUBE-it modules.

This means that core abstract schemas can be created and inherited into new schemas with the ability to modify the inherited schemas whilst maintaining a link to the original for ongoing maintenance.

This is invaluable when there is a requirement to publish the same schema across multiple user groups with each requiring a change to suit their individual purposes. At the same time retaining central control and maintenance of the base schema, reducing the management and change overhead.

Inheritance with Widening

Data Academy’s schema inheritance goes even further however, allowing the developer to use the inheritance paradigm to combine schemas and produce a new schema from the combination of the previous two.

Screen Shot 2019-04-20 at 15.32.53

Combining two different schemas can be used even when the two schemas are at different levels of aggregation. For example, in the diagram above. If “Fact A” represented the monthly sales targets for the organisation set at the beginning of the year and “Fact B” represented the actual daily sales to date. By effectively combining the two schemas into one using Data Academy’s inheritance with widening functionality, the resultant Schema (Fact A+B) would be a schema that provides target vs actual comparisons providing:

  • The Monthly Targets vs the Total Monthly actuals
  • Drill down to the daily sales actuals for analysis

Combining schemas to achieve this type of output is not the only use for inheritance with widening. As the name suggests, it provides a way of widening the scope of a schema by combining it with another. At the same time, the original schemas continue to provide value independently. Of course when they are modified and improved, the changes implemented are inherited into the expanded schema.

This is the type of functionality that would normally only be available to experienced OLAP developers and would take a considerable amount of time to build. With Data Academy inheritance this level of OLAP sophistication is available to all developers and can be built extremely quickly and still provide re-use of the source schemas for other purposes too.

Inheritance with Narrowing

The need to present the same structure of data to different audiences is not limited to the way the information is presented but can also take the form of the need to limit access to the data content to that which is relevant to the recipients. For example, ensuring that the presented sales figures for a particular division are limited to that division. Data Academy’s Inheritance function with Narrowing is designed to address these problems and provide a centrally managed environment in which to achieve it.

Screen Shot 2019-04-20 at 15.33.36

This diagram shows how the complete content of “FACT A” can be distributed amongst three “inherited” schemas, each showing a sub-section of the total FACT data. What the diagram doesn’t show however, is that the schemas (fact, dimensions and attributes) can be modified once inherited and as with all inheritance implementations they maintain a link back to the source schemas from which they were originally inherited. In turn this means that any changes to the original schema are inherited as updates to the inherited narrowed schemas. This enables ease of central maintenance of an overall organisational schema whilst also respecting localised differences.