Models and their meanings

The structure of our Datawarehouse model is a star schema structure, which is typically used in Power BI reports.

What is meant by star schema?

A star schema is a database organizational structure optimized for use in a data warehouse or business intelligence that uses a single large fact table to store transactional or measured data, and one or more smaller dimensional tables to store attributes about the data. The figure below shows an example from our data warehouse:

Star-Schema-for-processes-in-english-culture
Figure 1: Star schema for schema name TestCollectionShowcaseprocessesenUS

With a star schema, the fields list is easier to navigate. Star schemas make your data model cleaner and easier to use. A star schema also makes DAX expressions simpler compared to DAX expressions made for a schema with one wide flat table. It will be shorter, easier to write, easier to read, and easier to maintain.

Models used in our star schema

Before going through the details of our star-schema, it is important to know that we have a number of schemas in our Data Warehouse. These schema can be categorized under the following names:

  • CollectionName_ StorageName processes: includes all processes whether in English or German culture and whether released or not
  • CollectionName_ StorageName processes en US: includes processes only in English culture and whether released or not
  • CollectionName_ StorageName processes de DE: includes processes only in German culture and whether released or not
  • CollectionName_ StorageName released_processes: includes only released processes whether in English or German culture
  • CollectionName_ StorageName released processes en_US: includes only released processes and only in English
  • CollectionName_ StorageName released processes de_DE: includes only released processes and only in German

For example, if you wanted to build a report based on processes only in English culture, whether they were released or not with a Collection name of "TestCollection" and the storage name was "Showcase", then the full name of the schema would be: TestCollectionShowcaseprocessesenUS

See Figure 1 above.

Each star schema listed above has a fact table (the main table) and a number of dimensions related to this fact table. These tables can be categorized as follows:

  • Fact table for processes (main table at the center of star) and is called fact _ Processes
  • Date Dimension tables (dim _ CreationDates, dim _ ChangeDates, dim _ ReleaseDates, dim _ ValidFromDates, dim _ ValidUntilDates)
  • Contributor Dimension tables (dim _ Creators, dim _ Changers, dim _ Responsibles, dim _ Authors)
  • Other Attributes Dimension tables (e.g. dim _ Stereotypes, dim _ States, dim _ Types)

The fields contained in these tables are described in detail below:

Fact Table for processes

Field Name Field Type Field Description
_CreationId Text The Id of the task from the version of the process from which the current version was created
_Id Text Unique identifier of the container of the process (because processes can have more than one version)
_ReleasedCreationId Text The Id of the task from the version of the released process from which the current version was created
_ReleasedStereotype Text Stereotype of process if it is released
_ReleasedVersionId Text Unique identifier of the released process version Id
_State Text In Process/ In Effect/ Released/ Expired
_Stereotype Text Stereotype of process
_Type Text Main Process/ Sub Process/ Scenario
_VersionId Text Unique identifier of the current process version Id
Author Text Unique identifier to relate with dim_Authors table
ChnagedBy Text Unique identifier to relate with dim_Changers table
ChangedOn Date Long Date to refer to the date of latest change performed on process
CreatedBy Text Unique identifier to relate with dim_Creators table
CreatedOn Date Long Date to refer to the date of creating the process
Description Text Description of current process (English or German depending on the selected schema)
Id Text Id attribute of process (can be bull)
MajorVersion Whole Number Example: If the process version is 3.2 then MajorVersion is 3 (digit before dot)
MinorVersion Whole Number Example: If the process version is 3.2 then MinorVersion is 2 (digit after dot), so it means the draft version number 2 based on the released version 3
Process Text Name of current process (English or German depending on the selected schema)
ReleasedAuthor Text Unique identifier to relate with dim_Authors table and it refers to the Author of the process if it is released
ReleasedChangedBy Text Unique identifier to relate with dim_Changers table and it refers to the Changer of the process if it is released
ReleasedChangedOn Date Long Date to refer to the day of latest change performed on the released process
ReleasedCreatedBy Text Unique identifier to relate with dim_Changers table and it refers to the Creator of the process if it is released
ReleasedCreatedOn Date Long Date to refer to the day of creating the released process
ReleasedDescription Text Description of process if it is released
ReleasedId Text Id attribute of process if it is released (can be bull)
ReleasedMajorVersion Whole Number Example: if the process is released and has version 3.2 then Major Version is 3 (digit before dot)
ReleasedMinorVersion Whole Number Example: if the process is released and has version 3.2 then Minor Version is 2 (digit after dot), so it means the draft version number 2 based on the released version 3
ReleasedName Text Name of the process if it is released
ReleasedRelOn Date Date of releasing the process if it is released
ReleasedResponsible Text Unique identifier to relate with dim_Responsibles table and it refers to the responsible of process if it is released
ReleasedUniqueId Text Generated Id for the process if it is released (read only) that is set by the unique id provider
ReleasedUrl Text Url used to navigate to the process if it is released
ReleasedValidFrom Date Validity Start Date of process if it is released
ReleasedValidUntil Date Validity End Date of process if it is released
ReleasedVersion Text Version number of process if it is released, and has the format of x.x where x is a digit, e.g. 0.1 or 1.0 or 1.1
RelOn Date Released On Date
Responsible Text Unique identifier to relate with dim_Responsibles table and it refers to the responsible of current process
UniqueId Text Generated Id for the process (read only) that is set by the unique id provider
Url Text Url used to navigate to the current process
ValidFrom Date Validity Start Date of process
ValidUntil Date Validity End Date of process
Version Text Version number of current process, and has the format of x.x where x is a digit, e.g. 0.1 or 1.0 or 1.1

Date Dimension tables

All date dimension tables in this schema (i.e. dim_CreationDates, dim_ChangeDates, dim_ReleaseDates, dim_ValidFromDates, dim_ValidUntilDates) have the same fields list as follows:

Field Name Field Type Field Description
_DateId Date Date in Long date Format like: Saturday, 01. October 2016
Has53ISOWeeks Whole Number 1 if the corresponding date year has 53 ISO Weeks, otherwise 0
Has53Weeks Whole Number 1 if the corresponding date year has 53 Weeks, otherwise 0
IsLeapYear True/False 1 if the corresponding date year is a leap year, otherwise 0
IsWeekend Whole Number 1 if the corresponding date day is a weekend, otherwise 0
MMYYYY Text Date in standard format of MMYYYY
Style101 Text Date in standard format of MM/DD/YYYY
Style103 Text Date in standard format of DD/MM/YYYY
Style112 Text Date in standard format of YYYYMMDD
Style120 Text Date in standard format of YYYY-MM-DD
TheDay Whole Number The day number within the corresponding date month (range is 1-31)
TheDayName Text The day name within the corresponding date week, e.g. Tuesday
TheDayOfWeek Whole Number The day ordering number within the corresponding date week (range is 1-7)
TheDayOfWeekInMonth Whole Number N if current day is Nth day of corresponding month e.g. 3 if today is 3rd Wednesday in corresponding month
TheDayOfYear Whole Number The day ordering within the corresponding date year (range is 1 -366)
TheDaySuffix Text The suffix used when naming the day order within the corresponding date month like: 4th of July, or 1st of May (has only one of 4 values "st", "nd", "rd"; and "th")
TheFirstOfMonth Date Long date referring to the first day of the corresponding date month
TheFirstOfNextMonth Date Long date referring to the first day of month next to the corresponding date month
TheFirstOfQuarter Date Long date referring to the first day of the corresponding date quarter
TheFirstOfWeek Date Long date referring to the first day of the corresponding date week
TheFirstOfYear Date Long date referring to the first day of the corresponding date year
TheISOweek Whole Number The corresponding date week number based on ISO standard
TheISOYear Whole Number The corresponding date year as a whole number
TheLastOfMonth Date Long date referring to the last day of the corresponding date month
TheLastOfNextMonth Date Long date referring to the last day of month next to the corresponding date month
TheLastOfQuarter Date Long date referring to the last day of the corresponding date quarter
TheLastOfWeek Date Long date referring to the last day of the corresponding date week
TheLastOfYear Date Long date referring to the last day of the corresponding date year
TheMonth Whole Number Month number (range is 1-12)
TheMonthName Text Month name (range is January - December)
TheQuarter Whole Number Quarter number (range is 1-4)
TheWeek Whole Number Week number within corresponding date year (range is 1-53)
TheWeekOfMonth Whole Number Week number within corresponding date month (range is 1-5)
TheYear Whole Number Corresponding date year as a whole number

Contributors Dimension tables

Each type of contributor in the corresponding processes has a dimension table that includes further details about this contributor. However, all of these dimension tables have the same fields list as follows:

Field Name Field Type Field Description
_UserId Text Unique identifier that identifies the contributor
CreatedBy/ ChangedBy/ Responsible /Author Text Full name of the corresponding process contributor
FirstName Text First name of the corresponding process contributor
Id Text Id attribute of process (can be bull)
LastName Text LastName of the corresponding process contributor

Other Attributes Dimension tables

In our star schema we added further important dimensions, each of which has its own list of fields. These are:

Table dim_Stereotypes

Field Name Field Type Field Description
_StereotypeId Text Unique identifier that identifies the stereotype (auto generated)
_StereotypeName Text Id or if null _Id of the Element
_Type Text Type of stereotype (here it can be mainProcess, subprocess, scenario or task)
RelatedType Text Suffix of Type of corresponding stereotype
StereoType Text Name of stereotype

Table dim_Types

Field Name Field Type Field Description
_TypeId Text Can be one of the following values: mainProcess, subProcess or scenario
Type Text Can be one of the following values: Main Process, Sub Process and Scenario

Table dim_States

Field Name Field Type Field Description
_StateId Text Can be one of the following values: expired, hide, inEffect, inProcess, released, show
State Text Can be one of the following values: Expired, Hide, Valid, In Process, Released, Show