浅谈图数据库1:什么是图?

news/2024/11/15 2:09:58/

目录

一、图是什么?

二、“图”源自哪里?

三、加权图是什么?

四、有向图是什么?

五、图能给我们带来什么?

一、图是什么?

说到“图”

大部分人首先想到的是这样滴——图像

​或者是

饼状图

折线图等等

其实,它们都不是!

我们所说的“图”是下面酱样子滴

上面的数字1数字6,都叫做“点”(或顶点)

连接点与点之间的线,叫做“边”

也就是说

由点和连接每对点的边所构成的图就叫做“图”(Graph)

点(node):称之为顶点(Vertex)或点(node),也可以称作实体(Entity)。

边(edge):连接两个点(node)的边,在知识图谱范畴内也常被称作关系(relation、relationship)。

图(Graph)用至为简洁的点与边,即可以表现出人与人、人与物、物与物之间的各种关系。

举例来说,当你查达芬奇卢浮宫之间的关系时,你就可以关联出一张非常简单的人与物之间的图谱:

​【文艺复兴(代表人物)——达芬奇——(代表作品) 蒙娜丽莎——(收藏)卢浮宫博物馆——金字塔玻璃入口(建筑师)贝聿铭——弗朗索瓦一世(收藏)——梦娜丽莎(画作)——文艺复兴(影响)】

图还可以表现出社会中的各种关系。

比如,你打算和朋友们一起跨年2023,当你有此想法时,你的脑海中会迅速地生成一张参加party的友人图谱。

同时,这张图谱还会关联出相互认识的朋友,也就是朋友的朋友的朋友…… 这就是facebook大名鼎鼎的“六度分隔理论”。

再如,我们日常生活中几乎天天都会使用的通勤工具——地铁。

如果将车站作为“点”,相邻的两站用“边”相连,那么,这也可以连成一张典型的“图”。

二、“图”源自哪里?

“图”并不是一个新生事物或新概念,反而非常地古老且传奇。

其最早起源于300年前数学家欧拉提交的一篇名为《哥尼斯堡的七座桥》的论文,这也成为图论和拓扑学最早的开端。

抽象化七桥问题

在欧拉之后,直到上世纪六十年代,才出现了随机图理论,也是从彼时开始,图论由纸上谈兵转为大量的实际应用和突破,比如地图染色算法、最短、最优路径计算,动态规划,社区识别等各类图算法等。

【提示:聪明的读者如果想了解更多有关“图”的前世今生,请阅读国内首本有关图的书籍——《图数据库原理、架构与应用》《图数据库原理、架构与应用》(嬴图团队)【摘要 书评 试读】- 京东图书】

三、加权图是什么?

由点和边所构成的图,还可以给边加上一个值。

这个值就叫作边的“权重”或“权”,加了权的图被称为“加权图”。

没有权的边只能表示两个点的连接状态,而有权的边就可以表示顶点之间的“连接程度”。

这个“程度”是什么意思呢?

就是根据“图”的内容不同,“程度”表示的意思也不同。

比如在地铁线路中,如果把车站与车站间的票价加在边上,就能在“图”中看出乘车费了。

四、有向图是什么?

“有向图”,顾名思义就是能表示出方向的图,我们则称为“有向图”。

与此相对,边上没有箭头表示出明确方向的图,便是“无向图”了。

有向图: 当图中的边有明确的方向时,且在图中的各类操作可以利用这种方向的时候,我们称其为有向图。例如,区块链就是典型的有向无环图,英文简称为DAG(Directed Acyclic Graph)。以DAG的方式,可以追溯每一笔比特币的流向、分布、归属。

无向图: 无向图指的是忽略了边的方向。在实际的图数据库实现中,通常都采用双向边存储的方式来实现无向图。

如上图所示,举世闻名的油画蒙娜丽莎的微笑出自达芬奇之手,而他也是欧洲文艺复兴的代表人物之一…… 上图中每个有明确指向箭头的图,我们就称之为有向图。

聪明的你一定能够想到,有向图是分方向的,即会分方向(左)与方向(右):

方向 (左): 表示边的方向,向左,即在图中的点的入方向,例如 a<--

方向 (右): 表示边的方向,向右,即在图中的点的出方向,例如 a-->

五、图能给我们带来什么?

想一想“图”能给我们带来了什么吧?

在进入21世纪之后,你所知道的Facebook、Google、linkedin等科技巨头,都是在使用图技术来蓬勃发展业务的。目前我们国内的企业,诸如字节跳动、华为等互联网公司,也在用该技术创新业务。当然,图算法在我们的日常生活中,亦带来很多思维上的乐趣与指引,比如你打算租房,那么如何在公司、家与交通线以及租金等问题上,达成一个和谐且节省(性价比最优)的答案呢?就可以用图来解决哦~!    (文/甄参谋)


http://www.ppmy.cn/news/7048.html

相关文章

Java8新特性Stream流

一、Stream的介绍 ​ Stream不是集合元素&#xff0c;也不是数据结构&#xff0c;并不保存数据&#xff0c;它是有关算法和计算的&#xff0c;使用起来更像一个高级的迭代器&#xff0c;我们只需要给出需要对其流中的元素执行什么操作&#xff0c;Stream就会隐式的在内部进行遍…

服务调用方式

1.1.RPC和HTTP 无论是微服务还是SOA&#xff0c;都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢&#xff1f; 常见的远程调用方式有以下2种&#xff1a; RPC&#xff1a;Remote Produce Call远程过程调用&#xff0c;类似的还有RMI。自定义数据格式&#xff0c…

事务日志undo log

事务日志undo log 1 Undo日志的作用 作用1&#xff1a;回滚数据 逻辑上恢复&#xff0c;之前插入了一条数据&#xff0c;已经开辟了物理空间&#xff0c;回滚只是将该数据删除&#xff0c;物理空间还存在。 作用2&#xff1a;MVCC 2 Undo存储结构 mysql> show variables …

【C语言进阶】指针的进阶

在初级阶段的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1. 指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节&#xff08;32位平台/64位平台&#xff09;。 3. 指针是有类型&#…

MyBatis一级缓存和二级缓存

缓存的作用 在 Web 系统中&#xff0c;最重要的操作就是查询数据库中的数据。但是有些时候查询数据的频率非常高&#xff0c;这是很耗费数据库资源的&#xff0c;往往会导致数据库查询效率极低&#xff0c;影响客户的操作体验。于是可以将一些变动不大且访问频率高的数据&…

2023年网络安全预测

趋势科技预测2023年&#xff0c;网络犯罪分子仍将活跃并制定新的计划&#xff0c;但一些攻击者仍会坚持使用旧的工具和技术。积极主动的安全和保护对企业来说应该是最重要的。 报告中&#xff0c;根据整个网络安全格局&#xff0c;可分为以下几种&#xff1a; 持续的社会工程…

客快物流大数据项目(一百零一):实时OLAP开发

文章目录 实时OLAP开发 一、实时ETL处理 二、SparkSQL基于DataSourceV2自定义数据源

面试官:ui组件可以自动加载,那么业务组件可以吗?

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 背景 笔者在最近在公司接手了一个老的对内使用的项目&#xff0c;接手后体验了下 发现首屏加载比较慢。分析了下大概的原因是main.js挂…