DDIA读书笔记 2 数据模型与查询语言

2 数据模型与查询语言

3种常见的数据模型:关系模型、文档模型和图模型

2.1 关系模型与文档模型

  • 关系模型:数据被组织成关系,也就是表,关系(表)是元组(行)的无序集合
    • 关系模型存在的问题:对象-关系不匹配
  • 文档模型:采用JSON或XML等文档表示数据,表现为某种层次结构,没有固定模式
    • 文档模型的问题:不支持数据库联结操作(一对多和多对多的联结)
    • 优点:模式灵活
    • 建议文档应该尽量小且避免写入时增加文档大小。因为读取时数据库会加载整个文档,更新时会重写整个文档。
  • 关系数据库和文档数据库的融合

2.2 数据查询语言

  • SQL是声明式查询语言;IMS和CODASYL是命令式语言

    • 关于IMS和CODASYL见:https://blog.csdn.net/clevi0654/article/details/100253687
  • 命令式语言和声明式查询语言的差别

    • 命令式语言需要指明如何实现某一查询目标;声明式查询语言只需指定所需的数据模式,需要满足什么条件等,而无需指明如何实现这一目标
    • 声明式查询语言更易用简洁,对外隐藏了数据库引擎的实现细节
    • 声明式查询语言适合并行执行
  • SQL没有任何限制规定它只能在单个机器上运行

  • MapReduce查询

    • 见第10章

2.3 图数据模型

  • 如果数据是一对多(树状结构)或者记录之间没有关系,使用文档模型
  • 如果是复杂的多对多,虽然关系模型也支持,但使用图模型更合适

2.3.1 属性图模型

  • 顶点:唯一的标识符、出边的集合、入边的集合、属性集合(键值对)
  • 边:唯一的标识符、边两端的顶点、描述两个顶点见关系类型的标签、属性集合(键值对)
  • 可以使用关系模型存储,两张表:顶点表和边表
  • 属性图查询语言:Cypher是一种用于属性图的声明式查询语言,最早为Neo4j图数据库创建
    • 关于Cypher查询语言:Cypher查询入门
    • 虽然可以用关系模型存储属性图数据,然后使用SQL查询,但与Cypher相比,显得笨拙

2.3.2 三元存储模型

  • 主体-谓语-客体。如(张三,喜欢,苹果)、(Jack,age,13)。有以下两种情况:

    • 主体是顶点,谓语和客体是主体属性中的键值对。(Jack,age,13)
    • 主体和客体都是顶点,谓语是图中的边。(Jack,marriedTo,Marry)
  • SPARQL:一种采用RDF数据模型的三元存储查询语言。

  • Datalog:一种比sparal和cypher更老的语言,是以后查询语言的基础

1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值