Skip to content

3NF vs Star Schema

Normalized for writing data correctly, or dimensional for reading it easily?

Short answer

Third normal form (3NF) removes redundancy so each fact is stored once, which protects data integrity in systems that write often, such as application databases. A star schema deliberately repeats descriptive attributes in dimension tables so analytical queries need fewer joins and read like business questions. Use 3NF for operational systems and integration layers; use a star schema for the tables analysts and BI tools query.

On this page · 6 sections
  1. Overview
  2. Side by side
  3. When to choose which
  4. The verdict
  5. FAQ
  6. Sources

In 3NF, every non-key column depends on the key, the whole key, and nothing but the key. A product's category lives in a categories table, not on every product row, and an order references a customer rather than copying the customer's address. Updates touch one row, and inconsistent copies cannot happen.

A star schema relaxes that on purpose. The product dimension carries category and department directly, so a query for revenue by department joins the fact table to one dimension instead of walking three normalized tables. Redundancy is accepted because dimensions are small compared with facts and change slowly.

Side by side
AspectThird normal form (3NF)Star schema
Optimized forWrites and integrity (OLTP)Reads and analysis (OLAP)
RedundancyMinimizedAccepted in dimensions
Joins per questionManyFew: fact to each dimension
Typical homeApplication databases, enterprise integration layerData marts and the warehouse presentation layer
Readability for analystsLow; requires knowing the full modelHigh; mirrors business questions
MethodologyCodd's normal forms; Inmon's enterprise warehouseKimball dimensional modeling

Use 3NF when

  • The system records transactions and must keep every value consistent.
  • You are building an integration layer that combines many sources before modeling.
  • Storage of duplicated attributes or update anomalies would be a real problem.

Use a star schema when

  • Analysts, dashboards, or Power BI will query the tables directly.
  • You want measures that aggregate correctly across consistent dimensions.
  • Query simplicity and speed matter more than avoiding duplicated attributes.
The verdict

This is rarely either-or. Source systems are usually close to 3NF; the warehouse stages that data and remodels it into stars for analysis. The skill is knowing where each belongs, and recognizing when a normalized source needs to become a dimension.

A good exercise: take the normalized ecommerce source tables (customers, products, orders, order items, payments) and design the star schema you would build from them.

Go deeperDatabase normalization and denormalizationThe normal forms explained with examples, and when denormalizing is the right call.
FAQ
Is a star schema normalized?
Partly. Fact tables are normalized in the sense that they hold keys and measures, but dimension tables are intentionally denormalized, usually to second normal form or lower. A snowflake schema normalizes the dimensions further.
Should a data warehouse use 3NF?
Some layers can. Inmon-style warehouses keep an integrated 3NF core and publish dimensional marts from it. Kimball-style warehouses model dimensionally throughout. Either way, the layer analysts query is usually dimensional.

Go deeper in the Data Modeling hub.