What is graph data modeling?
Data modeling is a practice that defines the logic of queries and the structure of the data in storage. A well-designed model is the key to leveraging the strengths of a graph database as it improves query performance, supports flexible queries, and optimizes storage.
In summary, the process of creating a data model includes the following:
- 
Understand the domain and define specific use cases (questions) for the application. 
- 
Develop an initial graph data model by extracting entities and decide how they relate to each other. 
- 
Test the use cases against the initial data model. 
- 
Create the graph with test data using Cypher®. 
- 
Test the use cases, including performance against the graph. 
- 
Refactor the graph data model due to changes in the key use cases or for performance reasons. 
For a full tutorial, refer to Create a data model.
Keep learning
For a more hands-on approach to data modeling, try the following resources:
- 
GraphAcademy: Data Modeling Fundamentals: enroll to an interactive course. 
- 
From relational to graph: learn how to adapt data from a relational to a graph data model. 
- 
Data modeling tools: see a list of tools you can use to create your data model. 
- 
Data modeling tips: check tips on how to improve your data modeling skills. 
- 
Modeling designs: see examples of data modeling designs that can be used as strategy for your project. 
- 
Neo4j GraphGists: find examples of graph data modeling shared by the Neo4j community. 
Glossary
- label
- 
Marks a node as a member of a named and indexed subset. A node may be assigned zero or more labels. 
- labels
- 
A label marks a node as a member of a named and indexed subset. A node may be assigned zero or more labels. 
- node
- 
A node represents an entity or discrete object in your graph data model. Nodes can be connected by relationships, hold data in properties, and are classified by labels. 
- nodes
- 
A node represents an entity or discrete object in your graph data model. Nodes can be connected by relationships, hold data in properties, and are classified by labels. 
- relationship
- 
A relationship represents a connection between nodes in your graph data model. Relationships connect a source node to a target node, hold data in properties, and are classified by type. 
- relationships
- 
A relationship represents a connection between nodes in your graph data model. Relationships connect a source node to a target node, hold data in properties, and are classified by type. 
- property
- 
Properties are key-value pairs that are used for storing data on nodes and relationships. 
- properties
- 
Properties are key-value pairs that are used for storing data on nodes and relationships. 
- cluster
- 
A Neo4j DBMS that spans multiple servers working together to increase fault tolerance and/or read scalability. Databases on a cluster may be configured to replicate across servers in the cluster thus achieving read scalability or high availability. 
- clusters
- 
A Neo4j DBMS that spans multiple servers working together to increase fault tolerance and/or read scalability. Databases on a cluster may be configured to replicate across servers in the cluster thus achieving read scalability or high availability. 
- graph
- 
A logical representation of a set of nodes where some pairs are connected by relationships. 
- graphs
- 
A logical representation of a set of nodes where some pairs are connected by relationships. 
- schema
- 
The prescribed property existence and datatypes for nodes and relationships. 
- schemas
- 
The prescribed property existence and datatypes for nodes and relationships. 
- [[database schema]]database schema
- 
The prescribed property existence and datatypes for nodes and relationships. 
- indexes
- 
Data structure that improves read performance of a database. Read more about supported categories of indexes. 
- indexed
- 
Data structure that improves read performance of a database. Read more about supported categories of indexes. 
- constraints
- 
Constraints are sets of data modeling rules that ensure the data is consistent and reliable. See what constraints are available in Cypher. 
- data model
- 
A data model defines how information is organized in a database. A good data model will make querying and understanding your data easier. In Neo4j, the data models have a graph structure. 
- data models
- 
A data model defines how information is organized in a database. A good data model will make querying and understanding your data easier. In Neo4j, the data models have a graph structure.