Neo4j
Introduction To Neo4j
What is Neo4j?
Neo4j is a highly scalable, native graph database purpose-
built to leverage not only data but also its relationships
• Not just about data, but also the connection between them
• Native graph storage and processing
• Uses Cypher Query Language
ACID- Compliant
Set of properties of database transactions
• Atomicity
• Consistency
• Isolation
• Durability
The Graph Model
The Graph Model: Movie Example
Cypher Query Language
• Declarative graph query language for matching patterns
• Efficient querying and updating of graph stores
• Simple but powerful
• Complicated queries can be expressed easily
• SQL for graphs!
MATCH (me:Person)-[:KNOWS]->(you:Friend)
Scale & Performance
• Scales across volumes with solid data integrity
• Support for replication with failover
• Monitor clusters with Neo4j Metrics and other tools
Editions of Neo4j
• Community – Free but limited to 1 node (Lack of clustering and no
hot backups)
• Enterprise – Must buy a license unless the app built on top is open
source
• Government – Extends Enterprise with additional government
services including FISMA-related certification and support
Neo4j Server
• You can install Neo4j as a server on to all operating systems
• Bundled with an interactive web-based interface bound to
http://localhost:7474
• A remote Neo4j server can be accessed via Cypher HTTP API, either
directly of through a language driver
Language Drivers
• Neo4j officially supports drivers for .NET, Java, JavaScript and
Python
• There are community contributed drivers for PHP, Ruby, C/C++,
Go and Spring
• Integrations with other database technologies like MongoDB,
Cassandra and ElasticSearch
Cloud Ready
• Can be run behind firewalls OR can be deployed in a cloud
environment
• Partners like GraphStory and GrapheneDB offer fully hosted
instances of Neo4j
Popular Use Cases
• Matchmaking • Project Management
• Network Management • Recommendations
• Social Networks
• Software Analytics
• Scientific Research
Dynamic Pointer Compression
• Expands available space as needed
• Possible to store graphs of ANY size – No limits (As of v3.0)
• Unlimited index sizes
• Scales extremely easy
• No hit on performance