This next section of alt-relational modeling looks at access patterns - what they are and how to optimize your data model for high performance. As we discussed in the last article on Alternatives to the Relational Model, the relational model provides a lot, but sometimes it’s not enough if you’re operating at sufficient scale and complexity. Alt-relational modeling considers cases where you’ve outgrown the relational model for your application. Most of these access pattern optimization approaches can be used for analytical data models as well, though because analytical query patterns differ (they often require scanning massive amounts of data), we’ll give analytical modeling a separate treatment in an upcoming chapter.
I expect to have the next section draft finished and published by Sunday. This will cover various alt-relational data modeling examples for different database systems - document and key-value stores, graph databases, and more.
As always, comment where you wish. If you find errors, please submit them here.
Thanks,
Joe Reis1
An access pattern is how your application reads and writes data. If you recall the 3V’s of “big data,” access pattern optimization implies optimizing how data is read and written under varying conditions of volume, velocity, and variety of data. This means modeling your data according to how it will be accessed. In this sense, the data model is an optimized access pattern.
This is where the physical data model comes into prime focus. It’s assumed you’ve evaluated traditional data modeling approaches, like relational modeling, and found them unsuitable for your purposes. I’m also assuming you’ve conceptually or logically modeled your data. Alt-relational modeling mainly focuses on translating your CDM and LDM into a physical model geared toward highly optimized access patterns. While this happens in relational modeling with column indexes and other database tweaks, alt-relational models take these optimizations to an extreme by structuring the data in the most performance-enhanced way that’s tightly coupled to the system where it will be stored and queried.
How do you optimize for access patterns? As you’ll learn, how you structure your data depends highly on your use case. For example, data might be written at high frequencies, requiring low latency writes. Or, tiny records might be read at an extremely high volume. Or, you might experience both heavy reads and writes. Every situation is different, and optimizing your access patterns starts with understanding them.
Keep reading with a 7-day free trial
Subscribe to Practical Data Modeling to keep reading this post and get 7 days of free access to the full post archives.