NoSQL: Graph
Databases
Graph Databases
• Data Model:
• Nodes and Relationships
• Examples:
• Neo4j, OrientDB, InfiniteGraph,
AllegroGraph
Graph Databases: Pros
and Cons
• Pros:
• Powerful data model, as general as RDBMS
• Connected data locally indexed
• Easy to query
• Cons
• Sharding ( lots of people working on this)
• Scales UP reasonably well
• Requires rewiring your brain
What are graphs good for?
• Recommendations
• Business intelligence
• Social computing
• Geospatial
• Systems management
• Web of things
• Genealogy
• Time series data
• Product catalogue
• Web analytics
• Scientific computing (especially bioinformatics)
• Indexing your slow RDBMS
• And much more!
What is a Graph?
• An abstract representation of a set of
objects where some pairs are connected
Object (Vertex, Node)
by links.
Link (Edge, Arc, Relationship)
Different Kinds of Graphs
• Undirected Graph
• Directed Graph
• Pseudo Graph
• Multi Graph
• Hyper Graph
More Kinds of Graphs
• Weighted Graph
• Labeled Graph
• Property Graph
What is a Graph
Database?
• A database with an explicit graph
structure
• Each node knows its adjacent nodes
• As the number of nodes increases, the
cost of a local step (or hop) remains the
same
• Plus an Index for lookups
Relational Databases
Graph Databases
Neo4j Tips
• Each entity table is represented by a
label on nodes
• Each row in a entity table is a node
• Columns on those tables become node
properties.
• Join tables are transformed into
relationships, columns on those tables
become relationship properties
Node in Neo4j
Relationships in Neo4j
• Relationships between nodes are a key
part of Neo4j.
Relationships in Neo4j
Twitter and relationships
Properties
• Both nodes and relationships can have
properties.
• Properties are key-value pairs where the
key is a string.
• Property values can be either a
primitive or an
array of one primitive type.
For example String, int and int[] values
are valid for properties.
Properties
Paths in Neo4j
• A path is one or more nodes with connecting
relationships, typically retrieved as a query or
traversal result.
Starting and Stopping
Creating a small graph
Print the data
Remove the data
The Matrix Graph
Database