Cutting-edge experiment: Finding connections with graph databases
Techworld outlines the seven experiments with the “latest and greatest” worth undertaking today. Cutting-edge experiment No. 6 is focused on Neo4j and graph databases.
Finding connections with graph databases
The idea of a database was well defined in the last century. You define a table with a list of columns that hold particular data, then insert rows into the database until it’s full. The columns might hold integers, decimal numbers, or strings, but that’s about all of the flexibility you get.
The graph databases like Neo4j are a new twist on the idea. You still stick your numbers and letters in columns, but now you can create pointers between the rows that form networks. If you’re storing a social network, the database is ready to record who is friends with whom.
This has always been possible with regular databases by giving each row a key and storing the pointers as keys in a column. The power of the graph database appears when you start running queries. The graph databases can unpack the network and start searching the network using well-honed algorithms for search. It doesn’t need to do complex linking and joining like relational databases. If you want to count how many people are friends of friends of friends, the query engine is there for you. If you want test how many friendship hops there are between two people, the engine can search the network and find the answer.
Neo4J is distributed by Neo Technologies in three different levels and several licenses. All the searching power is available in the community edition that is distributed under GPL 3.0. The Advanced version and the Enterprise version add more tools for monitoring the throughput, synchronizing a cluster, and backing up the database. They are distributed with the Affero GPL license for experimentation and open source projects, but many businesses will be most interested in the commercial licenses that include support and avoid the requirement to share your code.
The trade-off comes in the collection of features. The graph databases are not as elaborate or as well-developed as the more general cousins. They are experts at graph algorithms but don’t offer the same depth and breadth of traditional features. Choosing a graph database means forgoing the others.
Read the full article. (registration required)