A proven practice for Framework Manager Meta Modeling is to divide your model into a series of layers, each layer having a specific purpose. (Originally IBM recommended the use of two layers (data and modeling), but later added a presentation layer, and (optionally) a separate dimensional layer).
The layers should be:
- The top layer – or the “presentation layer”,
- The middle layer – or the “logical layer” and
- The lowest level – or the “data layer”.
(The dimensional layer can be used to replace the presentation layer, or can be used in addition to the presentation layer).
The Data layer
Contains the data source or “query subjects”.
The Logical layer
Where most of the modeling is done, providing business context to the data layer. For example, you can join fields from multiple tables, rename fields, assign aliases, organize by folders, etc.
The Presentation layer
This is what the report author sees when you publish a package for report creation.
The Dimensional layer
The dimensional layer is required only for models which include Dimensionally Modeled Relation data (DMR) rather than only the relational data. Specifically, this is for creating regular and measure dimensional query subjects.
In my last post, I created a new FM project named “corvette” and added a simple relational datasource (a SQL database).
You can see that by default, FM created a “namespace” named “FelxibleModel”.
In order to adhere to our “layers” proven practice, we need to make some changes to our project (before we do any real modeling). To do that you can simply right-click on the namespace and select Create and then Namespace”:
From there, rename the namespace as “Data Layer” (right-click on the namespace and select rename). Next, I moved my 2 database tables (Product and Sales) under it (click, drag and drop):
Now I can create my 2 other namespaces (Logical and Presentation):
Remember to save the project. One note, the names for the “layers” can be anything that makes senses within your organization, but give some thought to a convention as object names must be unique identifiers.
Now we are ready to do some real “meta modeling”. See you next post!