blob: c1e1027f6dc29f0f7fedaa61a41055cb53bad160 [file] [log] [blame]
= Conceptual Data Modeling
First, lets create a simple domain model that is easy to understand in
the relational world, and then see how you might map it from a
relational to a distributed hashtable model in Cassandra.
Let's use an example that is complex enough to show the various data
structures and design patterns, but not something that will bog you down
with details. Also, a domain that’s familiar to everyone will allow you
to concentrate on how to work with Cassandra, not on what the
application domain is all about.
For example, let's use a domain that is easily understood and that
everyone can relate to: making hotel reservations.
The conceptual domain includes hotels, guests that stay in the hotels, a
collection of rooms for each hotel, the rates and availability of those
rooms, and a record of reservations booked for guests. Hotels typically
also maintain a collection of points of interest,” which are parks,
museums, shopping galleries, monuments, or other places near the hotel
that guests might want to visit during their stay. Both hotels and
points of interest need to maintain geolocation data so that they can be
found on maps for mashups, and to calculate distances.
The conceptual domain is depicted below using the entityrelationship
model popularized by Peter Chen. This simple diagram represents the
entities in the domain with rectangles, and attributes of those entities
with ovals. Attributes that represent unique identifiers for items are
underlined. Relationships between entities are represented as diamonds,
and the connectors between the relationship and each entity show the
multiplicity of the connection.
image::data_modeling_hotel_erd.png[image]
Obviously, in the real world, there would be many more considerations
and much more complexity. For example, hotel rates are notoriously
dynamic, and calculating them involves a wide array of factors. Here
youre defining something complex enough to be interesting and touch on
the important points, but simple enough to maintain the focus on
learning Cassandra.
_Material adapted from Cassandra, The Definitive Guide. Published by
O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt. All
rights reserved. Used with permission._