16 The Atomicity Paradox
Predica appears, at first glance, to violate every classical intuition about First Normal
Form and atomicity. It promotes rich, structured types such as Point, Circle, and
Polygon; it has entity types like Supplier with internal attributes; and it
permits cardinality constraints at any level. Superficially, this looks like a wholesale
abandonment of Codd's requirement that attribute types be "atomic".
The irony is that Predica is more faithful to 1NF than many conventional relational systems, because it requires:
- information inside structured values to be recursively decomposed through attributes down
to simple types such as
Boolean,Integer,Real, andString - multiplicity to be represented by attribute extensions, not by collection-valued attribute values
- every value that appears in the database to be a value of some attribute
- every attribute to be a unary predicate
- attributes to record their extensions
Together these imply that primitive values such as 5 or "Alice" that appear in the database
participate in the logical model through predicates, even when they occur inside structured values.
Circles, points, suppliers, and shipments are all values that represent facts, but they are not simple or primitive. Predica does not require them to be. For the values that appear in a database, Predica rejects:
value of attribute ⇒ value is primitive
and mandates only the converse:
value is primitive ⇒ value of attribute
In practice many relational systems violate 1NF. For example, it is common to store arrays, lists, tuples, JSON, XML, and spatial geometry types in a single column in PostgreSQL, MySQL, Oracle, and SQL Server.
In Predica, attributes with multivalued extensions do not violate 1NF: multiplicity is represented as multiple facts of a unary predicate, while the declared attribute type remains singular. Predica’s surface syntax resembles nested structures, but its semantics remain fully relational.
The conventional RM appears “atomic” but routinely violates 1NF in practice; Predica appears “non-atomic” but adheres to it in principle.