  Analyzing relational languages by their logical expressiveness is well
understood. Something not well understood or even formalized is the vague
concept of relational query patterns. What are query patterns? And how can we
reason about query patterns across different relational languages, irrespective
of their syntax and their procedural or declarative nature? In this paper, we
formalize the concept of query patterns with a variant of pattern-preserving
mappings between the relational atoms of queries. This formalism allows us to
analyze the relative pattern expressiveness of relational query languages and
to create a hierarchy of languages with equal logical expressiveness yet
different pattern expressiveness. In this analysis, relational calculus can
expressive more patterns than the basic operators of relational algebra. We
additionally contribute an intuitive, complete, and sound diagrammatic
representation of safe relational calculus that is not only relationally
complete, but can also express all logical patterns for the large and useful
fragment of non-disjunctive relational calculus. Among all diagrammatic
representations for relational queries that we are aware of, this is the only
one that is relationally complete and that can represent all logical patterns
in the non-disjunctive fragment.
