InterviewStack.io LogoInterviewStack.io

Data Modeling and Schema Design Questions

Focuses on designing efficient, maintainable data schemas for transactional and analytical systems. Candidates should demonstrate understanding of normalization principles and normal forms, when and why to denormalize for performance, and schema design patterns for different use cases. Expect dimensional modeling topics including fact and dimension tables, star and snowflake schemas, grain definition, slowly changing dimensions, and strategies for handling historical data. The topic also includes trade offs between online transaction processing and online analytical processing designs, query performance considerations, indexing and partitioning strategies, and the ability to evaluate and improve existing schemas to meet business requirements and scale.

MediumTechnical
36 practiced
When storing analytical data as Parquet files in a data lake, how do you choose a partitioning scheme (columns to partition by), directory layout, and target file sizes to balance query performance and cost (e.g., in Presto/Spark)? Discuss small-file problems, partition explosion, and the role of bucketing/clustering.
EasyTechnical
38 practiced
Design a product dimension table that must support slowly changing attributes (price and category) and efficient joins to sales facts. Sketch column names and types, indicate keys, and briefly describe how you'd implement SCD behavior in the schema.
HardSystem Design
34 practiced
Architect a data warehouse that ingests 10 TB/day with near-real-time analytics (ingestion latency < 1 minute for recent records). Describe schema patterns (star/snowflake/hybrid), storage choices (cloud columnar engines), partitioning/clustering strategies, CDC ingestion path, incremental materialized views, and cost/performance trade-offs. Explain how the design supports both ad-hoc analyst queries and dashboard SLAs.
MediumTechnical
56 practiced
Given the following Postgres table DDL:
CREATE TABLE transactions (
  transaction_id BIGINT PRIMARY KEY,
  user_id BIGINT NOT NULL,
  amount NUMERIC(12,2),
  occurred_at TIMESTAMP WITHOUT TIME ZONE,
  metadata JSONB
);
Propose a partitioning and indexing strategy for monthly partitioned data and frequent queries by user_id and date range. Show sample SQL to create a range-partitioned parent and a child partition plus the recommended indexes.
MediumTechnical
29 practiced
Create a migration plan (high level) to convert a busy orders table from storing full addresses inline to referencing an addresses table (normalization), ensuring no downtime and minimal risk. Include steps for data migration, application compatibility, and rollback.

Unlock Full Question Bank

Get access to hundreds of Data Modeling and Schema Design interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.