Interview :: Neo4j
Neo4J is a NoSQL, schema-free, open-source, popular graph database. It is the world's leading open-source graph database.
Neo4J is called graph database because it stores data structure in graph instead of in tables.
Neo4J is written and implemented in Java language.
Cypher Query Language (CQL) is used by Neo4J.
The first version of Neo4J was Neo4j 1.0 and it was released in Feb, 2010.
Neo4J is mainly used for:
- Real time data analysis
- Knowledge graph
- Network and IT operations
- Real-time recommendation engines
- Data management
- Identity and Access management
- Social Network
- Privacy and Risk management
RDBMS and Graph Database both use different approaches to store and retrieve data. The following table specifies the differences between them:
RDBMS | Graph Database |
---|---|
Tables | Graphs |
Rows | Nodes |
Columns and Data | Properties and its Values |
Constraints | Relationships |
Joins | Traversal |
Roles of building blocks:
- Nodes: They are entities equivalent to rows in table.
- Relationship: It connects entities and structure domain.
- Properties: It contains meta-data and attributes.
- Labels: It groups nodes by role.
Neo4J is a very popular Graph Database. Other Graph Databases are Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph, AllegroGraph etc.
Neo4J supports UNIQUE constraints.
- Neo4J uses Native graph storage with Native GPE(Graph Processing Engine).
- Neo4J supports exporting of query data to JSON and XLS format.
- Neo4J provides REST API to be accessed by any Programming Language like Java, Spring, Scala etc.
- Neo4J provides Java Script to be accessed by any UI MVC Framework like Node JS.
- Neo4J supports two kinds of Java API: Cypher API and Native Java API to develop Java applications.