原生图数据库的15条规则

译文
数据库
不妨看一下原生图形数据库的15条规则。就像复杂的系统网格或空中交通管制图,图形数据库用节点和连接组成的网络(名为标记属性图)来表示。节点显示为圆形或正方形,代表人员、产品、公司或订单等实体。

【51CTO.com快译】就像复杂的系统网格或空中交通管制图,图形数据库用节点和连接组成的网络(名为标记属性图)来表示。节点显示为圆形或正方形,代表人员、产品、公司或订单等实体。

在Neo4j中,数据库节点之间的连接名为关系,那些关系与它们连接的节点一样重要。

每个关系都是定向的,知道开始节点和结束节点,而每个节点知道与之存在入站或出站关系的所有其他节点——这种优势名为免索引邻接。

原生图数据库的15条规则

原生图形存储和处理

但是属性图模型不仅仅是图形,它实际上描述了你如何访问和查询数据库中的信息。

为了最大限度地提高效率和性能,图形数据库平台必须存储和访问出现在数据库属性图中的数据。采用这种方法的数据库平台名为原生图形数据库。

非原生图形数据库付出的代价

对于连接、复杂或不断变化的数据集而言,非原生图形数据库方法因性能、完整性、易用性和可扩展性方面的风险而存在固有的缺陷。

关系数据库附加在额外的处理层上,这些处理层将图形查询转换为底层数据库技术使用的基于关系表的存储和处理模型。结果是性能和应用程序响应速度大大降低,常常导致图形应用完全无法使用。

大多数NoSQL数据库技术添加了类似的转换层,创建图形应用软件时效率低下,再次导致性能下降,甚至可能导致图形查询结果损坏或失败。

原生图形数据库的15条规则

图形数据库管理系统必须完全通过原生数据存储和图形处理方法来建模、管理和访问数据及其关系。想成为原生图形DBMS,一项技术必须符合这些基本规则。

关系数据库和NoSQL数据库因在非图形数据上添加图形功能而违反规则,饱受性能、延迟、一致性和数据损坏等问题的困扰。

1. 原生存储和建模。以关系图的形式存储和建模数据,而不是采用行和列、索引记录或任何其他结构的形式。

2. 原生图形管理。完全通过原生图形功能,而不是通过位于非图形存储或处理基础上的图形逻辑层来管理数据和关系。

3. 一等公民的关系。将图形数据元素之间的关系视为一等公民的数据库元素,附带图形数据库引擎使用的方向和量化属性。

4. 实时可用性。实时查询数据,不管其底层关系的数量或复杂性如何。

5. 免索引邻接。将每个数据元素直接链接到入站和出站关系,因而每秒可以遍历数百万条记录。

6. 全面的数据管理。全面处理数据和底层关系的检索、插入、修改和删除。

7. 离散管理。添加和修改数据和关系,不必更改现有的数据库模式、数据或关系。

8. Cypher支持。全面支持Cypher,这是行业领导者积极接受的一种开放标准查询语言。

9. 非颠覆。禁止绕过openCypher或破坏图形数据库实施的完整性规则和约束来企图访问或修改数据。

10. ACID事务。确保所有事务均为ACID,即遵循原子性、一致性、隔离性和耐久性的规则,以保证图形和数据的一致性。

11. 一致的读取。确保读取和重新读取数据的用户始终看到相同的数据,除非其他用户执行干预更新。

12. 一致的写入。确保写入和更新数据的用户始终看到最新数据,除非其他用户执行干预更新。

13. 完整性独立性。将数据完整性的约束存储在图形数据目录中,而不是存储在应用程序中。

14. 数据独立性。底层图形数据存储表示或访问方法变化时,应用程序在逻辑上不受影响。

15. 无缝表示。以统一的方式存储和显示数据关系图,为用户提供数据库整个图形模型的无缝视图,不管数据存储在何处。

关系数据库技术死了吗?

这一切是否意味着关系数据库技术的时代即将结束?当然不是。

关系方法适用于拥有静态模式的表格数据,但不适用于高度关联或变化的数据集的需求。如果是通过图形数据遍历多个级别的查询(比如“朋友的朋友的朋友”查询),由此生成的大量表索引查找会使关系数据库性能降低到不可接受的程度。

形成鲜明对比的是,图形数据库使用免索引邻接,以亚秒级的响应时间遍历数百万条数据记录,即使那些查询挖掘的数据其深度有好几层。

原文标题:15 Rules of a Native Graph Database,作者:Jocelyn Hoppa

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2011-03-24 12:32:15

数据库性能优化

2019-07-09 13:42:12

数据备份云计算系统

2020-07-29 07:52:25

编程开发IT

2023-09-01 10:43:22

IT外包企业

2011-03-31 09:22:56

c++

2011-05-16 13:44:11

C++

2011-08-29 16:05:07

高性能SQL语句SQL Server

2023-06-06 07:17:44

云变化管理策略

2022-02-07 11:24:08

云安全云计算

2015-12-31 10:00:41

Java日志记录规则

2016-10-28 13:21:36

2020-02-28 15:19:19

CIOCISO安全

2019-10-08 10:25:00

MySQL数据库DNS

2017-08-08 12:26:39

大数据数据科学规则

2022-11-10 08:31:09

原生图数据库可视化

2024-09-30 16:25:40

2022-11-14 18:23:06

亚马逊

2022-03-07 10:27:21

云原生云计算数据库

2023-01-26 00:18:53

云原生数据库云资源

2019-01-02 11:10:40

MySQL数据库数据库设计
点赞
收藏

51CTO技术栈公众号