前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[物联网]2.4 存储数据--数据库

[物联网]2.4 存储数据--数据库

作者头像
科控物联
发布2022-03-29 14:27:32
9470
发布2022-03-29 14:27:32
举报
文章被收录于专栏:科控自动化

数据库的作用 数据库的作用是保存并灵活运用数据(图 2.25)。除此之外,其作用还包括从保存的数据中找出与所指定条件相符的数据。另外,数据库还能把多条数据连在一起,把它们作为一个数据取出。 打个比方,已知与特定传感器相关的 ID,测量时间,以及温度传感器的值。光凭这些数据,是无法理解数据指的是哪个房间的温度的。因此就需要传感器的 ID 以及跟房间名字有关的数据。把这两条数据加在一起,才能知道某房间的温度。 图 2.25 展示的是一个叫作 RDB(关系数据库)的数据库。最近,除了 RDB 以外还出现了一种叫作 NoSQL 的数据库。 RDB 用一种叫作 SQL 的专门用来操作数据库的语言来保存和提取数据。另一方面, NoSQL 则是用 SQL 以外的各种方法来操作数据库。 本书还会介绍键值存储( Key-Value Store,简称 KVS)和文档型数据库等种类的数据库。

数据库的种类和特征 这里我们一并为大家说明数据库的种类和特征,以及为了实现物联网服务而处理设备数据时的要点。 关系数据库 关系数据库是人们用得最普遍的数据库。如图 2.25 所示,关系数据库具备一种叫作表格的表格型数据结构,其用途在于存储数据库,使用者用 SQL 语言来对其执行数据的提取、插入以及删除。 SQL 是一种非常强大的语言,它能用非常简洁的表述写出命令,来把多个表格联系到一起,搜索符合目标条件的数据。此外,使用者还能通过多种多样的编程语言来使用 SQL。不过一旦确定了表格,就很难更改其结构了。因此,需要仔细考虑设备传来的数据性质再决定结构。 举个例子,假设由于传感器和设备的增加而导致一些必须保存的数据增多,此时,如果表格结构如图 2.26 所示,那么就很难再追加新的数据了。

在 A 表这种情况下,我们就必须变更表格的条目。而换成 B 表就没必要更改表格本身。不过,这样一来就需要生成一个新的表格。 因此,如图 2.27 所示,要生成一个结构来把所有传感器数据插入同一个字段里。采用这个结构时,即使来了新的传感器数据,也没有必要更改表格结构或是追加新的表格。不过传感器数据的类型必须是统一的,而且,这样一来就会在同一个表格里注册大量的数据。这种情况下,有时就得花一段时间才能从表格里检索到我们需要的数据。为了解决这个麻烦,数据库提供了一个叫作索引的机制。

以上列举的表格就是一个例子。关于用哪种方法构成表格更好,我们不能一概而论,而是需要先考虑注册的是怎样的数据,以后又会积累多少数据,然后再下决定。 关系数据库也不擅长保存图像和语音等二进制形式的数据。虽然能够用一种叫作 BLOB( Binary Large Object,二进制大对象)的数据形式来达到保存的目的,不过,这也需要另费一番工夫,因为根据用途,有时需要把图像直接保存为文件,把图像的路径单独保存在 RDB 里(图 2.28)。

数据库把数据保存到硬盘,因此经常会发生对硬盘的访问(磁盘 I/O)。这样一来,这步处理就比其他处理要慢。就系统中而言,这是处理速度方面容易产生瓶颈的一个地方。除了介绍的内容之外,还有一些需要大家注意的地方,希望大家加深对这部分内容的理解并将其灵活运用。 键值存储 键值存储属于 NoSQL 数据库的一种。NoSQL 是一种不使用 SQL数据库的统称。键值存储,就是把一种叫作“值”( value)的数据值,和能够一对一特定“值”的“键”( key)的集合保存在一起。此外,还有把数据保存在内存里的键值存储,以及把数据保存在硬盘里的键值存储。前者一方面能够高速保存数据,而另一方面,因为数据是放在内存上的,所以软件停止运行的时候,原先保存的内容就会丢失。因此前者适合作为缓存来使用。而后者保存数据的速度虽然不及前者,但即使软件停止运行,数据也不会丢失。 有一种叫作 Redis 的键值存储,它具备前后两者的性质,在通常情况下它是把数据存储在内存上的,但在任何时间都能够把数据保存到硬盘。因此,它既能够高速执行存储,也能永久保存数据。 文档型数据库 文档型数据库和键值存储一样,都属于 NoSQL 数据库的一种。文档型数据库能以 XML 和 JSON 这种结构化文档的格式保存数据。特别是近年来,有一种叫作 MongoDB 的文档型数据库很受欢迎,它以SON 的格式保存数据(图 2.29)。

MongoDB 能够直接保存 JSON 格式的数据,还能用 JSON 的值进行检索。这样一来,在用 JSON 交换传感器的信息时,就能直接对数据进行保存和使用。即使增加了新的数据条目或是新增了设备,也能直接以SON 格式保存数据,因此,不需要像 RDB 那样考虑表格的结构。非常适合用于无法读出设备的数量和数据的种类等情况,以及保存传感器等设备的数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档