Bird
Raised Fist0
DynamoDBquery~20 mins

NoSQL vs relational database comparison in DynamoDB - Practice Questions

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
NoSQL vs Relational Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Primary difference between NoSQL and relational databases

Which statement best describes the main difference between NoSQL databases like DynamoDB and traditional relational databases?

ARelational databases use structured query language (SQL) and fixed schemas, while NoSQL databases like DynamoDB use flexible schemas and key-value or document models.
BRelational databases are designed only for unstructured data, while NoSQL databases handle only structured data.
CNoSQL databases store data in tables with fixed schemas, while relational databases store data as flexible documents.
DNoSQL databases require complex joins for queries, whereas relational databases do not support joins.
Attempts:
2 left
💡 Hint

Think about how data is organized and queried in each type.

query_result
intermediate
2:00remaining
DynamoDB query output for a simple key lookup

Given a DynamoDB table named Users with primary key UserID, what will be the output of this query?

SELECT * FROM Users WHERE UserID = '123'

Assuming the table has one item with UserID '123' and attributes Name: 'Alice', Age: 30.

A[{"UserID": 123, "Name": "Alice", "Age": "30"}]
BSyntaxError: DynamoDB does not support SQL queries
C[]
D[{"UserID": "123", "Name": "Alice", "Age": 30}]
Attempts:
2 left
💡 Hint

Consider the data types and the query result format.

📝 Syntax
advanced
2:00remaining
Identify the error in this DynamoDB update expression

What error will this DynamoDB update expression cause?

UpdateExpression: "SET Age = Age + :val"
ExpressionAttributeValues: {":val": 1}
ASyntaxError: Missing colon in ExpressionAttributeValues key
BValidationException: Cannot increment a non-numeric attribute
CNo error; the update will increment Age by 1
DTypeError: ExpressionAttributeValues must be a list
Attempts:
2 left
💡 Hint

Think about the data type of the attribute being updated.

optimization
advanced
2:00remaining
Best practice for querying large datasets in DynamoDB

You want to retrieve all items from a DynamoDB table with millions of records. Which approach is best to optimize performance and cost?

AExport the entire table to S3 and query using SQL there.
BUse a Scan operation with no filters to get all items at once.
CUse Query operations with appropriate partition keys and apply filters to reduce data scanned.
DUse multiple parallel Scan operations without pagination.
Attempts:
2 left
💡 Hint

Consider how DynamoDB charges and performs scans vs queries.

🔧 Debug
expert
3:00remaining
Why does this relational join query fail on DynamoDB?

Consider this SQL query:

SELECT Orders.OrderID, Customers.Name FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Why will this query fail or not work as expected in DynamoDB?

ADynamoDB does not support JOIN operations natively; data must be denormalized or joined in application code.
BThe query syntax is invalid because DynamoDB requires double quotes around table names.
CDynamoDB requires a WHERE clause for all queries, so this query is incomplete.
DDynamoDB only supports queries on primary keys, so JOINs on foreign keys are disallowed.
Attempts:
2 left
💡 Hint

Think about how NoSQL databases handle relationships compared to relational databases.

Practice

(1/5)
1. Which of the following best describes a key difference between NoSQL databases like DynamoDB and relational databases?
easy
A. NoSQL databases cannot scale horizontally, but relational databases can.
B. NoSQL databases store data without a fixed schema, while relational databases require a fixed schema.
C. Relational databases store data as key-value pairs, while NoSQL uses tables.
D. NoSQL databases always use SQL language, while relational databases do not.

Solution

  1. Step 1: Understand schema requirements

    NoSQL databases like DynamoDB allow flexible, schema-less data storage, meaning you don't have to define all columns upfront.
  2. Step 2: Compare with relational databases

    Relational databases require a fixed schema with tables and columns defined before storing data.
  3. Final Answer:

    NoSQL databases store data without a fixed schema, while relational databases require a fixed schema. -> Option B
  4. Quick Check:

    Schema flexibility = D [OK]
Hint: Remember: NoSQL = flexible schema, relational = fixed schema [OK]
Common Mistakes:
  • Thinking NoSQL always uses SQL language
  • Confusing data storage formats between NoSQL and relational
  • Assuming NoSQL cannot scale horizontally
2. Which of the following is the correct way to describe DynamoDB's data model?
easy
A. DynamoDB stores data in fixed tables with strict column types like SQL databases.
B. DynamoDB requires complex JOIN operations to combine tables.
C. DynamoDB stores data as flexible key-value pairs or documents without fixed columns.
D. DynamoDB uses only relational schemas with foreign keys.

Solution

  1. Step 1: Identify DynamoDB data model

    DynamoDB is a NoSQL database that stores data as flexible key-value pairs or documents, not fixed tables.
  2. Step 2: Eliminate incorrect options

    Options A, B, and D describe relational database features which DynamoDB does not require.
  3. Final Answer:

    DynamoDB stores data as flexible key-value pairs or documents without fixed columns. -> Option C
  4. Quick Check:

    DynamoDB data model = C [OK]
Hint: DynamoDB = flexible key-value or document store, not fixed tables [OK]
Common Mistakes:
  • Thinking DynamoDB uses SQL JOINs
  • Assuming DynamoDB has fixed columns like relational DB
  • Confusing relational schema terms with NoSQL
3. Consider a DynamoDB table storing user profiles with flexible attributes. Which statement is true about querying this data compared to a relational database?
medium
A. DynamoDB queries are optimized for key-value lookups and simple filters, not complex joins.
B. You can perform complex JOIN queries across multiple tables easily in DynamoDB.
C. DynamoDB requires a fixed schema to run queries.
D. Relational databases cannot enforce data integrity rules like DynamoDB.

Solution

  1. Step 1: Understand DynamoDB query capabilities

    DynamoDB is designed for fast key-value lookups and simple filtering, but does not support complex JOIN operations like relational databases.
  2. Step 2: Compare with relational databases

    Relational databases support complex JOINs and enforce data integrity rules, unlike DynamoDB.
  3. Final Answer:

    DynamoDB queries are optimized for key-value lookups and simple filters, not complex joins. -> Option A
  4. Quick Check:

    Query complexity = B [OK]
Hint: DynamoDB = simple filters, no complex JOINs [OK]
Common Mistakes:
  • Assuming DynamoDB supports SQL JOINs
  • Thinking DynamoDB requires fixed schema for queries
  • Believing relational DBs lack data integrity
4. You wrote a DynamoDB query to retrieve items by a non-key attribute but it returns no results. What is the most likely cause?
medium
A. The table schema is fixed and missing the attribute.
B. The query syntax is invalid because DynamoDB uses SQL JOINs.
C. DynamoDB requires all attributes to be indexed automatically.
D. DynamoDB only allows queries on primary key attributes, not on arbitrary columns.

Solution

  1. Step 1: Recall DynamoDB query restrictions

    DynamoDB queries work only on primary key attributes or indexed attributes, not on arbitrary non-key attributes.
  2. Step 2: Analyze other options

    The query syntax is invalid because DynamoDB uses SQL JOINs. is wrong because DynamoDB does not use SQL JOINs. DynamoDB requires all attributes to be indexed automatically. is incorrect as indexes must be created explicitly. The table schema is fixed and missing the attribute. is invalid because DynamoDB is schema-less.
  3. Final Answer:

    DynamoDB only allows queries on primary key attributes, not on arbitrary columns. -> Option D
  4. Quick Check:

    Query keys only = A [OK]
Hint: Query only on keys or indexes in DynamoDB [OK]
Common Mistakes:
  • Trying to query non-key attributes without indexes
  • Expecting SQL JOIN support in DynamoDB
  • Assuming DynamoDB has fixed schema
5. You need to design a system that stores user data with varying attributes and must scale easily with traffic. Which database choice and design is best?
hard
A. Use DynamoDB with flexible schema and partition keys to scale horizontally.
B. Use a relational database with fixed tables and complex JOINs for all queries.
C. Use a relational database but avoid indexes to improve speed.
D. Use DynamoDB but enforce a strict fixed schema for all items.

Solution

  1. Step 1: Analyze requirements for flexibility and scalability

    The system needs to handle varying user attributes and scale easily with traffic.
  2. Step 2: Match database features to requirements

    DynamoDB offers flexible schema and horizontal scaling using partition keys, making it suitable. Relational DBs with fixed schema and complex JOINs are less flexible and harder to scale horizontally.
  3. Final Answer:

    Use DynamoDB with flexible schema and partition keys to scale horizontally. -> Option A
  4. Quick Check:

    Flexible schema + scalability = A [OK]
Hint: Flexible schema + partition keys = DynamoDB scaling [OK]
Common Mistakes:
  • Choosing relational DB for flexible schema needs
  • Avoiding indexes in relational DB reduces performance
  • Forcing fixed schema in DynamoDB defeats flexibility