- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式数据库管理系统的设计
敖磊1 姜立秋2
(1.大连理工大学城市学院计算机工程学院,辽宁大连,116600;2.大连理工大学城市学院计算机工程学院,辽宁大连,116600)
摘要:本文设计了一种嵌入式数据库管理系统对嵌入式数据库管理系统中几个关键技术的设计和实现进行了研究。这些研究对于应用于嵌入式数据库管理系统的研究具有很好的参考价值。嵌入式EDBMS,是由众多模块组成微型数据库管理系统。在设计EDBMS的时,可以依据各个模块主要功能、功能间的依赖关系以及在EDBMS总体层次结构中所处的位置,将其核心划分为三个部分:存储管理、并发控制以及事务处理 [1]。
1 存储功能的设计思路
数据库系统一般存在三种模式,即内模式、外模式以及概念模式。EDBMS核心模块中的存储功能为这三种模式建立了很好的映射关系。主流的嵌入式操作系统如VxWorks,由于具有很强的文件系统功能,因此可以利用这个特点完成系统文件和数据文件在内外存之间的读写操作。
另外,在分布式环境下还需要在EDBMS上实现有关网络通信功能的模块,可以称之为网络通信模块。当系统运行时,存储管理模块可能要判断某个数据是来自于某个通信端口还是来自于本系统中的FLASH。而网络通信模块可以通过建立一个统一的文件视图,在通信端口和内存间实现有效的映射,使存储模块不必关心某个数据文件的来源。
存储管理功能的设计需要注意三个问题[2]:
其一,无论用户还是某个应用进程,对数据库系统的操作一般包括数据的增、删、改、查、并归和排序等。在操作过程中,可能出现在内存中多次复制同样的记录的情况,这样会影响到系统的运行效率。因此可以完成一个能够在操作结果和文件之间建立映射关系的结构体——结果集。这个结构体的内容包括记录编号和文件FD。当应用程序需要访问数据时,该结构体会根据其中的内容从打开的文件中取出。
其二,为了防止由于频繁的写FLASH造成EDBMS性能的下降,可以将页面中变动的内容暂存在内存中。该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到中去以保持存中的数据和中的数据是一致的。
图1
2 并发控制功能的设计思路
进行并发事务处理的主要目的是为了保证事务处理的一致性和冲突解决的高效性。引起冲突的主要原因有两方面:第一是多个进程对同一个表项中的数据进行修改;第二是事务对数据先读后写造成的冲突。
在EDBMS中,为了使进程间能够很好地通信,可以运用“锁策略”实现多个并行的事务并发读取同一个数据资源。即通过加锁的方法实现多个并行事务对同一个表进行读操作,但只能有一个事务对该表执行写操作的过程。这两个方面分别通过“共享锁”和“排他锁”完成。各个事务必须严格遵照“锁策略”的规则。
锁的操作分为上升阶段和释放阶段。当一个事务运用“锁策略”向数据库提出操作请求时,EDBMS会产生,SubTransaction进程完成该操作。这个时候为上升阶段;在整个操作执行结束后,将释放该进程,这个时候为释放阶段。
在并发处理功能中,如何解决死锁是十分重要的问题。因此在EDBMS中可以引入死锁检测机制。即首先认为所有事务的调度是串行的,不会产生死锁。每个等待死锁的事务上都给定一个时间戳。一旦有两个以上的锁节点上绝大部分的时戳超过了预设定的门限,既认为有死锁产生,即可通知监视模块,进行相关的处理。
3 事务处理功能的设计思路
事务处理功能是嵌入式数据库管理系统十分重要的组成部分。它的主要任务是调度、管理分布式数据库上运行的事务,负责子事务的初启与结束,并监督执行。事务的状态有四种,分别是开始事务、提交事务、回滚事务和事务恢复[3]。
当用户的应用进程需要对数据库进行访问的时候,这样的操作必须在一个任务中进行。每个任务中必然会有一个事务管理的操作,其主要作用是保证对数据的安全访问。在事务开始时,必须申请事务将要用到的所有锁,当事务结束时,释放所有的锁。
EDBMS事务处理功能要完成两个非常重要的工作。首先,它要接受通过函数调用或通过消息机制的事务请求,根据操作类型产生相应的事务管理进程。另外它还要按照可串行化调度的方法,依据系统表或用户数据表的不同,将每个具体的事务划分为若干“写”和“读”的序列。同时,对于写事务产生相应的日志机制并协调日志管理模块的动作。
EDBMS产生的所有可并发的读事务和写事务,构成一个子事务空间,这些子事务访问文件视图(数据空间)完成整个事务的阶段性操作。这个过程同时受到并发控制模块的管理。
事务处理功能的实现以及与其他功能模块的关系如下图所示:
图2
4 模块间的交互
在嵌入式数据库管理系统中常见的功能模块包括初始化模块、异常处理模块、日志管理模块、备份还原模块、监视模块、网络通信模块以及上面提到的系统核心中的三个功能模块。模块之间的交互主要采用以下两种方式:借助消息队列
文档评论(0)