In anchor modeling there is a one-to-one mapping between the symbols used in the conceptual model and tables in the relational database. Every anchor, attribute, tie, and knot have a corresponding table in the database with an unambiguously defined structure. A conceptual model can thereby be translated to a relational database schema using simple automated rules, and vice versa. This is different from many other modeling techniques in which there are complex and sometimes subjective translation steps between the conceptual, logical, and physical levels. Anchor tables contain a single column in which identities are stored. An identity is assumed to be the only property of an entity that is always present and immutable. As identities are rarely available from the domain being modeled, they are instead technically generated, e g from an incrementing number sequence. An example of an anchor for the identities of the nephews of
Donald Duck is a set of 1-tuples: {⟨#42⟩, ⟨#43⟩, ⟨#44⟩} Knots can be thought of as the combination of an anchor and a single attribute. Knot tables contain two columns, one for an identity and one for a value. Due to storing identities and values together, knots cannot be historized. Their usefulness comes from being able to reduce storage requirements and improve performance, since tables referencing knots can store a short value rather than a long string. An example of a knot for genders is a set of 2-tuples: {⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩} Static attribute tables contain two columns, one for the identity of the entity to which the value belongs and one for the actual property value. Historized attribute tables have an extra column for storing the starting point of a time interval. In a knotted attribute table, the value column is an identity that references a knot table. An example of a static attribute for their names is a set of 2-tuples: {⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩} An example of a knotted static attribute for their genders is a set of 2-tuples: {⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩} An example of a historized attribute for the (changing) colors of their outfits is a set of 3-tuples: {⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩} Static tie tables relate two or more anchors to each other, and contain two or more columns for storing the identities. Historized tie tables have an extra column for storing the starting point of a time interval. Knotted tie tables have an additional column for each referenced knot. An example of a static tie for the sibling relationship is a set of 2-tuples: {⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩} The resulting tables will all be in
sixth normal form except for ties in which not all columns are part of the primary key. == Compared to other approaches ==