第12章 · 播客 第7集

嵌入式系统设计 · 嵌入式数据库:乐观复制与八条特性

🎙️ 本集播客第7集:为什么嵌入式数据库又叫移动数据库,直接在裸机上开发信息管理的三大缺点;使用环境四特点;系统四子系统;三个关键问题里最要命的「乐观复制方法」,还有移动 DBMS 从微核结构到零管理的八条特性,SQL92 这个数字别漏。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第12章播客 第7集
⬇ 下载本集 点击播放
阿明
嵌入式数据库,为什么原文又叫它移动数据库?这两个名字能随便换着用?
小雅
能,而且原因很实在。嵌入式数据库本质上是由通用数据库发展而来的,在各种嵌入式设备或移动设备上运行。由于用到嵌入式数据库管理系统的多是移动信息设备,诸如掌上电脑、PDA、车载设备等移动通信设备,位置固定的嵌入式设备很少用到,所以嵌入式数据库也称为移动数据库或嵌入式移动数据库。它的作用主要是解决移动计算环境下数据的管理问题,移动数据库是移动计算环境中的分布式数据库。
阿明
为什么非要引入数据库?直接在操作系统或裸机上写信息管理程序不行吗?
小雅
原文列了三条缺点,这是引入数据库的理由,也是简答题素材:第一,所有的应用都要重复进行数据的管理工作,增加了开发难度和代价;第二,各应用之间的数据共享性差;第三,应用软件的独立性、可移植性差,可重用度低。在嵌入式系统中引入数据库管理系统可以在很大程度上解决上述问题,提高应用系统的开发效率和可移植性。
阿明
使用环境有什么特别的地方?毕竟是边走边用。
小雅
使用环境四个特点,逐条背。第一,设备随时移动性:嵌入式数据库主要用于移动信息设备上,设备的位置经常随使用者一起移动。第二,网络频繁断接:移动设备或移动终端在使用过程中位置经常变化,同时受到使用方式、电源、无线通信及网络条件等因素的影响,所以一般并不持续保持网络连接,而是经常主动或被动地间歇性断接和连接。
小雅
第三,网络条件多样化:移动信息设备同数据服务器在不同的时间可能通过不同的网络系统连接,这些网络在网络带宽、通信代价、网络延迟、服务质量等方面可能有所差异。第四,通信能力不对称:移动设备与服务器之间的网络通信能力是非对称的,移动设备的发送能力都非常有限,使得数据服务器到移动设备的下行通信带宽和移动设备到数据服务器之间的上行带宽相差很大。
阿明
一个完整系统的组成部分呢?我记得不止一个数据库。
小雅
一个完整的嵌入式数据库管理系统由若干子系统组成,包括主数据库管理系统、同步服务器、嵌入式数据库管理系统、连接网络等几个子系统。逐个说:嵌入式数据库管理系统是一个功能独立的单用户数据库管理系统,可以独立于同步服务器和主数据库管理系统运行,对嵌入式系统中的数据进行管理,也可以通过同步服务器连接到主服务器上,对主数据库中的数据进行操作,还可以通过多种方式进行数据同步。
小雅
同步服务器是嵌入式数据库和主数据库之间的连接枢纽,保证嵌入式数据库和主数据库中数据的一致性。数据服务器的主数据库及数据库管理系统可以采用 Oracle 或 Sybase 等大型通用数据库系统。连接网络:主数据库服务器和同步服务器之间一般通过高带宽、低延迟的固定网络进行连接;移动设备和同步服务器之间的连接根据设备的具体情况可以是无线局域网、红外连接、通用串行线或公众网等。
阿明
使用环境四特点会不会出「不属于」题?比如四个选项里混一个「网络持续稳定连接」?
小雅
大概率会,而且干扰项就编成「网络连接持续稳定」这种与原文相反的表述。原文四条是设备随时移动性、网络频繁断接、网络条件多样化、通信能力不对称——没有一条说网络稳定。判断题「移动设备与服务器之间的上下行通信带宽基本对称」,错,原文明确说下行带宽和上行带宽相差很大,移动设备的发送能力都非常有限。
阿明
然后是练习题考过的那个:嵌入式移动数据库采用的主要数据同步方法?
小雅
这是本集最重要的题。嵌入式移动数据库在实际应用中必须解决好三个问题:数据的一致性(复制性)、高效的事务处理和数据的安全性。一致性这里原文写得很细:移动数据终端之间及与同步服务器之间的连接是一种弱连接,即低带宽、长延迟、不稳定和经常性断接;为了支持用户在弱环境下对数据库的操作,现在普遍采用乐观复制方法,Optimistic Replication 或 Lazy Replication,允许用户对本地缓存上的数据副本进行操作,待网络重新连接后再与数据库服务器或其他移动数据终端交换数据修改信息,并通过冲突检测和协调来恢复数据的一致性。
阿明
所以答案是乐观复制方法,干扰项是悲观复制、同步复制、实时复制?
小雅
对,就选乐观复制。做题的锚点是「弱连接、断接环境下,先本地改,重连后同步」——先斩后奏再对账,这就是乐观的姿势。悲观复制、同步复制、实时复制原文都没提,全是为这道题编的干扰项。
阿明
高效的事务处理怎么理解?
小雅
移动事务处理要在移动环境中频繁的、可预见的断接情况下进行,必须设计和实现新的事务管理策略和算法。原文列了六条,捡关键词记:根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务请求优先处理;根据操作时间来确定事务是否迁移,长时间的事务操作将全部迁移到服务器上执行,无须保证网络的一直畅通;根据数据量的大小来确定事务是上载执行还是下载数据副本执行后上载;完善的日志记录策略;网络断接处理时采用服务器发现机制还是采用客户端声明机制;事务移动(如位置相关查询)过程中的用户位置属性的实时更新。
小雅
数据安全性方面,许多嵌入式设备是系统中数据管理或处理的关键设备,存取权限控制较严格;同时设备具有移动性、便携性和非固定的工作环境,带来潜在的不安全因素;某些数据的个人隐私性又很高,要在防止碰撞、磁场干扰、遗失、盗窃等方面提供保证。主要措施三条:对移动终端进行认证,防止非法终端的欺骗性接入;对无线通信进行加密,防止数据信息泄漏;对下载的数据副本加密存储,以防移动终端物理丢失后的数据泄密。
阿明
最后是移动 DBMS 的特性,听说有八条?
小雅
八条,先说前四条。第一,微核结构,便于实现嵌入式功能:考虑到嵌入式设备资源有限,应采用微型化技术实现,紧缩系统结构。第二,对标准 SQL 的支持:应支持 SQL92 标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准 SQL 语句。第三,事务管理功能:自动维护事务的完整性、原子性等特性,支持实体完整性和引用完整性。第四,完善的数据同步机制:数据同步是嵌入式数据库最重要的特点,同步方式有上载同步、下载同步和完全同步 3 种。
小雅
同步机制还有六个细节:具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突日志记录功能;支持快速同步,系统同步时只传递变化的数据;支持表的水平分割和垂直分割复制,最大限度地降低嵌入式数据库的大小;支持异构数据源连接同步,可以用支持 ODBC 的异构数据源作为主数据库和嵌入式设备上的数据库进行数据同步;具有主动同步的功能,允许用户对系统提供的同步事件自定义过程实现。
阿明
SQL92、三种同步方式,这两个数字我记住了。后四条呢?
小雅
第五,支持多种连接协议:可以通过串行通信、TCP/IP、红外传输、蓝牙等多种连接方式实现与嵌入式设备和数据库服务器的连接。第六,完备的嵌入式数据库管理功能:应具有自动恢复功能,基本无须人工干预进行嵌入式数据库管理,并能提供数据的备份和恢复,保证用户数据的安全可靠。第七,平台无关性与支持多种嵌入式操作系统:应能支持 Windows CE、Palm OS 等多种目前流行的嵌入式操作系统。第八,零管理特性:嵌入式数据库具有自动恢复功能,不需要人工干预就可以进行嵌入式数据库管理,并提供数据的备份与同步。
阿明
八条特性里哪条会被单独拎出来考?我怕记了八条但考的是某一条的细节。
小雅
两条高危。一是「数据同步是嵌入式数据库最重要的特点」,这句话本身就是判断题或单选的题眼,八条里只有它被原文冠以「最重要」;二是 SQL92——问「嵌入式移动 DBMS 应支持哪个 SQL 标准」,答案 SQL92,子集两个字别丢,写「SQL99」「SQL 全集」都是错的。
阿明
「零管理」和第六条「完备的数据库管理功能」听着有点重复?
小雅
有重叠但侧重不同:第六条强调自动恢复加备份恢复,保证用户数据的安全可靠;零管理强调不需要人工干预就可以进行嵌入式数据库管理,并提供数据的备份与同步。题目问「嵌入式数据库不需要人工干预进行管理,这叫什么特性」,答零管理特性。
小雅
本集必背第一段:嵌入式数据库又称移动数据库,解决移动计算环境下数据的管理问题;引入它的理由是裸机开发有重复数据管理、共享性差、可移植性差三个缺点;使用环境四特点:设备随时移动、网络频繁断接、网络条件多样化、通信能力不对称;系统组成四块:主数据库管理系统、同步服务器、嵌入式数据库管理系统、连接网络;同步服务器是连接枢纽,保证两库数据一致性,主数据库可用 Oracle 或 Sybase。
小雅
第二段:三个关键问题是一致性、高效事务处理、安全性;弱连接下普遍采用乐观复制方法,先操作本地副本、重连后通过冲突检测和协调恢复一致性;安全三措施是终端认证、无线通信加密、数据副本加密存储。移动 DBMS 八特性:微核结构、支持 SQL92 子集、事务管理、完善的数据同步(上载、下载、完全同步三种,是最重要的特点)、支持多种连接协议、完备的数据库管理、平台无关支持 Windows CE 和 Palm OS、零管理。
阿明
乐观复制、SQL92、三种同步,本集三大抓手全抓住了。
小雅
下一集进入实时操作系统:逻辑正确和时间正确怎么定义,硬实时和软实时的本质区别在错过时限的后果,还有嵌入式操作系统和通用操作系统的差异、商业型和免费型的代表系统。