From Database Management Systems, by Raghu Ramakrishnan, Johannes Gehrk
Let
R
be a relation schema,F
be the set of functional dependencies (FDs) given to hold overR
,X
be a subset of the attributes ofR
, andA
be an attribute ofR
.R
is in third normal form if, for every FDX -> A
inF
, one of the following statements is true:
A
$\in$X
; that is, it is a trivial FD, orX
is a superkey, orA
is part of some key forR
.Suppose that a dependency
X -> A
causes a violation of 3NF. There are two cases:
X
is a proper subset of some keyK
. Such a dependency is called a partial dependency.X
is not a proper subset of any key. Such a dependency is called a transitive dependency, because it means we have a chain of dependenciesK->X-> A
.
- Am I correct that "Figure 19.7 Case 1" and "Figure 19.8 Case 1" are not 3NF, while "Figure 19.8 Case 2" is 3NF?
Why is there no either "Figure 19.7 Case 2: A in KEY" or "Figure 19.7 Case 2: A in KEY1" where "KEY1" is different from "KEY"? Does that case exist?
Am I correct that
If that case can exist, it will be 3NF.
If that case can't exist, all relational schemas with partial dependencies are not in 3NF?
Thanks.