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

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

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

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

原生图形存储和处理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

关系数据库技术死了吗?

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

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

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


阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

第三十九期:原生图数据库的15条规则相关推荐

  1. 第一百三十九期:11月数据库排行:排名前三数据库分数暴跌

    DB-Engines 数据库流行度排行榜 11 月更新已发布,与上期数据相比,这期排行榜最大的亮点就是排名前三数据库那引人注目的"红色"分数. 作者:局长 DB-Engines 数 ...

  2. Rigetti完成英国量子计算机的搭建;拓扑量子计算遭遇严重的挫折 | 全球量子科技与工业快讯第三十九期

    Rigetti完成英国量子计算机的搭建 Rigetti及其合作伙伴已经在英国完成了首个量子计算系统的建设,并计划在2022年初通过Rigetti量子云服务提供该系统.这台商用量子计算机是英国的第一台, ...

  3. 第三十九期:1024特别版:向“程序媛们”致敬!

    对女性程序员而言,似乎怎么选择都是错:闯入男性领地,输了,会强化社会对女性的固有刻板印象:赢了,打破了职业性别固化,会导致整个职业收入的下降. 作者:奇点.轻音 "到家得十二点半了,我现在真 ...

  4. 第三十九期:收藏 | 第一次有人把“分布式事务”讲的这么简单明了

    不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付. 作者:咖啡拿铁来源 又或者在网上购物明明已经扣款,但是却告诉我没有发生交易.这一系 ...

  5. 【悟空云课堂】第三十九期:违反信任边界(CWE-501: Trust Boundary Violation)

    关注公众号"中科天齐软件安全中心"(id:woocoom),一起涨知识! 该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效 ...

  6. 一个计算机爱好者的不完整回忆(三十九)破解ACCESS数据库

    在我最开始编程的时候,我是从来不做数据库程序的.前面也提过,当时更喜欢算法相关的程序,所以就觉得数据库相关的程序没啥意思.不过后来还是做了不少数据库相关的软件,前期几乎都是使用的ACCESS数据库. ...

  7. Web UI 自动化测试环境搭建 (转载自51测试天地第三十九期上)

    1. 安装 Python 2.7 并设置系统环境变量 2. 下载并安装 python setuptools Easily download, build, install, upgrade, and ...

  8. sed 第n行后加入_【高新课堂】第一百三十九期Liunx运维17个实用技巧

    来源:高效运维 1.查找前目录下所有以.tar结尾的文件然后移动到指定目录 find . -name "*.tar" -exec mv {}./backup/ ; 注解:find ...

  9. 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)——数据库连接池 一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对 ...

最新文章

  1. Spring核心--IOCAOP
  2. (转)C# 把我所积累的类库全部分享给博友(附件已经上传)
  3. C++ Vector 汇总
  4. eclipse闪退打不开问题
  5. linux_scp 远程复制不需要输入密码
  6. 解决rabbitmq收到消息打印告警消息
  7. python编写程序、计算1+3+5+7......+99-在python中实现求输出1-3+5-7+9-......101的和
  8. 【bzoj4419】[Shoi2013]发微博 STL-set
  9. java submit execute_ExecutorService中submit和execute的区别
  10. matplotlib绘制李萨如图(一) 静态2D李萨如图
  11. 盘点那些没用的上网小技巧-主流直播平台直播源的获取(适用potplayer)
  12. Python Django项目-Django基本运行过程
  13. Anker-一个研发工程师的电商梦
  14. 网上讲的比较清晰的VOT跟踪评价指标EAO
  15. JAVA散列表个人通讯录_散列表实现简易通讯录
  16. 万能 Makefile 模板
  17. C和C++实战教程专栏完整目录
  18. 计算机各个组成部分介绍
  19. 数字信号处理(陈后金)课堂笔记1绪论
  20. 如何将DOC转换成PDF

热门文章

  1. java 中String ,Date,long 和Timestamp类型的转换
  2. A+B for Matrices 及 C++ transform的用法
  3. html怎样将单元格的字竖式,数学竖式计算的标准格式是怎样的?需要注意哪些问题?...
  4. Flask从入门到做出一个博客的大型教程
  5. pytest配置文件pytest.ini
  6. Python数据库使用-SQLite
  7. 用Python和Pygame写游戏-从入门到精通(1)
  8. [oralce] 利用CRT的端口转发功能直接用plsql访问数据库
  9. 利用ioctl获取本机指定设备的MAC地址
  10. c/c++面试试题(四)