Data Warehousing and OLAP
From the Advance Database Systems curriculum
Data Warehousing and OLAP
TL;DR
Data warehousing is about collecting and organizing historical data from various sources for analysis, not daily operations. OLAP (Online Analytical Processing) tools help you quickly analyze this data from many angles. Together, they enable powerful business intelligence and decision-making by making complex queries fast.
1. The Mental Model
Think of a data warehouse as a meticulously organized, massive library of historical business records specifically designed for research. OLAP is like a super-fast research assistant that can instantly pull up and summarize information from this library in countless ways.
2. The Core Material
You're probably used to transactional databases (OLTP - Online Transaction Processing), which are optimized for fast inserts, updates, and deletes of individual records – think order entry or banking transactions. Data warehouses are fundamentally different. They're optimized for reading and analyzing vast amounts of historical data, not for frequently changing individual records.
Data Warehouse Characteristics

Photo by panumas nikhomkhai on Pexels
A data warehouse is:
- Subject-Oriented: Data is organized around major subjects (e.g., customers, products, sales) rather than specific applications. This makes it easier to analyze trends across different business functions.
- Integrated: Data comes from various disparate operational systems (e.g., CRM, ERP, finance). It's cleaned, transformed, and combined into a consistent format before loading.
- Time-Variant: Data includes a time element, allowing you to track historical changes and analyze trends over periods (e.g., sales in Q1 2023 vs. Q1 2022). Once data is in, it generally doesn't change, it just accumulates.
- Non-Volatile: Once loaded, data typically isn't updated or deleted. This ensures historical accuracy and consistency for analysis.
The ETL Process

Photo by cottonbro studio on Pexels
Getting data into a data warehouse involves a critical process called ETL:
- Extract: Pulling data from various source systems (operational databases, flat files, etc.).
- Transform: Cleaning, standardizing, integrating, and aggregating the extracted data. This is where you resolve inconsistencies (e.g., "NY" vs. "New York") and apply business rules.
- Load: Placing the transformed data into the data warehouse. This can be a full load (replacing everything) or an incremental load (adding new or changed data).
graph TD
A["Operational Databases (OLTP)"] --> B{Extract Data};
B --> C{Transform Data (Clean, Integrate, Aggregate)};
C --> D{Load Data};
D --> E["Data Warehouse"];
E --> F["OLAP Cubes"];
F --> G["Reporting & Analytics Tools"];
G --> H["Business Users / Analysts"];
subgraph ETL Process
B --- C --- D
end
OLAP: Analyzing Data

Photo by Lukas Blazek on Pexels
Once data is in the warehouse, OLAP tools help you analyze it. OLAP operates on multi-dimensional data models, often visualized as "cubes." A cube isn't a literal cube; it's a conceptual way to represent data with multiple dimensions (e.g., Time, Product, Region) and measures (e.g., Sales Amount, Quantity Sold).
Key OLAP operations:
- Slice: Selecting a subset of the cube by fixing one or more dimensions to a specific value (e.g., "Sales for Q1 2023").
- Dice: Selecting a sub-cube by performing selections on two or more dimensions (e.g., "Sales for Q1 2023 in the East region").
- Drill Down: Navigating from summarized data to more detailed data (e.g., "Total sales by year" to "Sales by quarter" to "Sales by month").
- Roll Up: Aggregating data to a higher level of granularity (the opposite of drill down) (e.g., "Sales by city" to "Sales by state").
- Pivot (Rotate): Changing the dimensional orientation of a report or view, effectively rotating the cube to see a different "face" (e.g., swapping product and region on an axis).
Schema Design

Photo by Diva Plavalaguna on Pexels
Data warehouses often use specific schema designs optimized for query performance:
- Star Schema: A central fact table (containing measures like sales amount) surrounded by dimension tables (containing attributes like product name, customer age). This is the most common.
- Snowflake Schema: An extension of the star schema where dimension tables are normalized into further sub-dimension tables. This reduces data redundancy but can increase query complexity.
3. Worked Example
Let's say you're analyzing sales data.
Fact Table (Fact_Sales):
| SaleID | DateKey | ProductKey | CustomerKey | StoreKey | Quantity | SalesAmount |
|---|---|---|---|---|---|---|
| 1 | 20230101 | 101 | 1 | 10 | 2 | 50.00 |
| 2 | 20230101 | 102 | 2 | 10 | 1 | 30.00 |
| 3 | 20230102 | 101 | 1 | 11 | 3 | 75.00 |
| 4 | 20230102 | 103 | 3 | 10 | 1 | 120.00 |
Dimension Table (Dim_Product):
| ProductKey | ProductName | Category |
|---|---|---|
| 101 | Widget A | Electronics |
| 102 | Gadget B | Electronics |
| 103 | Tool C | Hardware |
Dimension Table (Dim_Date):
| DateKey | FullDate | Year | Quarter | Month | DayOfWeek |
|---|---|---|---|---|---|
| 20230101 | 2023-01-01 | 2023 | Q1 | Jan | Sunday |
| 20230102 | 2023-01-02 | 2023 | Q1 | Jan | Monday |
To find total sales for "Electronics" products in "Q1 2023", you'd perform a query like this (conceptually an OLAP slice and dice operation):
SELECT
SUM(fs.SalesAmount) AS TotalSales
FROM
Fact_Sales fs
JOIN
Dim_Date dd ON fs.DateKey = dd.DateKey
JOIN
Dim_Product dp ON fs.ProductKey = dp.ProductKey
WHERE
dd.Year = 2023
AND dd.Quarter = 'Q1'
AND dp.Category = 'Electronics';
This query would quickly retrieve the relevant sales figures from the optimized data warehouse structure. An OLAP tool would allow you to do this visually, dragging and dropping dimensions and measures without writing SQL.
4. Key Takeaways
- Data warehouses are designed for analytical queries on historical data, not transactional operations.
- The ETL process (Extract, Transform, Load) is crucial for getting clean, consistent data into the warehouse.
- OLAP tools allow multi-dimensional analysis (slicing, dicing, drilling, rolling up) of data in a warehouse.
- Star and Snowflake schemas are common data warehouse designs that optimize for query performance.
- Data warehouses are subject-oriented, integrated, time-variant, and non-volatile, making them reliable for long-term analysis.
Common Mistakes to Avoid:
* Trying to use an OLTP database directly for complex analytical queries; it's not optimized for that.
* Skipping or poorly executing the 'Transform' step in ETL, leading to "garbage in, garbage out" analysis.
* Confusing operational reports with analytical insights; operational reports show "what's happening now," while data warehouses answer "why did it happen?" and "what will happen?"
* Over-normalizing dimension tables in a star schema, which can lead to a snowflake schema and more complex queries than necessary for pure analytical needs.
5. Now Try It
Imagine your favorite e-commerce site. Identify three key dimensions (e.g., customer, product, time) and two key measures (e.g., revenue, quantity sold) that would be critical for its data warehouse. Then, describe how you'd perform a "drill down" operation to understand sales performance from a high level to a granular detail for one of your chosen dimensions.
Success looks like: You can clearly articulate the dimensions and measures, and then walk through a logical drill-down path (e.g., "From total sales by region, I'd drill down to sales by city, then by individual store, to see where specific trends are occurring.").
Frequently asked about Data Warehousing and OLAP
More from Advance Database Systems
Get the full Advance Database Systems curriculum
Clone the complete plan to your dashboard for unlimited AI-generated notes, practice quizzes, and a personalised revision schedule.
Create Free Account