= Conceptual Data Modeling

First, let’s 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 entity–relationship
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
you’re 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._
