A general-purpose reusable algebraic-based composition algorithm for
composing mappings between data schemas. The algorithm handles more
expressive mappings, makes a best-effort to eliminate symbols when a
perfect answer cannot be obtained, includes new heuristics, and is
extensible. A relational algebraic language is provided wherein each
mapping is expressed as a set of constraints, and each constraint is
either a containment or equality of two or more relational algebraic
expressions. The composition mechanism exploits monotonicity properties
of algebraic operators in operator arguments, handles NULLs and bag
semantics, operates to allow composition to produce a partial result when
a complete result is not possible, facilitates symbols elimination one
symbol at a time using left composition, for example, as a way of
isolating the symbols, supports making a best-effort to eliminate as many
symbols as possible from an intermediate schema, and handles unknown or
partially known operators via delayed handling.