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.
Search WWH ::




Custom Search