To
the question “How relevant is data
modeling in the world of NoSQL?” I give the following answer.
The main purpose of data modeling is to
understand the business, some application domain, some user world. The model becomes a representation of that
world -- the "things" in it, the relationships among those things and
any constraints on those things or relationships. A secondary purpose is to build a database to
contain information which pertains to and describes that domain. Hence, the business data model should not be
concerned with issues of physical stored representation, or the
transformations/manipulations/constraints which are imposed to facilitate
implementation in some data (storage) management system. That could be a relational DBMS, or a NoSQL
tool. Generally we speak of the model
coming first, then the implementation, and finally, the data gets collected and
stored according to the model. However,
increasingly the data already exists in some form. Which leaves us with the task of figuring out
what it means, what it represents -- that is, understanding the data as it
represents some user domain. NoSQL tools
are often designed to deal with existing data and to process it more
efficiently (that may be an oversimplification!). Either way, you must understand the business
in order to make sense of the data.
BOTTOM
LINE: it is vitally important to
understand the principles, methods, and approaches of data modeling which can
help you get to an understanding of the data and the business domain it
represents. Whether using traditional database management tools or NoSQL tools you still need to understand the data.