Netune by DataAsh ← All eight methodologies

The galaxy schema: several fact tables, one set of conformed dimensions

Also called: fact constellation, the Kimball bus architecture, conformed dimensions, multi-star schema

What a star schema becomes the moment you model a second business process — and the point at which the difficult questions stop being technical.

What it is

A galaxy schema is several fact tables sharing the same dimension tables. One customer table serving sales, returns and support; one product table serving all three; one calendar serving everything. Draw it and you get several stars with their points touching, which is where the name comes from.

A dimension used by more than one fact is conformed. That word means something precise and demanding: every process that uses it agrees on what it means, what its grain is, and what its attributes are called. A customer table that sales and support both read but interpret differently is not conformed — it is shared, which is a different and more dangerous thing.

Conformed dimensions are what let a question cross between processes. “Which customers bought the most and complained the most?” is answerable only if both facts point at the same customer table with the same key. Without that, the answer has to be assembled by hand, and two people assembling it get two answers.

How the tables are actually shaped

The shape itself

        DimDate    DimCustomer    DimProduct    DimStore
           |            |              |           |
   +-------+------------+--------------+-----------+
   |                    |                          |
FactSales          FactReturns          FactSupportTicket
(one order line)   (one returned line)  (one ticket)

Every fact keeps its own grain — one row of FactSales is a sales line, one row of FactSupportTicket is a ticket — and that is fine and expected. What must match is the dimensions, and the keys into them.

The bus matrix

The bus matrix is the one-page artefact that makes a galaxy manageable: processes down the side, dimensions across the top, a mark in every cell where that process uses that dimension.

                  Date  Customer  Product  Store  Employee
Sales               X       X         X       X
Returns             X       X         X       X
Support ticket      X       X                        X
Inventory           X                 X       X

Conforming, in practice

Two dimensions are conformed if one is identical to the other, or if one is a strict subset of the other — the same attributes, the same meanings, a rollup rather than a rewrite. A monthly dimension conformed to a daily one is fine. A “customer” that means an account in one place and a person in another is not, and no amount of key management fixes it.

When it fits, and when it does not

A galaxy is where a warehouse naturally arrives. The question is whether the organisation is ready for what conforming requires of it.

It fits when

  • more than one business process needs reporting
  • the same customer or product appears in several of them
  • people want to compare across processes, not just within one
  • the organisation can agree on one definition per dimension

It fits badly when

  • there is only one business process worth modelling
  • nobody can agree what a customer is across departments
  • the facts genuinely share nothing
  • the team wants something delivered this month

Those two lists are Netune’s own judgement of this methodology, copied from the rule file it scores a real database with.

What it costs

 CostWhat that means here
BuildModerate to highThe second star is cheaper than the first, except for the agreements it forces.
MaintainLowA conformed dimension is maintained once and improves every process at once.
QueryVery easyThe same star-shaped queries, and now they can cross between processes.
HistoryPer dimension, decided once and sharedWhich is an advantage: the SCD choice is made once, not once per star.

The mistakes that are expensive

Sharing a dimension that was never conformed

This is the failure the whole model turns on. Two departments point at one customer table while meaning different things by “active”, and every cross-process report is now confidently wrong. It produces no error and no warning — just numbers that do not reconcile, argued about in meetings for months.

Conforming is an organisational act. Get the definition written down and agreed before the dimension is shared, not after the first argument.

Building all the stars at once

The bus matrix tempts people into treating the whole grid as one project. Kimball’s own advice is the opposite and it has held up: deliver one process end to end, conform its dimensions properly, then add the next process against those dimensions. Each star is usable the day it lands.

Forcing a shared dimension where the facts share nothing

If two processes genuinely have no customers or products in common, they are two stars that happen to live in one database, and inventing a conformed dimension over them adds meetings and no answers.

How it compares

Galaxy or Kimball?

Galaxy is Kimball, at the point where a second business process arrives. Everything true of a star — grain, additivity, surrogate keys, SCD types — is true here, with conforming added on top. If you have one fact table, you have a star, and there is nothing further to decide.

Galaxy or Inmon?

Both answer “how do several processes agree on one customer?”. Inmon answers it in a normalised core that nobody queries, with marts on top. A galaxy answers it directly in the dimensional layer. Inmon scales better across many source systems; a galaxy gets you reporting sooner.

Netune counts the business processes it can see, works out which dimensions more than one of them would point at, and scores a galaxy against the alternatives on that. If you build one, it generates the shared dimensions once, each fact against them, and fills the bus matrix from the design itself rather than asking you to maintain it.

Questions people ask

What is the difference between a star schema and a galaxy schema?

A star schema has one fact table with its dimensions around it. A galaxy schema — also called a fact constellation — has several fact tables sharing the same dimension tables, so questions can cross between business processes.

What is a conformed dimension?

A dimension that several fact tables use, where every process agrees on what it means, what its grain is and what its attributes are called. Either identical everywhere, or a strict subset — a rollup, never a rewrite. Sharing a table without that agreement is how cross-process reports come out wrong.

What is a bus matrix?

A one-page grid of business processes against dimensions, with a mark where each process uses each dimension. It shows which dimensions are load-bearing, which need conforming, and what the delivery order should be.

Should I build all the stars at once?

No. Deliver one process end to end, conform its dimensions properly, then build the next process against those dimensions. Each star is usable the day it lands, and the conforming work is spread rather than front-loaded.

The other seven

← All eight compared, and how to choose between them

Deciding between them

See how many stars your database actually contains

Netune classifies every table in a SQL Server database, finds the processes and the dimensions they would share, and generates the conformed model with the bus matrix filled in from the design.

Download the free beta