Graph Databases for GRC Use

This post is intended to educate you and our Members on the new technologies referred to as "Graph Databases".

Graph databases which, Seth Grimes refers to on his Breakthrough Analysis WordPress BLOG (found at and which covers NLP, text analytics, sentiment analysis, BI, visualization and more) are network and property graphs, i.e. data structures that capture entities of interest — whether people, places, and organizations or products, components, and parts or something else — and their attributes and interconnections, as nodes, annotations, and edges. We believe that he is referring to semantic-enabled graph databases. Great work; Seth!


Wikipedia says that. “In computing, a graph database is 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 many cases retrieved with a single operation.

This contrasts with conventional relational databases, where links between data are stored in the data itself, and queries search for this data within the store and use the JOIN concept to collect the related data. Graph databases, by design, allow simple and rapid retrieval of complex hierarchical structures that are difficult to model in relational systems. Graph databases are similar to 1970s network-model databases in that both represent general graphs, but network-model databases operate at a lower level of abstraction and lack easy traversal over a chain of edges.

The underlying storage mechanism of graph database products varies. Some depend on a relational engine and store the graph data in a table while others use a key-value store or document-oriented database for storage, making them inherently NoSQL structures. Many, if not most, graph databases based on non-relational storage engines also add the concept of tags or properties, which are essentially relationships lacking a pointer to another document. This allows data elements to be categorized for easy retrieval, en masse.

Retrieving data from a graph database requires a query language other than SQL, which was designed for relational databases and does not elegantly handle traversing a graph. As of 2016, no single graph query language has been universally adopted in the same fashion as SQL was for relational databases, and there are a wide variety of systems - most often tightly tied to a particular product. Some standardization efforts have taken place, leading to multi-vendor query languages like Gremlin, SPARQL, and Cypher. In addition to having query language interfaces, some graph databases are accessed through APIs.

Category: Graph Databases


Post new comment

The content of this field is kept private and will not be shown publicly.