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

news2025/1/16 9:02:07

目录

一、图是什么?

二、“图”源自哪里?

三、加权图是什么?

四、有向图是什么?

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

一、图是什么?

说到“图”

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

​或者是

饼状图

折线图等等

其实,它们都不是!

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

上面的数字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.coloradmin.cn/o/117376.html

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

相关文章

【ML实验4】多分类贝叶斯模型

实验代码获取 github repo 山东大学机器学习课程资源索引 实验目的 实验内容 数据集 构建多分类贝叶斯模型 这里的条件独立性指的是特征xjx_jxj​之间相互独立&#xff0c;这是一个十分强的假设。 证明 Problem Set 2 思路主要是证明下面引理&#xff0c;用拉格朗日乘子法&a…

CP2102国产替代DPU02— USB 转 UART 桥接芯片

DPU02是一个高度集成的USB转UART的桥接控制器&#xff0c;该产品提供了一个简单的解决方案&#xff0c;可将RS-232设计更新为USB设计&#xff0c;并简化PCB组件空间。该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数…

【聆思CSK6视觉AI开发套件试用】Win11下安装全过程处理兼容性问题以及实现亮灯AI头肩检测

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;Wordiansom Win11上并且安装在其他盘的时候会出现的问题坑。。。。。。&#xff08;能用win10就用win10&#xff09;。 1. 晚拿到的开发板套件…

冲量在线携手中国电信研究院、北京电信和海光信息打造的数信链网的入选2022“星河”隐私计算标杆案例

为促进大数据技术产品及相关产业发展&#xff0c;加快培育数据要素市场、充分发挥数据作为生产要素的独特价值&#xff0c;树立行业标杆榜样力量&#xff0c;中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续六年共同组织大数据“星河&#xf…

Java8 Stream流

目录Java8 Stream流一、Stream概述二、Stream 的创建&#xff08;4种方式&#xff09;参考地址&#xff08;表示感谢&#xff09;&#xff1a;Java8 Stream流 一、Stream概述 Stream API说明 Java8中有两大最为重要的改变。第一个是 Lambda 表达式&#xff1b;另外一个则是 St…

Gradle Plugin的开发及发布

Gradle Plugin的开发及发布前言插件的开发学习阶段&#xff08;build.gradle脚本&#xff09;开发阶段&#xff08;buildSrc&#xff09;PluginTaskExtension发布阶段&#xff08;独立module&#xff09;发布到本地发布到MavenCentral准备sonatype账号创建pgp证书配置sonatype和…

数据结构与算法基础(王卓)(6):带尾指针(单向)循环链表的合并;双链表及其插入和删除的详细操作

带尾指针&#xff08;单向&#xff09;循环链表的合并 PPT(157)&#xff1a; 操作前初始设定预设的条件​​​​我们要做的&#xff0c;即&#xff1a; 让A表尾节点指向B表首结点&#xff0c;让B表尾节点指向A表首结点&#xff1a; Project 1&#xff1a; Status 合并链表(…

NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程

上节介绍了通信链路的建立过程&#xff0c;本节介绍下单机内部ncclSend和ncclRecv的运行过程。 单机内的通信都是通过kernel来进行的&#xff0c;所以整个通信的过程可以分为两步&#xff0c;第一步是准备kernel相关的参数&#xff0c;第二步是实际执行kernel的过程。 为方便…

闯关(贪心)

某综艺频道推出了一个闯关活动。 活动一共包含 n 个关卡&#xff08;编号 1∼n&#xff09;&#xff0c;其中 m 个关卡为特殊关卡。 每个关卡都有一个通关分数&#xff0c;其中第 i 个关卡的通关分数为 ai。 挑战者可以自由决定所有关卡的具体挑战顺序&#xff0c;并且每通过…

【工具类】Elasticsearch的HTTP客户端(Java)

一、介绍 1. 原理 Java基于Http请求操作ES&#xff0c;与Kibana上的操作一致。 Kibana上的dsl与Http的关系&#xff1a; GET、POST等同于HTTP的POSTPUT 等同于HTTP的PUTDELETE 等同于HTTP的DELETE 如图 该DSL可转化为HTTP请求 POST ip:port/docwrite/_search 请求体为&…

Mysql online DDL工具:gh-ost

gh-ost特点&#xff1a; 1、不使用触发器。 在gh-ost出现之前第三方MySQL DDL工具均采用触发器的方式进行实现&#xff0c;包括前面percona的pt-osc&#xff0c;Facebook的OSC等等。而gh-ost采用的机制和他们完全不同&#xff1a;它通过MySQL binlog来同步数据。 gh-ost会伪装…

PowerToys 微软效率工具包 使用指南

PowerToys 微软效率工具包 使用教程 Microsoft PowerToys 是一组实用程序&#xff0c;供高级用户调整和简化其 Windows 10 和 11 体验以提高工作效率。 下载 PowerToys⇲ 安装教程 1.双击文件运行 点击我同意 2.等待下载安装完成 3.安装完成 使用指南 Always on Top 通…

FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D)

本教程将在Unity3D中混合Optitrack与数据手套的数据流&#xff0c;在人体运动的基础上&#xff0c;添加双手手指部分的运动。 双手手背的角度仍由Optitrack提供&#xff0c;数据手套提供双手手指的角度。 01 客户端软件 分别安装MotiveBody与MotionVenus并校准人体与数据…

Kafka-Topic创建源码分析

Kafka-Topic创建源码分析 在kafka中,创建topic通过使用kafka-topics.sh脚本或者直接调用AdminClient对外提供的adminApi来进行创建. 即使是使用kafka-topics.sh&#xff0c;其最终会通过生成并调用AdminClient来进行处理. 0,创建topic流程图 1,创建topic示例代码 通过引入A…

工作两年半,终于学会了Jenkins部署Maven项目

上期我们讲了Linux部署Jenkins Linux安装Jenkins&#xff08;Java11最新版&#xff09; 这期我们来讲的是使用Jenkins部署一个maven项目 文章目录&#x1f46e;所需要的环境&#xff08;必须要有&#xff0c;否则不能进行下一步&#xff09;&#x1f64b;第一步&#xff0c;安装…

02 运算符

目录 第一章&#xff1a;概述 第二章&#xff1a;算术运算符 2.1 概述 2.2 应用示例 2.3 号的两种用法 2.4 自增自减运算 2.4.1 概述 2.4.2 单独使用 2.4.3 复合使用 第三章&#xff1a;赋值运算符 3.1 概述 3.2 应用示例 第四章&#xff1a;关系运算符&#xff0…

vue3.0找不到模块“./App.vue”或其相应的类型声明

vue3报错提示 找不到模块“/App.vue”或其相应的类型声明 情况一、vue3.0js 报错原因&#xff1a;javascript只能理解.js文件&#xff0c;无法理解.vue文件。 解决方案&#xff1a;根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&qu…

被取消的AP考试到底是什么嘞?

最近&#xff0c;好多考试都延期或取消了&#xff0c;美国大学理事会&#xff08;College Board&#xff09;也发布公告&#xff0c;宣布受疫情影响&#xff0c;上海、北京等地的AP考试正式取消&#xff0c;不提供线上考试的机会&#xff0c;而且不会安排后续补考。 这条消息惊…

芯片漫游指南(5)-- UVM寄存器

目录1.寄存器模型概览1.1 概述1.2 uvm_reg相关概念1.3 MCDF寄存器模型1.4 寄存器建模1.5 模型使用流程2.寄存器模型集成2.1 总线UVC的实现2.2 纵向UVC的示例3.寄存器模型的常规方法3.1 mirror、desired和actual value3.2 prediction的分类3.3 uvm_reg的访问方法3.4 mem与reg的联…

python扩展实现方法--python与c混和编程

大部分的Python的扩展都是用C语言写的&#xff0c;但也很容易移植到C中。 一般来说&#xff0c;所有能被整合或者导入到其它python脚本的代码&#xff0c;都可以称为扩展。 扩展可以用纯Python来写&#xff0c;也可以用C或者C之类的编译型的语言来扩展。 就算是相同的架构的两…