Database Reference
In-Depth Information
Agile data modeling with Neo4j
Data modeling in Neo4j is evolving and flexible enough to adapt to changing business re-
quirements. It captures the new data sources, entities, and their relationships as they natur-
ally occur, allowing the database to easily adapt to the changes, which in turn results in an
extremely agile development and provides quick responsiveness to changing business re-
quirements.
Data modeling is a multistep process and involves the following steps:
1. Define requirements or goals in the form of questions that need to be executed and
answered by the domain-specific model.
2. Once we have our goals ready, we can dig deep into the data and identify entities
and their associations/relationships.
3. Now, as we have our graph structure ready, the next step is to form patterns from
our initial questions/goals and execute them against the graph model.
This whole process is applied in an iterative and incremental manner, similar to what we do
in agile, and has to be repeated again whenever we change our goals or add new goals/
questions, which need to be answered by your graph model.
Let's see in detail how data is organized/structured and implemented in Neo4j to bring in
the agility of graph models.
Based on the principles of graph data structure available at http://en.wikipedia.org/wiki/
Graph_(abstract_data_type) , Neo4j implements the property graph data model at storage
level, which is efficient, flexible, adaptive, and capable of effectively storing/representing
any kind of data in the form of nodes, properties, and relationships.
Neo4j not only implements the property graph model, but has also evolved the traditional
model and added the feature of tagging nodes with labels, which is now referred to as the
labeled property graph.
Essentially, in Neo4j, everything needs to be defined in either of the following forms:
Nodes : A node is the fundamental unit of a graph, which can also be viewed as an
entity, but based on a domain model, it can be something else too.
Relationships : These defines the connection between two nodes. Relationships
also have types, which further differentiate relationships from one another.
Search WWH ::




Custom Search