Neo Technology Discusses An Introduction to Graph Databases
We at Neo Technology believe there’s a whole world of information out there where size is not king, and connectedness assumes the throne. Everything in the real – and digital – world is connected and the amount of value in these relationships is tremendous.
Historical events, for example, are interconnected with political arenas and individual participants. Gene expression is derived from both DNA and environmental factors. Networks, computers, applications and users form intricate interaction networks. The truth is that every aspect of our lives is dominated by connected information and things. Today, big internet companies are trying to harness this power with efforts like the Google Knowledge Graph or Facebook Graph Search.
And whenever we want to store this real world data in a database, we somehow have to take care of this fact. Usually the connections are ignored, denormalized or aggregated to fit in the data model and make operations fast enough. What you lose by doing this is the richness of the information that you could have retained with a different data model and database. That’s where the property graph model and graph databases show up. If graph shaped data shows up in a relational database on the other hand, you’ll easily recognize it by the sheer amount of intermediate join tables and join statements in your queries (and dropping performance levels).
Graph theory is much older than anyone would think. Treating graphs explicitly with database semantics like ACID Transactions is new however. Graph databases are part of the recent NoSQL movement that mostly means non-relational databases. Most of them are open source, developer-friendly and come with a dedicated data-model that suits a certain use case.
Graph databases like Neo4j are well suited to storing, retrieving and quickly querying interesting networks of information. This kind of connected data is also know as graphs – not to be mixed up with artwork, charts or diagrams. Graphs consist of nodes and directed, typed relationships, both of which can hold arbitrary numbers and types of attributes (key-value properties). That is all there is to the graph model.
Graph databases are used in all sorts of interesting applications, including the following:
Facebook Graph Search by Max De Marzi imports data from Facebook and converts natural language queries into Cypher statements
Rik Van Bruggen’s beer graph shows that even a non-technical person can create a graph model and data and then run interesting queries on it
Open Tree Of Life is working on creating a graph of all the organisms in the world
Shutl finds the best courier and route for instant (minutes) delivery of goods purchased through e-commerce channels
Telenor handles complex ACL resolution algorithms on top of a graph model
Ready to learn more about graphs and graph databases and how they can make your life and development easier? Check out the book Graph Databases, attend a local GraphConnect conference or join a Neo4j training. You can learn more at www.neotechnology.com.
Michael Hunger has been passionate about software development for a long time. He is particularly interested in the people who develop software, software craftsmanship, programming languages, and improving code. For the last few years he has been working with Neo Technology on the Neo4j graph database. As the project lead of Spring Data Neo4j he helped developing the idea to become a convenient and complete solution for object graph mapping. He is also taking care of Neo4j cloud hosting efforts. Good relationships are everywhere in Michael’s life. His life concerns his family and children, running his coffee shop and co-working-space, having fun in the depths of a text-based multi-user dungeon, tinkering with and without Lego and much more. Follow Michael @mesirii and Neo Technology @neo4j.