Neo4j is a graph database that has been rapidly accumulating success stories, especially in areas such as social applications, recommendation engines, fraud detection, resource authorization, network and data center management, and much more. Here's an interesting introductory lecture by Ian Robinson at JavaZone 2013.
Tip: Databasetube offers various other interesting articles about Neo4j.
Neo4j uses the "property graph model" for representing data:
name: "John", age: 30)KNOWS {since: 2010})This model provides flexibility while maintaining the structure needed for efficient querying.
Built-in Web UI: Neo4j server includes a web-based interface for visualizing and querying your graph data, making it easier to explore and understand your data structure.
Consider using Neo4j when you encounter:
If your relational database schema is becoming unwieldy with numerous many-to-many relationships, a graph database might be a better fit.
Neo4j fully supports ACID transactions, providing:
This makes Neo4j suitable for production applications that require data integrity guarantees.
Neo4j's Cypher query language has some unique characteristics:
For example, a simple Cypher query might look like:
MATCH (person:Person)-[:KNOWS]->(friend)
WHERE person.name = "John"
RETURN friend.name
This query visually represents the pattern you're searching for in the graph.
For a comparison of various graph databases (including Neo4j), check out this tutorial from the ESWC'13 conference.
Cite this blog post:
Comments via Github:
2011
paper Semantic Web Approaches in Digital History: an Introduction
Lecture slides from the Course on digital history, part of the master in Digital Humanities at King's College, London., Oct 2011.