Graph Data Modeling for Neo4j

Course Overview

Module 1: Introduction to Graph Data Modeling for Neo4j

This module introduces you to how to model data as a graph that will be implemented as a Neo4j database. First you will learn the terminology used for a Neo4j property graph data model which includes nodes, labels, relationships and properties. This course focuses on the workflow stakeholders and developers use to create a graph data model for their domain. You will learn how to identify your domain entities that are used to define the nodes of the graph. Then you will learn how to identify the connections between the entities based upon the questions related to the domain. You will learn about common modeling patterns for a graph data model and the best practices you should follow to create your graph data model. You will also explore some existing graph data modeling use cases. In this course, you will perform six hands-on exercises using the Arrows tool for modeling nodes and relationships.

Topics:

  • The Neo4j property graph data model
  • Using Arrows to model a property graph data model
  • Identify and model domain entities
  • Identify and model connections between entities
  • Best practices for graph data modeling
  • Common graph structures
  • Explore some existing use cases
Module 2: Implementing Graph Data Models in Neo4j

This module teaches you how to create Cypher statements to implement a graph data model. You first create nodes and relationships for a simple model. Then you create nodes and relationships for the airport model that will be used for this training. You will load the database with a small number of flights, then you will profile queries. Next, you will refactor the data in the database for an improved model and profile queries against the new model. You will add more and more data to the database to see the impact of your implementation of the model. You will also learn how to use batch processing when refactoring a large graph.

Topics:

  • Create nodes and relationships for a simple model
  • Load data from a CSV file
  • Profile queries
  • Refactor the graph to add intermediate nodes
  • Refactor the graph to create relationships from nodes
  • Refactor the graph to specialize relationships
  • Refactor a large graph using batching
  • Maintain a graph

Instructor

Patrick Baumgartner

Patrick Baumgartner

Patrick Baumgartner works as a passionate software craftsman at 42talents and builds software with Java/JEE, Spring Framework, OSGi, NoSQL databases and other open source technologies. Since he got in touch with Neo4j a few years ago, he sees the whole world as one big connected graph and loves to talk about it.

Patrick is a host of the Neo4j Zürich and the Software Craftsmanship Zürich Meetup group and is engaged in the agile community in Switzerland.

Twitter: @patbaumgartner@42talents