Graph Databases - Moving Business to the Future

“Every 2 days we create as much information as we did UP TO 2003.” – Eric Schmidt, Google

In today’s world we are creating data at a dizzying rate. We are more connected than ever in our history with data generated from multiple sources such as: Text Content (whether that’s through Social Media like Facebook/Twitter/Instagram & others), Blogs, e-commerce (Reviews/Sharing), Personal Sites, Business Sites, CRM/ERP/CMS, Emails, Logs and more…..Data is being developed and TAGGED in nearly every instance of daily life.  This produced data is highly valuable to business and valuable to Users as it allows businesses to better predict their needs.

Since the early 80’s, Relational Databases have been the power-horse go-to database. It continues to be today. The Relational Database stores data in a highly structured table made up of rows and columns (think Excel), references to other data in other tables are referenced by their key attributes. In the example below, Product – Sales – Customers are all tied together with the Product ID and the Customer ID (it’s simple, I know).

This can be enforced with constraints by making some references never optional. For many-to-many relationships tables can be pulled together through JOINS which are computed during a query. As you add more joins into your query, the more intensive the operation becomes and that will ultimately have a cost (a performance cost as well as a hard dollar cost).  All this being said I generally leave this up to my SQL guru, so I do understand that I may have simplified things a bit!

With as much data as we are producing, you can see in the traditional Relational Database Model how restrictive that may actually become.  Essentially, it becomes more and more difficult for a business to mine data in not only a solid predictive manner, but in a cost effective manner as well.

Enter in the Graph Database. The Graph Database is a type of NOSQL (Not Only SQL) database; it can be viewed as the ‘next generation’ of the Rational Database.  A Graph Database is a collection of nodes and edges that can be used to store, map & query multiple relationships. Every node is defined by a unique identifier, a set of outgoing edges (and/or incoming edges) and a set of properties that are key/value pairs.  This design allows you to better analyze and deeply analyze the interconnections of the data. For example, if you have ever shopped at Amazon, you will often note the recommendation: “customers who also bought this, looked at this as well…” as you continue your shopping. This is an excellent example of a Graph Database at work.  The most well-known Graph Database is the Facebook Social Graph which allows you to see connections between yourself and your friends.

Similarly, the use internally for a business is exciting. Imagine a Graph Database set up to handle Supply Chain Management? Imagine a Not for Profit organization using a Graph Database to dig deeper into the habits/needs and tendencies of the donors, or deeper still, into the relationships of the donors to OTHER POTENTIAL donors.  Medical research firms are using Graph Databases to find connections among patients diagnosed with a particular disease; in this field particularly the benefits are staggering. 

The possibilities are endless.

Graph Databases are very flexible and relatively easier to build that a Rational Database. Generally speaking, I have heard and read the phrase: “If you can whiteboard it, you can build it” with a Graph Database. The economies of scale for a Graph Database are less than a Rational Database and similarly a Graph Database is easier to query and a powerful model as compared to the typical Rational Database. 

That being said, the use of Graph Databases is still relatively new; but those that embrace it will be leaping ahead of the competition in the race to mine data better and enhance/provide service to the customer/end user.

While I am not a DBA, I do play one on TV, so please forgive my simple examples! The bottom line, Graph Databases will not only enhance the customer experience, but deepen the connection of business to the customer/End User.