Recently I received the following email from a reader about a
Ron Ross article published on this web site:
What about this text Ron Ross wrote in the third part of his
series, The Business Rule Approach: Changing the Face of IT Methodology?
It is unbelievable that he still doesn't understand that the fact model is the
conceptual model. That it is nothing new. His definition now almost fits yours.
This article is again full of debunking stuff. Can you understand what is he
talking about, type codes and instances and all those fuzzy words? Why is it
possible that his opinion is "printed" on and on?
The reader refers to my two articles, Something to Call One’s Own
and The Name Game,
both titles and content of which refer to the penchant in the industry for “new
approaches” or “paradigms”. Alas, the Codd caliber is extremely rare (to
understate the case), and an inspection of many of the industry’s “paradigm
shifts” reveals numerous attempts to coin “new approaches” that not only lack
soundness, but are not even new. Often they prove to be old relabeled stuff
(discredited to boot, witness the hierarchic data model underlying XML,
rendered obsolete more than three decades ago). Those
Who Don’t Know the Past Are Doomed to Repeat It.
The “business rules approach” is another such attempt. I am
not going to repeat a third time all that I already questioned twice. I will
just selectively debunk a few of the pronouncements in Ross’s TDAN article to
prove my point.
A fact model is a diagrammatic representation of a structured
business vocabulary, which is essential for expressing large numbers of rules
in a consistent fashion. A fact model is central, business-oriented deliverable
of the business rules approach.
The “fact model” is practically indistinguishable from the
good old conceptual model (or business model, as it is sometimes
referred to). Indeed, as we state in Business Modeling for
Database Design, the conceptual model can have a graphic
representation,
but in its non-graphic form, it is a collection of business rules (formally
predicates) expressed informally in natural language (see also The Logic of Business
Rules).
Note: The graphic form has a weakness: there are many
business rules that cannot be represented graphically.
How does a fact model differ from a logical data model? We view
a fact model as part of the business model a project should develop, whereas a
logical data model is part of the system model it should develop. A fact model
provides a business-based starting point—a blueprint—for subsequent development
of a logical data model or database design. A good fact model can be easily
transformed into a first-cut logical data model.
There are naturally significant differences in perspective,
purpose, and success criteria between fact models and logical data models. In
contrast to a fact model, a logical data model generally places emphasis on the
following areas.
The term “logical data models” reveals confusion of levels of
representation and models (see “Universal Data Models”,
Levels of Representation, and the Importance of Thinking Precisely
).
The concept of a data model was invented by Codd, as follows:
[A data model]
is a combination of three components:
1. a collection of data structure[s]…
2. a
collection of operators or inferencing rules, which can be applied to
any valid instances of the [pertinent structures] listed in 1, to retrieve or
derive data from any parts of those structures in any combinations desired;
3.
a collection of general integrity constraints
*,
which implicitly or explicitly define the set of consistent database states or
changes of states, or both…
--E. F. Codd,
Data
Models in Database Management, IBM Research Laboratory, 1980
*
We prefer the term integrity constraint to Codd’s integrity rule,
which is the representative in logical models of the business rule
in conceptual models.
As we explain in paper #4, conceptual and logical models are enterprise-specific;
they are models at the business and database levels,
respectively, of specific enterprises of interest. Conceptual models are more
or less what Ross calls “fact models”; they are informal and consist of
business rules—which are nothing but generalized facts—and, as such, are the
user-understood
meaning of databases. Logical models are the formal database
representations of fact models, consisting of integrity constraints, the
DBMS-understood
meaning of databases. The data model (not models!) is not of
enterprises, but of data in general! It is the “translation language”,
so to speak, that makes the mapping of informal conceptual models to formal
logical models possible.
Because of confusion between the three types of model, Ross’s
notions of ‘differences in perspective’ and ‘relative emphasis’ are not worth
getting into.
A fact model and a logical data model also often have very
different perspectives on the best handling of what is commonly known as type
codes. Remember that the emphasis in fact models is on standardizing the
business terminology and then capturing rules. The emphasis in a logical data
model, in contrast, is often on achieving the most flexible data design
possible—usually
the best design for accommodating change.
Frankly, I don’t know what “type codes” are, but if “fact
models” are “about standardizing the business terminology and then capturing
rules”, and if they are new, what have we been doing without them up until now?
Let’s be serious.
The typical approach for logical data models therefore features
special data objects or tables to handle type codes. The instances of such a
data object or table represent valid type code values. This data object or
table is related to any data object that is to be given one (or more) of those
valid types. Creating a table for the codes in this fashion allows changes to
the set of codes without impact on the database design. The logical data model
itself, however, does not concern itself too much (if at all) with what the
actual type code values might be.
We will not try to make sense out of this; we invoke Date’s
Principle
of Incoherence. So often in the industry proposed “new approaches” pay lip
service to currently fashionable buzzwords, in this case objects. Tables—and we
remind the reader, of a special kind!—is not an object in the OO sense,
and confusing the two is misleading. Unlike relational concepts, object
terminology is fuzzy and, what is more, it is at best For
Application Development, Not Data Management.
In particular, a fact model focuses on assertions (called facts)
involving core concepts of the business. In a fact model, concepts are
represented by terms. Facts connect those terms in a manner that should reflect
the real world. Both terms and facts in the fact model should be basic in the
sense defined above.
A fact model focuses on the knowledge part of a business
problem—that is, on how knowledge underlying business operations (the “flow”)
is organized. Literally, the fact model indicates what you need to know in
order to do what you do.
More fuzzy and undefined terms. A conceptual model consisting
of business rules does not require new terminology, certainly not an imprecise
one. Again, does Ross suggest that we have not been doing this, waiting
for him to come up with his “fact models”?
Fundamental Goal for Fact Models: One fact, one place, one name.
See what I mean? How new is that? It is only new to
those lacking foundation knowledge, who do not bother to acquire it, knowing
that the audience doesn’t either.
In the aforementioned Something to Call One’s Own
article I included an exchange that followed my submission of a proposal for a
presentation of the Business Rule Forums. I rest my case.
Posted 7/2/04
© Fabian Pascal 2006 All Rights Reserved