Presentation: "Neo4j -- the benefits of graph databases"
Time: Friday 13:00 - 14:00
Location: Stanford
A graph database stores information structured as mathematical graphs -- nodes, relationships and properties -- instead of in tables. These three building blocks form a "node space," which is an adaptive and flexible data structure that contains all data in your application. If your software handles information that is difficult to fit in static tables, such as data that is rapidly evolving, data that is formed as a graph or data that has a lot of optional attributes (so-called "semi-structured data") then a graph database may offer you many advantages compared to traditional backends.
For example, storing "graph-y" data like trees and networks in a relational database leads to many expensive joins and persisting data with many optional attributes frequently leads to sparse tables. Both of these problems are solved with a graph database, which does graph traversals several orders of magnitude faster than a relational store and which can efficiently capture semi-structured data. Additionally, due to their flexible structure, graph databases allow for a more agile development process with easier schema evolution than persistence solutions that force a static schema.
This session will introduce the graph database concepts and a transactional, disk-based open source Java graphdb implementation called Neo. Using simple, practical code examples, we will show you how using graphs, rather than tables, as a data model solves difficult problems. And, moreover, how this can substantially improve your everyday persistence programming. This will all be done using straightforward code examples. Having attended this session, you will know when it makes sense to consider a graph database and you will walk out with the practical skills needed to start using a graph database in your next project.