Database Reference
In-Depth Information
Neo4j's goal is to be a graph database, with the emphasis on database . This means that
you'll get full ACID support from the Neo4j database:
Atomicity (A) —You can wrap multiple database operations within a single trans-
actionandmakesurethey'reallexecutedatomically; ifoneoftheoperationsfails,
the entire transaction will be rolled back.
Consistency (C) —When you write data to the Neo4j database, you can be sure
that every client accessing the database afterward will read the latest updated data.
Isolation (I) —You can be sure that operations within a single transaction will be
isolated one from another, so that writes in one transaction won't affect reads in
another transaction.
Durability (D) —YoucanbecertainthatthedatayouwritetoNeo4jwillbewritten
to disk and available after database restart or a server crash.
Note
It's very important to note that Neo4j is a transactional database. Everything you know
about transactions from the relational world applies to Neo4j as well. Transaction support
isonethekeydifferentiatorsbetweenNeo4jandtheotherNoSQLdatabaseswementioned
earlier, which don't support all ACID properties.
The ACID transactional support provides a seamless transition to Neo4j for anyone used
to the guarantees provided by relational databases, and it offers safety and convenience in
working with graph data. Transactional support is one of the strong points of Neo4j, which
differentiates it from the majority of NoSQL solutions and makes it a good option not only
for NoSQL enthusiasts, but in enterprise environments as well.
1.8. Summary
In this chapter you learned how much more efficient and performant Neo4j can be com-
pared to relational databases for solving specific problems, such as the social network in
the example. We illustrated the performance and scalability benefits of graph databases, as
represented by Neo4j, showing the clear advantage Neo4j has over a relational database
when dealing with graph-related problems.
Search WWH ::




Custom Search