Study guide
11.1 Dimensional Modeling Fundamentals
Databricks Certified Data Analyst Associate Exam
Track your progress as you read
Finished sections get a check mark.
1 Platform Overview & Unity Catalog Foundations
1.1 Databricks Architecture & Compute Concepts 1.2 Databricks Marketplace & Data Sharing Basics 1.3 Unity Catalog Namespace & Object Hierarchy 1.4 Governed Asset Discovery & System Tables
2 Managing & Cleaning Governed Data
2.1 Dataset Discovery & Asset Tagging 2.2 Lineage Inspection & Data Traceability 2.3 SQL Data Cleaning & Transformation Techniques
3 Data Ingestion & Import Patterns
3.1 Workspace Uploads & Cloud File Ingestion 3.2 Incremental File Ingestion with Auto Loader 3.3 Ingesting Data via Delta Sharing & External Connections
4 Databricks SQL Warehouses & Core Querying
4.1 Databricks SQL Interface & SQL Assistant 4.2 SQL Warehouses Sizing & Management 4.3 Table Creation & Data Modification in Databricks SQL
5 Advanced SQL Authoring & Time Travel
5.1 Advanced Aggregations, Window Functions & Analytics 5.2 Complex Joins, CTEs & Set Operations 5.3 Views, Materialized Views & Delta Time Travel
6 Query Performance Analysis & Photon Engine
6.1 Photon Engine Architecture & Acceleration 6.2 Query History & Execution Profile Inspection 6.3 Delta Lake Audit History & Commit Logs
7 Liquid Clustering, Caching & Performance Troubleshooting
7.1 Caching Hierarchy in Databricks SQL 7.2 Data Layout Optimization: Liquid Clustering vs Partitioning & Z-Ordering 7.3 Troubleshooting Slow & Failing Queries
8 AI/BI Dashboards & Visualization Design
8.1 AI/BI Dashboards Overview & Canvas Layout 8.2 Chart Types & Visualization Selection 8.3 Notebook & SQL Editor Visualizations
9 Dashboard Interactivity, Publishing & Alerts
9.1 Dashboard Parameters & Interactive Filtering 9.2 Publishing, Sharing & Access Control 9.3 Scheduled Refresh, Email Subscriptions & Alerts
10 Developing & Maintaining AI/BI Genie Spaces
10.1 AI/BI Genie Architecture & Space Setup 10.2 Curation via Instructions, Descriptions & Sample Questions 10.3 Trusted Assets & Parameterized Functions 10.4 Monitoring, Benchmarks, Feedback & Maintenance
11 Data Modeling & Medallion Architecture
11.1 Dimensional Modeling Fundamentals 11.2 Medallion Architecture for Analytics 11.3 Constraint Enforcement & Relationships in Unity Catalog
12 Securing Data & Unity Catalog Governance
12.1 Unity Catalog Privilege Model & Grants 12.2 Ownership, Inheritance & Access Control Patterns 12.3 Fine-Grained Security: Row Filters & Column Masks
11.1 Dimensional Modeling Fundamentals
Key Takeaways Explain This Topic AI
Star schemas reduce JOIN depth by organizing data into a central fact table surrounded by single-decomposed dimension tables, yielding up to 3x to 5x query speedups compared to normalized 3NF schemas.
Fact tables capture quantitative metrics and operational events at a grain defined by business processes, storing integer foreign keys alongside additive or non-additive measures.
Data Vault uses hubs, links, and satellites for auditable multi-source historization, typically feeding star/snowflake marts used by Databricks SQL analysts.
Slowly Changing Dimension (SCD) Type 1 overwrites historical attribute values, while SCD Type 2 preserves historical changes by inserting new row versions with validity timestamps (valid_from, valid_to) and current flags.
Surrogate keys in Delta Lake tables are natively generated using BIGINT GENERATED ALWAYS AS IDENTITY or GENERATED BY DEFAULT AS IDENTITY, enabling fast integer-based hash joining in Databricks SQL.
Last updated: July 2026
Overview of Dimensional Modeling in Databricks SQL
Dimensional modeling remains the cornerstone of modern data warehousing and business intelligence. Pioneered by Ralph Kimball, dimensional modeling optimizes relational data for fast querying, intuitive reporting, and efficient ad-hoc analytics. In the context of the Databricks Data Intelligence Platform and Databricks SQL, dimensional schemas provide structured semantic structures that allow analytical engines like Photon to execute high-speed join algorithms, leverage cache vectorization, and streamline aggregation processing. While traditional operational database design prioritizes normalized schemas (such as Third Normal Form, or 3NF) to minimize redundancy and prevent write anomalies during transaction processing (OLTP), analytical systems (OLAP) favor denormalized structures that minimize multi-table join chains and simplify query authoring for data analysts.
Star Schema vs. Snowflake Schema Architecture
In dimensional design, schemas are broadly categorized into two structural patterns: Star Schemas and Snowflake Schemas .
A Star Schema consists of a single central fact table surrounded by non-normalized dimension tables. Each dimension connects directly to the central fact table via a single join path, creating a star-like visual shape. This structure minimizes join complexity—queries typically require joining the fact table to one or two dimension tables.
A Snowflake Schema extends the star schema by normalizing dimension tables into sub-dimensions (for instance, splitting a dim_product table into dim_subcategory and dim_category ). While snowflaking eliminates redundant text storage, it introduces multi-level join hierarchies (e.g., joining fact to product, subcategory, and category). On modern lakehouses powered by Delta Lake and Databricks SQL, Star Schemas are strongly preferred over Snowflake Schemas. Denormalized dimensions significantly reduce shuffle overhead during query execution, allowing Photon to perform fast broadcast hash joins.
- Architectural Feature Star Schema Snowflake Schema
- Dimension Structure Denormalized into single flat tables Normalized into hierarchical sub-dimensions
Join Complexity Low (Single-level JOIN from Fact to Dimension) High (Multi-level recursive JOINs across sub-dimensions)
Query Execution Performance Optimized for Databricks SQL & Photon broadcast joins Higher shuffle overhead and query latency
Storage Efficiency Slight redundancy in attribute strings High normalization reduces string redundancy
BI Usability Highly intuitive for analysts and AI/BI tools Complex entity relationships for non-technical users
Fact Tables, Grain, and Measures
At the core of any dimensional model is the Fact Table . A fact table records numeric measurements, metrics, or events resulting from business operations (e.g., retail sales transactions, website clickstreams, or inventory snapshots).
Defining the Grain of a fact table is the single most critical decision in dimensional modeling. The grain represents the exact real-world atomic detail stored in a single row. For example, a fact table grain could be "one row per item sold on a customer checkout receipt" or "one row per daily summary of account balances." Establishing the atomic (lowest level) grain provides maximum analytical flexibility, enabling analysts to slice and dice metrics across any dimension attribute without losing detail.
Fact tables contain two types of columns:
Foreign Keys : Integer keys linking each fact record to its corresponding dimension tables (e.g., customer_id , product_id , store_id , date_id ).
Measures (Numeric Metrics) : Quantitative values that can be aggregated. Measures fall into three operational categories:
Additive Measures : Values that can be meaningfully summed across all dimensions (e.g., sales_amount , quantity_sold ).
Semi-Additive Measures : Values that can be summed across some dimensions but not time (e.g., account_balance or inventory_count where summing across days produces incorrect totals).
Non-Additive Measures : Ratios, percentages, or unit prices that cannot be added directly (e.g., margin_percentage or unit_price ); these must be computed dynamically using underlying additive metrics (e.g., SUM(margin) / SUM(revenue) ).
Dimension Tables and Slowly Changing Dimensions (SCD)
Dimension Tables contain descriptive context surrounding business events. They store contextual attributes (such as customer names, product categories, store regions, or promo details) that analysts filter, group, and slice by in SQL queries. Dimensions typically contain fewer rows than fact tables but feature many wide text attributes.
In real-world enterprise environments, dimension attributes change over time—customers change addresses, products switch categories, and stores are rebranded. Handling these updates requires Slowly Changing Dimension (SCD) strategies:
SCD Type 1 (Overwrite) : Old attribute values are directly overwritten with new values. Historical context is lost; past transactions appear as if they occurred under the new attribute value. This strategy is ideal when correcting errors or when historical tracking is irrelevant.
SCD Type 2 (Add New Row) : A new record is inserted into the dimension table whenever an attribute changes, preserving complete historical context. The existing record is marked as expired by setting a valid_to timestamp and an is_current = FALSE flag, while the new record receives a valid_from timestamp and is_current = TRUE . All historical fact transactions retain foreign key links to the dimension version active when the event took place.
Dimension Strategy Operation Mechanism Historical Context Primary Use Case
SCD Type 1 Overwrites existing column values in place Lost (Past transactions reflect current attribute state) Correcting typos or non-critical attribute updates
SCD Type 2 Inserts a new versioned row with validity timestamps Preserved (Full point-in-time point of view) Compliance, accurate historical sales tracking, auditability
Surrogate Keys and Identity Columns in Delta Lake
To support SCD Type 2 and insulate dimensional models from operational source changes, dimensional tables utilize Surrogate Keys —synthetic integer primary keys generated specifically for the data warehouse, distinct from natural business keys (e.g., Social Security Number or operational SKU).
Databricks SQL provides native identity column syntax for automatic surrogate key generation in Delta Lake tables using BIGINT GENERATED ALWAYS AS IDENTITY or BIGINT GENERATED BY DEFAULT AS IDENTITY . -- Creating a Dimension Table with Native Identity Surrogate Keys
- CREATE TABLE main.analytics.dim_customer (
- customer_sk BIGINT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
- customer_id STRING NOT NULL, -- Natural business key from source system
- customer_name STRING,
- email STRING,
- city STRING,
- state STRING,
- valid_from TIMESTAMP NOT NULL,
- valid_to TIMESTAMP,
- is_current BOOLEAN NOT NULL
- ) USING DELTA;
When inserting new records into dim_customer , Databricks SQL automatically assigns monotonically increasing integer values to customer_sk . Fact tables store customer_sk as a foreign key, allowing queries to join facts with exact historical dimension versions efficiently.
Data Vault Modeling for Analytical Workloads
Alongside star and snowflake designs, the exam outline expects familiarity with Data Vault modeling. Data Vault is a hub-and-spoke historical modeling approach often used in enterprise integration layers before dimensional marts are published.
- Component Role Typical contents
- Hub Unique business keys Customer hub keyed by customer_bk
- Link Relationships between hubs Orders link connecting customer and product hubs
- Satellite Descriptive/historical attributes Address history, status changes, effective dates
- When analysts encounter Data Vault on Databricks
Bronze/silver integration zones may store hubs, links, and satellites as Delta tables under Unity Catalog.
Analysts rarely query raw vault tables for dashboards. Instead, curated gold star schemas or metric views are built on top of vault structures.
Compared with star schemas: Data Vault optimizes for auditability and source integration; star schemas optimize for BI query simplicity and aggregation performance on Databricks SQL / Photon. Source systems → Data Vault (Hubs/Links/Satellites) → Dimensional mart (Star/Snowflake) → Dashboards/Genie
Exam tip: if a scenario emphasizes long-term historization and multi-source integration with minimal redesign, Data Vault is the modeling family; if it emphasizes fast BI aggregations and clear fact/dimension grain, choose star (or snowflake when dimensions are normalized).
Best Practices for Databricks SQL Data Modeling
Prefer Star Schemas : Keep dimensions wide and denormalized to maximize Photon broadcast join speed.
Choose Integer Keys : Use integer surrogate keys ( BIGINT ) rather than long string GUIDs for join keys to reduce memory usage and speed up hash joins.
Establish Clear Grain : Avoid mixing aggregated and atomic data within the same fact table.
Pre-compute Additive Base Metrics : Store raw additive sums in facts so non-additive ratios can be calculated dynamically during query time.