Logical properties
include
many properties and statistics
of the data in a table.
They
are used during
the optimization process
to calculate costs
and to evaluate the condition of rules.
They are also used in setting the parameters
of the operators
in the consequent expressions
created in the firing of rules.
In Model D, the
logical bulk properties
of a table
are
schema,
cardinality,
attribute statistics,
uniqueness,
candidate keys
and tracked functional dependencies.
In the simplest case,
a schema
is just
the set of attributes
of the table.
But after an equijoin
with one equality condition,
two of the attributes
in the resulting set
will be equivalent
(by definition they have the same value).
Cascades models this
by defining schema
to be
a set of
equivalence classes
of attributes
rather than just
a set of attributes.
The schema
also contains
statistical information
on each equivalence class.
When the distinction
between the set of equivalence classes
and a set of attributes
is not important,
we may refer to the
schema as just
a set of attributes.
Certain rules
require information about
candidate keys
and/or functional dependencies.
and so both
are modeled.
(Candidate keys
are a special case
of a functional dependency.)
These rules
can only be applied
if certain functional dependencies
apply.
(Also,
sometimes cardinality estimates
are dependent
on functional dependencies
-- e.g.
if a group_by list
contains a functional dependency,
then the functionally dependent attributes do not
contribute to the cardinality of the output)