Modeling Iterations

We will develop the ACME bank model in a series of iterations. Before the modeling proces I will walk you through the modeling Practices and Patterns. At the end of each iteration we will be moving closer to the final data model.

After the concept lesson, I will give you an exercise to work on. Details of the exercise is in the later sections in this guide. Try to do these exercises on your own. The solution will be covered in the videos.

The Solutions are in the video and not in the guide.

Iteration# 1

Design the Entities Customer and Account.

Iteration# 2

Design the Primary Key for the table

Iteration# 3

3.1 Analyze Customer-Account relationship

3.2 Model one-to-many relationship between entities

Iteration# 4 Secondary indexes

Model & setup a Secondary Index

Iteration# 5 One-to-Many relationship

  • Model the Transaction entity
  • Model one-to-many relationship between Account-Transaction entities

Iteration# 6 Sparse Indexes

6.1 Analyze access patterns that can take advantage of sparse indexes

6.2 Model sparse indexes for access patterns identified in #6.1

Iteration# 7 Overloaded Index Keys

7.1 Analyze access patterns to determine an opportunity to leverage the overloaded index keys.

7.2 Model the overloaded secondary index for access patterns identified in #7.1

Iteration# 8 Many-to-Many relationship

8.1 Analyze relationship between Customer & Offer entities

8.2 Model the Customer-Offer relatonship based on findings in #8.1

Iteration# 9 Hot Partitions

Address potential hot partition issue

Iteration# 10 Optimize using query (avoid filter)

Model the index to avoid filter

Iteration# 11 Transactions

Oops moment!! A missed out requirement need to be addressed !!

11.1 Analyze the requirement to maintain transaction counter

11.2 Design the Credit transaction

11.3 Design the Debit transaction

Iteration# 12 Reporting

Model the daily reporting/aggregations

Iteration# 13 Archival

Model the archival of older transactions