Database Reference
In-Depth Information
1. The parser module, after having verified that a term is not standard, search on the fuzzy catalog.
2. If the term is on the fuzzy catalog then
a. Create a new
fuzzy node
(memory structure) with the parameters of the
fuzzy term
, i.e.
A_
fuzzy_predicate
node.
b. Insert into the parser tree the
fuzzy node
.
c. Set on a boolean
fuzzy
variable in the parser state, i.e. set on
has_fuzzy_predicate
else report
error to the user and finish.
3. The
fuzzy parser tree
is converted in a
Fuzzy Query Tree
, the query condition has the
fuzzy term
and the
fuzzy node
is hold on the query tree as a list of
fuzzy terms
. The boolean
fuzzy
variable is
hold on the query state.
4. The analyzer module applies the Derivation Principle to transform the
fuzzy
query condition to
a classical query condition, then this
Fuzzy Query Tree
has a classical SQL query but with the
information about the fuzzy term.
5. The optimizer module applies the usual algorithm of query optimization to obtain a
fuzzy execution
plan
. It has annotated the
fuzzy leaf
(base table with a linguistic label over a linguistic variable).
6. The executor module applies the extended
fuzzy access mechanism
(i.e.
fuzzy sequential scan
) to
the
fuzzy leaf
, then the calculated membership degree is propagated bottom-up using the extended
physical
fuzzy algebra relational operator
(i.e.
fuzzy hash join
).
7. Each row is showed with a membership degree (
fuzzy row
)
This algorithm is easily extended for more fuzzy terms. In special we implement a recursive algorithm
to derive a fuzzy condition into a classical condition, furthermore put all the fuzzy nodes in a chained
list; and finally, we extended the parser, query and plan tree with other parameters according with each
particular fuzzy condition, quantifier, comparator, modifier or fuzzy partition.
Access Methods
The access methods (like sequential scan and index scan) used in classical relations were extended in
order to process fuzzy conditions over classical relations and obtain fuzzy relations (rows with member-
ship degree); furthermore, the physical relational operators (like nested loop join, hash join and merge
join) were extended to propagated the membership degree until the fuzzy row is showed.
Main extension for these mechanisms was to compute membership degree (through Fuzzy Access
Methods) recording it in the resulting temporal tables and propagating it (through Fuzzy Physical Re-
lational Operators) until the result set is showed.
The innovation consists in the fact that we calculate the membership degree while the execution plan
is running, then we avoid calculating it later after having obtained the result set, this job is undertaken
by the preceding approach at top of the RDBMS.
Access methods are entrusted to calculate the membership degree in base tables and choose the
resulting rows according to the support and core of the membership function, thus we extended the
classical access mechanism (based in sequential and index scan). In the following sections, we specify
the fuzzy access mechanisms when we apply the selection algebra operator (because these are tightly
related to choose the rows of the tables) and we explain the implementation for execution like a fuzzy
access mechanism.