(3) Semantic analysis
The objective of semantic analysis is to reject normalized queries that are incorrectly
formulated or contradictory. A query is incorrectly formulated if components do not
contribute to the generation of the result, which may happen if some join specifications
are missing. A query is contradictory if its predicate cannot be satisfied by any tuple. For
example, the predicate (position = ‘Manager’ ∧ position = ‘Assistant’) on the Staff relation is
contradictory, as a member of staff cannot be both a Manager and an Assistant simultaneously.
However, the predicate ((position = ‘Manager’ ∧ position = ‘Assistant’) ∨ salary >
20000) could be simplified to (salary > 20000) by interpreting the contradictory clause