IAm*_*aja 15 java orm hibernate neo4j nosql
我从大学开始就一直在使用RDBMS,而且我真的在努力研究NoSQL数据库的基本概念......但我认为他们的概念非常酷.
我相信我理解以下内容(如果我错了,请纠正我,因为这些问题在我这里提出来了!):
如果这些都是真的,那么让我们将注意力转向Neo4j,这是一个"基于图形"的数据库.
仔细阅读该网站和PDF后,好像Neo4j的不仅是一个数据库,但它也提供了一个Java API,基本上取代了传统ORM工具如Hibernate的需要.
所以,我的最后一个问题实际上是要求澄清/确认最后一个断言,具体来说:
提前致谢!
我从大学开始就一直在使用RDBMS,而且我真的在努力研究NoSQL数据库的基本概念......但我认为他们的概念非常酷.
像Neo4j这样的图形数据库用连接到带边的其他顶点的顶点表示域.边包含其起始和结束顶点.每个顶点和边可以有一个属性映射,键值对可用于存储有关顶点和边的附加信息.当然,您可以使用自己的域扩展它,但事情很容易开始.
要查看这些概念,我建议使用Gremlin入门指南.Gremlin是一种特定于域的语言,用于遍历与Neo4j和其他几个图形数据库一起使用的图形.Gremlin是一个图形数据库,SQL是关系数据库的.
在学习图形时,我不能强烈推荐Gremlin.只需几分钟,您就可以开始运行Gremlin教程.Gremlin将为您提供REPL,让您可以试验小图并获得即时反馈.即使您不在生产系统中使用Gremlin,REPL获得的知识也可以帮助您验证设计,并可以作为更严格的单元测试和开发的前提.
如果您更喜欢直接使用Neo4j的API,他们的遍历框架教程应该有所帮助.
如果我的后端完全基于Neo4j,那么我就不需要Hibernate(这是我通常的ORM)吗?
由于您是Neo4j的新手,我建议您在首次了解ORM需要为您做什么之前避免使用ORM.了解您将查询结果映射到您的域时真正感受到的痛苦程度.如果可以通过ORM改善疼痛,那么Peter提到的Spring-Data框架可能会有用.
很有可能,你可能会很好.我参与了几个项目,其中ORM引入的偶然复杂性远远超过了它的好处.将查询结果映射到域绝不是系统中最复杂的部分.
AFAIK,Hibernate是一个对象/关系映射框架,只支持类似SQL的数据库.因此,如果您使用Neo4j,您将不需要/能够使用它,您将使用Neo4j的API.
但是没有什么可以阻止你同时使用Neo4j和SQL数据库,因此混合了Hibernate和neo4j API(最有可能在你的项目中存储/查询不同的对象).
您是否查看过Neo4j网站上的基本示例,例如http://docs.neo4j.org/chunked/snapshot/tutorials-java-embedded-hello-world.html?
编辑:
你没错,NoSql没有定义具体的标准.您可能想看看这个(简短的)介绍:http://martinfowler.com/articles/nosql-intro.pdf
| 归档时间: |
|
| 查看次数: |
9734 次 |
| 最近记录: |