Graph databases

An overview

Natalia Oskina

Zuhlke Engineering Ltd

Graph Databases

An overview

 

Natalia Oskina

Zuhlke Engineering

Title Text

Agenda

  • CAP?
  • What kind of a creature Graph DB?
  • Graph DB vs relational DB
  • Is it a panacea? Downsides
  • Neo4J
  • Cypher vs SQL
  • Is it applicable? Real Use cases
  • Demo

CAP theorem

  • Consistency - all nodes see the same data at the same time

Brewer'€™s theorem

  • Availability - every request receives a response about whether it succeeded or failed

 

  • Partition tolerance - the system continues to operate despite arbitrary partitioning due to network failures

What is a graph?

G = (V, E)

Graph database

"No broken links"

  • Nodes
  • Relationships
  • Properties

Graph database

  • If you would need to represent a system with all data of every movie ever made, how would you model it?
  • You need to cover movie names, actors, directors, budget, dates, costs, location, ratings, shows, tickets...

What about Bacon number?

Graph DB vs Relational DB

Graph DB vs Relational DB

Graph DB vs Relational DB

  • Chaotic data model. Irregualar, complex structure
  • Highly complex relationships between entities
  • Relationships are very different
  • Check only relationships of the node, not the whole database

Examples

  • Neo4J (Java, .Net, Python, JavaScript)
  • AllegroGraph (C#, C, Java, Lisp, Python)
  • Oracle Spatial and Graph ( Java, PI/SQL)
  • AngoDB(C, C++, JavaScript)

Neo4J

  • JVM Based
  • Billions of entities 
  • Support ACID
  • Using Cypher

Cypher

Functions like:     WHERE, ORDER BY, SKIP LIMIT, AND, p.unitPrice > 10

Select and Return Records

SQL

SELECT p.*

FROM products as p;

Cypher

MATCH (p:Product)

RETURN p;

Field Access, Ordering and Paging

SQL

SELECT p.ProductName, p.UnitPrice

FROM products as p

ORDER BY p.UnitPrice DESC

LIMIT 10;

Cypher

MATCH (p:Product)

RETURN p.productName, p.unitPrice

ORDER BY p.unitPrice DESC

LIMIT 10

Downsides

  • Use a lot of space
  • Relational DB is much faster when operating a huge number of records
  • Licence is expensive

Demo

Thank you!

Graph databases

By Natalia Oskina

Graph databases

  • 853