Data model changes and their impact levels
The data model changes are classified into three levels according to their impacts on the data model: Low, Medium and High.
When you made changes to a data model, the database schema will be updated accordingly.
Below are some examples of the data model changes, their corresponding impact level, and the results in the database:
Action |
Impact level |
Result |
---|---|---|
Add a new mandatory element without a default value |
High |
The entity table is dropped and recreated with the new column added. |
Add or remove anonymous types |
High |
All entity types using anonymous types may be dropped and recreated. |
Change an optional simple type element to a mandatory one without a default value (null values exist for the given element) |
High |
The entity table is dropped and recreated. |
Change an optional complex type element to a mandatory one |
High |
The entity table is dropped and recreated. |
Change the type of an element from one simple type to another |
High |
N/A |
Change the maximum occurrence of an element from 1 to n or vice versa |
High |
The entity table is dropped and recreated. |
Change the value of totalDigits or fractionDigits of a decimal element |
High |
The entity table is dropped and recreated. |
Make changes in inheritance |
High |
All tables involved in the inheritance tree are dropped and recreated. |
Make high impact changes to an entity that has foreign key relationships |
High |
The entity table is dropped and recreated, together with the tables of all other entities that have foreign key relationships with this entity. |
Remove a mandatory or optional simple type element in a complex type element |
High |
The entity table is dropped and recreated. |
Remove a mandatory or optional complex type element |
High |
The entity table is dropped and recreated. |
Change an optional simple type element to a mandatory one with a default value (null values exist for the given element) |
Medium |
The column in the entity table will be updated with the default value. |
Remove a mandatory or optional simple type element immediately under an entity |
Medium |
The column in the entity table will be removed. |
Remove a mandatory or optional foreign key element |
Medium |
The column in the entity table will be removed. |
Remove an entity |
Medium |
The entity table will be removed. |
Rename an optional element |
Medium |
A column with the old name remains and a new column with a new name is created. |
Add a new optional simple type element |
Low |
A new column is added to the entity table. |
Add a new optional complex type element |
Low |
A new column is added to the entity table, and a new table is created for the complex type. |
Add a new element (of string, boolean or numeric type) with a default value |
Low |
A new column is added to the entity table with the default value. |
Change a mandatory simple or complex type element to an optional one |
Low |
The column definition in the entity table will be changed accordingly. |
Change an optional simple type element to a mandatory one (no null values exist for the given element) |
Low |
The column definition in the entity table will be changed accordingly. |
Change an optional multi-occurrence element to a mandatory multi-occurrence one or vice versa |
Low |
The column definition in the entity table will be changed accordingly. |
Increase the length of a string element for
DB2/Oracle The original length is less than or equal to the maximum length of the database VARCHAR type, and the updated length is greater than the maximum length. 1 |
High | The entity table is dropped and recreated, the type of the element is converted from VARCHAR to CLOB in the database, and the length of the column is increased accordingly. |
Increase the length of a string element for MS
SQL Server/MySQL/PostgreSQL The original length is less than or equal to the maximum length of the database VARCHAR type, and the updated length is greater than the maximum length. 1 |
Low | The type of the element is converted from VARCHAR to NVARCHAR(MAX)/TEXT/TEXT in the database, and the length of the column is increased accordingly. |
Increase the length of a string element (except the above two cases) | Low | The length of the column is increased accordingly. |
Decrease the length of a string element The original length is greater than the maximum length of the database VARCHAR type, and the updated length is less than or equal to the maximum length. 1 |
High | The entity table is dropped and recreated, the type of the element is converted to VARCHAR in the database, and the length of the column is decreased accordingly. |
Decrease the length of a string element Both the original length and the updated length are less than or equal to the maximum length of the database VARCHAR type. 1 |
High | The entity table is dropped and recreated, and the length of the column is decreased accordingly. |
Decrease the length of a string element (except the above two cases) | Low | The length of the column is decreased accordingly. |
1 The maximum length of the VARCHAR type for each supported database:
Database | Maximum length of the VARCHAR type (bytes) |
---|---|
H2 | 255 |
DB2 | 255 |
MySQL | 255 |
MS SQL Server | 4000 |
Oracle | 4000 |
PostgreSQL | 255 |