values in the Type column being used consistently across differ-
ent applications. In this case, that might mean they are being
used across data sheet, CAD, procurement, commissioning,
operations, and maintenance applications. If the list of types is
to be controlled so that all these applications use the same
values, then this will require an entity type to hold them. An
ontological analysis immediately provides this.
6.1.2 Normalization
Although I am not going to describe normalization techni-
ques in detail, I do need to say a little about normalization,
since it is inevitably the benchmark against which data models
are judged. Mostly, however, I want to dispel fears about being
esoteric when achieving high levels of normalization.
A normalized data model is good because it does not cont ain
duplicate data and is free of certain insertion, update, and dele-
tion anomalies that can lead to a loss of data integrity. If you
have data modeling experience, it is likely that you are familiar
with it being considered good practice to develop data models
to 3rd Normal Form, but that it is not really worth bothering
with higher levels of normalization, which are quite hard to
understand (at least 4th and 5th Normal Form). However, the
reality is a little different; the vast majority of data models that
are in 3rd Normal Form are also in 4th and 5th Normal Form,
simply because the cases that give rise to having to perform
those levels of normalization are very rare.
As for 6th Normal Form, it is possible that you have not even
heard of this because it is a relatively recent development.
4
6th
Normal Form arose from noticing that many data models are
developed as current state models; that is, when change hap-
pens, the knowledge of the previous state is thrown away and
replaced by the data about the new current state. Table 6-2 is
an example of such a table.
When you notice that it is undesirable to throw away the his-
torical data, you might add a date field and perhaps a version
number to the table to allow the history to be held as well as
the current state. This is illustrated in Table 6-3.
However, this also denormalizes the data model. So you are
not in 6th Normal Form unless your data model takes account
of change and is in 5th Normal Form. Of course, if you under-
stand the need to account for change over time, and you
4
C.J. Date, H. Darwen, N.A. Lorentzos, Temporal Data and the Relational Model,
Morgan Kaufmann, San Francisco, 2003.
66 Chapter 6 SOME GENERAL PRINCIPLES FOR CONCEPTUAL, INTEGRATION, AND ENTERPRISE DATA MODELS