Jump to ratings and reviews
Rate this book

Graph Databases

Rate this book
Discover how graph databases can help you manage and query highly connected data. With this practical book, you’ll learn how to design and implement a graph database that brings the power of graphs to bear on a broad range of problem domains. Whether you want to speed up your response to user queries or build a database that can adapt as your business evolves, this book shows you how to apply the schema-free graph model to real-world problems. Learn how different organizations are using graph databases to outperform their competitors. With this book’s data modeling, query, and code examples, you’ll quickly be able to implement your own solution.

221 pages, Paperback

First published June 1, 2013

114 people are currently reading
577 people want to read

About the author

Ian Robinson

159 books12 followers
Librarian Note: There is more than one author in the Goodreads database with this name.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
59 (13%)
4 stars
186 (42%)
3 stars
164 (37%)
2 stars
27 (6%)
1 star
1 (<1%)
Displaying 1 - 30 of 67 reviews
Profile Image for Mark Seemann.
Author 3 books483 followers
January 21, 2016
The title of this book ought to be Neo4j, with a bit about general graph database theory. While implying to be a book about graph databases in general, all examples specificly use Neo4j.

Queries are demonstrated using Cypher, Neo4j's query language. Other code examples show how to write custom Java code that uses Neo4j's various APIs.

That said, I didn't mind it much, because I knew that the authors are the creators and core developers of Neo4j, and that Neo4j is the dominant graph database on the market. I expected the book to have this focus, even before I bought it.

The best about this book is that as soon as it gets technical, the writing and the examples are (with a few exceptions) crystal-clear. I liked those parts. As I wrote above, they are all about Neo4j, but I didn't mind, because I could easily extrapolate general patterns from the examples.

The not-so-good aspect of the book is that there's a lot of text that tells you how great and fantastic graph databases are, and those paragraphs are hard to get through. They're repetitive, the language is lacklustre and clichéd, and they have an overall sermonizing character. It's fairly obvious that there were more than one author involved.
Profile Image for Philipp.
688 reviews222 followers
September 16, 2015
Note: You can get the 2nd edition for free from the authors here: http://graphdatabases.com/

A good introduction to Neo4j, less to graph databases in general. It goes from the basics, to using the query language Cypher, to some use-cases, internal technologies, and a quick primer on graph algorithms (Dijkstra's algorithm, A*).

Very American, the tone is overenthusiastic to the point of being hilarious:


[...]graph databases lack the kind of schema-oriented data governance mechanisms we're familiar with in the relational world. But this is not a risk; rather, it calls forth a far more visible and actionable kind of governance.


Translated: It's OK to give children live hand-grenades. But this is not a risk; just give them some rules for handling explosives.

It's similar overenthusiastic in the benchmarks, and there's an absolutely unholy code-example showing how to extract all nodes from a range of dates with no comment that a whole page of code with several MATCHes for a date1 <= x <= date2 is a bit too complicated. Then again, the authors made the database and work for the company that makes all of its money with Neo4j. At times the book feels more like a company white-paper.

The later chapters get more interesting - testing using Java, technical details of the implementation, algorithms, architecture patterns, caching etc. I would have liked more technical details but these are out there (and there are a few useful paper and book recommendations, here too!)

Recommended for: People who want to get their feet wet with graph databases, but don't want too much of the technical details
Profile Image for David.
1,154 reviews59 followers
April 27, 2013
Just finished reading an early release version of 'Graph Databases' (to be published next month). While perhaps overly focused on Neo4j (not surprising, given the three authors), this is the best reference out there on graph data modeling. That said, I have a few comments:

- Graphs needn't be as schemaless as the authors indicate. I haven't used Neo4j, but they claim that types/labels on nodes are not yet directly supported (p40), so I guess this is one reason why they downplay schemas and ontologies. Remember that in a schema-less system, there is a very real implicit schema, but now it must be implemented as business logic in each application that processes the data.

- I think their modeling rules would need to be adjusted when attempting to naturally fuse disparate data sources at time of graph insert. This is especially true if vertex uniqueness is influenced by event time.

- They claim that "E-R diagrams only allow single, undirected, named relationships between
entities" (p32), but surely they've seen many-to-many tables before, which can hold data specific to the relationships themselves.

- The discussion of 'lossy sentiment' (p52) is a frequent graph design gotcha that I would have liked to have seen a bit more formalized. Not sure how to do it offhand, but something like "You lose the explicit pairing between nodes when their connecting link topology is not granular enough" would have made me happy.

- I also disagree with statements like "don't encode entities into relationships. Use relationships to convey semantics about how entities are related" (p54). Good design should allow some links to be more than just named relationships, but less than requiring that they convert into an intermediate node.

- They didn't seem to like RDF triple stores, but didn't know how to properly criticism them. I could help. :-)

- Also, there is considerable advances being made in creating property graphs in column family-based aggregate stores that the authors haven't mentioned.

Comments aside, this is a great book on an important topic, and there's little out there to compete with it. Also, I liked the shout out to William Hartnell. :-)
15 reviews1 follower
June 15, 2013
Interesting but feels like an advert for Neo4j, which is unsuprising given the authors. After reading this I feel like every problem I see could be solved with a graph database. I think I need to try it out on a personal project and see how it holds together.
Profile Image for Fred Cheyunski.
347 reviews13 followers
July 7, 2021
Good Graph DB Starter Despite Challenges for Non-Programmers - Robinson and Webber’s “Graph Databases” offers helpful context and an overview of this increasingly important topic. It seems to fulfill its purpose to “introduce graphs and graph databases to technology practitioners, including developers, database professionals, and technology decision makers.” However, if not among those with this kind of background, one will need additional assistance for more complete understanding and learning.

There is a forward by Emil Eifrem the founder of Neo4j, the most prominent of these applications, that provides some historical background and a preface offers initial explanation and puts the emergence of graph databases (DBs) into perspective. Seven chapters follow: (1) Introduction, (2) Options for Storing Connected Data, (3) Data Modeling with Graphs, (4) Building a Graph Database Application, (5) Graphs in the Real World, (6) Graph Database Internals, and (7) Predictive Analysis with Graph Theory.

In the way of perspective, passages from the ‘Preface’ and ‘Introduction’ are particularly informative. For instance, the authors make the case for the graph DB relevance as follows, “Graph databases address one of the great macroscopic business trends of today: leveraging complex and dynamic relationships in highly connected data to generate insight and competitive advantage.” They continue to say that “Graph theory was pioneered by Euler in the 18th century, and has been actively researched and improved by mathematicians, sociologists, anthropologists, and other practitioners ever since. However, it is only in the past few years that graph theory and graph thinking have been applied to information management . . . [ due to] commercial success of companies such as Facebook, Google, and Twitter [which incorporate such approaches].” The authors explain that “A graph is . . . a set of nodes and the relationships that connect them.” (Since this submission, I discovered Barabasi's Linked: How Everything Is Connected to Everything Else and What It Means for Business, Science, and Everyday Life which provides additional history and context that others may find useful in this regard; see my review.)

Within ‘Data Modeling with Graphs,’ the authors indicate that “Before we dig deeper into modeling with graphs, a word on models in general. Modeling is an abstracting activity motivated by a particular need or goal. . . There are no natural representations of the world the way it “really is,” just many purposeful selections, abstractions, and simplifications, some of which are more useful than others . . .” They continue later to say “Graph modeling naturally fits with the way we tend to abstract details. . . using circles and boxes, and then describe the connections between these things by joining them with arrows and lines. Today’s graph databases, more than any other database technologies, are “whiteboard friendly.” The typical whiteboard view of a problem is a graph. What we sketch in our creative and analytical modes maps closely to the data model we implement inside the database.” The authors go on to say “The interesting thing about graph diagrams is that they tend to contain specific instances of nodes and relationships, rather than classes or archetypes. In other words, we tend to describe graphs using specification by example.”

Much of the rest of the book is devoted to the Cypher programing language used with Neo4j and its use in constructing and querying graph DBs. As the authors say, “Cypher enables a user (or an application acting on behalf of a user) to ask the database to find data that matches a specific pattern. Colloquially, we ask the database to “find things like this.” And the way we describe what “things like this” look like is to draw them, using ASCII art.” This visual aspect makes graph DBs especially appealing and revealing. While the ease in using Cypher is emphasized, this aspect is what becomes more challenging for those of us who are not programmers.

Other parts of the book step through how graph DB models are built, scaled up and used in a production or operating environment with large amounts of data and/or real-time feeds. The authors also discuss the real-world application of graph DBs and their use in prediction. Namely, graph DBs are being utilized in such areas as information or talent search, providing product recommendations, fraud detection, and new drug discovery. No doubt there can be other usages not only in business, but also in the sciences, arts, and humanities (See my reviews of books including not only Morrison’s Data-driven Organization Design: Sustaining the Competitive Edge Through Organizational Analytics ---where I got my first hint about this topic and Neo4j--- Serious Play: How the World's Best Companies Simulate to Innovate , but also Mitteldorf’s Cracking the Aging Code: The New Science of Growing Old - And What It Means for Staying Young , Genosko’s Remodelling Communication: From WWII to the WWW (Toronto Studies in Semiotics and Communication) , Archer and Jockers’ The Bestseller Code: Anatomy of the Blockbuster Novel , and Staley’s Computers, Visualization, and History: How New Technology Will Transform Our Understanding of the Past for a few ideas in these veins).

As a non-programmer interested in exploring such wider appliance of graph DBs, my path has been one of downloading Neo4j, using the company website and You Tube tutorials with my own data, to construct and learn some graph DB basics. Likely, I will also take a formal course at some point. While these steps were necessary in my case (which I would recommend to others so interested) one can also utilize this book as a starter along these lines as there does not yet seem to be a more simple and painless way to go at this time.
Profile Image for Tomáš.
305 reviews32 followers
June 25, 2015
This is an OK book. It's more about Neo4j and its Cypher language than about graph databases, but, well, why not. My biggest complain is about the written style: pick up one thing, which is pain for relation databases (recursive joins) and compare it with simple example using graph database. I've missed some real life performance comparisons. I like the idea of graph databases, but this book didn't help me to understand the pros and cons of it.
Profile Image for Chen Qin.
3 reviews2 followers
May 21, 2013
I read early release.
So far, I felt graph database do have way to relief "join pain" in term of its native graph modeling.

What may be interested to hear is how partition of graph with billions of heterogeneous nodes cloud be made so that most heavily used query could be optimized from low bandwidth communications or etc.
13 reviews
December 21, 2024
The book is not a comprehensive guide to graph database technology as the title may suggest. It makes very limited references to general graph theory, instead focusing heavily on Neo4j graph database. While the book offers valuable insights into the underlying mechanisms of graph databases, including concepts like index-free adjacency and some architectural details, it often feels more like promotional material for Neo4j than an objective technical resource.

The content is inconsistent in its depth and coverage. While Cypher query language is frequently discussed throughout the book with numerous examples, the progression is not beginner-friendly, quickly jumping to advanced concepts without building a proper foundation. This steep learning curve in Cypher coverage may leave newcomers struggling to follow along. The book draws constant comparisons with relational databases to highlight graph database use cases, but it seems more focused on "converting" readers to graph databases rather than presenting a balanced view of their strengths and limitations.

Despite these shortcomings, the book does provide value through its explanation of graph database internals and practical applications. The authors effectively demonstrate how graph databases work under the hood and their potential use cases (social networks, geospatial applications, and recommendation engines). However, readers should approach this book understanding that it's more of a Neo4j-specific resource rather than a comprehensive guide to graph database technology.
Profile Image for Anton Antonov.
350 reviews48 followers
July 26, 2024
When I read it, it was my introduction to Graph Databases.
I was working in a team, building a music recommendation engine.

While we were working with OrientDB, Neo4j was also evaluated. We picked the latter since Neo4j was extremely restrictive for actual production usage, and OrientDB was relatively new, trying to gain a customer base.

So, where does the book fit into the story? Graph Databases by Ian Robinson is a book that introduces a new, not yet so-popular idea of graph DBs, which fixes the issues of relational and NoSQL databases. Remember how NoSQL databases were popular and fixing everything for everyone?

Graph databases do fall in the category of NoSQL databases, yet they are extremely focused on solving the "efficiently" querying and exploring relations. Relational databases are extremely limited regarding querying relations, such as "I am a fan of The Weekend, I like hop, I like the 2010s, I also like artists similar to The Weekend".

Therefore, using Neo4j as a practical playground, the book teaches you how to model data with graph databases. Cypher is also not the most obvious, at least to me, query language, which is where the book really helps out. 😅


P.S. Skip the "Graph Database internals" section if you only look at the practical side.
228 reviews6 followers
June 14, 2020
This is a book how to use Neo4j. There are quite a few code samples on how to build and use the queries. Many capabilities of Neo4j are explained in-depth in this book - safe to say "one stop shop" for Neo4j. By introducing index-free adjacency at the beginning of the book itself helped me to compare it with other types of database systems which are discussed in the later chapters.

It shows advantages over RDBMS and NoSQL data stores. How I have to adhere to foreign key constraints just to fit my data model was especially enlightening. The challenges with reciprocal queries were well illustrated as well.

Chapters on modeling have a wealth of information supported by real-world use cases. Predictive modeling is also touched upon towards the final chapters.

I expected chapters or sections on the below:
1. Performance tests of reads/writes compared with other database systems
2. When and where should I NOT use Graph Database
152 reviews
July 15, 2021
acceptably only as an introduction to neo4j for people who don't like reading on screens or who are otherwise too lazy to read online documentation, like myself, and then only barely. a bizarre mixture of hype, PR, Cypher syntax and extremely basic information about graphs. potentially useful for researchers looking to store graph data -- no need to read anything other than chapter 2, describing the data model, and chapter 3, introducing the query language Cypher, plus the like 5 pages on data import in chapter 4. a bit more about data export into formats useful for sophisticated graph algos or at least how to call the fancier routines within neo4j would have been helpful, as opposed to the chapter long walkthrough of A* and dijkstra. i learned that i still need an index and can constrain a node property to be unique, which was mildly useful. overall slightly helpful, slightly irritating, and totally unclear about its audience
11 reviews
October 2, 2019
I liked that the book covers a little bit of everything - how to model with graphs, real-life examples, a bit about the internals and a couple of words about graph algorithms.
The book is biased towards Neo4j and Cypher language, it missed mentioning other solutions and what competitive features they provide.
The wide spectrum of topics covered in the book caused that I lacked more in-depth information and analysis.
Authors many times over the pages stated that graph databases are going to solve all the problems we had with relational databases. I agree with the point that a graph is a natural way to represent things and connections between them. However, I doubt that we are going easily to shift our minds and way we think, from tables and records into graphs - nodes and connections.
Profile Image for Matt Williams.
53 reviews3 followers
Read
March 17, 2019
(Giving technical books star ratings is utter madness. Which is why I haven't.)

My only complaint about this book is that rather than taking core concepts and illuminating them with specific, but potentially abstract examples, it seems to make incredibly detailed, specific examples and tries to convey the core concepts through them. Especially in an eBook format, two pages of Cypher queries immediately evokes this classic scene from the Western Canon: https://www.youtube.com/watch?v=VW27k...
Profile Image for Avraam Mavridis.
133 reviews24 followers
January 20, 2021
Overall is an "OK" book, the first chapters and the last with the NoSQL DBs overview was good, the rest of the book is mostly focused on Neo4j and the Cypher query language.
I was expecting more practical examples in terms of application design for applications powered by a Graph database (in a similar manner ActiveRecord or Repository patterns power apps with SQL databases). I skipped the chapter about the internals of a graph database (but I am also wondering if it was the internals of Neo4j).
6 reviews2 followers
January 20, 2025
The book permitted me to form a mental model of graph databases and, in particular, Neo4j. Because it combines an introduction to graph databases, Neo4j, and (towards the end) graph theory in a relatively small number of pages, at times I felt the book could provide more detail. Interestingly, I also felt the book was redundant in some parts, prompting me to skim pages. Finally, I enjoyed the use cases and would appreciate more of them that exhibit more complex applications of the graph database technology.
1 review
March 31, 2025
The first 60% explains how to query graph databases and why, and the second 40% talks about graph database internals and briefly about how and when you might use other types of databases (key-value stores, relational databases, columnar databases, and graph databases). There are also property graphs, hyper graphs, and triple RDF stores.

The author heavily favors neo4j because it uses index-free adjacency, and uses native-graph storage, which is important to get real performance gains out of graph database rather than using intermediate indexes to build relationships (edges).
Profile Image for Sergey Machulskis.
103 reviews9 followers
March 25, 2022
I was hoping that the book can show me something I'm deeply wrong about. Or, at least, it can show how to solve new types of problems. It failed.

The advertisement-like explanations were fine. It would be strange to expect something else from the authors of the graph database. But, honestly, it was boring and made up.

A couple of ideas in Cypher (this is a query language for Neo4j) are interesting, but they don't worth the time you spend on 200 pages.
Profile Image for Atif Shaikh.
117 reviews
June 28, 2018
Great first book on graph databases, very well explained and examples are easy to follow. Its from Neo4J, hence, no mention of TinkerPop and more open standards but rather focus on key unique selling propositions for its own platform. Examples are ofcourse in Cypher. Great book nevertheless and so goes for the database. (scalability in Neo4j is an anti-pattern otherwise)
Profile Image for Eric.
33 reviews5 followers
April 22, 2019
Well written and comprehensive. The book illustrates with Neo4j and Cypher only, but that is fine for understanding the concepts.

I was surprised the author went as far to include discussions about infrastructure, scalability, etc. It gives comprehensive pointers. The appendix is also essential reading, to situate graph databases in the database space, and get a compact summary.
52 reviews1 follower
January 7, 2018
While some of the criticism is fair (it's focused on Neo4j rather than graph databases in general, it's too detailed for non-techies and a tad high level for techies and so on), I still found it to be a very good and informative read.
Profile Image for Norbert Preining.
39 reviews2 followers
November 16, 2017
Well written introduction to graph databases by representatives of the Neo4j database. Clear structure, and the authors try to keep as far as possible independent from Neo4j while still explaining many concepts using it.
Profile Image for William Anderson.
134 reviews25 followers
May 4, 2018
While not dedicated to them specifically this book serves as a great introduction to Neo4j and Cypher. Overall it is a highly accessible introduction to graph databases that then shifts into giving architectural approaches for designing how your graph data is structured.
1 review
September 25, 2018
Good overview of graph database concepts, but very focused on Neo4j. I'm sure the basic concepts transfer to other databases, but all code examples are geared toward Neo4j, which the authors are heavily involved in developing.
Profile Image for Minh Nhật.
92 reviews49 followers
December 26, 2018
network science mà gặp graphDB thì chuẩn bài mịa nó rồi
Profile Image for David.
3 reviews
January 17, 2019
This reads like an infomercial. There interesting ideas and material for sure, but I will look for a different reference.
19 reviews
April 9, 2019
Good introductory book on graph db - heavily focused on neo4j; worth reading for any one new to graph databases or neo4j
Profile Image for John Majerle.
193 reviews1 follower
April 16, 2019
Interesting idea. Not sure how useful it would be on a real project.
Profile Image for Ivaylo.
266 reviews25 followers
May 8, 2020
This short book is essentially a Neo4j/Cypher whitepaper, but a good and informative one :)
I like how it is structured and it does give a good overview of the ecosystem, so yeah, thanks!
Displaying 1 - 30 of 67 reviews

Can't find what you're looking for?

Get help and learn more about the design.