Graph Databases Will Take Over the World
Over the weekend I started reading the Graph Databases O’Reilly book, it was written by some of the folks behind the Neo4j database. It could be that my excitement is premature since I’m just starting to wrap my head around the world of graph databases, but my initial introduction has me excited for the future.
For those totally unfamiliar with graph databases, Wikipedia defines a graph database as:
a database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data. A key concept of the system is the graph (or edge or relationship), which directly relates data items in the store. The relationships allow data in the store to be linked together directly, and in most cases retrieved with a single operation.
In simple terms graph databases model not only entities (nodes) but also their relationships (edges) as first-class members of the database as opposed to having relationships expressed in the data and realized in a JOIN statement, as is the case in a relational database. While the technology is interesting in itself, the real power of the graph database lies in how the structure ties so closely to the real networks in our lives.
As the web matures and users are increasingly connected even simple tasks are gaining a social component. Whether it is a person’s daily workout, pictures of their family, or a personal health record all of this information is hitting the cloud where it can be accessed by gym buddies, family members, or healthcare providers. As more and more information gets stored, more and more interesting connections can be made and more insight can be surfaced. So far, we’ve seen more experimentation on the social-networking side with friend recommendations, but other applications are not far behind. Think of workout applications that could tell you that by cycling in a new exercise you could bust through a plateau, or healthcare applications that could alert you to possible conditions years ahead of an exam. With more and more data the possibilities are endless.
In order to fully take advantage of the glut of data we’ll need a way to accurately model complex relationships and a way to quickly query those relationships, I believe that graph databases elegantly solve both of those problems. I’m excited to see the problems that will be solved.