What you will be able to do
- Tell fact tables from dimension tables and recognize a star schema built from Silver data in Gold
- Compare star and snowflake schemas on normalization, storage, joins and read performance
- Explain why Databricks advises against heavily normalized models such as 3NF for new lakehouse datasets
1.Fact tables, dimension tables and the star shape
Dimensional modeling organizes Gold-layer data into two kinds of tables so that analysts and BI tools can query it efficiently. Fact tables hold the events or measurements you care about, such as orders, clicks or sales. Each row is one occurrence of an event, described mostly by keys and numeric measures. Dimension tables hold the descriptive context around those events, such as customers, products or dates. Each row is one business entity.
A star schema is what you get when you put one fact table in the middle and join it out to several dimension tables through their keys. Each table has one clear job, so analysts find it easy to query and engineers find it easy to reason about. Databricks places it in the medallion architecture explicitly: Bronze and Silver handle ingestion and cleaning, and Gold materializes the fact and dimension tables that downstream consumers query directly.
CREATE OR REFRESH STREAMING TABLE fact_orders
COMMENT "One row per order line, keyed to dimensions"
AS SELECT
order_id,
customer_id, -- foreign key to dim_customer
product_id, -- foreign key to dim_product
order_date, -- foreign key to dim_date
quantity,
amount
FROM STREAM(orders_silver);The fact table keeps no customer name or region. It stores customer_id as a foreign key to dim_customer, and descriptive detail is joined in at query time. A dimension table is usually built from cleaned Silver data, with one row per business entity. Both tables read from Silver, which shows the layer handoff from the previous page: Silver supplies validated records, and Gold reshapes them into a star.
Checkpoint 1 of 4· Fill the gap
This Gold dimension table is built from the layer Databricks recommends. Which table completes the FROM clause?
CREATE OR REFRESH MATERIALIZED VIEW dim_customer
COMMENT "Customer dimension"
AS SELECT customer_id, customer_name, region, signup_date
FROM ? ;Dimension tables are built from cleaned Silver data, one row per entity. Bronze is raw and unvalidated, and orders_silver feeds the fact table, not the customer dimension.
Source: docs.databricks.comSources1
2.Snowflake schema: a normalized star, and what it costs
A snowflake schema extends the star schema. Like a star, it has a central fact table connected to dimension tables through foreign keys. The difference is that dimension tables are broken into related subdimensions. A product dimension, for example, might be split into separate linked tables for product, category and department. Its entity-relationship diagram then branches out like a snowflake, which is where the name comes from. Snowflake schemas are common for BI and reporting in OLAP data warehouses, data marts and relational databases. That makes both shapes candidates for the data marts in a Gold layer.
| Aspect | Star schema | Snowflake schema |
|---|---|---|
| Dimension tables | One table per dimension | Broken into related subdimensions |
| Normalization | Denormalized | More normalized |
| Data redundancy and storage | More duplicated data | Saves space; more storage efficient |
| Joins in a typical query | Fewer | More |
| Read-heavy query performance | Faster | Usually slower and more complex |
The trade-off is redundancy against joins. Denormalized models like the star schema duplicate data, and that duplication is what makes queries faster. The same idea explains the medallion placement from the other direction: Gold favors de-normalized, read-optimized models with fewer joins, so the star is the default Gold shape. A snowflake is the normalized variant you accept when storage or the structure of a dimension calls for it.
Checkpoint 2 of 4· Check yourself
A product dimension has been split into product, category and department tables, each linked to the next. What is the main cost compared with keeping one product table?
Splitting a dimension into subdimensions makes it a snowflake. That reduces redundancy but adds joins, which usually slows read-heavy queries.
“Denormalized data models like star schemas have more data redundancy (duplication of data), which makes query performance faster at the cost of duplicated data.”Source: www.databricks.com
Checkpoint 3 of 4· Exam question
A regulated financial services company must retain a complete, auditable history of every change to its source systems before that data is ever reshaped for reporting. The data team plans to load hub, link, and satellite tables that capture every historical source record, then later transform that data into a simplified structure for business dashboards. Where do these two modeling steps map within the Medallion Architecture?
Correct answer: A — The hub, link, and satellite tables belong in the Silver layer to preserve full historical lineage, and the simplified reporting structure is built afterward in the Gold layer for dashboards.
- A. Data vault's hub, link, and satellite tables are designed to preserve auditable, historical lineage from conformed source data, which fits the Silver layer's role, while the simplified dimensional structure for dashboards is built afterward as the Gold layer.
- B. Bronze holds source data captured as-is with minimal transformation; building hub, link, and satellite structures requires conforming and linking entities, which is Silver-layer work that Bronze is not designed to perform.
- C. Historical detail is not exclusive to Gold, and Gold is meant to be the final, business-ready consumption layer, not an intermediate stop that data then moves backward out of into Silver.
- D. The Medallion Architecture keeps Bronze, Silver, and Gold as distinct layers with different purposes; data vault structures and dimensional reporting structures are modeling patterns applied within existing layers, not replacements for the layers themselves.
3.Why Databricks favors star and snowflake over heavily normalized models
The Databricks data modeling guidance gives a clear recommendation. If you are building a new lakehouse or adding datasets, avoid heavily normalized models such as third normal form (3NF). Star and snowflake schemas perform well on Databricks for three reasons. Standard queries need fewer joins, and there are fewer keys to keep in sync. Having more fields in a single table also lets the query optimizer skip large amounts of data using file-level statistics.
The joins point matters most. The optimizer can struggle when a single query has to join results from many tables. It can also fail to skip records when the filter is on a field in a different table, which may lead to a full table scan. Primary and foreign keys on Databricks are informational and not enforced, so the database won't police relationships across many normalized tables. None of this means other models are banned. Databricks can work well with any data model, and if you are migrating an existing model, evaluate its performance before rearchitecting it.
Checkpoint 4 of 4· Check yourself
A team is designing new Gold tables for dashboards. Which reasoning matches Databricks data modeling guidance?
Databricks recommends against heavily normalized models for new work. Its keys are informational only, and it advises evaluating existing models before rearchitecting them.
“Models like the star schema or snowflake schema perform well on Databricks, as there are fewer joins present in standard queries”Source: docs.databricks.com
Sources2
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.A snowflake schema is faster than a star schema because its normalized tables are smaller.Why is that wrong?
Snowflaking saves space but adds joins. Read-heavy queries are usually slower than on the denormalized star.
Covered in Snowflake schema: a normalized star, and what it costs
2.Databricks recommends a fully normalized 3NF model for new lakehouse datasets because foreign keys keep the tables consistent.Why is that wrong?
Databricks recommends against heavily normalized models for new datasets. Primary and foreign keys are informational and not enforced.
Covered in Why Databricks favors star and snowflake over heavily normalized models
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“Fact tables hold the events or measurements you care about, such as orders, clicks, or sales.”
↩︎ Fact tables, dimension tables and the star shape“Dimension tables hold the descriptive context around those events, such as customers, products, or dates.”
↩︎ Fact tables, dimension tables and the star shape“place one fact table in the middle and join it out to several dimension tables through their keys”
↩︎ Fact tables, dimension tables and the star shape“Bronze and silver datasets handle ingestion and cleaning, and gold materializes your fact and dimension tables so downstream consumers query them directly.”
↩︎ Fact tables, dimension tables and the star shape“A dimension table is typically a materialized view built from cleaned silver data, with one row per business entity”
↩︎ Fact tables, dimension tables and the star shape - 2.
“Models like the star schema or snowflake schema perform well on Databricks, as there are fewer joins present in standard queries”
↩︎ Snowflake schema: a normalized star, and what it costs“Databricks recommends against using a heavily normalized model such as third normal form (3NF).”
↩︎ Why Databricks favors star and snowflake over heavily normalized models“having more data fields in a single table allows the query optimizer to skip large amounts of data using file-level statistics.”
↩︎ Why Databricks favors star and snowflake over heavily normalized models“Primary and foreign keys are informational and not enforced.”
↩︎ Why Databricks favors star and snowflake over heavily normalized models“Databricks can work well with any data model.”
↩︎ Why Databricks favors star and snowflake over heavily normalized models“Databricks recommends against using a heavily normalized model such as third normal form (3NF).”
↩︎ Exam trap 2“Models like the star schema or snowflake schema perform well on Databricks, as there are fewer joins present in standard queries”
↩︎ Checkpoint - 3.https://www.databricks.com/blog/what-is-snowflake-schemaSecondary source
“dimension tables are broken into related subdimensions, creating a more normalized, snowflake shaped model.”
↩︎ Snowflake schema: a normalized star, and what it costs“Like star schemas, snowflake schemas have a central fact table which is connected to multiple dimension tables via foreign keys.”
↩︎ Snowflake schema: a normalized star, and what it costs“a snowflake schema saves space but usually requires more joins, which can make queries more complex and slower for read heavy analytics.”
↩︎ Exam trap 1“a snowflake schema saves space but usually requires more joins, which can make queries more complex and slower for read heavy analytics.”
↩︎ Prediction“Denormalized data models like star schemas have more data redundancy (duplication of data), which makes query performance faster at the cost of duplicated data.”
↩︎ Checkpoint