M11a1 Final
M11a1 Final
Neo4j is a native graph database that excels in storing and managing connected data. It
offers a rich ecosystem of tools and services that enhance the graph database experience, making
it easier to integrate graph technologies into various environments.
Core Components:
Neo4j Graph Database: Available in Community and Enterprise editions, it is the core
product designed to store and retrieve connected data efficiently.
Neo4j Aura: A fully managed cloud service offering AuraDB for graph database needs
and AuraDS for graph data science, providing access to over 65 graph algorithms.
Neo4j Graph Data Science (GDS): Offers a library of over 65 graph algorithms
optimized for enterprise workloads, enabling users to gain insights from big data.
Key Tools:
Neo4j Desktop: A local development environment for working with Neo4j, including a
variety of tools and plugins.
Neo4j Browser: An online interface for querying and visualizing data in the database,
offering basic visualization capabilities.
Neo4j Operations Manager (NOM): A UI-based tool for monitoring and administering
Neo4j database management systems.
Data Importer: A no-code tool for importing data from flat files into Neo4j.
Neo4j Bloom: A visualization tool for business users to analyze graph data without
programming skills.
Cypher Query Language: Cypher is a query language for property graphs, known for its ease
of learning, visual and logical nature, security, and flexibility.
Connecting to Neo4j
Neo4j Language Guides
This section provides detailed examples of how to integrate Neo4j with various
programming languages. Neo4j officially supports drivers for .NET, Java, JavaScript, Go, and
Python for the binary Bolt protocol. Additionally, community contributors provide drivers for
other languages and APIs.
How to Connect to Neo4j?
If you've set up an AuraDB instance or installed Neo4j locally, you can interact with the
database using the built-in Neo4j Browser. To build an application, you'll need to connect to
Neo4j from your technology stack using a driver that connects via Bolt or HTTP.
The Binary Bolt Protocol
Neo4j supports a binary protocol called Bolt, which is based on the PackStream
serialization. Bolt provides features such as the Cypher type system, protocol versioning,
authentication, and TLS via certificates. For Neo4j Clusters, Bolt offers smart client routing with
load balancing and failover.
Neo4j Drivers
Neo4j provides official drivers for popular programming languages. Here are the reference
documentation links for each:
Java
.NET
JavaScript
Python
Go
Spring
Always use the latest version of the driver, as it will be compatible with previous and future
major Neo4j releases. The latest 5.x driver supports connection to Neo4j 5 and 4.4 instances and
will also be compatible with Neo4j 6.
Using the HTTP API
The HTTP API is available in Community Edition and Enterprise Edition but not in AuraDB.
If you want to access Neo4j programmatically, you can use the HTTP API to:
POST one or more Cypher statements with parameters
Keep transactions open over multiple requests
Choose different result formats
You can directly use these APIs via an HTTP library or a driver for your language. For example,
a simple HTTP Cypher request executable in the Neo4j Browser would look like this:
Some language drivers use the HTTP API under the hood but make them available in a more
convenient way.
# Client instantiation
gds = GraphDataScience(
AURA_CONNECTION_URI,
auth=(AURA_USERNAME, AURA_PASSWORD),
aura_ds=True
)
Data Visualization with Neo4j Bloom
Data visualization is an essential part of the data science workflow, allowing data
specialists to analyze and represent massive amounts of information efficiently. Neo4j offers a
low-code visualization tool, Neo4j Bloom, designed to explore and dynamically visualize big
graphs.
For instructions on how to use Bloom with the GDS library, see Neo4j Bloom Manual → Graph
Data Science integration.