Database Reference
In-Depth Information
We need to further refine our concept of FD by introducing another term —
full
functional dependence
: Attribute B is said to be
fully functionally dependent
on attribute
A if it is functionally dependent on A and not functionally dependent on any proper
subset of A.
As a spinoff from the definition of functional dependence, please note the following:
1.
FD constraints have similarities with referential constraints,
except that here, reference is internal to the relation.
2.
FDs help us to determine primary keys.
3.
Each FD defines a
determinant
in a relation: the attribute(s)
on the right are dependent on the attribute(s) on the left; the
attribute(s) on the left constitute(s) a determinant.
4.4.2 Non-loss Decomposition
Suppose we have a relation
R0
as follows:
R0
{Suppl#, SuplName, Item#, ItemName,
Quantity, SuplStatus, Location}
Functional dependencies of
R0
are illustrated in Figure
4-2
; they may also be listed
as follows:
•
[Suppl# , Item#] → {Quantity, SuplName, SuplStatus, Location,
ItemName}
•
Suppl# → {SuplName, SuplStatus, Location}
•
Item# → ItemName
Figure 4-2.
FD Diagram for Relation R0
Storing
R0
this way causes duplication. The reason is that
R0
is not sufficiently
normalized. As an alternate, we could have the following:
R1
{Supl#, SuplNam, Location, SuplStatus}
R2
{Item#, ItemName}
R3
{Supl#, Item#, Quantity}
R1
,
R2
, and
R3
constitute (an example of ) a
non-loss decomposition
(NLD) of
R0
.