3-知识图谱-知识图谱的存储与查询

在这里插入图片描述

基于关系型数据库的知识图谱存储

在这里插入图片描述

基于原生图的知识图谱存储

关系型数据库的局限性

因为关系数据库,不善于处理“关系”

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图数据库:

Relations Are First-class citizens
在关系数据库中,关系是隐藏表达的。通过外键关联实体,表达两个实体间存在关系。
图数据库,关系是显性描述。 属性,关系,实体是平等的 ,不需要强制关联
在这里插入图片描述

图建模的好处
  1. 自然表达
  2. 易于扩展:
  3. 复杂关联表达:易于表达复杂关联关系的查询
  4. 多跳优化

在这里插入图片描述
知识图谱可以将多源,多领域间的相互关系进行关联,实现跨领域的建模和查询
在这里插入图片描述

什么时候使用图数据库

在这里插入图片描述

原生图数据库的原理【免索引邻接】

什么是免索引邻接(Index-Free Adjacency)?

在这里插入图片描述

1. 基础概念:邻接与索引
  • 邻接关系:在图结构中(比如社交网络、知识图谱),节点(如用户、文章)之间的连接称为边(如好友关系、引用关系)。邻接关系描述的是“节点直接相连”这一特性。
  • 索引的作用:在传统数据库(如关系型数据库)中,要高效查询数据,通常需要建立索引(如 B 树、哈希表)。索引像一本目录,能快速定位数据的位置,但维护索引需要额外的时间和空间成本。
    在这里插入图片描述

2. 免索引邻接的核心思想

图数据库(如 Neo4j)的免索引邻接通过以下方式优化:

  • 直接物理指针:每个节点在存储时,直接保存相邻节点的物理存储地址(如磁盘位置或内存指针)。
  • 无需二次查找:当需要遍历相邻节点时,直接通过指针跳转到目标节点,无需通过索引检索。

例如:

  • 节点 A 存储了其好友节点 B 和 C 的物理地址。
  • 当查询 A 的好友时,直接读取 B 和 C 的地址,无需通过索引表查询。

4. 技术实现(以图数据库为例)
  • 节点结构
    节点 A:
    - 属性:name = "Alice"
    - 邻接边列表:
      → 边1:指向节点 B(物理地址 0x1234)
      → 边2:指向节点 C(物理地址 0x5678)
    
  • 遍历过程
    • 从节点 A 出发,直接通过边中的物理地址访问节点 B 和 C。
    • 无需在全局索引中查找 BC 的位置。

5. 优势与场景
  • 优势
    • 高效多跳查询:例如“朋友的朋友的朋友”,时间复杂度接近 O(n)(n 是路径长度),而关系型数据库可能需要 O(n log m)(m 是数据量)。
    • 减少 I/O 操作:直接通过指针访问相邻节点,避免随机磁盘寻址。
  • 适用场景
    • 社交网络(查询人际关系)。
    • 推荐系统(实时遍历用户-商品关联)。
    • 欺诈检测(分析复杂资金流转路径)。

6. 对比:免索引邻接 vs. 传统索引
场景传统数据库(使用索引)图数据库(免索引邻接)
查询直接好友2 次索引查询(用户→边→用户)直接访问相邻节点(无索引)
查询“三度好友”指数级增长的索引查询次数线性遍历,性能稳定
数据写入需维护索引,写入成本高仅更新指针,写入高效

7. 总结
  • 免索引邻接的本质:用空间换时间,通过预存物理地址,将“查找关系”转化为“直接跳转”。
  • 为什么重要:它是图数据库处理复杂关联查询时性能远超传统数据库的核心技术之一。

原生图数据的物理存储实现

在这里插入图片描述

节点存储

在这里插入图片描述

关系存储文件

在这里插入图片描述

目的: 为了快速检索几点的上一个关系边,下一个关系边。

图遍历的查询的物理实现

在这里插入图片描述

属性数据的存储处理:内联和动态存储

在这里插入图片描述
https://neo4j.com/graph-databases-book

总结

  • 图结构和查询分析:属性图
  • 注重知识的建模,描述结构复杂的关联关系,知识推理: RDF Resource Definition Framework
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键,或者扩展按键的需求。亦或者是在某些场景下,禁止用户按下某些按键的业务需求。 这两种需求,鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…

SpringCloud-Eureka初步使用

什么是REST是一组用于规范资源在网络中转移的表现形式软件架构设计风格.简单来说就是客户端和服务器之间的一种交互形式 什么是RESTful,满足了REST风格的接口或者程序,RESTful API是其中的接口,spring中提供了RestTemplate这个类,他强制执行了REST的规范,包括使用HTTP协议的状…

SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.日历渲染代码:2.保存备忘录代码:3.删除备忘录代码: 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootuniApp框架开…

推荐给 Easysearch 新用户的几个 Elasticsearch 可视化工具

Easysearch 作为国产化的 Elasticsearch(ES)替代方案,兼容 Elasticsearch 生态系统中的多种工具。本文将介绍几款适合 Easysearch 用户的可视化工具,帮助您更高效地管理和查询数据。 1. Elasticsearch Head 插件 在ES培训经常提…

PHP+Apache+MySQL安装(Windows)

一、安装教程 参考链接1 参考链接2 二、问题描述 PHP安装目录下找不到php8apache2_4.dll PHP安装包下载错误 Apache Service Monitor: request operation has failed! 定位问题: 查看【事件查看器】 解决问题 安装或更新与PHP版本相对应的Visual C Redistribu…

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计

一、项目背景 在某工业生产园区的供水系统中,为了精确监测和控制各个生产环节的用水流量,需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输,但园区的监控系统基于 Modbus TCP 协议进行数据交互&…

【Mysql】我在广州学Mysql 系列—— 有关日志管理的示例

ℹ️大家好,我是练小杰,今天星期四了,明天周五,美好的周末又要到了!!😆 本文是对MySQL日志管理内容进行练习,后续将添加更多相关知识噢,谢谢各位的支持🙏 复习…

JUC并发—8.并发安全集合二

大纲 1.JDK 1.7的HashMap的死循环与数据丢失 2.ConcurrentHashMap的并发安全 3.ConcurrentHashMap的设计介绍 4.ConcurrentHashMap的put操作流程 5.ConcurrentHashMap的Node数组初始化 6.ConcurrentHashMap对Hash冲突的处理 7.ConcurrentHashMap的并发扩容机制 8.Concu…

金融时间序列【量化理论】

业界常用的技术分析指标都与价格本身有关,而时间序列分析由于对数据平稳性的要求常常是基于收益率这样更加偏稳定的数据(收益率由于会涨停和跌停每天最多10%) 平稳性: 强平稳性:随时间变化,各个统计特征都…

nvm安装、管理node多版本以及配置环境变量【保姆级教程】

引言 不同的项目运行时可能需要不同的node版本才可以运行,由于来回进行卸载不同版本的node比较麻烦;所以需要使用node工程多版本管理。 本人在配置时,通过网络搜索教程,由于文章时间过老,或者文章的互相拷贝导致配置时…

8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改

文章目录 前言:SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建1.2 开发规范1.2.1 开发规范-REST(不强求非要这种风格,传统风格有时候更方便)1.2.2 开发规范-统一响应结果和异常处理1.2.3 开发流程2. 部门管理2.1 查询部门2.1.1 原型和需求…

新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 如果对你有帮助你可以来专栏找我,我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录: 一、XSS的三种类型: 二、XSS攻击的危害&#x…

用《软件方法》引导AI全流程高效开发

和“敏捷”的拍脑袋“试错”不同,《软件方法》一直强调严谨地思考、推导和建模。 如何尽量借助现有AI的力量,降低建模人员A→B→C→D的推导工作量,是一个非常有价值的课题。我们将用一个实例来分享和展示《软件方法》作者潘加宇的建议实践。…

全面收集中间件Exporter适配:从Redis到ActiveMQ,掌握监控数据采集的最佳实践

#作者:任少近 文章目录 说明:一 Redis的适配exporter版1.1 Redis的exporter源码版本1.2 Redis的exporter的releases版1.3 Redis_exporter版本选择理由1.4 Redis_exporter docer镜像 二 Zookeeper的适配exporter版2.1 Zookeeper的exporter源码版本2.2 Zo…

npm在install时提示要安装python问题处理

使用npm\yarn\pnpm下载以来的时候,一直提示python异常,有的项目安装了python之后,下载依赖还是异常 而且旧版本项目使用python2,新的使用Python3…很烦 解决方案1:cnpm 使用cnpm 安装教程: npm安装cnpm,解…

浅谈网络 | 容器网络之Cilium

目录 Cilium介绍Cilium是什么Cilium 主要功能特性为什么用Cilium? 功能概述组件概况BPF 与 XDPeBPF (Extended Berkeley Packet Filter)XDP (eXpress Data Path) Cilium介绍 Cilium是什么 Cilium 是一个开源网络和安全项目,专为 Kubernetes、Docker 和…

前端知识点---vue的声明周期(vue)

文章目录 创建挂载更新销毁 vue的生命周期有四个阶段: 创建 挂载, 更新和销毁 创建 是vue组件从创建到准备渲染的过程 dom还没挂载到页面中 进行了初始化工作: 初始化数据(data,props) . 设置计算属性computed 初始化方法 methods 绑定事件watch 创建阶段的钩子函数beforeCrea…

MySQL如何解决幻读?

目录 一、什么是幻读? 1.1 幻读的定义 1.2 幻读的示例 1.3 幻读产生的原因? 1.4?读已提交(Read Committed) 1.4.1 确定事务等级 1.4.2 非锁定读取 准备 示例 结论 1.4.3 锁定读取 准备 示例 分析 结论 1.5?可重…

Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器

目录 登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1 介绍2.3.2 生成和校…

支持所有模拟器根证书一键植入方便快捷

qq 点-我咨-】--询 群 Android系统中的安全证书分为“用户证书”和“系统证书”两类。用户可以在设备的设置 -> 安全 -> 查看安全证书页面中,分别查看“系统”和“用户”两个独立的证书列表。其中,用户证书通常是通过浏览器下载安装,或…