Databases Reference
InDepth Information
Definition:
A
connective
is a logical operator such as AND, OR, or NOT.
Definition:
A
conjunctive
predicate
is the AND of two or more other predicates.
Note:
This definition is a
trifle loose, but it's good enough for present purposes.
For example, suppose we replace relvar P by its projections PN, PL, PW, and PC on attributes
{PNO,PNAME}, {PNO,COLOR}, {PNO,WEIGHT}, and {PNO,CITY}, respectively. Then the predicates for
these projections are as follows (note that they're all simple):
PN:
Part PNO is named PNAME.
PL:
Part PNO has color COLOR.
PW:
Part PNO has weight WEIGHT.
PC:
Part PNO is stored in city CITY.
And the predicate for P itself is the AND of these four.
4
As the example shows, therefore, relvars in 6NF can be
thought of as breaking the meaning of the data down into pieces that can't be broken down any further (they
represent what are sometimes called “atomic facts” or, perhaps preferably, “irreducible facts”). Loosely, we might
say the predicate for a 6NF relvar doesn't involve any ANDs.
Aside:
In this connection, let me briefly remind you of relvars CTX and SPJ from Chapters 12 and 9,
respectively. For CTX, the predicate was certainly conjunctive─
Course CNO can be taught by teacher TNO
and
course CNO uses textbook XNO
─and decomposing that relvar into its binary (and in fact 6NF)
projections on {CNO,TNO} and {CNO,XNO} effectively eliminated the AND. As for SPJ, the predicate
there was conjunctive too, even though it didn't appear so in the simplified form in which I stated it. Here's
a more complete version:
Supplier SNO supplies part PNO to some project JNO
and
part PNO is supplied
to project JNO by some supplier SNO
and
project JNO is supplied by supplier SNO with some part PNO.
Again, decomposing the relvar into its three binary (and in fact 6NF) projections eliminates the ANDs.
End
of aside
.
Here now is a nice characterization of 6NF (in fact, it's a theorem):
Theorem:
Relvar
R
is in 6NF if and only if (a) it's in 5NF, (b) it's of degree
n
, and (c) it has no key of
degree less than
n

1.
For example, let relvar PLUS have attributes
A
,
B
, and
C
(so the degree is three), and let the relvar predicate
be
A
+
B
=
C
. Then PLUS is in 5NF, and it has three keys (viz.,
AB
,
BC
, and
CA
, to use Heath notation once again);
however, none of those keys is of degree less than two, and PLUS is thus in 6NF.
5
By the way, please don't misunderstand me─I'm
not
saying that relvars should always be in 6NF, or that
normalization should always be carried as far as 6NF. Sometimes some lower normal form (5NF, say) is at least
4
In other words, every part has
exactly one
name, color, weight, and city. Indeed, it's precisely because these things are so that we don't actually
need to decompose relvar P into its projections PN, PL, PW, and PC if we don't want to; the single relvar P can effectively serve as shorthand for
the combination of those four relvars.
5
Actually, PLUS might be a relation
constant
rather than a relation variable─but it still has keys.