Graph Database
Graph Database
A Neo4j graph database stores nodes and relationships instead of tables or documents. Data is
stored just like you might sketch ideas on a whiteboard. Your data is stored without restricting
it to a pre-defined model, allowing a very flexible way of thinking about and using it.
The property graph model
In Neo4j, information is organized as nodes, relationships, and properties.
Nodes can be tagged with labels, representing their different roles in your domain (for
example, Person).
Nodes can hold any number of key-value pairs, or properties (for example, name).
Node labels may also attach metadata (such as index or constraint information) to
certain nodes.
Relationships provide directed, named connections between two node entities (for example,
Person LOVES Person).
Relationships always have a direction, a type, a start node, and an end node, and they
can have properties, just like nodes.
Nodes can have any number or type of relationships without sacrificing performance.
Although relationships are always directed, they can be navigated efficiently in any
direction.
What is Neo4j?
Neo4j is a native graph database, which means that it implements a true graph model
all the way down to the storage level.
The data is stored as you whiteboard it, instead of as a "graph abstraction" on top of
another technology.
Beyond the core graph, Neo4j also provides: ACID transactions, cluster support, and
runtime failover.
But you can also run Neo4j yourself with either Community Edition or Enterprise
Edition.
The Enterprise Edition includes all the features of Community Edition, plus extra
enterprise requirements such as backups, clustering, and failover abilities.
Neo4j is written in Java and Scala, and the source code is available on GitHub.
Constant time traversals in big graphs for both depth and breadth due to efficient
representation of nodes and relationships.
Flexible property graph schema that can adapt over time, making it possible to
materialize and add new relationships later to shortcut and speed up the domain data
when the business needs change.
Applications: