Archive for August, 2010

Six Basic Interrogatives – Part 3, 6BI and Business Performance Management

August 29, 2010

In this concluding part of the article about 6BI, I will develop its analysis potential further, show how it compares with architecture frameworks, and cover how it can be utilized for traceability back to the enterprise’s mission statements in order to lend credibility to business performance management (BPM) reporting.

This part was first published in February 2005 under the title “Six Basic Interrogatives – Part 3, 6BI and Business Performance Management ” on the no longer existing website.

Six Basic Interrogatives – Part 3

In two previous articles published in, I described the Six Basic Interrogatives (6BI) Design Framework. In the first article, 6BI was described as an approach to designing databases that support business intelligence applications. In the second article I gave a very simplified example of a scenario and how instances of the business object categories can be identified, as well as introduced my color scheme. In this article I will develop the analysis potential of 6BI further, show how it compares with the Zachman Framework and other architecture frameworks, and cover how 6BI can be utilized for traceability back to the enterprise’s mission statements in order to lend credibility to BPM reporting.

The 6BI Design Framework is a pattern for designing data warehouse dimensions, but it is more than that. It abstracts all dimensions of business intelligence into the six categories of questions that a BI application user might ask. Combinations of questions from these six categories make up the requirements for the models and reports needed by management, analysts, and others within an organization to support decision making. As such, 6BI is an approach that can be used to gather and analyze requirements, and perform gap analysis between “as is” and “to be” models, as well as design the solutions to meet those requirements and close the gaps.

The six categories of the 6BI Design Framework align with the columns of the Zachman Framework for Enterprise Architecture. The Zachman Framework has been widely accepted throughout private industry and has been adopted as a basic building block for major enterprise architecture initiatives within the U.S. Federal Government. Two of these initiatives, in response to the Clinger-Cohen Act of 1996, are the Federal Enterprise Architecture Framework (FEAF) and the Department of Defense Architecture Framework (DoDAF)[1].

The first three rows of the Zachman Framework are Scope, Business Model, and System Model, and represent the Planner’s view, Owner’s view, and Designer’s view of the enterprise respectively[2]. Though originally developed for private sector enterprise information systems, the framework can be (and is) applied to the DoDAF as well, where Scope aligns with Mission Statement, Business Model with Operational Architecture (OA) View, and System Model with Systems Architecture (SA) View, see Figure 1 below. I am going to show how the 6BI Design Framework aligns with both the Zachman Framework and the DoDAF, through the six basic interrogatives. This alignment shows how 6BI can be used to analyze requirements and design solutions as part of both operational architectures and systems architectures that are in synch with an enterprise’s mission.

Figure 1. Zachman Framework and DoDAF alignment.

View Zachman Framework DoDAF
Planner Scope Mission Statement
Owner Business Model Operational Architecture View
Designer System Model System Architecture View

The applicability of 6BI to requirements analysis and solution design is especially true in the area of Business Performance Management (BPM). It is true whether the business is a for-profit enterprise, a not-for-profit organization, or a government agency. The six basic interrogatives and their corresponding business object categories define the context for aligning an enterprise’s Mission Statement with its OA and subsequently with its SA.

Figure 2 shows the six basic interrogatives and the business object categories to which each corresponds. However unlike the Zachman Framework, the order of the interrogatives is significant. It has been my experience that beginning requirements activities by identifying who are the participants (animate and inanimate) that make things happen provides a sound starting point, so I typically begin with the “Who” interrogative. It is not absolutely essential that you identify all of the classes of objects in each category the first time through the framework. The initial pass is a sorting exercise[3] to categorize all of the data elements, classes, and objects to begin to discover common attributes and characteristics among and between them. It is these common elements that enable reuse at a level of abstraction above the purely technical.

Normalization across domains in shared spaces is also enhanced in this way. This means that 6BI gives you a high-level set of classifications in which to group definitions from different systems that describe common object classes. Typically I create a spreadsheet for each business object category (Parties, Products, Activities, etc.), color code[4] them so I can see at a glance which ones I am dealing with at any point, and add or remove rows as I go along. A spreadsheet can generally load most textual data with just a little manipulation and gives you a convenient way to sort and shuffle the entries. This is a working document and usually does not become a permanent artifact of the project.

Figure 2. Six Basic Interrogatives and Business Object Categories.

This is also the point at which you begin to identify the types of numbers, that is the measures and facts, that would most likely be described by the columns (or fields) of the tables you have categorized. For Parties, for example, depending on the business context, you might want to capture and aggregate numbers that derive from activities in which the parties participated, events that are responded to or initiated by the parties, locations where parties operate, or motivators that parties plan or react to. These, of course, are simple two-dimensional analyses but they form the building blocks for more complex queries which make use of more detailed or finer grained levels within each business object category in increasingly complex combinations. Remember the idea here is to provide a starting point for analyzing the source data.

In the 6BI Design Framework, Parties and Products have no direct association with each other. It is only through the other four business object categories (Activities, Events, Locations, and Motivators) that Parties and Products are associated. The left side of Figure 3 shows the relationship of Parties to Activities, Events, Locations and Motivators. The right side shows the relationship of Products to the same four business object categories. This makes sense because only when people engage in activities, exchanging and manipulating things, do frequencies, quantities, monetary amounts, metrics, and other measurements get created.

Figure 3. The indirect association of Parties to Products.

Zachman and DoDAF

Figure 4 is a view of how the corresponding concepts of the Zachman Framework and the DoDAF align with each other and with the six basic interrogatives on which the 6BI Design Framework is based.

Figure 4. Six Basic Interrogatives, Zachman Framework and DoDAF.

Basic Interrogative Zachman Framework DoDAF
Who produces the data we are going to use to measure performance? Business Model –Organizational Units and Work Products Operational Architecture –Roles and their Means to Perform Activities
System Model – Roles and Deliverables Systems Architecture –Systems and Sub-systems
What is being manipulated or exchanged to produce the measurable performance? Business Model –Business Entities and Relationships Operational Architecture –Information Items Input and Output through Activities
System Model –Data Entity and Relationships Systems Architecture –Data Elements Input and Output through Functions
How are the data values that measure performance produced? Business Model –Business Processes and their Resources Inputs and Outputs Operational Architecture –Node-to-node Information Exchange Activities
System Model –Application Functions and User Views of Input and Output Systems Architecture –System-to-system Data Transaction Functions
When does the activity take place and for how long is the performance measured? Business Model –Business Events and Business Cycles Operational Architecture –Timing and Sequencing of Activities
System Model –System Events and Processing Cycles Systems Architecture – Timing and Sequencing of System Events
Where does the activity used to measure performance take place? Business Model –Business Locations and Linkages Operational Architecture –Operational Nodes
System Model –System Components and Links Systems Architecture – System Nodes
Why do we believe the data we are using actually measure performance? Business Model –Business Objectives and Strategies Operational Architecture –Concept of Operations
System Model –Structural and Action Assertions Systems Architecture – Design Strategy and Rules

Though rarely are all six interrogatives expressed in a Mission Statement, they are expressed in the OA and the SA. It is at the operational and systems level that BPM report consumers, decision makers at different levels of an organization, need to understand the numbers they are looking at. The types of questions that need to be answered include:

Who is responsible (persons, organizations, systems, etc.) for the numbers? Who are the parties (consumers, payers, providers, sellers, agents, etc.) among whom the exchange is made? Who else (competitors, partners, etc.) participates in this exchange? What is their affinity (participant, observer, etc.) to the market place? Who (government agency, media, etc.) influences the market place in which we exchange products? Who (sellers, producers, managers, others, etc.) need to, or want to, know this information? What is their affiliation (internal party or external party) with me, the first party?

What products (goods or services) are exchanged (bought, sold, produced or consumed) that produce the numbers I am looking at? What type of work effort participated in the exchange? What events influence the exchange? What are the data elements (out of all that are collected and stored) that give me the most relevant information, at the lowest cost, in the least amount of time?

How do the activities (sales, purchases, production runs, case work, intelligence gathering, analytical activity, etc.) engaged in by parties produce the results? How does the exchange take place? What are the functions and activities engaged in? How do activities produce events that influence the numbers? How do events spawn activities that influence the numbers?

When do the events that influence the numbers take place? Which events (contact, proposal, closing, order, delivery, support call, payment, etc.) influence the numbers? Which do not? At what points in time do the influencing events take place? What events take place at given points in time? How long is the time duration of an event? How long between events? What events outside of our control correlate with the numbers? What events cause a particular event? What particular event causes other events?

Where (geographic locations, virtual addresses, etc.) did the events or activities take place? Where is the location of the events that produce the numbers? Where is the placement of the production assets? Where are the participants? What is the spatial relationship between nodes? Between nodes and other dimensions?

Why are particular pieces of information relevant? Why do particular combinations of events and activities produce the results they do? How are ends associated with means? What are the motivators (strategy, tactics, programs, initiatives, rules, etc.) that correlate with the resultant numbers?

Each of the six basic interrogatives addresses an independent category of characteristics about the problem space, yet the categories are inter-related. In fact there are specific associations between each pair of business object categories. These associations can be expressed as a set of one-to-many relationships (see Figure 3) where the “one” side is a specific business object category (e.g. Parties) and the “many” side consists of one or more of the other business object categories that depend on it (i.e. Activities, Events, Locations, and/or Motivators), but not Products. In a 6BI design, Parties and Products are associated only through a linkage with one or more of the other dimensions.


6BI is also an approach to designing and building solutions that can be traced back to the characteristics and scope of the problem domain and the mission of the organization. If the use cases and requirements are based on the six basic interrogatives, and the classes, workflows, and events that constitute the design of the component parts of the solution (i.e. the System Architecture) are constructed to address those interrogatives, a clear path from the problem space to the solution space can be described. This path takes guidance from the context of the organization’s scope and mission as also defined in terms of the six basic interrogatives. This can be a basis for validity checking the business use cases used to trace business scenarios.

In other words, the characteristics of the business and the problems that it needs to solve define how the solution needs to be constructed. Each category of the problem is addressed by specific capabilities and components of the solution. Each problem category, and combination of the categories, can be scripted in testing scenarios to exercise those features of the solution designed and constructed to address those specific categories and combinations. Requirements compliance can be traced throughout the lifecycle of a project.

When new requirements need to be met the analyst asks herself, in the discovery activities of the requirements workflow, “Have I accounted for all six of the basic interrogative categories”? If the answer is “yes” she then knows she has a comprehensive and useful framework for going forward and digging deeper for answers and solutions. The possible impact of changes on each business object category can be traced separately or together.

This type of thinking about requirements applies whether the implementation is a custom development or a packaged analytical application. As a matter of fact, 6BI can be the basis of a robust subject matter coverage analysis when evaluating commercial off-the-shelf (COTS) software.

Because business intelligence, especially designing the data stores for data warehouses and other analytical and decision support systems, has progressed over the last decade and a half to where it is a mature discipline, many data architects no longer actually create uniquely designed databases directly from requirements. With the emphasis on design patterns and the availability of domain specific templates and examples, the emphasis is now on gap analysis. Gap analysis is the process of closing the gap between a given design, which can be either an industry standard, a generic model, or built into a product, and the acknowledged data requirements of the problem at hand.

The 6B Design Framework can actually provide a very thorough vehicle to facilitate this gap analysis. 6BI is a way to organize your thinking and help you to know what types of questions to ask in order to “cover all the bases” or make sure no gaps remain in the requirements analysis process. This gap analysis is especially critical in designing databases to support modern business intelligence technologies such as Business Activity Monitoring (BAM) where visibility into business processes and the atomic activities that make them up is critical. It is critical because different sets of events and activities are important to individuals and groups at different levels of an organization. The wider the scope of responsibility of an individual or group, the more aggregated and wider their reporting needs become. In order to aggregate data from more atomic and concrete levels to broader and more abstract levels, the aggregation must take place along one or more dimensions of the data. It is also critical that this visibility into the business processes be as independent of the implementation technology as possible.

The 6BI approach helps to identify these dimensions by grouping them is six distinct categories, each of which is aligned with a type of question an end user might ask about the nature of the information that they need. As questions become more and more detailed and precise within each interrogative category, a 6BI designed system allows the user to drill-down through combinations of dimensions that correspond with the types of questions asked. 6BI identifies the six fundamental business object categories that identify the dimensions of the answers to operational questions about an enterprise, its parties, its products, its activities, its events, its locations, and its motivators.


“A framework for information systems architecture” by John Zachman, IBM Systems Journal, Vol 26, No 3, 1987

“Zachman Framework Extensions: An Update” and “Rules for the Zachman Framework Architecture”, Database Newsletter, Vol 19, No. 4, July/August 1991

“DoD Architecture Framework Version 1.0”, U.S. Department of Defense Architecture Framework Working Group, 9 February 2004

[1] I like to think of this object sorting process as analogous to the Sorting Hat process that each first year student at the Hogwarts School of Witchcraft and Wizardry must go through in the Harry Potter books.

[2] The choice of colors is purely arbitrary but I typically use red for “who”, blue for “what”, green for “how”, aqua for “when”, maroon for “where”, and violet for “why”. Proforma ProVision, used for business vision, operations and process modeling, for example, uses a completely different color scheme.

[3] DoDAF was originally called the Command, Control, Communications, Computers, Intelligence, Surveillance, and Reconnaissance (C4ISR) Architecture Framework. It has recently undergone an update and standardization process, in response to user feedback and an executive mandate to provide common standards to improve information sharing, thus the name change.

[4] The additional Zachman Framework rows, Technology Model, Detailed Representation, and Functioning Enterprise, representing the Builder’s view, the Subcontractor’s view, and the Actual System view are not discussed in this article. The Technology Model aligns with the Technical Standards Architecture (TA) View in the DoDAF.

Six Basic Interrogatives – Part 1, 6BI Overview

August 29, 2010

This article is the first of a three part series that introduces a method for analyzing the data sources for a business intelligence solution in a framework that classifies the data entities into six (6) basic categories, sometimes called business object classes, but that I call the “Six Basic Interrogatives” or “6BI”, a term taken from journalism. Obviously a play on the common abbreviation for business intelligence, BI, as well. It is based on the familiar Zachman Framework for Enterprise Architecture, and thus acts as a bridge between the disciplines of Business Intelligence and Enterprise Architecture, EA. These categories are the aspects (vertical columns) of the Zachman Framework; “Who”, “What”, “Where”, “When”, “Why”, and “How”.

The article was first published in January 2004 on, a website that no longer exists, under the title “Six Basic Interrogatives – Part 1, 6BI Overview”. The article owes much not only to John Zachman, but also Dan Tasker and Len Silverston, from whom much inspiration was gained and hopefully refined in the process.

Six Basic Interrogatives – Part 1

One of the most difficult and yet most critical activities to get right when embarking on a new Business Intelligence / Data Warehousing (BI/DW) project is organizing and presenting the data requirements in such a way that they make sense to the persons responsible for designing and building the database that will support the decision support application. Two aspects of this activity make it very important.

First, when a significant amount of analytical ad hoc reporting is required, the database cannot be tuned to enhance the performance of any specific query. In ad hoc environments all the details of all queries are not known in advance (if they were it would not be ad hoc and probably of limited analytical value). Second, the people who design and build the database may not have personally participated in the often intense and sometimes contentious requirements gathering and analysis process. These two skill sets (business requirements analysis and database design) are often found in persons with different learning styles, experiences and motivation, so are quite frequently done by different individuals.

The required business performance measurements need to be identified, agreed upon and the algorithm for each defined. The available data sources that support these measurements must also be identified. Ideally the activity to identify candidate data sources will be performed in parallel with that of identifying business performance measurements. Once both of these “identifying” activities have reached an agreed upon state of completeness we then need to match the performance measurements to the data sources. That is, we need to know what are the data elements which, when combined algorithmically, produce the required performance measurements. We need to answer these questions:

Who produces the data we are going to use to measure performance?
What task, item or service is producing the measurable performance?
Where does the activity used to measure performance take place?
When and for how long is the performance of the task, item or service measured?
Why do we believe the data we are using actually measure performance?
How are the data values that measure performance produced?

These questions, or others very similar to them, form what I call the “Six Basic Interrogatives” or 6BI approach to database design for business intelligence. I use this term, borrowed from journalism, to describe a framework for thinking about what needs to go into the database to support decision making and ad hoc reporting. Which is, after all, what needs to come out of a data warehouse or decision support application for it to be useful. In other words we need to know all the factors that influence the data we use to measure performance.

To answer these questions, the structures within a business intelligence database must be designed to hold information about certain categories of business objects. These categories include:

Parties (Persons and Organizations) who produce the data we are going to use to measure performance.
Products (Goods and Services) that are represented by the data used to measure performance.
Locations (and Means of Communication) that facilitate the Goods and Services represented by the data used to measure performance.
Points in Time when the data is produced that is used to measure performance, and Durations over which the performance measures are produced.
Initiatives and Programs designed and executed to influence the data used to measure performance.
Contracts, Exchanges and Actions that represent the activities (participated in by the Parties) that produce the data used to measure performance.

These business object categories then provide the starting point for classifying the dimensions of a data warehouse database design. The design needs to allow enough flexibility to support ad hoc reporting by focusing on the basic questions that all decision support data structures need to support. However, good dimensional design also needs to address the unique decision making environment of the specific enterprise for which it is being built.

The next challenge, of course, is determining the actual measurements of performance themselves. These make up the facts or measures in the fact table that the dimensions describe. These are the data elements that, when combined algorithmically, produce the required performance measurements.

The 6BI design framework provides an approach for organizing and understanding the context of business intelligence and provides a way of classifying legacy data and meta data so that it makes sense and can be built upon. It can not and should not be followed slavishly and there are quite often data structures which simply cannot be easily classified. However, if a place to get started with your database design is what you need it can provide a platform to build upon.

In future articles I plan to discuss each of the 6BI business object categories in more detail, what you look for to identify how to classify data elements and examples from my own work experience. As the database administrator (DBA) function evolves from solely a technical expertise to more of a partner with business domain experts we will all need to quickly and effectively transform business requirements into working software solutions.

Six Basic Interrogatives – Part 2, 6BI Design Framework

August 29, 2010

This is the second part of the original three part article about the “Six Basic Interrogatives” or “6BI” for analyzing the source data for business intelligence solutions. I this part an example of how to apply the method is given.

This part was first published in March 2004 under the title “Six Basic Interrogatives – Part 2, 6BI Design Framework” on the no longer existing website.

Six Basic Interrogatives – Part 2

In a previous article I discussed a conceptual framework for designing and building databases that support business intelligence and data warehousing applications. In the article I mentioned the six basic interrogatives, borrowed from journalism, that are the basis for our thinking and subsequent design work in building databases that support the performance measurement and decision support processes. An interrogative is of course a question and our goal is to answer questions.

Six corresponding categories of business objects were identified that align with these six interrogatives. These business object categories identify the dimensions of the answers to our business questions. Our answers come from algorithms based on combinations of measurements set in a context of these business objects.

Each business object category contributes to the production of performance measuring data. All the categories together provide the different aspects one uses to analyze business performance. These business object categories therefore form the ‘6BI Design Framework’ that can be used in designing and building databases for business intelligence.

Figure 1 shows the six basic interrogatives and the business object categories they correspond to:

Figure 1. Six Basic Interrogatives and Business Object Categories.

Let’s look at a simple scenario. Alpha Corporation receives an order on 30 October 2003 on their website, for 100 units of Alpha Super Stuff from Bravo Enterprises. On 5 November 2003 the fulfillment of the 100 units is made. The payment of $1,000 USD is made on 15 November 2003, via an electronic funds transfer. Carol Daniels, the customer representative, who covers the sales territory is responsible for writing the contract for the sales process. She worked on it for one week. The activities took place in the fourth quarter of 2003. The business transaction is associated in time with an advertising campaign for Alpha Super Stuff.

Using the 6BI approach we can classify the business objects, each underlined and color-coded in the scenario above, into the categories that form the 6BI Design Framework. Let’s see how we do this:

First, Alpha Corporation and Bravo Enterprises are Organizations, a type of Party. Carol Daniels is a Person, another type of Party. This tells us who produces the data we are going to use for our performance measurements. If we are measuring performance from the perspective of Alpha Corporation we call it the first party in our example. To accommodate who produces the data we need to create dimensional entities and attributes that describe persons and organizations in our decision support data models.

Second, Alpha Super Stuff is a Product, in this case the Goods which were exchanged between Alpha Corporation and Bravo Enterprises, the second party in our example. It answers the question of what produced the measurement data. But Carol Daniels’ Work Effort also produced the data so we need to include that here as well. To describe what is produced we need to create entities and attributes that describe goods and services in our dimensional data models.

Third, the website tells us the Location of where the process was initiated, in this case in virtual space. The sales territory tells us where to Place the exchange geographically. We need to create dimensional entities and attributes to describe where the exchange occurred.

Fourth, the dates above record the Events occurring at different points in time that tell us when the exchange that produces the data occurred. The fact that Carol Daniels worked on it for one week in the fourth quarter of 2003 tells us the Duration over which some of the data is relevant. In our decision support data models we need to create dimensional entities and attributes that describe points in time and periods of time.

Fifth, the sales process (including the order, fulfillment and payment) is an Exchange between the parties and tells us how the data that we are going to use for our measurements were actually produced. The contract between Alpha Corporation and Bravo Enterprises gives us the means by which the data was produced. To accommodate this we need to create dimensional entities and attributes that describe business processes.

Sixth, the advertising campaign which is a Program, gives us an idea of perhaps why the measurement data was produced. To accommodate this we need to create dimensional entities and attributes that describe motivators in our business intelligence data models.

Lastly, the bolded items in the scenario above (100 units, $1,000 USD) are, of course, instances of the measurements themselves. In future articles I will discuss measures and how they fit into the dimensional context we have outlined by the 6BI approach. I will also discuss color coding and how it helps to document the 6BI Design Framework.


At the logical level the 6BI Design Framework forms the basis for the reuse of entities, attributes, value domains, relationships and other logical objects in our data warehouse designs. When actually implemented in software the 6BI Design Framework is instantiated as tables, columns, constraints, references and other database objects with common features across implementations and across business domains.

This ability to reuse our decision support database objects as widely as possible across many areas of business intelligence reduces the amount of discovery work that is needed for each effort. It also frees up valuable human resources to concentrate on specializing these objects to meet the requirements of specific business domains. It is, after all, the problems of specific business domains that we need to solve with our business intelligence applications, and not theoretical or conceptual problems. Our business intelligence applications can then become more and more aligned with the goals of the enterprise and produce better results faster and more economically.

Attribute Enabling

August 29, 2010

This article describes a method for designing data which allows for the adding and removing of attributes from the instances of a single entity. At the physical database level this is equivalent to adding or removing columns from a database table depending on the rows of that table, a technical impossibility. One row of the same table might have fifteen (15) columns and another row might have twelve (12) or eighteen (18) columns. The idea revolves around the concept of a generic attribute pool from which each row in a table can “borrow” additional columns as needed. These “borrowable” columns are stored in the form of key-value pairs in their own table. Sometimes the value side of the pair can have a fixed value, for example: “5”, and sometimes the value side can be a variable with a value inserted programatically. The technique is presented as a way to give flexibility to the otherwise rigid nature of RDBMS design.

The article was first published in February 2001 on the DM Review website under the title “Attribute Enabling, a Database Design Method”. As of this posting and for a few years now this site no longer exists. Since the publication of Attribute Enabling, similar design schemes have popped up in solutions such as the Trading Community Area (TCA) of the Oracle e-Business Suite Applications, and others.

Attribute Enabling

Have you ever been in a situation when the company you work for has changed its line of business? Perhaps the change is so great that an entire rewrite of a major business system is needed, or the purchase of an entirely new system is required to meet the changing business needs. If so, you are well aware of how much work this can be for an IT staff and how disruptive it can be for end users, analysts and managers, not to mention possibly customers and vendors. There are horror stories of business impacts so great that it has taken years, if ever, to recover. Unfortunately, this same disruptive process is often experienced unnecessarily when less extensive changes are required. One of the reasons why this is so is because of the static and inflexible nature of the design of many application databases. For example, suppose your company has been in the business of producing small metal parts used in the fabrication of larger and more complex electronic equipment. Each of the items you produce can be described by a set of attributes (e.g., length, width, gauge, etc.). There could be dozens (or even hundreds) of attributes describing any one item. Each item type can be described using a different set of values for these attributes or, in some cases, a different set of attributes all together. For instance, part #101 could have a length of 1 inch, a width of .5 inches and a gauge of .03 of an inch. Part #102 would, undoubtedly, have different values for these and all the other attributes that your information system uses to store a description of an item.

Let’s say that up until this time color was never a factor in the production of an item. Either all products were the same color, or color simply did not matter. Now, because of increased competition or a decision to expand the business, items will be produced in several colors along with all the other traditional attributes. Perhaps some items will have color as an attribute and others will not. This last requirement (simplified as it is) typically poses a challenge to the database designers in an IT shop. You can either add color as a new attribute to the entity in your data model that represents an item or add a new entity to include color and all the other additional attributes to the data model to create a relationship back to the “base” item entity. Either way you could be initiating far more change in your application system than at first it would appear because, as we all know, data changes have a way of propagating themselves throughout a system with a kind of rippling effect. The impact of this effect is often difficult and time-consuming to estimate and manage.

Suppose there was a way to enable a unique set of attributes to describe each specific item type. Only those attributes that apply to part #101 would be used to describe it, attributes that do not apply could be ignored saving both human and processing resources. If an attribute – for example, density – had no relevance to part #101, it would not be used to describe it. The attribute color, on the other hand, would be enabled and could have a value of “red” or “blue” or any color from the domain of allowable values for the color attribute. If, at some point, density becomes relevant to item #101, the density attribute could then be enabled for that item and a value assigned to it. If color becomes no longer relevant to item #101, the color attribute could be disabled for even more flexibility.

Attribute enabling allows this flexibility in describing products as well as customers, facilities and even specific orders by selectively “turning on” the set of attributes that describe each unique type of business object and not requiring the inclusion of “unused” attributes in the descriptions of business object types where these attributes do not apply. Flexibility is accomplished through very fine grained entity attribution. Figure 1 shows a simplified schema for attribute enabling a product line. The generic attribute pool is represented by Attribute_Header and Attribute_Detail. The header describes characteristics that are common to all attributes such as name and effective date, and the detail describes the domain of values for each generic attribute. These allowable values will almost always take two forms:a range, used to describe contiguously valued attributes, or a list, used to describe noncontiguously valued attributes. A range is used to describe an attribute such as width, where any attribute instance assigned to any specific object instance can have any one value from a contiguous bounded range of values. This characteristic of a range lends itself to, among other things, run-time calculations based on enabled-attribute values, and only the upper and lower bounds of the range are stored. A list, on the other hand, is used to describe all nonnumeric attributes such as color as well as noncontiguous numeric attributes such as identification numbers which are not used in calculations. For a list of allowable values, each discrete value is stored separately. Thus, for a range attribute, we have a relationship of one attribute header to two details (i.e., 1:2) and, for a list attribute, we have a one to many relationship (i.e., 1:N).

Figure 1: Schema for Attribute Enabling

The Product_Attribute entity resolves the many-to-many relationship between the pool of generic attributes (Attribute_Header and Attribute_Detail) and the product hierarchy (Product_Line, Product_Category and Product_Item). Note on Product_Attribute there is a “discriminator” attribute (hierarchy_descriminator) that indicates which level of the product hierarchy a particular enabled attribute is associated with. This enables the second feature of attribute enabling, inheritance.

Inheritance is the ability to associate an enabled attribute with an element higher in the hierarchy and have that attribute inherited by all or some of the lower elements in the hierarchy. Using our previous example, suppose part #101 is an item in category #23, which is a category under product line #4. The color attribute can be enabled for product line #4 and inherited by to all of its categories (including category #23) and then to its items (including part #101). Inheritance can be complete as described when a particular enabled attribute is inherited by all the categories and items under a product line, or discretionary where only selected lower hierarchy elements inherit selectively enabled attributes to give more flexibility to the schema.

Even more flexibility can be achieved when values are taken into consideration. For example, let’s say the attribute “color” is completely inherited by all the categories and items of product line #4. An impact, usually a price impact, can be associated with each value of an enabled attribute. A customer ordering a red part #101 might be charged mor, because of the price impact of the value “red” than a customer ordering a blue part #101.

There are several advantages to attribute enabling. As business conditions change, it can be used to extend the life of legacy systems by broadening the attribution of essential business objects. Once an item or a customer has been attribute-enabled, the ability to describe that object using a flexible set of attributes can be realized. Attribute enabling can be used to bridge the gap between an older system’s view of business data and a newer system’s view. Perhaps the largest benefit to attribute enabling is that it enables businesses to customize their essential business objects (i.e., products, customers and business units) to meet the changing business requirements. Imagine the benefit of enabling a sales representative to customize a product interactively with the customer by drawing on a pool of attributes and their values to offer the customer uniquely what they want. If, as Alvin Toffler1 has said we are entering an era of “particle marketing,” then attribute enabling is a technology that can meet that challenge.


1. Alvin Toffler, keynote speech, International Sybase user Group Meeting, 1994, San Jose, California.