Skip to content
>GLB_
Go back

From OLTP to OLAP: How Data Moves from 3NF to a Dimensional Data Warehouse

Modern data architectures typically separate operational systems from analytical systems. This separation is not accidental—it reflects fundamentally different workloads, data models, and optimization strategies.

This article explains the conceptual transition:

Operational Systems (OLTP) and 3rd Normal Form

Transactional systems—CRM platforms, payment processors, ERPs, application databases—are designed for:

These systems are usually modeled in Third Normal Form (3NF).

Why 3NF?

3NF minimizes redundancy and enforces data integrity by:

The result is a highly normalized schema with many related tables.

orders
order_items
customers
products
addresses
payments

This structure is ideal for transactional consistency but inefficient for analytical queries requiring joins across many tables.

The Problem: OLTP Is Not Designed for Analytics

Analytical queries typically require:

Executing these directly on OLTP systems:

This is where the analytical layer becomes necessary.

ETL: Extract, Transform, Load

The ETL layer bridges operational systems and the data warehouse.

Extract

Data is pulled from OLTP systems (A, B, C).

Transform

This is the critical step:

Load

Transformed data is loaded into the Data Warehouse.

Modern stacks may use ELT (transform inside the warehouse), but the conceptual flow remains the same.

From 3NF to Dimensional Modeling

The major structural shift occurs here:

Normalized relational schema → Dimensional model

Dimensional modeling (popularized by Ralph Kimball) reorganizes data into:

Star Schema Example

This structure:

The dimensional model is not more “correct” than 3NF. It is optimized for analytical workloads.


Data Warehouse Characteristics

A properly designed Data Warehouse is:

It is built for historical analysis and decision support—not transactions.


OLAP: Analytical Consumption

Once data is modeled dimensionally, it supports:

OLAP workloads emphasize:


Share this post:

Previous Post
AWS Glue + Chargebee: Diagnosing CERTIFICATE_VERIFY_FAILED After TLS Chain Updates
Next Post
Why There Is No “Interpreter” Endpoint in the Zoom API