📅  最后修改于: 2020-11-23 09:18:47             🧑  作者: Mango
下面列出了最受欢迎的Neo4J面试问题和答案。
Neo4J是NoSQL,无模式,开源,流行的图形数据库。它是世界领先的开源图形数据库。
Neo4J之所以称为图数据库,是因为它在图而不是表中存储数据结构。
Neo4J是用Java语言编写和实现的。
Neo4J使用Cypher Query Language(CQL)。
Neo4J的第一个版本是Neo4j 1.0,它于2010年2月发布。
Neo4J主要用于:
RDBMS和Graph Database都使用不同的方法来存储和检索数据。下表指定了它们之间的区别:
RDBMS | Graph Database |
---|---|
Tables | Graphs |
Rows | Nodes |
Columns and Data | Properties and its Values |
Constraints | Relationships |
Joins | Traversal |
构建块的作用:
Neo4J是一个非常受欢迎的图形数据库。其他图数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph等。
Neo4J支持UNIQUE约束。
Neo4J将图形数据存储在许多不同的存储文件中,每个存储文件都包含图形特定部分的数据,例如关系,节点,属性等。
Neo4J和MySQL之间的区别:
Neo4J | MySQL |
---|---|
Neo4J contains vertices and edges. Each vertex or node represent a key value or attribute. | In MySQL, attributes are appended in plain table format. |
In Neo4J, it is possible to store dynamic content like images, videos, audio etc. | In relational databases, such as MySQL, it is difficult to store videos, audios and images. |
It provides the capability of deep search into the database without affecting the performance along with efficient timing. | It takes longer time for database search and also inconvenient compared to Neo4J. |
In Neo4j, two or more objects can be related by making relationship between them. | It lacks relationship and very difficult to use them for connected graphs and data. |
CQL代表Cypher Query Language。 “ $”提示用于执行Neo4j中的所有CQL命令。
在Neo4J中,对象缓存用于存储单个节点,它们之间的关系以及它们的属性,其形式经过优化,可以快速遍历图形。从对象缓存读取的速度比从文件缓冲区缓存读取的速度快5至10倍。
Neo4J使用Cypher Query Language(CQL)。
在Neo4J中删除命令:
删除单个节点:
MATCH (n:Person { name: 'UNKNOWN' })
DELETE n
删除所有节点和关系:
MATCH (n)
DETACH DELETE n
删除具有其关系的节点:
MATCH (n { name: 'Andres' })
DETACH DELETE n
仅删除关系:
MATCH (n { name: 'Andres' })-[r:KNOWS]->()
DELETE r
由于Neo4j具有RESTful API,因此您可以通过Web查询,也可以在本地运行它。它运行在Heroku或Cloud中。
遵循不同的Neo4J CQL命令:
MATCH命令与RETURN或UPDATE子句一起使用。不能单独使用,否则会出错。
句法:
MATCH
(
:
)
MATCH命令不能单独用于从数据库中获取数据,否则它将显示无效的语法错误。
SET子句用于向现有节点或关系添加新属性。
将Neo4J图分割成多个服务器非常困难。