My first Publication Agile-Data-Warehouse-Design-eBook | Page 130
Modeling Business Processes
109
If the answer is NO, logistics could be handled by a contractor and warehouse
workers are not Pomegranate employees. However if the answer is YES then you
have discovered two different roles for a conformed EMPLOYEE dimension. You
record this by renaming the SALESPERSON dimension to EMPLOYEE and
adding the dimension type code [RP] to denote that it is a role-playing dimension.
This change needs to be made to the matrix as in Figure 4-9 and the dimension
table as in Figure 4-10. However, you should leave the subject of the new shipping
event on the matrix as “warehouse worker” to record the specific employee role
that stakeholders used to describe the event. Use [RP] to identify
Role names such as WAREHOUSE WORKER and SALESPERSON are used as
detail column headers in event tables, so the SALESPERSON column in
CUSTOMER ORDERS does not need to be renamed but you do need to associate
it with the EMPLOYEE dimension. You document an event detail, such as
SALESPERSON, as a role of an existing dimension by adding the role-playing
dimension name to its column type using the [ ] type notation as in Figure 4-10. Roles are
role-playing
dimensions
documented as
event details with a
[ ] type identifying
their RP dimension
Figure 4-10
A role-playing
dimension and an
event detail role
[ ] type notation can be used to qualify the type of any event detail or dimensional
attribute. Initially it can be useful to type every event detail with its W-type, such as
[who], [what] or [where], to help everyone think dimensionally using the 7Ws.
Details that are dimension roles use this notation instead to document their role-
playing dimension name; for example, [employee] or [calendar]. As other details
are named after their dimension, they don’t need this qualification. For quantities
their type is their unit of measure, for example, [£], [$], or [miles] as described in
Chapter 2, while Yes/No flags can be documented with a type of [Y/N] showing
their permissible values.
[ ] type notation is
used to record
W-type, unit of
measure, flag
values and RP
dimension names