0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式数据库为什么不使用关系数据模型

星星科技指导员 来源:嵌入式计算设计 作者:Duncan Bates 2022-08-28 10:00 次阅读

以传统方式处理数据管理并不总是能很好地应用于嵌入式系统。关系数据库模型的流行是无可争辩的,但这并不意味着它是处理宝贵的 CPU、内存和存储资源时的正确选择。关系模型的一种替代方法可以帮助降低硬件要求并为复杂的数据关系建模,从而允许供应商为手头的应用程序释放资源。

在竞争日益激烈的市场中,嵌入式应用程序供应商不断寻找新方法来降低应用程序成本和上市时间,并增加应用程序功能以最终获得市场份额并促进产品销售。虽然收入利润率受到挤压,但消费者期望新产品发布具有更高的质量和功能。供应商越来越愿意将第三方组件添加到新产品和现有产品中,以实现这些目标。

任何嵌入式应用程序中的一个重要组成部分是高效的数据管理。商业嵌入式数据管理引擎正在获得认可,并且在许多情况下成为应用程序的硬性要求。在过去的 25 年中,随着数百万美元的投入用于研发,关系模型已成为数据管理的首选方法。

建立关系

关系数据模型的首要好处不是模型本身,而是它与 SQL 语言的密切关系。SQL 有两个主要好处:

即席查询:使用预定义的关系数据模型,任何有效的 SQL 都将保证结果而不保证其性能。在数据挖掘应用程序中,这是一个非常强大的功能,但在大多数嵌入式应用程序中,用例和查询在设计时是已知的。想想 MP3 播放器:所有用例,例如音乐文件同步和用户导航,都是预定义的,在设备或固件的下一个版本发布之前不会改变。这不像经理会来要求开发人员根据现有数据模型创建新报告。

供应商独立性: SQL 是许多嵌入式数据库供应商支持的通用语言。据推测,用另一个替换一个应该像打开电灯开关一样容易。尽管它并不那么简单,但进行这种转换绝对比从一个专有 API 迁移到另一个更容易。

关系模型通过值匹配以及在大多数情况下通过键来建立记录之间的关系。这些键称为主键/外键关系。图 1 说明了 MP3 播放器中艺术家和专辑的关系模型,它将作为本文进一步讨论的基础。

图1

poYBAGMKzDqAAhCSAABUH4dcoSo990.jpg

仔细观察,关系是通过将 fname 的值复制到专辑表中并在两者之间添加索引结构来实现的。复制 fname 字段本身会增加数据库映像的开销。图 1 中的另一个含义与外键有关。如果没有添加外键数据结构,开发人员每次处理关系时都必须访问专辑表中的每一行。原因是表格数据没有任何顺序,因此无法判断匹配值是在表格的开头、中间和/或结尾。添加外键索引解决了这个表扫描问题。图 2 分解了外键索引和专辑表来说明索引开销。

图 2

pYYBAGMKzDuAVKkpAABawmM8Lrg601.jpg

有了 B 树,开发人员可以进行二分搜索来建立关系,从表扫描到索引扫描。这将线性搜索转换为二分搜索,通过指数差异提高了运行关系的成本。

表扫描的成本为 O(n),其中 n 表示表中的记录数,而索引扫描的成本为 O(log n)。在计算复杂性理论中,大 O 符号经常用于描述输入数据的大小如何影响算法——计算资源的使用。其他明显的影响包括表示索引所需的空间以及在数据更改时维护此结构所需的命中率。由于从时间、CPU 和功耗方面来看,I/O 是最昂贵的操作,因此开发人员应该努力减少它。对于闪存等存储设备,写入也应受到限制,以防止对该技术施加的最大写入擦除周期和空间回收周期产生负面影响。

那么问题就变成了:开发人员如何以低于 O(log n) 的成本维护这种关系信息

重新引入网络数据模型

图 3 显示了通过网络数据模型调整的相同数据表示。

图 3

poYBAGMKzDyACOSWAABPtqIpt_g476.jpg

网络数据模型早于关系模型,可以看作是它的超集。这意味着在关系模型中表达的任何东西都可以在网络模型中表达,甚至 SQL 支持。主要优点是可以对关系进行建模的方式。在图 3 中,以前显示为外键索引的关系现在被分解为多个指针列表,称为集合。指针可以被视为 C 应用程序中的 void 指针,可以直接查找堆,但堆现在是持久存储。消除外键数据结构和fname重复不仅减少了需要存储的数据量,而且还减少了不必要的数据结构维护。

图中简化了一个所有者有两个指针,第一个和最后一个成员记录,而成员有三个,所有者加上前一个和下一个成员。根据指针的本质,它不与任何特定的数据类型绑定,因此关系可以对任意数量的记录类型之间的复杂关系进行建模,而不仅仅是关系模型强加的两个之间的关系。本文不会讨论复杂的建模功能,但它说明了网络模型的灵活性。

图 4

pYYBAGMKzD2ACtVCAAA8EBuGLIk973.jpg

成本影响

从一个记录到一组记录转换为恒定成本。只要数据尚未驻留在数据库 RAM 缓存中,最多只需要一个 I/O 周期。使用外键实现,在定位实际记录之前,将首先遍历 B 树,成本为 O(log n)。很明显,遍历 B 树有 CPU 和 I/O 开销,但也有内存开销。任何数据库缓存都会存储最近访问过的数据,甚至是 B-tree 数据。由于 B-tree 扫描最终在缓存中,因此缓存必须很大,否则需要额外的 I/O 来刷新其数据。

写操作也需要恒定的成本。开发人员将新记录添加到专辑表并将新记录加入现有艺术家专辑集需要采取以下步骤来完成操作:

添加新专辑记录。

将新记录设置为当前艺术家的所有者指针。

设置新记录,即指向当前艺术家的前一个指针,即最后一个记录。

将新记录的 next 指针设置为 0。

将当前艺术家的最后一条记录设置为指向新记录的下一个指针。

将所有者的最后一个指针设置为新记录。

在这一系列操作期间不进行扫描,导致成本不变。使用 B-tree 实现,开发人员将:

1.添加新专辑记录。

2. 扫描 B-tree 找到新记录的索引位置。

3.如果B-tree中没有空间,则拆分并重组树。

4. 在 B 树中写入对新记录的引用。

在此序列中,开发人员在步骤 2 中遇到 O(log n) 成本。更重要的是,步骤 3 可能会通过要求重新组织部分或整个树而产生巨大的成本。重组是不可预测的,因为它取决于树的完整性以及必须在树中的哪个位置进行更改。包含数据的节点越多,重组的机会就越大。在大多数情况下,B-tree 更改是在本地完成的,只影响少数几个节点,但有时会触及许多节点,给应用程序增加了不确定性。因此,如果开发人员发现自己需要可预测的性能,他们应该检查他们的数据是如何表示的。

MP3 播放器基准测试

那么开发者使用网络模型可以节省多少硬件资源呢?在一个示例中,Birdstep Technology 实施了艺术家-》专辑-》歌曲的三向关系,允许商业 MP3 播放器制造商获得一些关于资源节约的确凿事实。开发人员仔细比较了 Birdstep Technology 的 RDM Embedded 数据库引擎,它是一种网络模型,以及使用台式计算机和消费电子硬件的公共领域关系数据库引擎。如表 1 所示,硬件资源受限越多,节省的差异就越大。

在这两种硬件解决方案上,网络模型用于存储相同数量的记录和关系的磁盘空间减少了 27%。所有的存储节省都可以归功于用指针替换了艺术家-》专辑和专辑-》歌曲的外键索引。删除这些数据结构对存储需求产生了巨大影响。B 树索引通常需要 1.3 倍于它的索引空间。

应用程序驱动数据库决策

在寻求在应用程序中添加或替换现有数据管理组件时,开发人员应仔细考虑选择。应用程序应该推动决策,而不是行业。有几种不同的解决方案可用,从简单的库到完整的客户端服务器解决方案,增加了本文所述的功能。选择正确的技术并对数据进行正确建模可以对应用程序的成本产生巨大影响,从而带来更高的利润率、更高质量的产品和更好的最终用户体验。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 播放器
    +关注

    关注

    5

    文章

    383

    浏览量

    36833
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10449

    浏览量

    206576
  • 服务器
    +关注

    关注

    12

    文章

    8121

    浏览量

    82534
收藏 人收藏

    评论

    相关推荐

    使用关系数据库中的半结构化数据

    NoSQL革命已经进入了关系世界。您可能正在使用关系数据库,但仍必须查询和理解隐藏在文本列、JSON或 XML文档中的半结构化数据
    的头像 发表于 12-20 10:46 274次阅读
    使用<b class='flag-5'>关系数据库</b>中的半结构化<b class='flag-5'>数据</b>

    嵌入式应用轻量级数据库 - 第12节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:40:54

    嵌入式应用轻量级数据库 - 第11节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:40:03

    嵌入式应用轻量级数据库 - 第10节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:39:13

    嵌入式应用轻量级数据库 - 第8节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:37:32

    嵌入式应用轻量级数据库 - 第7节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:36:42

    嵌入式应用轻量级数据库 - 第6节 #硬声创作季

    数据库嵌入式应用
    充八万
    发布于 :2023年09月01日 18:35:52

    数据库具有什么特点?关系数据库的基本特征是什么?

    数据库具有什么特点?关系数据库的基本特征是什么? 数据库是由数据组成的集合,它具有以下几个特点: 1. 数据共享:
    的头像 发表于 08-28 17:15 1446次阅读

    数据库数据模型设计(2)#数据库

    数据库
    未来加油dz
    发布于 :2023年07月18日 17:54:39

    数据库数据模型设计(1)#数据库

    数据库
    未来加油dz
    发布于 :2023年07月18日 17:53:59

    数据模型(2)#数据库技术

    数据库
    未来加油dz
    发布于 :2023年07月11日 15:41:19

    数据模型(1)#数据库技术

    数据库
    未来加油dz
    发布于 :2023年07月11日 15:40:25

    关系数据库的基本原理(什么是关系数据库

    )所组成。关系数据库是基于实用和可重复使用的概念,是支持高性能交互查询、交易处理能力、安全性和灵活性的关键数据存储和维护方法。关系数据库的概念是基于全局的。可以想象成把不同表里的所有
    的头像 发表于 07-10 09:06 974次阅读

    多平台的关系数据库管理和开发工具

    管理、管理更改、调整查询和开发关系数据库 数据库专业人员需要尽量减少花在日常管理和在整个组织中开发数据库。为了应对这一挑战,受益于IDERA的用于管理和开发多个数据库平台的顶级工具包。
    的头像 发表于 06-27 10:54 473次阅读
    多平台的<b class='flag-5'>关系数据库</b>管理和开发工具

    SAP S/4HAN入门篇(3)-嵌入式分析功能、数据模型、实施方法论

    本篇介绍S/4HANA产品中的嵌入式分析(Embedded Analytics)功能和VDM(Virtual Data Model)数据模型,以及S/4HANA的实施方法论简述。
    的头像 发表于 06-10 09:05 393次阅读
    SAP S/4HAN入门篇(3)-<b class='flag-5'>嵌入式</b>分析功能、<b class='flag-5'>数据模型</b>、实施方法论