【数据库概论】图数据库 Vs 关系数据库(1)

例子1:社交网络

  • 假设有一个社交网络需要用数据库存储,其中人与人之间的关系有:朋友(friend)、父母(parent)
    在这里插入图片描述

  • 首先用关系数据库来实现朋友关系,需要 3 张表:people、people_relation、relation
    在这里插入图片描述
    如果要查询 Jam 的所有朋友的信息,那么就需要连接三张表:

    SELECT p.info  
    FROM people p  
    JOIN people_relation pr ON p.id = pr.pid2  
    JOIN relation r ON pr.rid = r.id  
    WHERE r.name = 'f';
    

    如果表的数据量较大,那么查询效率就会下降很多

  • 如果使用图数据库存储呢?

    • 首先需要创建节点和关系(边)
      CREATE (:people {name: 'Jam', info:...})
      ...
      
    • 接着创建关系
      CREATE (:people {name: 'Jam'})-[:f]->(:people {name: 'Tim'})...
      
    • 最终查询 Jam 的所有朋友
      MATCH (:people {name: 'Jam'})-[:f]-> (friend)  
      RETURN friend.info;
      
  • 总结
    在这个例子中,图数据库相对于关系数据库的优势:

    1. 直观:通过节点和边来表示实体(people)及其之间的关系
    2. 高效查询:不需要编写复杂的联接查询来找到jam的所有朋友,只需要简单地通过jam节点遍历与其相连的边和节点即可。
    3. 灵活性和可扩展性:在关系数据库中,如果需要添加新的关系或属性,可能需要修改表结构。而在图数据库中,可以动态地添加节点、边和属性

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

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

相关文章

@Conditional注解详解

目录 一、Conditional注解作用 二、Conditional源码解析 2.1 Conditional源码 2.2 Condition源码 三、Conditional案例 3.1 Conditional作用在类上案例 3.1.1 配置文件 3.1.2 Condition实现类 3.1.3 Bean内容类 3.1.4 Config类 3.1.5 Controller类 3.1.6 测试结果 3…

嘴尚绝卤味美味尽享

卤味,作为中国传统美食的代表之一,以其独特的口感和丰富的味道赢得了广大食客的喜爱。在众多卤味品牌中,嘴尚绝卤味凭借其安全可靠的品质和独特的美味,成为了消费者信赖的选择。 一、严格把控原材料,确保食品安全 嘴尚…

phpcms头像上传漏洞

经典版 漏洞原理:我们上传一个zip的压缩包,它会解压然后删除其中不是.jpg .gig .png的文件 function check_dir($dir):这是一个PHP函数的定义,它接受一个参数 $dir,代表要检查的目录路径。 $handle opendir($dir);&…

响应式招标投标网站模板

模板信息: 模板编号:29165 模板编码:UTF8 模板分类:博客、文章、资讯、其他 适合行业:招标类企业 模板介绍: 下载转载自:https://www.qnziyw.cn/cmsmb/eyoucms/wenzhangzx/4332.html 本模板自带…

嵌入式开发系统学习——干货分享(一)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

学c还行,学Python很累,还有其他语言适合我吗?

学c还行,学Python很累,还有其他语言适合我吗? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料&a…

【CSP试题回顾】202006-2-稀疏向量

CSP-202006-2-稀疏向量 关键点:时间复杂度 1.暴力枚举(30分) 在传统的暴力枚举方法中,我们有两个长度为 a 和 b 的稀疏向量,需要对这两个向量的全部元素逐一比较,如果 index 相等则进行乘积计算&#xf…

安卓studio安装

安卓studio安装 2024.3.11官网的版本(有些翻墙步骤下载东西也解决了) 这次写的略有草率,后面会更新布局的,因为截图量太大了,有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

亚马逊、速卖通卖家自养号测评细节需要掌握的哪几点?

亚马逊,跨境电商的巨头,早已成为业界的热门话题。如今,越来越多的卖家渴望在亚马逊的舞台上崭露头角,这也使得市场竞争愈发激烈。在亚马逊的丛林中,Review成为影响卖家命运的关键因素。它不仅影响亚马逊对卖家账号的评…

MySQL索引+常见问题详解

网络上的讲述MySQL索引的文章太多了,我打算换个角度来说。我们尝试着从设计者的角度思考,索引为什么这么设计。 假如你是索引的设计者,你会如何设计索引。我们不妨以新华字典为例。如果我们要查询汉字爱是什么意思,我们有如下操作…

Android电量/功耗优化指南

基础知识 电能 电压 * 电流 * 时长 模块电量(mAh) 模块电流(mA) * 时长(h) 系统电量优化红线规则 华为电量优化红线规则 电量分析 Android 系统电量计算 Android 系统的电量统计工作,是由一个叫 BatteryStatsService 的系统服务完成的。 其中四个比较关键的角…

C++的类与对象(五):赋值运算符重载与日期类的实现

目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述:内置类型可直接用运算符比较,自定义类型的对象是多个…