title: Neo4j
category: page
slug: neo4j
sortorder: 0314
toc: False
sidebartitle: Neo4j
meta: Neo4j is a graph NoSQL database that can be used to persist data in Python applications.


[Neo4j](https://neo4j.com/product/) 
([source code](https://github.com/neo4j/neo4j))
is a [NoSQL](/no-sql-datastore.html) 
graph database that can be used to persist data in
[Python web applications](/web-development.html) and 
[data projects](/data.html). Neo4j has both
[a commercial version and a community version](https://neo4j.com/editions/)
of the database.

<a href="https://neo4j.com/product/" style="border: none;"><img src="/img/logos/neo4j.png" width="100%" alt="Neo4j logo." class="shot"></a>

<div class="well see-also">Neo4j is an implementation of the <a href="/no-sql-datastore.html">NoSQL graph database</a> concept. Learn more in the <a href="/data.html">data</a> chapter or view the <a href="/table-of-contents.html">table of contents</a> for all topics.</div>


### Comparing Neo4j with relational databases
* [RDBMS & Graphs: Relational vs. Graph Data Modeling](https://neo4j.com/blog/rdbms-vs-graph-data-modeling/)

* [Building social network with Neo4j and Python](https://www.youtube.com/watch?v=hDuy8Qj6Q-k)
  explores varying approaches for performing social data analysis in
  relational databases and graph databases.

* [The Newest RDBMS-to-Neo4j ETL Tool](https://neo4j.com/blog/rdbms-neo4j-etl-tool/)
  explains the differences between traditional 
  [relational database models](/databases.html) and the graph-based
  structure Neo4j provides. The article also covers how to use an Extract,
  Transform and Load (ETL) tool to move your data from one database such as
  [MySQL](/mysql.html) into Neo4j.


### Neo4j resources
* [Building a Recommendation Engine with Neo4j and Python](https://www.youtube.com/watch?v=ILjTikVhT9k)
  shows how to use Neo4j's Cypher query language to retrieve and process data. 

* [Using Neo4j from Python](https://neo4j.com/developer/python/) is the 
  official page with Python-based database drivers.

* [Getting started with Neo4j and Python](https://marcobonzanini.com/2015/04/06/getting-started-with-neo4j-and-python/)
  is a short tutorial for installing Neo4j and running your first query.

* [impfuzzy for Neo4j](https://github.com/JPCERTCC/impfuzzy)
  is a Python script that uses Neo4j as a backend to analyze malware.

* Neo4j runs an online monthly developer "meetup" and records the talks. 
  Here are a few that stand out:

    * [Natural Language Understanding with Python and Neo4j](https://www.youtube.com/watch?v=mTCqQ2e08Q8)
    * [Analysing football transfers with Neo4j](https://www.youtube.com/watch?v=MxOJW7X8GHs)
    * [Efficient Graph Algorithms in Neo4j](https://www.youtube.com/watch?v=55uB_t0RKTE)
    * [An introduction to Neo4j Bolt Drivers](https://www.youtube.com/watch?v=UixTSyGfAxU)

* [A Pythonic Tour of Neo4j and the Cypher Query Language](https://www.youtube.com/watch?v=Ma6lVy6x3Mg)
  is a PyData conference talk that gives a Python view of Neo4j's query
  language.

* [Analyzing the Paradise Papers with Neo4j: A Closer Look at Queries, Data Models & More](https://neo4j.com/blog/analyzing-paradise-papers-neo4j/)
  uses the Neo4j Cypher Query Language to perform analysis on the leaked 
  Paradise Papers data.

* [How to Import the Bitcoin Blockchain into Neo4j](https://neo4j.com/blog/import-bitcoin-blockchain-neo4j/)
  shows how to use an existing cryptocurrency data set within Neo4j to 
  perform analysis on the graph structure.

* [Getting Started with Data Analysis using Neo4j](https://neo4j.com/blog/getting-started-data-analysis-neo4j/) 
  is a programming language agnostic tutorial that explains how to 
  do analysis directly in the Neo4j Cypher Query Language.
