Click or drag to resize
Data Model Versions

[This is preliminary documentation and is subject to change.]

This page describes "data model version" - and why this is important to consider when updating to new framework version.

This topic contains the following sections.

Data model

By "data model" is understood a given collection of database objects (and their details):

  • Tables

  • Views

  • Columns (in tables and views)

  • Constraints (primary keys, foreign keys, indexes, computations, ...)

  • Stored procedures

  • Functions

As a general rule, each new major version (=release) of the TOPICA framework defines a new version of the data model. I.e. from version 4.21 to 4.22, some database objects may have been created, and some may have been deleted.

"Service releases", on the other hand, do not imply any changes to the data model. I.e. version 4.21.1 and 4.21.2 of the framework does not require any changes to the data model - both run on data model 4.21. In other words:

  • There is no such thing as a "service release" of data models.

  • When a need to change the data model is identified (e.g. to support some new functionality), a new version of the data model (and hence: a new version of the framework) is developed.

Backward compatibility

Each new version (release) of the TOPICA framework defines a corresponding data model.

New versions (releases) of the TOPICA framework are backward compatible with some earlier versions of the data model. This means, that a new version of the framework will run on data model versions defined by older releases of the framework. I.e. version 4.22.* of the framework will run on databases in data model 4.22 (naturally), 4.21, 4.20, 4.19, etc.

There is no fixed limit to how old data models are supported. The current version (4.30) in theory supports data model version as old as 4.17 - but in practice each new version is only tested on a few recent data models (e.g. framework version 4.30 has been tested on data models 4.30 and 4.29, but not older data models).

When using a new framework version, it is NOT necessary to upgrade existing databases to new data model version (right away). But remember, that new data model versions are introduced in order to implement new functionality. So, when for example framework version 4.23 introduces some new functionality X, that requires the new data model version 4.23, the version 4.23 framework will run on databases in data model 4.22 - but it will not support the new functionality X. In order to get the functionality X running on an existing database (built with a previous data model version), the database in question must be upgraded to the version that matches the framework (in this example 4.23).