Databases Reference

In-Depth Information

direct way of expressing relational comparisons.
2
A striking example in support of this contention can be found in

the discussion of Example 12 in the section of that name in Chapter 15.

SIXTH NORMAL FORM

Having said, or at least implied, that we won't be departing in this chapter from our usual assumptions regarding

decomposition and recomposition operators, I'll begin my discussion of sixth normal form by doing exactly that ...

In our topic
Temporal Data and the Relational Model
(Morgan Kaufmann, 2003), Hugh Darwen, Nikos Lorentzos,

and I define:

a.

Generalized versions of the projection and join operators, and hence

b.

A generalized form of join dependency, and hence

c.

A new normal form, which we call 6NF.

As the title of that topic might suggest, these developments turn out to be particularly important in

connection with temporal data, and they're discussed in detail in that topic. However, temporal data as such is

beyond the scope of the topic you're reading right now; all I want to do here is give a definition of 6NF that works

for “regular”─i.e., nontemporal─data (and I'll assume from this point forward that all data is “regular” in this

sense). Appealing only to projection and join as classically defined, therefore (and hence only to JDs as classically

defined also),
3
here's the 6NF definition:

Definition:
Relvar
R
is in
sixth normal form
(6NF) if and only if the only JDs that hold in
R
are trivial

ones. In other words, the only JDs that hold in
R
are of the form
{...,
H
,...}, where
H
is the heading.

Of course, we can never get rid of trivial dependencies; thus, a relvar in 6NF can't be nonloss decomposed at

all, other than trivially. For that reason, a 6NF relvar is sometimes said to be
irreducible
(yet another kind of

irreducibility, observe). Our usual shipments relvar SP is in 6NF, and so is relvar CTXD from Chapter 9; by

contrast, our usual parts relvar P is in 5NF but not 6NF. (By contrast, our usual suppliers relvar S isn't even in 3NF,

of course.)

Now, it follows immediately from the definition that every 6NF relvar is certainly in 5NF─i.e., 6NF implies

5NF. (That's why it's reasonable to use the name
sixth normal form
, because 6NF really does represent another step

along the classical road from 1NF to 2NF to ... to 5NF.) What's more, 6NF is always achievable. It's also

intuitively attractive, for the following reason: If relvar
R
is replaced by its 6NF projections
R1
, ...,
Rn
, then the

predicates for
R1
, ...,
Rn
are all
simple
, and the predicate for
R
overall is the
conjunction
of those simple predicates

(i.e., it's a
conjunctive predicate
). Let me immediately explain what I mean by these remarks:

Definition:
A predicate is
simple
if it involves no connectives and
composite
(or
compound
) if it's not

simple.

2
By
SQL
here, I mean SQL as defined by the SQL standard. The situation is even worse in mainstream implementations, where most EQDs

can't be formulated at all, owing to the fact that the implementations in question don't allow subqueries in constraints.

3
So I'm not really departing from our usual assumptions after all.