Courseiva
DEA-C01Chapter 2 of 18Objective 1.1

Introduction to AWS Data Stores: Relational, Key-Value, Document, and Analytics

How do you choose the right database for your application when every option promises to be the best? For the AWS Certified Data Engineer Associate (DEA-C01) exam, you need to know exactly which data store matches which job. Data comes in different shapes — structured like a spreadsheet, semi-structured like a JSON file, or unstructured like a video. AWS offers specialised services for each, and picking the wrong one can break your application or cost you a fortune. This chapter explains the four main categories of AWS data stores — relational, key-value, document, and analytics — in plain English, so you can match them to real-world scenarios in the exam and on the job.

12 min read
Beginner
Updated Jul 23, 2026
Reviewed by Johnson Ajibi· Senior Network & Security Engineer · MSc IT Security

A simple way to picture Introduction to AWS Data Stores: Relational, Key-Value, Document, and Analytics

The Personal Filing Cabinet Analogy

Have you ever tried to organise your important documents at home and ended up with piles of papers that you can't make sense of?

That is exactly the problem AWS data stores solve, but at a massive scale and with perfect recall. Imagine you have a filing cabinet for everything in your life. For your bank accounts, you might use a strict ledger book where every entry has a row for date, amount, and description, and you can look up any transaction instantly by account number. That is a relational data store — organised like a spreadsheet with rows and columns, perfect for financial data where relationships matter, like linking a customer to their orders.

For your contact list on your phone, you don't need a full spreadsheet. You just need a name and a phone number, retrieved by looking up the name directly. That is a key-value data store — simple, fast, and ideal for things like session data or product recommendations where you just need one value per key.

Now think of your collection of recipes. Each recipe is a self-contained document — it has a title, ingredients, instructions, and maybe a photo. You don't need to break each ingredient into a separate table; the whole recipe is stored as one document. That is a document data store, perfect for unstructured data like blog posts or user profiles.

Finally, imagine you are a detective analysing years of crime reports to find patterns. You don't care about one specific report; you care about massive amounts of data aggregated over time — total crimes per month, average response times, trends. That is an analytics data store, designed for querying huge datasets to produce summary reports and dashboards, not for everyday transactions.

How It Actually Works

When you build an application, you need to store data somewhere. But not all data is the same. Think about the difference between a bank transaction, a shopping cart session, a product catalogue entry, and a yearly sales report. Each of these has a different structure, different access patterns, and different performance needs. AWS provides multiple types of data stores to handle these variations efficiently. Let's break down the four main categories you'll encounter in the DEA-C01 exam.

A relational data store is one that organises data into tables with rows and columns, where each row represents a record and each column represents an attribute. The key feature is that you can define relationships between tables using keys. For example, a 'Customers' table might have a CustomerID column, and an 'Orders' table might reference that CustomerID to link orders to customers. AWS's main relational data store is Amazon RDS (Relational Database Service), which supports familiar databases like MySQL, PostgreSQL, and Microsoft SQL Server. Relational stores use a language called SQL (Structured Query Language) to query data. They are ideal for applications that need strict consistency, complex joins, and transactions — like banking systems, e-commerce platforms, and customer relationship management (CRM) software. The downside is that they can be slower when scaling to massive workloads because they enforce a rigid schema and relationships.

A key-value data store is the simplest type of NoSQL database. It stores data as a collection of key-value pairs. The key is a unique identifier (like a customer session ID), and the value is the data associated with that key (like a shopping cart). AWS's main key-value store is Amazon DynamoDB. You retrieve data by specifying the key, which makes reads and writes extremely fast and predictable. Key-value stores are designed for high throughput and low latency, making them perfect for caching, session management, real-time bidding, and gaming leaderboards. They do not support complex queries or joins; you get exactly one item per key. They also scale horizontally easily — meaning you can add more servers to handle more traffic without slowing down.

A document data store is another type of NoSQL database that stores data as documents, typically in JSON or similar format. Unlike key-value stores where the value is opaque, document stores let you query on the document's internal structure. Each document is self-contained, meaning it holds all its own data — for example, a product document might include the product name, price, description, and reviews all in one JSON object. AWS's main document store is Amazon DocumentDB (compatible with MongoDB). Document stores are ideal for content management systems, user profiles, product catalogues, and mobile app backends where data is semi-structured and evolves over time. They offer more flexibility than relational databases because you can have different fields in different documents, but they don't enforce a fixed schema.

An analytics data store is designed not for transactions but for analysing large volumes of historical data. These stores are optimised for complex queries that scan millions of rows to produce summaries, trends, and reports. AWS's main analytics data store is Amazon Redshift, a data warehouse that uses columnar storage (storing data by column rather than row) to speed up analytical queries. Other analytics services include Amazon Athena (serverless querying of data in Amazon S3) and Amazon EMR (for big data processing with frameworks like Apache Spark). Analytics stores are distinct from transactional databases because they prioritise read performance for aggregations over write performance for individual records. For example, a retail company might load all its daily sales transactions into Redshift each night, then run queries to find the best-selling products by region.

To summarise, each data store type solves a different problem. Relational stores are for structured data with relationships and strict consistency. Key-value stores are for simple, high-speed lookups by a unique key. Document stores are for flexible, semi-structured data that needs to be queried on content. Analytics stores are for deep analysis of large datasets. The DEA-C01 exam expects you to match these data store types to specific business requirements based on data characteristics (structure, volume, velocity) and access patterns (read-heavy, write-heavy, complex queries, low latency).

AWS also offers specialised variants within each category. For example, Amazon Aurora is a relational database that is MySQL and PostgreSQL compatible but offers higher performance and availability. Amazon RDS supports multi-AZ (availability zone) deployments for high availability. DynamoDB offers DynamoDB Accelerator (DAX) for microsecond latency. DocumentDB has storage auto-scaling. Redshift offers features like concurrency scaling and automatic tuning. As a data engineer, you need to understand these options to design cost-effective and performant data solutions.

This flowchart shows how data characteristics (structured, semi-structured, unstructured) lead to different AWS data stores, and how those stores map to access patterns.

Walk-Through

1

Identify the data's structure

Ask: is the data highly structured (like a spreadsheet with predefined columns), semi-structured (like JSON or XML with variable fields), or unstructured (like images or videos)? For structured data, consider relational stores. For semi-structured, consider document or key-value stores. For unstructured, consider Amazon S3 with analytics tools.

2

Analyse access patterns

Determine how the data will be read and written. Will reads happen by a unique key (e.g., user ID)? Then key-value works. Will you need to run complex queries that join multiple tables? Then relational is appropriate. Will you need to aggregate millions of records over time? Then analytics is the choice.

3

Evaluate consistency and transaction requirements

If your application demands strong consistency and ACID transactions (e.g., banking), choose a relational database. If you can tolerate eventual consistency and need high availability, a NoSQL store like DynamoDB may be suitable.

4

Assess scalability and performance needs

For workloads that need to scale to millions of requests per second with low latency, key-value or document stores like DynamoDB or DocumentDB (with horizontal scaling) are better. For moderate loads with complex queries, a relational database with vertical scaling might suffice.

5

Consider cost and operational overhead

Fully managed services like RDS, DynamoDB, and Redshift reduce operational overhead but have different pricing models. DynamoDB charges for provisioned throughput, RDS charges for instance hours and storage. The exam expects you to balance cost against performance requirements.

6

Match the business requirement to the AWS service

Based on steps 1-5, choose from AWS services: Amazon RDS (relational), Amazon Aurora (relational, high-performance), Amazon DynamoDB (key-value/document), Amazon DocumentDB (document), Amazon Redshift (analytics), Amazon S3 (object storage with analytics via Athena).

What This Looks Like on the Job

Let's walk through a realistic scenario: you work for a growing e-commerce company called 'ShopFast'. The company sells products online and needs to build a new feature that allows customers to view their order history, add items to a shopping cart, and get product recommendations. You need to choose the right AWS data stores for each part of the system.

First, consider the product catalogue. Products have a name, description, price, category, images, and reviews. Each product may have different attributes (for example, clothing has size and colour, while electronics have specifications). A document data store like Amazon DocumentDB would be perfect here because each product can be stored as a single JSON document with its own unique fields. You can query products by category or price range. The flexibility means you can add new product types without changing the database schema.

Second, the shopping cart. Each customer's cart needs to be retrieved instantly when they log in. The access pattern is simple: given a customer ID, get the cart contents. No complex queries are needed. A key-value store like Amazon DynamoDB is ideal. You would store the customer ID as the key and the cart contents (a list of product IDs and quantities) as the value. DynamoDB provides single-digit millisecond latency, so the shopping cart loads instantly. Plus, DynamoDB scales automatically if millions of customers are shopping at once.

Third, the order history. This involves structured data: each order has a customer ID, order date, total amount, status, and a list of items. You need to run queries like 'show all orders for customer X in the last 30 days' and 'total revenue for this month'. For relational data, you would use Amazon RDS with a PostgreSQL or MySQL database. You'd create tables for Customers, Orders, and Order_Items with foreign keys linking them. This ensures data integrity — for example, an order can't exist without a customer. SQL queries allow you to join these tables to produce reports.

Fourth, business analytics. The sales team wants to analyse purchasing patterns across millions of orders to decide which products to promote. You would load the order data into Amazon Redshift, an analytics data store. Redshift can run complex queries across massive datasets, like 'top 10 products by revenue in Q4 broken down by region'. It uses columnar storage so that aggregations are fast. You might set up a nightly ETL (extract, transform, load) pipeline to move data from RDS to Redshift using AWS Glue or Amazon Athena.

Finally, as an IT professional, you would also consider factors like cost, latency requirements, and data consistency. For shopping carts, you might accept eventual consistency (where data might be slightly stale for a short time) because speed matters more than perfect accuracy. For financial transactions in order history, you need strong consistency (every read sees the latest write). You'd document your architecture so that others understand why each data store was chosen. You'd also monitor the system using Amazon CloudWatch and set up auto-scaling for DynamoDB and Redshift to handle traffic spikes.

This scenario shows that a real-world application rarely uses just one data store. As a data engineer, you orchestrate multiple data stores to handle different parts of the application, ensuring each piece fits the data characteristics and access patterns perfectly.

How DEA-C01 Actually Tests This

The DEA-C01 exam tests your ability to 'select appropriate data stores based on data characteristics and access patterns'. This is a core skill that appears in multiple-choice questions and scenario-based questions. You will not be asked to write code or configure services directly, but you will be presented with a business problem and asked to choose the best AWS data store from a list of options.

Key concepts the exam loves to test:

Data characteristics: structured vs semi-structured vs unstructured data. Structured data fits neatly into tables (e.g., financial records). Semi-structured data has some organisation but flexible schema (e.g., JSON logs). Unstructured data has no predefined format (e.g., images, videos).

Access patterns: read-heavy vs write-heavy, transactional vs analytical, low latency vs throughput, frequent vs infrequent access.

Consistency requirements: strong consistency vs eventual consistency. DynamoDB offers both options. RDS provides strong consistency by default.

Scalability needs: horizontal scaling (adding more servers) vs vertical scaling (upgrading hardware). DynamoDB and DocumentDB scale horizontally; RDS scales vertically.

Query complexity: simple lookups (key-value) vs complex joins (relational) vs ad-hoc analytics (Redshift).

Traps the exam sets:

They might describe a situation where a NoSQL store would be best, but the data is actually highly relational. For example, a banking ledger always needs a relational store — key-value won't work because you need joins and atomic transactions.

They might ask for a 'data warehouse' and list options including Amazon RDS and Amazon Redshift. The trap is that RDS is for OLTP (online transaction processing), not for analytics. Redshift is the correct answer for OLAP (online analytical processing).

They might present a scenario with semi-structured data (like user profiles) and offer both DocumentDB and DynamoDB. The key difference: DocumentDB is a document store that allows querying on fields within the document; DynamoDB is a key-value store that shines for simple key lookups but can also handle documents with limited querying.

They might test the 'hot data vs cold data' concept: hot data (accessed frequently) might go in DynamoDB or ElastiCache; cold data (rarely accessed) might go in Amazon S3 with Athena for analysis.

They might present a scenario where the application needs global low-latency reads. DynamoDB Global Tables or Aurora Global Database would be correct, while a single-region RDS instance would be wrong.

Definitions to memorise:

OLTP: Online Transaction Processing. Handles many small transactions (e.g., placing an order). Typical store: RDS.

OLAP: Online Analytical Processing. Handles complex queries on large datasets (e.g., yearly sales report). Typical store: Redshift.

NoSQL: Not only SQL. A family of databases (key-value, document, graph, column-family) that sacrifice some consistency or query flexibility for scalability and performance.

ACID: Atomicity, Consistency, Isolation, Durability — properties that guarantee reliable transactions. Relational databases are ACID-compliant; many NoSQL stores are not.

BASE: Basically Available, Soft state, Eventual consistency — a property of many NoSQL systems that prioritise availability over strict consistency.

Common question patterns: - 'Which AWS service would you use to store product catalogue data that has a flexible schema and needs to support queries by product category?' Answer: Amazon DocumentDB (or MongoDB compatible). - 'Which AWS service is best for storing session data for a high-traffic web application?' Answer: Amazon DynamoDB (or ElastiCache for caching). - 'Which AWS service should be used to run complex queries on historical sales data to generate monthly reports?' Answer: Amazon Redshift. - 'Which AWS database service provides the strongest consistency guarantees?' Answer: Amazon RDS (or Aurora). - 'A company needs to store user profiles that include varying fields like address, preferences, and social media links. Which data store type is most suitable?' Answer: Document store (e.g., DocumentDB).

Key Takeaways

Relational data stores like Amazon RDS are best for structured data with strict consistency requirements and complex queries involving joins.

Key-value data stores like Amazon DynamoDB are ideal for simple, high-speed lookups at massive scale, such as session management or shopping carts.

Document data stores like Amazon DocumentDB are perfect for semi-structured data with flexible schemas, where you need to query on the content of the document.

Analytics data stores like Amazon Redshift are built for large-scale data analysis, not for individual transactions, using columnar storage for fast aggregations.

The choice of data store depends on data characteristics (structured vs semi-structured vs unstructured) and access patterns (read-heavy, write-heavy, latency, scalability).

OLTP (transactional) workloads use relational databases, while OLAP (analytical) workloads use data warehouses like Redshift, and mixing them up is a common exam trap.

NoSQL databases (key-value and document) sacrifice some consistency or query flexibility for horizontal scalability and performance at scale.

AWS offers a range of managed services, so you do not have to manage the underlying infrastructure, but you must still choose the correct service for the job.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Amazon RDS (Relational)

Structured data with fixed schema (tables with columns)

ACID transactions and complex joins supported

Scales vertically (larger instances) typically

Best for OLTP: banking, order management

Amazon DynamoDB (Key-Value)

Semi-structured data with flexible schema (JSON-like)

No joins; primary key lookups are atomic

Scales horizontally (adding more nodes automatically)

Best for high-throughput, low-latency lookups: session management, gaming

Amazon DocumentDB (Document)

Documents are self-contained JSON objects with internal querying

Supports rich queries on fields within documents (e.g., price range)

Ideal for catalogues, content management, user profiles

Amazon DynamoDB (Key-Value)

Data accessed primarily by partition key; value is opaque

Limited query capability without secondary indexes

Ideal for simple, high-speed lookups, caching, shopping carts

Amazon RDS (OLTP)

Designed for many small, concurrent transactions

Row-oriented storage (each row stored contiguously)

Strong consistency, ACID compliant

Amazon Redshift (OLAP)

Designed for complex queries on large datasets

Column-oriented storage (each column stored contiguously for fast aggregations)

Eventual consistency (for batch loads), no ACID for individual transactions

Amazon DynamoDB (NoSQL)

Key-value and document capabilities (but limited query on fields)

Fully managed, single-digit millisecond latency at any scale

Commonly used for gaming, ad tech, IoT, session management

Amazon DocumentDB (NoSQL)

Document store with MongoDB compatibility

Supports complex queries including aggregation pipelines

Commonly used for content management, mobile backends, product catalogues

Amazon S3 (Object Store)

Stores objects (files) of any type with metadata

Not designed for SQL queries natively (needs Athena or EMR)

Cost-effective for storing cold data, backups, images

Amazon Redshift (Data Warehouse)

Stores structured data in columnar format for analytics

Native SQL querying with high performance for aggregations

Optimised for frequent analytical queries on current and historical data

Watch Out for These

Mistake

All NoSQL databases are the same — they are just faster versions of relational databases.

Correct

NoSQL databases come in different types (key-value, document, graph, column-family) with different strengths. Key-value stores excel at simple lookups; document stores allow querying on content; graph databases handle relationships. They are not interchangeable, and they are not always faster — relational databases are often faster for complex joins.

The term 'NoSQL' is broad and beginners assume it means one thing. In reality, each sub-type solves different problems, and the exam tests your ability to distinguish them.

Mistake

You should always use Amazon RDS because it's the most familiar and reliable.

Correct

RDS is excellent for structured, relational data with ACID transactions, but it can be expensive and slow for high-throughput, simple lookups or semi-structured data. DynamoDB or DocumentDB might be cheaper and faster for those use cases.

Many beginners come from a traditional SQL background and default to relational databases without considering the data characteristics. The exam tests whether you can break this habit.

Mistake

Amazon Redshift is just a bigger version of Amazon RDS.

Correct

Redshift is a data warehouse optimised for analytics (OLAP), while RDS is an OLTP database. Redshift uses columnar storage and parallel query execution to scan billions of rows quickly, but it is not designed for individual row-level transactions like RDS.

Both are relational in the sense that they use SQL, but their architectures and use cases are fundamentally different. Confusing them is a common exam mistake.

Mistake

DynamoDB can replace a relational database for any application because it's fully managed and scalable.

Correct

DynamoDB is a key-value and document store that does not support complex joins, subqueries, or ACID transactions across multiple tables (without using DynamoDB Transactions, which are limited). For applications that need those features, a relational database is still necessary.

The hype around NoSQL leads people to believe it can do everything. In practice, many applications require relational features, and the exam tests when to choose each type.

Mistake

Document stores and key-value stores are the same because both store data as a key and a value.

Correct

In a key-value store, the value is opaque to the database — you can only query by the key. In a document store, the value is a structured document (like JSON) and the database understands that structure, allowing you to query on fields within it. For example, in DocumentDB you can find all products with a price less than $50, but in DynamoDB you cannot query that way without creating secondary indexes.

The names sound similar, and both are NoSQL, but the query capability is a critical distinction tested in the exam.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

What is the difference between Amazon RDS and Amazon Redshift?

Amazon RDS is a relational database for online transaction processing (OLTP), handling many small read/write operations like order processing. Amazon Redshift is a data warehouse for online analytical processing (OLAP), optimised for complex queries on large datasets, like generating yearly sales reports.

Can I use DynamoDB for storing relational data?

You can, but it is not recommended for data that requires complex joins or strict consistency across multiple tables. DynamoDB is a NoSQL key-value store that works best for simple lookups by primary key. If you need traditional SQL capabilities, use Amazon RDS or Aurora.

When should I use a document database like DocumentDB instead of a key-value store like DynamoDB?

Use DocumentDB when you need to query the content of the documents, such as 'find all products with a price less than $50'. DynamoDB is better when you always access data by a known key (like user ID) and don't need to query on other fields. DocumentDB also offers a richer query language.

What does 'horizontal scaling' mean in the context of database stores?

Horizontal scaling means adding more servers (nodes) to handle increased load, rather than upgrading a single server (vertical scaling). NoSQL databases like DynamoDB and DocumentDB are designed for horizontal scaling, allowing them to handle high traffic by distributing data across many machines.

Do I need to know SQL for the DEA-C01 exam?

You do not need to write SQL queries, but you should understand what SQL is used for and which AWS services support it. The exam focuses on choosing the right data store based on requirements, not on writing queries.

What is the difference between a data store and a database?

A data store is a general term for any system that stores data, including databases, file systems, and object stores. A database is a specific type of data store that organises data for efficient retrieval and management. In the AWS context, services like RDS and DynamoDB are databases, while S3 is an object storage data store.

Terms Worth Knowing

Keep going

You've finished Introduction to AWS Data Stores: Relational, Key-Value, Document, and Analytics. Continue through the DEA-C01 study guide to build a complete picture of the exam.

Done with this chapter?