Graphs are ubiquitous data structures that have become increasingly relevant across a wide spectrum of
applications in business, science, and medicine. We already looked at some applications related to scale-free
networks, but it makes sense to look at the landscape of database systems that provide the infrastructure for
many applications. There has been a lot of innovation in the NoSQL ("not only SQL") database arena, with
many new open source and commercial database engines now available. Check out nosql-database.org for a
list of database engines and other resources.
A graph database is a particular type of NoSQL database system that provides a natural data model and highperformance query engine specifically targeting graph-based data. That is, data that focuses on "nodes and
links" of arbitrary depth and complexity. A large variety of problems from social graphs to protein networks are
a natural fit for graph database models. A good example is the Neo4j database system, one of the early open
source NoSQL graph database systems.
Readings
The main "reading" for this special topic is a video presenting an overview of the Neo4j database system
(roughly 35 minutes long): http://player.vimeo.com/video/50787208.
In addition to the video, the folks at Neo Technology offer the book Graph Databases gratis via O'Reilly
publishing house: GraphDatabases.pdf. Chapter 1 provides a fairly brief overview, which is a nice complement
(or even replacement for the video).
Further Readings (Optional)
This additional reading gives some background on graph database models (if you're short on time, Section 2
provides a nice overview of what graph databases are along with some examples of their usage):
Angles_Gutierrez_ACMCS2008_GraphDB.pdf
Sample Solution