English 中文(简体)
RDBMS能做些什么?
原标题:What can an RDBMS do that Neo4j (and graph databases) cant?

“A 图表数据库——转换成一个或一个“;RDBMS”

新4j站点似乎暗示,无论在RDBMS中你能做什么,你都可以在新4j做。

在选择“新南”为“新南”之前,我需要回答一些疑虑。


我对新奇感兴趣。

  • ability to do quickly modify data "schema"
  • ability to express entities naturally instead of relations and normalizations
  • ...which leads to highly expressive code (better than ORM)

这是我对其特征感兴趣的诺塞克解决办法,而不是高业绩。


Question: Does Neo4j present any issues that may make it unsuitable as a RDBMS replacement?

我特别关切的是:

  • is there any DB feature I must implement in application logic? (For example, you must implement joins at application layer for a few NoSQL DBs)
  • Are the fields "indexed" to allow a lookup faster than O(n)?
  • How do I handle hot backups and replication?
  • any issues with "altering" schema or letting entities with different versions of the schema living together?
问题回答

这是一个极为广泛的专题,涵盖从建模和执行到信息技术和支助等所有事项。 不可能真正回答所有这些问题,特别是没有详细了解你的情况。 然而,你似乎正在探讨各种选择和途径。 因此,我只是把一些一般食物转嫁给一些人,以作为实施一些制度的人。

Everybody seems to think their new database paradigm is a replacement for relational databases. So, take those claims with a grain of salt.

我想谈谈三个基本模式:相对、文件和图表。 视你的问题,其中一项或多项是正确的答案。 除了关系外,我不会做任何财务事项(SQL)。 如果你正在建造一个中央人事管理系统,那么一个非行就是前进的道路。 如果我的申请是示范网络(道路、人、连接、网络等) 我使用“新”4J。

就生产质量而言,每个类别都有坚实的选择。 亲属有一席之地。 文件数据库I d go MongoDB或Apache Jackrabbit等更高一级的联合支助系统。 就图表而言,我只拥有新4j的经验,这对我来说是坚实的。

Whatever you do, don t buy into the hype that "We have the one technology that solves all your problems." It s not there and it narrows your thinking.

I m convinced Neo4j is a good replacement for relational databases by now.

  • It is ACID compliant
  • Though the community version lacks some features like hot backups, the enterprise edition has
  • You can get support for it
  • At first sight (and in the new releases where you don t need a START clause) its query language CYPHER can do almost anything SQL can

but

  • it s harder to find a CYPHER developer than a SQL one
  • and it does not have an equivalent optimizer: it matters more than with SQL how you write the query

虽然它支持复制,并明确将它作为大数据产品市场,但我可以确认,它足够可衡量,我没有研究安全方面的问题。

In recent releases (younger that the question above), one can define indexes on labels, which work like indexes on tables in a relational DB, allowing for O(log(n)) lookups.

(fyi:Nang4j没有表格,但每个网点(~=row)都有不同的标签,可与电子邮件标签相仿。 这更加灵活:你不必选择把汽车和自行车放在一辆车桌上,或者没有:自行车和自行车标签。

To answer the original question: Neo4j does hardly support for schema enforcement. Neo advices implementing automated consistency tests on your database, which you run on your acceptance test instance as part of your release cycle.

Using an enterprise db such as oracle will give you many, many features which may or may not be part of neo. These include:

  • ACID transactions
  • High availability / backups / standby
  • ability to use sql to get data in the most efficient way using a cost based optimizer - the db determines the best way to retrieve the data based on your latest statistics
  • Scalability, partitioning
  • support
  • security

如果你将履行你在守则中应用的大多数功能,而不需要先辈提供的结构和先进特征,或者如果你的数据结构更适合用所有手段进行新审判的图表。 原因是,大多数公司用的是传统购物服务器之一,但今后可能并不总是如此。





相关问题
what is wrong with this mysql code

$db_user="root"; $db_host="localhost"; $db_password="root"; $db_name = "fayer"; $conn = mysqli_connect($db_host,$db_user,$db_password,$db_name) or die ("couldn t connect to server"); // perform query ...

Users asking for denormalized database

I am in the early stages of developing a database-driven system and the largest part of the system revolves around an inheritance type of relationship. There is a parent entity with about 10 columns ...

Easiest way to deal with sample data in Java web apps?

I m writing a Java web app in my free time to learn more about development. I m using the Stripes framework and eventually intend to use hibernate and MySQL For the moment, whilst creating the pages ...

join across databases with nhibernate

I am trying to join two tables that reside in two different databases. Every time, I try to join I get the following error: An association from the table xxx refers to an unmapped class. If the ...

How can I know if such value exists in database? (ADO.NET)

For example, I have a table, and there is a column named Tags . I want to know if value programming exists in this column. How can I do this in ADO.NET? I did this: OleDbCommand cmd = new ...

Convert date to string upon saving a doctrine record

I m trying to migrate one of my PHP projects to Doctrine. I ve never used it before so there are a few things I don t understand. In my current code, I have a class similar to this: class ...

热门标签