Book Image

Graph Data Modeling in Python

By : Gary Hutson, Matt Jackson
Book Image

Graph Data Modeling in Python

By: Gary Hutson, Matt Jackson

Overview of this book

Graphs have become increasingly integral to powering the products and services we use in our daily lives, driving social media, online shopping recommendations, and even fraud detection. With this book, you’ll see how a good graph data model can help enhance efficiency and unlock hidden insights through complex network analysis. Graph Data Modeling in Python will guide you through designing, implementing, and harnessing a variety of graph data models using the popular open source Python libraries NetworkX and igraph. Following practical use cases and examples, you’ll find out how to design optimal graph models capable of supporting a wide range of queries and features. Moreover, you’ll seamlessly transition from traditional relational databases and tabular data to the dynamic world of graph data structures that allow powerful, path-based analyses. As well as learning how to manage a persistent graph database using Neo4j, you’ll also get to grips with adapting your network model to evolving data requirements. By the end of this book, you’ll be able to transform tabular data into powerful graph data models. In essence, you’ll build your knowledge from beginner to advanced-level practitioner in no time.
Table of Contents (16 chapters)
Part 1: Getting Started with Graph Data Modeling
Part 2: Making the Graph Transition
Part 3: Storing and Productionizing Graphs
Part 4: Graphing Like a Pro

Working with Graph Databases

This chapter introduces you to in-memory graph databases. We will show you the steps of how to work with a very popular graph database, Neo4j. We will take you through the process of how to download this software to use on your own machine and explain why Python can become slow when trying to deploy your graph databases and models at scale. Following the setup phases, we will explore how to create relationships in this in-memory graph database application and then how to query them with a popular query language, Cypher.

Then, we will look at the various ways you can store information in Neo4j and use Python to interact with the application. We will take a slight detour to look at alternatives to Neo4j, such as Memgraph, and how they can be used. But the focus of this chapter will mainly be on Neo4j, as it does not require you to configure your machine to work with Docker and microservices.

Finally, we will look at a use case of how Python and Neo4j...