美文网首页DDIA
数据模型和查询语言 -- 序

数据模型和查询语言 -- 序

作者: 瑞_xlows | 来源:发表于2018-03-14 23:34 被阅读0次

数据模型可能是开发软件中最重要的部分。因为它们具有非常大的影响:不仅是关于软件的编写方式,还包括我们如何思考我们正在解决的问题。

大多数应用程序都是通过将一个数据模型叠加到另一个数据模型来构建的。对于每一层,关键问题是:它如何以下一层的形式表示?例如:

1.作为一个应用程序开发人员,你可以看到真实的世界(其中有人员、组织、商品、行为、资金流、传感器等等),并以对象或数据结构的形式对其进行建模,开发操纵这些数据结构的api。这些结构通常是针对你的应用程序的。

2.当你想要存储这些数据结构时,你可以用通用的数据模型来表示它们,例如JSON或XML文档、关系数据库中的表或图形模型。

3.构建数据库软件的工程师决定以内存,磁盘或网络上的字节表示JSON/XML/关系数据/图形数据。这种表示可以允许以各种方式查询,搜索,操纵和处理数据。

4.在更底层,硬件工程师已经解决了如何用电流,光脉冲,磁场等来表示字节。

在一个复杂的应用程序中,可能会有更多的中间层,例如基于api构建的api,但是基本思想仍然是相同的:每层都通过提供一个干净的数据模型来隐藏底层的复杂性。这些抽象允许不同的人群(例如,数据库供应商的工程师和应用程序开发人员)使用他们的数据有效地工作。

有许多不同类型的数据模型,并且每个数据模型都包含关于如何使用它的假设。有些用法很简单,有些则不一定支持;有些操作是很快的,有些操作却很糟糕;有些数据转换是自然的,有些则很笨拙。

仅仅掌握一个数据模型就需要花费很多精力(想想关系数据建模中有多少本书)。构建软件已经足够困难了,即便你只使用了一个数据模型,并且也不用关心它的内部工作原理。但是,由于数据模型对上面的软件所能做的和不能做的事情有如此非常大的影响,所以选择一个适合于应用程序的软件是很重要的。

在本章中,我们将研究一组用于数据存储和查询的通用数据模型(前一列表中的第2点)。同时,我们将比较关系模型、文档模型和一些基于图形的数据模型。我们还将研究各种查询语言并比较它们的用例。而在下一章,我们将讨论存储引擎是如何工作的;也就是说,这些数据模型是如何实现的(列表中的第3点)。

相关文章

  • 数据模型和查询语言 -- 序

    数据模型可能是开发软件中最重要的部分。因为它们具有非常大的影响:不仅是关于软件的编写方式,还包括我们如何思考我们正...

  • 数据模型和查询语言 -- 数据查询语言

    当引入关系模型时,它包含了一种查询数据的新方法:SQL是一种声明式查询语言,而IMS和CODASYL则使用命令式代...

  • 《数据密集型应用系统设计》读后感01

    第二章 数据模型与查询语言 The limits of my language mean the limits o...

  • DDIA(二)

    数据模型与查询语言 多数应用使用层层叠加的数据模型构建。对于每层数据模型的关键问题是:它是如何用低一层数据模型来表...

  • 数据模型和查询语言 -- 图形数据模型及本章概要

    我们之前看到,多对多关系是不同数据模型之间的重要区别特征。 如果您的应用程序主要具有一对多关系(树状结构化...

  • Prom QL学习脑图

    Prometheus的查询语言对于Prometheus的监控无需赘述,想要最大的发挥多维度数据模型的作用,Prom...

  • 存储与索引------《Designing Data-Inten

    在上一篇的笔记之中,我们讨论了数据模型和查询语言。在第三章之中我们来聊一聊不同的数据引擎内部是如何实现存储和检索的...

  • Prometheus学习系列(三)之监控对比

    一、Prometheus vs. Graphite 1.1 范围 Graphite专注于查询语言和图表特征的时间序...

  • sequelize的使用

    sequelize的使用 与数据库交互有两种方法: 使用数据库的原生查询语言(例如SQL) 使用对象数据模型(Ob...

  • 2021-08-29

    数据模型: 插入数据: 查询数据: 两表,连查询研究: 单表查询研究: 结果; 三表联查 结果: 项目思路:"""...

网友评论

    本文标题:数据模型和查询语言 -- 序

    本文链接:https://www.haomeiwen.com/subject/rdtcqftx.html