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

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

 

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

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

关系数据库技术死了吗?

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

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

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


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[周赛第200场][Leetcode][第5477题][第5478题][JAVA][双指针][贪心]

【问题描述】[中等]5477. 排布二进制网格的最少交换次数 【解答思路】 贪心 限制条件 第一行要求末尾的0要尽量多 计算每行最后有几个0遍历交互 符合条件 第i行的末尾0的数量为n-i-1 统计交换次数第i行的末尾0的数量小于n-i-1,不符合条件 时间复杂度&#xff1a…

ubuntu异常关机,断电重启后进入紧急模式,挂载磁盘SSD失败了怎么办?(Failed mount on XXX)

解决方案: 进入/etc/fstab中保留你所有的除了必要的系统分区挂载点,这里保存了所有开机引导的时候自动挂载到linux文件系统里的设备还有分区信息,当系统启动的时候,系统会在这里读取信息并挂载到相应目录下。所有的磁盘硬盘SSD挂…

476 Number Complement

问题:给定一个整数,返回它的补数。补数的是将原数据的二进制表示反转。例如 5 的二进制位是 101,反转之后是:010,也就是整数2。所以输入5,返回2.。输入1,返回0。  思路:取反操作是…

设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...

版权声明:本文为博主原创文章。未经博主同意不得转载。vasttian https://blog.csdn.net/u012860063/article/details/28281631 转载请注明出处:http://blog.csdn.net/u012860063 问题:设单链表中存放n个字符,试设计一个算法&#…

6项目启动

项目启动概述

[Leetcode][第415题][JAVA][字符串相加][双指针]

【问题描述】[简单] 【解答思路】 1. 双指针 从两个字符串最后开始处理 对齐字符串添加当前位 int c abcnt; cnt为进位超过长度的补“0” 要注意最后有可能需要处理溢出位 时间复杂度:O(max(M,N)) 空间复杂度:O(1) public String addStrings(String nu…

Leetcode 1559二维网格图中探测环 技巧DFS|剪枝

二维网格图中探测环 给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在 相同值 形成的环。 一个环是一条开始和结束于同一个格子的长度 大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右四个方…

LVM--逻辑卷管理

一、分区fdisk /dev/sdb #以下将硬盘/dev/sdb划分为两个主分区(不建扩展分区):/dev/sdb1、/dev/sdb2,类型为Linux、Linux LVM [rootvm-centos7 ~]# fdisk /dev/sdbCommand (m for help): n #按"n"键新建一个分区 Partition ty…

401 binary watch

文章题目来源于leetcode,解法学习了讨论去的解法。  问题:有一种二进制LED表。上面的4个LED灯表示小时,下面6个LED灯表示分钟。给定一个int值,写出可能表示的时间。例如输入1, Input: n 1 Return: [“1:00”, “2…

7立项申请

项目诞生的驱动因素 系统服务请求书 识别需求提出项目建议书 项目建议书内容 项目的可行性研究 如何进行项目的可行性研究 市场可行性研究 市场可行性分析注意事项 捕捉用户需求是一件困难的事 三个苹果改变世界 经济可行性 收益与成本 投入产出分析 投资分析期 纯收入 技术可行…

【数据结构与算法】数组与链表

数组的定义和特性 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表(Linear List):数组、链表、队列、栈 非线性表:树 图 连续的内存空间和相…

1558. 得到目标数组的最少函数调用次数 二进制|思维

得到目标数组的最少函数调用次数 给你一个与 nums 大小相同且初始值全为 0 的数组 arr ,请你调用以上函数得到整数数组 nums 。 请你返回将 arr 变成 nums 的最少函数调用次数。 答案保证在 32 位有符号整数以内。 示例 1: 输入:nums […

并不对劲的BJOI2019

一些感想 现实并非游戏,并不支持反复刷关 猎人和防御工事一起被老山龙摧毁了; 猎人惨死雨中,结云村永无放晴之日; 猎人被狂龙病毒侵蚀,天空山上黑蚀龙泛滥。 好像这才是怪物猎人系列的真实结局呢 day 0 和吕爷立下了有…

8构建项目组

组建项目组 组建项目组的任务 项目组架构 项目赞助人职责 项目经理的标签 项目经理的责任 项目成员的职责 案例分析 西天取经的只能架构 西天取经项目组 一个良好团队的七个要素

389 find the difference

问题:Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the letter that was added in t. Example: Input: s “abcd” …

MySQL数据库面试题

目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引…

log双线性模型log-bilinear model简单概括

LBLM(log-bilinear model)是自然语言处理中的比较简单的模型。LBLM根据上下文的词向量来预测下一个词向量wnw_nwn​,通过对上下文词向量的一个线性组合来表示: rwr_wrw​是一个实数值词向量对于词www对于下一个词的分布计算根据wnw_nwn​预测表示和所有…

9制定项目章程

项目干系人概述 项目主要干系人 项目章程 项目章程的功能 项目章程

2019湖南多校第三场

解题过程 开场lfw过A,然后byf突然想到E的构造方法,WA了一发开始查错,shl中途看G,说"这不是bzoj原题吗?"拿到一血带歪榜,然后byf该出E拿到一血又带歪榜。。。shl写出B,之后lfw C想复杂…

【数据结构与算法】栈与队列

栈 一、什么是栈? 1.后进者先出,先进者后出,这就是典型的“栈”结构。 2.从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。 二、为什么需要栈? 1.栈是一种操作受限的数据结构…