Bring separate systems together by saying what their columns mean — then read one unified record set straight out of the connections. No target schema to design, no copy to keep in sync, and no correction you cannot undo.
An illustration: a CRM, an ERP and a billing system each call the customer something different. Say once what the columns mean, and the data is already consolidated — including the customer that only one system knows about. Press Replay to watch it again.
Five real models from the BUSINESS knowledge area. Watch the three
drops that merge them — then drag a column onto a grid object yourself, or tap one, then tap the other. Dropping a
second column onto the same object declares that the two mean the same thing.
The three join keys are the only modelling decisions in the entire procedure. Concepts that appear in only one source — PRICE, JOB TITLE, POSTAL / ZIP CODE — go onto objects of their own: they contribute columns without contributing relationships.
Because a value is stored once per concept, an order carrying CU1061 and
a customer record carrying CU1061 hold associations to the same item. Testing whether
two records are related is an identity comparison, not a string comparison — it is exact, it is
case-consistent, and it costs nothing.
A star schema, plus a manifest recording where every column came from.
The Nexus is the hub — one item per record. The Group holds the column order. Together they make the model a star schema rather than a bag of concepts, which is what makes it queryable as a table.
Concepts are reused by name when merging into an existing model, so re-running a merge never duplicates them.
Each column concept carries a single item of the form
__MAP|BUSINESS|CUSTOMER ID, recording the knowledge area and source column it
draws from. Provenance is not documentation that can drift — it is data, stored beside the values.
The reconstruction is a full outer join. A record that found no partner still appears. An inner join would have silently deleted all four of these findings — and they are frequently the most valuable output of the exercise.
Acquired, never converted.
Dead stock in the catalogue — 18 of 70.
Inactive or newly hired.
Territories with no presence.
Every header sorts; a second click reverses. Numeric columns sort numerically (778 before 1,160, not after it), dates chronologically, text case-insensitively. Blank cells always sink, so reversing a sort reorders the data rather than raising a wall of empty cells.
Matching the engine's own page size, with a jump-to-range menu. Sorting applies to the whole result and the page is taken from it — never a sort of only the visible page.
The entire current view, in the current sort order, RFC 4180 quoted.
A vehicle fleet and a power-grid asset register, held in different parts of the business.
The unified view is computed when you read it, from the links themselves — so it cannot fall out of date with its sources. There is no materialised copy, which means there is nothing to refresh, nothing to reconcile, and nothing to monitor for freshness.
re-running a merge is idempotent

| Conventional | AtomicDB |
|---|---|
| Destination schema, designed and migrated | none — the grid is the schema |
| ETL / ELT job, written and tested | none |
| Join keys declared in SQL | none — shared values are the keys |
| Scheduler and freshness monitoring | none — retrieval reads live state |
| Rebuild when a source adds a column | drag the new concept onto the grid |
| Provenance tracked in documentation | stored as data, in the manifest |
| Engineering time | minutes, by the person who owns the data |
CUSTOMER ID
means is the person who performs the merge. That is the substantive change: the modelling decision stays with the
domain expert instead of being translated, imperfectly, into someone else's code.The worked example on this page was executed against a live AtomicDB instance on 19 August 2026. Record counts, column counts, join keys and unmatched-row breakdowns are measured values, not illustrations.