Fixing Relationship

Relationships play a fundamental role in the data model performance and sizing, and definitively help the user to have a business picture of the solution that has been implemented. Relationships inconsistencies may lead to severe reporting error as much as exception handling issues : that's why relationships must be designed with the highest accuracy.

Different Tools are available  to facilitate the Relationships design and consistency verification and fix when required .

 

 

Scanning Relationships

Scan Bottom Up

Let's take this simple hierarchy

image297.jpg

 

The "Scan Bottom Up" Action  highlights (in red) those relationships with children-orphans that means children without parent (e.g. Customer without City or City without Region)

 

Scan Top Down

The "Scan Top Down" Action  highlights (in red)  those relationships with parent-orphans that means parent without children (e.g. City without Customer or Region without City )

 

 

Fixing Relationships

The "Fix Relationships" Button performs like a Relationship filler automatically creating Entity members and assigning entities relationships.  When executed it contemporary fixes the Bottom Up and Top Down relationships ; please see the samples below.

 

Bottom Up - Fix Sample

When executed it creates a Parent Element (Not Available) for any  hierarchy level above the "orphan" entity an links it to all the Children-Orphans.

 

image338.jpg

 

In the above hierarchy add a Customer Item without any City or Region.

Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :

> creates the "Not Available" City Item and links it to the new Customer

> creates the "Not Available" Region item and links it to the new Customer

> links the "Not Available" City Item with the "Not Available" Region item

 

 

Top Down - Fix Sample

When executed it creates a Child Element for any hierarchy level below an links it to all the Parent-Orphans. Each child is unique and linked to its Parent.

 

image338.jpg

 

In the above hierarchy add a Region Item without any City or Customer. (e.g. UR Canton Uri)

Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :

> creates the "» UR" City Item and links it to the new Region

> creates the "»» UR" Customer item and links it to the new City ">UR" and to the new Region (UR)

> links the "» UR" City Item with the "UR" Region item

 

Top Down and Bottom Up - Fix Sample

When executed it perform both of the previous actions.

 

image338.jpg

 

In the above hierarchy add a City Item without any City or Customer. (e.g. NE Canton Neuchatel)

Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :

> creates the "» NE" Customer  Item and links it to the new City

> creates the "Not Available" Region item and links it to the new City

> links the "» NE" Customer Item with the "Not Available" Region item

 

 

Notes

 

The number of "»" in front of the Child Code identifies the Level of the Hierarchy (from Top Down) when the fix happens. If you have a three Levels Hierarchy and you add an element in the top (Cod A) its Child at the root of the Hierarchy is coded »»»A.

 

Clicking on the Button performs all the  Fixes  mentioned above independently from their nature  

 

If a "not available" item is already in any level of the Hierarchy it is recognized and used to Fix Bottom Up relationships

 

Procedure Command

The Fix Relationship Action is also available as Procedure Command in the Data Reader Tab as enhancement of the  traditional Normalize Command.

 

image339.jpg

 

To Create a Normalize Command choose from the Drop Down List the Hierarchy upon which the Normalize should work. The option ALL (hierarchies) is also available.

The Command will automatically execute the Fix Relationship Actions as per the above description.

If you like to execute the Normalize without the Fixing Relationship Action please tick the check-box  "Do not fix missing relationships".

Existing Procedures have this option on by default.