An introduction to Neo4j
Neo4j is a recent graph-database that is rapidly accumulating success stories, especially in areas such as “social applications, recommendation engines, fraud detection, resource authorization, network & data center management and much more“. Here’s an interesting introductory lecture about by Ian Robinson at JavaZone 2013.
Tip: Databasetube offers various other interesting articles about neo4j
A few notes from the presentation:
Premises: - Data today is more connected than ever before - Complexity = f(size, semi-structure, connectedness) - Graphs are the best abstractions we have to model connectedness The data model in neo4j: "property graph model" - nodes have properties (eg key-value pairs) - relationships have a direction, and can have properties too (eg weighted associations) Neo4j server has a built in UI (web-based) When to consider using a graph database: - lots of join tables [connectedness] - lots of sparse tables [semi-structure] Neo4j fully supports ACID transactions - durable, consistent data - uses a try/success syntax Performance - millions of 'joins' per second [connections are pre-calculated at insert time!] - consistent query times as dataset grows Cypher query language - syntax mirrors the graphic representation of a graph - one dimensional, left-to-right
For a comparison of various graph databases (including Neo4j) check out this tutorial from the ESWC’13 conference
