Data Store Management · Topic 7 of 7
Data Modeling and Schema Evolution
Design data models for relational, warehouse and NoSQL stores, use indexing and partitioning, convert schemas with SCT and DMS, and evolve schemas safely.
- 5 min
- Star schema: one fact table plus dimension tables. It is the standard warehouse model.
- Model DynamoDB from access patterns, not from entities.
- Normalize OLTP data. Denormalize analytical data.
What it is
A data model describes how data is organized: tables, columns, keys and relationships. A good model matches how the data will be queried, and stays workable as the source changes.
Schema evolution is the practice of changing a schema over time, such as adding a column, without breaking producers, pipelines or reports.
How it works
Modeling by store type
| Store | Modeling approach |
|---|---|
| Relational OLTP (RDS, Aurora) | Normalized tables, primary and foreign keys, indexes for lookups |
| Warehouse (Redshift) | Dimensional model: star or snowflake schema, denormalized for reads |
| DynamoDB | Model by access pattern, choose partition and sort keys, often keep related items in one table |
| Data lake | Schema on read, files plus a catalog, partitioned by common filters |
A star schema has a central fact table with measures (such as sales amount) and foreign keys to dimension tables (such as customer, product and date). A snowflake schema normalizes the dimensions further, which saves space but adds joins. Star schemas are the usual choice for analytics because they keep queries simple and fast.
Normalization and denormalization
Normalization removes duplicated data, which suits transactional systems that update often. Denormalization copies data into wide tables to avoid joins, which suits read heavy analytics and NoSQL stores. Pick based on read and write patterns.
Slowly changing dimensions (SCD) describe how a dimension tracks change. Type 1 overwrites the old value and keeps no history. Type 2 adds a new row with validity dates, so history is kept.
Indexing, partitioning and compression
| Technique | Where | Effect |
|---|---|---|
| Indexes | RDS, Aurora, DynamoDB (GSI, LSI) | Speed up lookups on non key columns, cost write overhead |
| Sort and distribution keys | Redshift | Skip blocks and co locate join rows |
| Partitions | S3 and Athena, Glue | Prune data so queries read less |
| Compression and columnar formats | Redshift, Parquet, ORC | Smaller storage and less I/O |
Choose a model that supports your most common query without scanning everything. Too many indexes slow writes, and too many partitions create tiny files.
Schema conversion
Moving between database engines needs the schema converted first. The AWS Schema Conversion Tool (SCT) and AWS DMS Schema Conversion analyze a source schema, convert tables, views and code to the target engine and report items that need manual work. Then AWS DMS moves the data.
Use this sequence for a heterogeneous migration: convert the schema, create it on the target, run DMS full load and change data capture, then cut over. A homogeneous migration, for example PostgreSQL to PostgreSQL, usually needs no conversion.
Schema evolution in practice
Source systems add, rename and remove columns. Plan for it at each layer.
- Open table formats: Apache Iceberg tracks schemas in metadata and supports adding, dropping and renaming columns, plus type promotion in limited cases, without rewriting data files.
- Avro and the Glue Schema Registry: compatibility modes such as backward, forward and full decide which changes are accepted. Backward compatible means consumers on the new schema can read data written with the old one.
- Glue crawlers: the schema change policy decides whether the table updates when new columns appear.
- Redshift:
ALTER TABLE ADD COLUMNis cheap. Changing a column type is limited, often needing a new column or table. - Parquet and Athena: adding columns at the end is safest. Reading by column name or position behaves differently by format, so test it.
ALTER TABLE orders ADD COLUMN discount DECIMAL(10,2) DEFAULT 0;
Safe changes are adding optional columns. Risky changes are renaming or deleting columns and changing types, which can break consumers. Version breaking changes and announce them to downstream teams.
Data lineage
Data lineage records where data came from and which steps changed it. It supports audits, impact analysis ("what breaks if this column changes") and trust. On AWS you build it from catalog metadata, consistent naming and tags, pipeline run logs and orchestrator history, and the catalog descriptions that people maintain.
Some services offer lineage features of their own, such as Amazon SageMaker ML Lineage Tracking for machine learning workflows.
Reading the exam hint
If the scenario describes frequent new fields from a source, favor a flexible schema approach: Avro or Parquet with a registry or catalog policy, Iceberg tables, or DynamoDB. If it describes rigid reporting, favor a defined star schema in Redshift.
What to remember for the exam
- Star schema: one fact table plus dimension tables. It is the standard warehouse model.
- Model DynamoDB from access patterns, not from entities.
- Normalize OLTP data. Denormalize analytical data.
- SCD Type 2 keeps history with new rows. Type 1 overwrites.
- SCT and DMS Schema Conversion convert schemas across engines. DMS then moves the data.
- Iceberg supports in place schema evolution. The Glue Schema Registry enforces compatibility for Avro and similar formats.
- Adding optional columns is safe. Renames, deletes and type changes are risky.
- Lineage supports audit and impact analysis.
"Convert an Oracle schema to PostgreSQL" means SCT or DMS Schema Conversion first, then DMS for the data.
Common mistakes
Using a normalized model in Redshift. Many joins slow analytics. Prefer a star schema.
Modeling DynamoDB like relational tables. Without knowing the access patterns you cannot choose good keys.
Letting producers change fields freely. Without a registry or contract, a renamed field breaks consumers silently.
Assuming DMS converts code. DMS moves data. The conversion tools handle schema and code objects.
Dropping or renaming a column in a source table can make Athena or Spark queries return nulls or fail, so coordinate changes with downstream owners.
Check yourself
What does a star schema contain?
A central fact table linked to several dimension tables.
Which tools convert a schema between database engines?
The AWS Schema Conversion Tool and DMS Schema Conversion.
Which schema changes are generally safe?
Adding optional columns, since existing consumers can ignore them.
Topic 7 of 7 in Data Store Management
Test yourself on Data Store Management
The full AWS DEA-C01 question bank has 845 questions, with timed practice exams and an explanation for every answer.
This study guide is independent and is not affiliated with, endorsed by, or sponsored by AWS. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.