dataarchitect.studio

Field Notes

The Inmon Methodology: The Corporate Information Factory, with an Example

Bill Inmon’s methodology — the top-down approach, the Corporate Information Factory (CIF) — answers one question before all others: what does the enterprise’s single version of the truth look like? His answer: build the enterprise data warehouse (EDW) first, as a normalized (3NF), integrated, historical store of everything the business does — and only then derive the department-facing data marts (usually star schemas) from it. Integrate once, upstream; serve many, downstream. Kimball famously inverts the order, and that inversion is the whole debate — but to evaluate it fairly you have to understand what Inmon’s method actually builds, and most summaries don’t. Here it is, with an example.

The architecture: what the CIF actually is

orders app CRM billing staging / integration EDW — 3NF integrated, historical, single version of truth sales mart ★ finance mart ★ marketing mart ★ the CIF: integrate everything into a normalized EDW first; marts are derived, dependent views ★ = dimensional star schemas — Inmon and Kimball agree on the serving layer's shape

Four properties define the EDW at the centre, in Inmon’s own terms: it is subject-oriented (organised by business concept — customer, product, order — not by source system), integrated (one customer definition, reconciled from every system that disagrees), non-volatile (loaded, never edited in place), and time-variant (history is kept, not overwritten). The marts downstream are dependent: they contain nothing that isn’t derived from the EDW, which is what makes every department’s numbers reconcilable by construction.

A worked example

A retailer has three sources that all disagree about customers: the orders app (customer as email), the CRM (customer as lead with a salesperson’s spelling), and billing (customer as account number). The Inmon move is to model the enterprise concept once, normalized:

-- EDW, 3NF: each fact stored once, relationships explicit
CREATE TABLE edw.customer (
  customer_id     BIGINT PRIMARY KEY,     -- enterprise key, not any source's
  legal_name      TEXT NOT NULL
);
CREATE TABLE edw.customer_identifier (    -- every source's ID maps here
  customer_id     BIGINT REFERENCES edw.customer,
  source_system   TEXT,                   -- 'orders' | 'crm' | 'billing'
  source_key      TEXT,
  PRIMARY KEY (source_system, source_key)
);
CREATE TABLE edw.customer_address (       -- history, not overwrite
  customer_id     BIGINT REFERENCES edw.customer,
  address_type    TEXT,
  valid_from      DATE,
  valid_to        DATE,
  city            TEXT
);

Note what this is not: it’s not queryable comfort. Answering “revenue by city last quarter” against 3NF means a pile of joins. That’s deliberate — the EDW optimizes for integration and change-absorption (normalization’s actual job), and the sales mart derived from it flattens everything into a star for analysts. Correctness upstream, speed downstream.

Trade-offs, honestly

What the method buys: one reconciled truth, marts that agree by construction, resilience to source churn, audit-friendly history. What it costs: the up-front integration effort is enormous, value arrives late (the business waits while you model the enterprise), and it demands sustained political will — the hardest part of “one customer definition” was never the SQL. This is precisely the cost profile Kimball’s bottom-up method was designed to avoid, at the price of integration debt later.

Where it stands today

Strict CIFs are rare now, but squint at a modern platform and the shape is everywhere: the silver layer of a medallion lakehouse is an integration layer serving derived gold marts; data vault is an Inmon-style integration layer re-engineered for volatile sources; even warehouse-vs-lakehouse debates assume an integrated layer feeding consumer models. Inmon lost the vocabulary war and won the architecture. Understanding his method is understanding why your platform is shaped the way it is.

Common questions

What is the Inmon methodology in simple terms?

Build the enterprise data warehouse first, as a normalized (3NF) integration of all source systems — the single version of the truth — and only then derive department-facing data marts from it, usually as star schemas. Top-down: integrate once, serve many. Kimball inverts this, building dimensional marts first.

What is the Corporate Information Factory (CIF)?

Inmon's name for the full architecture around the warehouse: source systems feed staging, staging feeds the normalized enterprise warehouse, and the warehouse feeds dependent data marts, exploration warehouses, and operational data stores. The EDW sits at the centre as the integrated system of record for analytics.

Why does Inmon insist on a normalized warehouse?

Because the integration layer's job is correctness under change, not query speed. Third normal form stores each fact once, absorbs new sources and relationships gracefully, and avoids baking any department's query patterns into the enterprise's single copy of history. Read performance is the marts' job, downstream.

Is the Inmon approach still relevant in the lakehouse era?

The vocabulary aged; the idea won. An integrated, governed layer that serves consumer-facing models downstream is exactly what a lakehouse's silver and gold layers do — and data vault is essentially an Inmon-style integration layer rebuilt for volatile sources. Few teams build a strict CIF today, but most modern architectures are Inmon-shaped.