he schema of the Northwind Data Warehouse is designed for Online Analytical Processing (OLAP) and is almost universally modeled using a Snowflake Schema. This design is optimized for fast, aggregated data retrieval for business intelligence and reporting, contrasting sharply with the normalized structure of the Northwind operational database (OLTP).
The Snoflake Schema breaks the data into two main components: a central Fact Table and surrounding Dimension Tables.
Fact Table: FactSales (or FactOrders)
The Fact Table sits at the center of the star and contains the measurable, numeric data (facts or measures) of the business process, along with foreign keys linking it to the dimension tables.
Column Type Origin in OLTP Description
Order_Fact_PK Surrogate Key (PK) Generated A new, simple primary key for the row.
OrderDate_SK Foreign Key (FK) Orders.OrderDate Links to the Date Dimension (Order Date role).
ShipDate_SK Foreign Key (FK) Orders.ShippedDate Links to the Date Dimension (Ship Date role).
Customer_SK Foreign Key (FK) Customers.CustomerID Links to the Customer Dimension.
Product_SK Foreign Key (FK) Products.ProductID Links to the Product Dimension.
Employee_SK Foreign Key (FK) Employees.EmployeeID Links to the Employee Dimension.
Quantity Measure Order Details.Quantity The count of units sold in the line item.
UnitPrice Measure Order Details.UnitPrice The price per unit at the time of sale.
Discount Measure Order Details.Discount The discount applied to the line item.
SalesAmount Derived Measure Calculated Quantity * UnitPrice * (1 - Discount).
The Granularity (the level of detail) of this fact table is typically the Order Line Item, meaning every row corresponds to a single product on a single order.
Dimension Tables
Dimension tables provide the context (who, what, where, when) for the facts and contain highly denormalized descriptive attributes. In a true star schema, these tables are joined directly to the Fact Table.
Dimension Table OLTP Source Tables Key Attributes (Examples) Role in Analysis
DimCustomer Customers CustomerName, City, Region, Country Filter sales by location or customer.
DimProduct Products, Categories, Suppliers ProductName, CategoryName, SupplierCompanyName Group sales by product type or vendor (denormalized to flatten the schema).
DimEmployee Employees EmployeeFullName, Title, ManagerName Analyze employee performance.
DimShipper Shippers ShipperCompanyName, Phone Analyze shipping costs and efficiency.
DimDate None (Generated) Date, Year, Month, DayOfWeek, IsHoliday Analyze sales trends over time (a role-playing dimension for Order Date and Ship Date).