Top Neo4j interview questions and answers for freshers and experienced.
Neo4j is open source database which gives you certain advantages involving security likelihood of remaining available into the future support options and cost. It is currently the most popular graph database in use.Neo4j is designed to be transnational in nature and acid complaint and it also designed for scalability which means if you need to work with massive data in a distributed environment Neo4j will do that.
There are only three basic items in Neo4j the first is a Node which you think as document that has certain properties and the properties are typically stored in the Key value pairs very similar to document databases such as MongoDB.There are also Edges that in Neo4j are called relationships between the different nodes and those relationships are also store properties, so Neo4j is also described as a Property graph model.
It is one of most popular open source free NOSQL Graph DBMS (database management system) developed by Neo4j, Inc. It written in Java and Scala..The development of Neo4j was started in 2003, it has been publicly available since 2007.The source code and issue tracking of Neo4j are available on GitHub, with support readily available on Stack Overflow and the Neo4j Google group.
2.In which language Neo4J is written?
Neo4J is written Java and Scala.
3.What are the indexing capabilities of Neo4J?
Neo4j as a graph database features indexing as the preferred way to find start points for graph traversals. Over the years multiple different indexing approach have been added. The goal of this article is to give an overview on this to avoid confusion esp. for those who just recently got started with Neo4j.
A graph database using a property graph model stores its data in nodes, relationships and properties. In Neo4j 2.0 this model was amended with labels.
Neo4J supports no indexes in the beginning later it started support for manual ,automatic and schema indexes
Read more from about indexing in Neo4J from http://blog.armbruster-it.de/2013/12/indexing-in-neo4j-an-overview/
4.List some popular Graph Databases?
Neo4j, AllegroGraph, Oracle Spatial and Graph, Teradata Aster, ArangoDB, Graphbase, ThingSpan, Bitsy, HyperGraphDB, DEX/Sparksee, Titan, VelocityGraph, InfoGrid, Oracle NoSQL Database, OrientDB, Blazegraph, Weaver, Stardog, Sqrrl Enterprise, GraphDB, MapGraph, IBM System G Native Store, VertexDB, Cayley, Graph Engine, FlockDB, Grapholytic,Dgraph, Apache Giraph, Graph Story and Horton are some popular Graph Databases.
5.Explain for what purpose you can use Neo4j Databases?
following are some areas where you can use Neo4j Databases:
- For Social Networks where data is highly connected.
- For creating Recommendation system in shopping websites.
- Algorithms used in pathfinding
- Data First Schema
- Schema Evolution
6.List out some features of Neo4j Database?
Following are some features of Neo4j database
- Relationship Materializing is done at creation time, which results in no penalties for complex runtime queries.
- Constant time traversals for relationships in the graph both in depth and in breadth due to efficient representation of nodes and relationships
- Compact storage and memory cache support for graphs which results efficient scale up and billions of nodes in one database on moderate hardware.
- Written on top of the JVM
7. What is the name of query language used by Neo4J?
Neo4j uses CQL ( Cypher Query Language ). Cypher is Neo4j’s open graph query language. Cypher’s syntax provides a familiar way to match patterns of nodes and relationships in the graph.
Simple example of a Cypher query to get cast of movies starting with “T”
MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie) WHERE movie.title STARTS WITH "T" RETURN movie.title AS title, collect(actor.name) AS cast ORDER BY title ASC LIMIT 10;
8.How files are stored in Neo4J?
9.List out the difference between Neo4J Graph Database and MySQL Database ?
10.What is CQL? How can you run CQL commands in Neo4J?
CQL (Cypher Query Language) is a declarative, SQL-inspired language for describing patterns in graphs visually using an ascii-art syntax.It allows us to state what we want to select, insert, update or delete from our graph data without requiring us to describe exactly how to do it. “$” prompt is used to run CQL commands in Neo4j.
Image source: https://neo4j.com/developer/cypher-query-language/
11.Explain what is Object cache in Neo4j.How many types of they are?
Object Cache is used to cache individual nodes and relationships including their properties which is optimized for fast traversal of the graph. There are basically two types of Neo4j Object caches, they are:-
2)HPC (High performance Cache).
Some time object caches are also called high level cache.
12.List some features of Neo4J databases ?
Neo4J databases comes with below features
- Intuitive, using a graph model for Data representation.
- Reliable with full ACID transactions support.
- Durable and Fast.
- Massively scalable supports up to several billion of nodes/relationships/properties.
- Highly available, when distributed across multiple machines.
- Expressive, powerful, readable using Cypher graph query language.
- Fast with powerful traversal framework that supports high-speed query execution.
- Embeddable, with few small jar files.
- Simple accessible by convenient Rest interface or object oriented Java API’s.
13.How can we access Neo4J interface?
14.How information is stored on Graph in Neo4J Database?
15.For what Neo4J is widely used for ?
16. Mention how indexing is done in Neo4j?
17. Which Neo4J clause used for adding or updating properties to an existing relationship ?
You can use SET clause to update or add a property in existing Neo4J relationship.
18. List some Neo4j CQL command.
Neo4j CQL is a query language for Neo4j Graph Database.Is a declarative pattern-matching language which follows SQL like syntax that are very simple and are in human readable format
Below are some Neo4j CQL command
CREATE,MERGE,SET,RETURN,START,LOAD CSV,REMOVE,CREATE UNIQUE,UNWIND,UNION,CALL