




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)嵌入式数据库管理系统研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 嵌入式数据库管理系统是近几年才发展起来的一项比较新的数据管理技术, 它以传统的数据库管理技术为基础,并结合嵌入式环境的具体特点,实现对嵌入 式设备上数据方便、统一的管理。 本论文对嵌入式数据库管理系统中几个关键技术的设计和实现进行了研究。 本文从理论上对嵌入式数据库中的关键技术进行了详细的讨论、研究,并完成了 一种嵌入式数据库管理系统的实现。文章从下面几个方面进行了讨论: 首先,本文讨论了嵌入式数据库的发展和前景。作为数据库领域的一个分支, 嵌入式数据库有其丰富的历史背景和客观的用户需求。在数据库领域日益发展、 完善的今天,嵌入式数据库以其自身的特点,越来越受到人们的重视。 其次,本文讨论了嵌入式数据库中基本功能实现的理论基础和实现方法。这 一部分研究了嵌入式数据库实现数据存储的关键技术,将数据结构、嵌入式技术 和数据库技术有机的结合起来。 第三,本文对数据库领域的关键技术一数据安全问题进行了研究,实现了数 据库的日志机制,实现了对多用户访问数据库的并发控制。 然后,本文研究了嵌入式数据库的另一个关键技术:s q l 编译器。先从理 论上讨论和解释了s q l 编译器的核心技术,然后在实现中采用u n i x 工具l e x 和y a c c 实现了一个s q l 编译器。 最后,本文详细讨论了中兴3 g 平台上数据同步模块的设计和实现。 关键字:嵌入式数据库,事务管理,结构化查询语言,同步 a b s t r a c t e m b e d d e dd a t a b a s em a n a g e m e n ts y s t e mi san e w t e c h n o l o g yb l o o m i n g i nr e c e n t y e a r s i ti m p l e m e n t st h ec o n v e n i e n ta n du n i f i e dd a t am a n a g e m e n to ne m b e d d e dd e v i c e s ,i n t e g r a t e dt h et e c h n o l o g yo ft h et r a d i t i o n a ld a t a b a s em a n a g e m e n ts y s t e ma n d t h es p e c i a lf e a t u r e so ft h ee m b e d d e de n v i l _ 0 n m e n t t h i sp a p e rf o c u s e so nt h ed e s i g na n di m p l e m e n t a t i o ni s s u e so ft h ee m b e d d e d d a t a b a s em a n a g e m e n ts y s t e m ,w h i c he v o l v e dt h ed e t a i l so ft h ee m b e d d e dd a t a b a s e m a n a g e m e n ts y s t e mt h e o r ya n dt h ei m p l e m e n t a t i o no f i t t h ed i s c u s s i o n so f t h et o p i c s a r eo r g a n i z e di nt h ef o l l o w i n g a s p e c t s : f i r s t l y , t h ed e v e l o p m e n ta n dp r o s p e c to ft h ee m b e d d e dd a t a b a s ei sd e s c r i b e di n t h ep a p e r a sad a t a b a s es u b s i d i a r y , e m b e d d e dd a t a b a s eh a si t ss t r o n gh i s t o r i c a lb a c k - g r o u n da n dc u s t o m e ld e m a n d n o w a d a y sw i t hi t sc o m p l e t ea n ds o p h i s t i c a t e df u n c - t i o n s ,t h ee m b e d d e dd a t a b a s eb e c o m e sm o r ea n dm o r ep o p u l a r s e c o n d l y , t h ep a p e rd i s c u s s e st h et h e o r ya n di m p l e m e n t a t i o nm e t h o d so f t h ee m b e d d e dd a t a b a s ef u n d a m e n t a lf u n c t i o n s t h i sp a r td e s c r i b e st h ek e y t e c h n o l o g i e so f t h ee m b e d d e dd a t a b a s es t o r a g em a n a g e m e n t ,i ti n t e g r a t e st h ed a t as t r u c t u r ek n o w l e d g e ,t h ee m b e d d e ds y s t e mt e c h n o l o g y a n dt h ed a t a b a s et e c h n o l o g y s u c c e s s f u l l y t h i r d l y r e s e a r c hi sc o n d u c t e do nt h et r a n s a c t i o np r o c e s s i n gi s s u e si nf o l l o w i n g p a r t ,r e s o l v e dt h el o gm a n a g e m e n ta n dt h ec o n c u r r e n c yc o n t r o lp r o b l e m ,w h i c hi st h e k e yt o p i c so f t h e d a t a b a s em a n a g e m e n t s y s t e m a n d t h e n ,t h i sp a p e rs t u d i e sa n o t h e rk e yt e c h n o l o g yo f t h ee m b e d d e dd a t a b a s e : h i g he f f i c i e n ts q lc o m p l i e r a f t e rd i s c u s s e da n de x p l a i n e dt h et h e o r yo ft h es q l c o m p l i e ri m p l e m e n t a t i o n ,t h i sp a p e ri m p l e m e n t s as q l c o m p l i e r w i t hc o m p r e h e n s i v e f u n c t i o n s ,u s i n gt h el e x a n dy a c ct o o l si nu n i x f i n a l l y , t h i sp a p e rd i s c u s s e st h ed e s i g na n di m p l e m e n t a t i o ni s s u e s o ft h ed a t a s y n c h r o n i z a t i o nm a n a g e m e n t i nt h ez t e3 g p l a t f o r mi nd e t a i l s k e y w o r d s :e m b e d d e dd a t a b a s e ,t r a n s a c t i o np r o c e s s i n g ,s q l ,s y n c h r o n i z a t i o n 1 i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所镀韵任何贡献均已在论文中作了明确 的说明并表示谢意。 签名:汪丕i 赴日期:丝年旦月兰l e t 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论交 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:逛叁控 日期:丑 绪论 1 1 课曩来源 1 绪论 本论文来源于中兴通讯3 g 统一平台嵌入式内存数据库项目。该数据库平台 的目标为在公司级平台的层面上结合当前已经初具规模的嵌入式操作系统平台 及统一网管平台,提供通信行业嵌入式内存数据库体系框架和规范的研制。 在通讯领域的嵌入式系统中,其数据存取的基础是文件操作。众所周知,文 件操作有其特有的优点。但是,其操作的效率、方便性和安全性等方面和数据库 系统是无法比拟的。所以,公司多年来一直在寻求一个高效的基于文件系统的嵌 入式内存数据库管理系统。 自主开发一个嵌入式内存数据库管理系统有很多好处。首先,量体定做,可 以根据实际需求优化系统性能。其次,使用自己开发的嵌入式数据库,对故障定 位比较容易。最后,自主开发可以降低产品价格,增强产品的市场竞争力。 因此,公司在综合考虑后,决定自主开发一个的嵌入式数据库,并让我作为 实习生参与这个项目。考虑到其的难度系数和其广泛的应用性,我决定将论文题 目定为:嵌入式数据库管理系统研究与实现。 实现一个高效的嵌入式数据库系统是一个复杂的工程,涉及到的知识领域非 常广泛,这是我在工作中所面对的主要困难,我完成了整个系统的需求分析,写 出了完整的详细设计文档,给出了系统框架、功能流程、数据流程和采用的各种 关键技术等。通过不断地尝试和分析,掌握了实现一个嵌入式数据的各种关键技 术,主要有:系统的存储管理、系统的安全内核、s q l 编译器和数据同步的实 现等等。 1 。2 。嵌入式数据库系统的市场需求 随着科技的发展和社会的进步,嵌入式系统获得了越来越广泛的应用。在办 公自动化领域,消费领域,通信领域,工业控制领域和军事领域等等领域中,都 可以见到嵌入式系统的影子。尤其是在办公自动化、消费电子和通信领域中,可 以说嵌入式系统应用得非常普遍,如用于计算机外设设备( 如打印机、磁益驱动 器等) ,洗衣机、微波炉等家用电器,手机、p d a ( 个人数字助理) 、数码相机等 个人设备等等。 l 绪论 在这许许多多的嵌入式应用中,很多应用都存在着对设备中的数据的管理问 题。在系统需处理的数据量不大的情况下,数据的管理还比较容易,当系统数据 薰增大到一定规模,一般系统中都将采用文件系统来进行管理。在文件系统中, 数据按其内容、结构和用途组成一系列命名的文件,用户可以通过操作系统对文 件进行打开、读、写、定位和关闭等操作。应该说嵌入式文件系统的应用很大程 度上方便了嵌入式系统中对数据的管理。但文件系统也存在一些明显的缺点,比 如说: 对应用程序编写者来说使用很不方便。应用程序的设计者必须对应用程序所 使用的文件的逻辑和物理结构有情楚的了解。嵌入式文件系统只提供文件打开、 关闭、读、写等一些低级的文件操作命令,对文件的查询、修改等数据处理都必 须在应用程序内解决。不仅如此,类似对数据排序这一类操作,在应用程序中解 决起来都非常的麻烦。 应用程序的维护工作量很大。因为应用程序的工作是直接建立在文件的基础 上的,对文件过分依赖,所以文件结构的每一次修改都将导致应用程序的修改。 我们知道,修改程序是很费时费力的事情,如果修改者不是程序的原始设计者, 则情况变得更加严峻。修改者不仅要花费很多时间来熟悉原有的程序,而且还要 保证修改后不会引起不应该有的副作用。 数据管理不规范。由于数据缺少统一管理,在数据的结构、编码、表示格式、 命名以及输出格式等方面不容易做到规范化、标准化:在数据的安全和保密方面, 也难以采取有效的措施。 针对赢接使用嵌入式文件系统的上述缺点,参照个人计算机领域中数据库管 理系统( d a t a b a s e m a n a g e m e n ts y s t e m ,简称d b m s ) 的成功经验,人们希望在 嵌入式领域的数据管理中也能用上数据库管理系统。由数据库管理系统来统一管 理数据,应用程序不必直接介入诸如打开、关闭、读、写文件等低级操作,用户 也不必关心数据存储和其他实现的细节,可以在更高的抽象级别上观察和访问数 据。随着计算机硬件技术的迅速发展,嵌入式计算机系统处理速度和存储容量都 得到巨大提高,这无疑为嵌入式数据库管理系统的应用奠定了良好的物质基础。 仅仅有了技术上的可行性还不够,还需要有现实的需求。随着应用向着分散 化、小型化的方向延伸,智能的网络设备交换机、路由器、p d a 、s m a r t p h o n e 、 信息家电等设备越来越多地走进了我们的生活,我们也已经越来越离不开它们 了。类似这些对信息量要求不大,可以方便存取数据的环境中都需要一个小的数 据库管理系统来管理本地的信息,这就有了嵌入式数据库的需求。毫无疑问,伴 l 绪论 随着嵌入式市场的蓬勃发展,会有越来越多的嵌入式设备希望得到嵌入式数据库 管理系统的支持,进行数据的统一管理。在强大的市场需求下,如果能开发出一 个优秀的嵌入式数据库管理系统软件,无疑具有巨大的社会效益和经济效益。 1 3 嵌入式数据库蟹理系统的特点 从上述嵌入式系统的特点可以看出,作为嵌入式系统中一个软件中间件的嵌 入式数据库管理系统,也必然受到嵌入式系统速度、资源以及应用等各方面因素 的制约。当然,嵌入式数据库管理系统本质上是由通用数据库管理系统发展而来, 它也可以是层次、网状或是关系型的数据库,甚至也可以是面向对象式的,但我 们应该清楚,嵌入式数据库管理系统和通用型数据库管理系统在运行环境、应用 领域等许多方面都是不一样的,所以,不能简单地把嵌入式数据库管理系统看成 是通用数据库管理系统在嵌入式设备上的缩微版。概括地说,嵌入式数据库管理 系统具有以下特点: 系统可利用的资源紧缺,硬件速度慢 嵌入式软件的运行环境是比较差的,较慢的c p u 和总线速度。小容量的r a m 和r o m ,都对嵌入式数据库管理系统的设计产生了很大的影响。要保证在有限 的资源下,系统能正常运转,就必须对系统的资源使用进行认真的控制;要尽量 提高系统的运行速度,就必须对系统耗时多的操作所使用的算法进行精心的设 计,尽量消除系统的性能瓶颈。 可靠性、可管理性和安全性 由于嵌入式数据库管理系统是运行在嵌入式设备上,所以它的运行基本上不 需要人的参与。这就对系统的可靠性和安全性提出了比较高的要求,并且系统要 能够实现零管理。 平台无关性 在嵌入式领域,硬件平台和嵌入式实时操作系统( e m b e d d e dr e a l t i m e o r i e r a t i n gs y s t o m e r t o s ) 可谓种类繁多,而每一种嵌入式应用都是运行在具体 的硬、软件平台上的。嵌入式数据库管理系统的设计必须做到和o s 和底层的支 撑软件之间的接口尽量简单,这样才有利于系统的移植,做到平台无关性。 1 4 当前国内外发展现状 嵌入式数据库在通讯计算平台、移动计算平台( 如h p c 、p d a ) 、家庭信息 环境( 如机顶盒和数字电视) 、电子商务平台( 如智能卡应用) 等领域得到广泛 绪论 的应用。正是基于这一事实,各国研究机构纷纷展开了对嵌入式移动数据库的研 究,各大数据库厂商也将开发相应主打数据库系统的嵌入式移动数据库系统作为 一个重要的发展方向。 在国外,i b m 公司在d b 2 通用数据库中推出了毋md b 2s a t e l l i t e 和 e v e r y p l a e e 版本,它所提供的移动计算功能使移动办公用户获得了与企业数据保 持同步的能力。员工能够随时进入企业的系统查询最新的产品清单或客户信息: 并可完成下订单或销售等交易。o r a c l e 的o r a c l el i t e 版本现在也可运行在低端及 w i n c e 、p a l m 等平台之上,提供了一整套开发、提交和中央化管理的工具,并 可以和o r a c l e 的桌面数据库保持同步,可以满足移动和嵌入式应用的需求。微 软的s q l s e r v e r7 0 也可为用户提供包括业务运营、移动计算、电子商务在内的 可伸缩的商业解决方案。同时h l f o r m i x 公司也由麾下的c l o u d s c a p e 公司推出了 其移动解决方案旗舰产品的最新版本c l o u d s c a p e3 0 ,可以对包括从服务器到笔 记本电脑,甚至到轻型信息设备,进行数据管理。而作为移动计算的市场领先者 s y b 韶e 公司多年前就敏锐地预见到计算设备小型化的发展趋势,投入了大量的人 员和资金对小型数据库进行研究与开发工作,并且在全球最早推出了移动与嵌入 数据库产品包s y b 髂es q la n y w h e r es t u d i o 。s y b a s c 在移动数据库市场连续多年 占据行业的领先地位。它的重要特性之一就是实现了多种客户端系统( 包括p c 、 便携机、手持和智能设备) 到标准的后台企业数据库系统的数据双向同步;它通 过u l t r a l i t e ,利用提交选项和m o b i l i n k 同步技术把企业数据扩展到p o s 终端、 手持设备、智能应用和嵌入系统中。根据u l t r a l i t e 提交选项为客户端系统定制 数据库应用,使得最小应用可小至5 0 k 。 在国内面对着嵌入式数据管理领域新的市场需求,东北大学软件中心凭借着 多年积累的数据库系统和嵌入式系统的开发经验,在大型数据库管理系统 o r e l l b a s e 的基础上,研制开发了嵌入式数据库管理系统o p e n b a s em i n i 。北京人 大金仓信息技术有限公司也凭借其强大的研发实力,推出了具有自主知识版权的 小金灵嵌入式移动关系数据库系统k i n g b a s cl i t e 。还有国内其他一些研究机构和 公司已经推出了自己的嵌入式数据库系统或者正在进行着这方面的研究工作。 以上这些嵌入式数据库系统在功能和性能上具有一定的共性,比如说一般对 资源要求较低,占用内存空间较小,从几十k 到几百k 不等,支持c 编程接口 和标准s q l 子集的开发接口:支持o d b c 或j d b c 。能与支持其标准的任意数 据库交换数据;支持双向数据交换能力,实现了中央数据库与嵌入式数据库间的 数据双向流动等。但这些数据库系统也有备自不同的特点。鉴于嵌入式领域的特 点,对嵌入式数据库产品还很难形成统一的标准,对嵌入式数据库管理系统的研 究,也还有很多工作要做。 d 1 绪论 1 5 论文内容安排 本文按照如下的顺序进行组织: 第一章:绪论 主要介绍课题的来源、意义和领域的发展概况。 第二章:系统的体系结构 主要介绍系统的体系结构,系统和平台中的其它模块的关系。 第三章:数据库系统数据表示和存储功能设计与实现 主要介绍系统中核心对象的设计。 第四章:数据库系统事务管理设计和实现 主要介绍系统事务管理的日志和并发控制机制。 第五章:s q l 编译器的实现技术 主要介绍用l e x 和y a c c 实现s q l 编译器。 第六章:数据库系统数据同步管理设计和实现 主要介绍系统数据同步模块的设计和实现。 2 系统体系结构 2 系统体系结构 在讨论整个系统的开始,我们首先从系统设计的角度出发,讨论一下整个系 统的体系结构设计。 2 1 典型的数摄库警理系统结构 图2 - 1 典型的数据库管理系统结构成分【1 1 下面我们从四个方面对数据库管理系统成分进行描述: 数据定义语言命令( d d l :d a t a d e f i n i t i o nl a n g u a g e ) 这些命令由数据库管理员输入,以执行模式修改命令。这些进行模式修 改的d d l 命令由d d l 处理程序进行分析,然后传给执行引擎。由执行引擎 经过索引文件记录管理器,去改变元数据,即数据库的模式信息a 缓冲区管理器: 2 系统体系结构 数据库中的数据通常驻留在第二级存储器中。在当今的计算机系统中, “第二级存储器”通常是磁盘。然而,数据必须在主存储器中,才能对数据 进行有效的操作。于是,数据库管理系统中有一个称为缓冲区管理器的成分, 它负责将可利用的主存空间分割成缓冲区。缓冲区是在页面同等大小的区 域,磁盘块的内容可以传送到缓冲区中。这样,所有需要从磁盘得到信息的 数据库管理成分都与缓冲区和缓冲区管理器打交道,或直接地通过执行引 擎。 事务管理器 为了保证数据操作的原子性、持久性等特征,需要引入事务管理器。事 务管理器执行下面任务:日志记录、并发控制和死锁解决。 查询处理器 可以分为两个部分,一是:查询编译器,它将用户的查询翻译成一种内 部形式,称作查询计划。查询计划是要在数据上执行的一系列操作。查询编 译器包括三个主要部分:查询分析器( 它对用户的输入字符串分析,通常为 s q l 语句分析,形成一个树结构) 、查询预处理器( 它对查询进行语法检查, 并进行某些树结构转换,形成最初的查询计划的代数操作符) 和查询优化器 ( 它将最初的查询计划转化为对实际数据的最有效的操作序列) 。 2 2 嵌入式数据库系统体系结构 在上面一节我们主要讨论了一个典型数据库管理系统的系统成分,通过上面 的讨论我们对数据库系统的各个成分有了比较清楚的认识。这一节我们主要结合 需求分析,讨论实现一个嵌入式数据库系统的体系结构。 : 二二二二垂受匮二二 辨蒲,l竺苎旦: l l 壁篓呈:一 l 囱2 2 嵌入式数据库系统体系结构圉 2 系统体系结构 从图2 - 1 我们可以将嵌入式数据库管理系统分为三大模块: 外壳 用户可以直接调用内部的a p i 接口函数和s q l 接口函数,也可以通过 接口函数来进行数据库管理。 数据库应用程序位于d b m s 之外,它处理的是数据库应用。是d b m s 与终端用户的中间层,数据管理应用开发人员在这一层工作,它使用e d b 提供的a p i 调用。 数据库系统向上提供的a p i 供数据库应用开发人员使用,它抽象出了对 数据的统一操作,屏蔽了下层的实现细节:其具体实现由下层决定。 其功能主要是对a p i 输入进行有限处理,将需要处理的用户输入转化为 数据库内部可处理的数据结构。 内核 这部分是整个系统的核心,包含了嵌入式数据库的所有核心功能。主要 有;系统管理、事务管理器等。 数据库引擎是整个数据库系统的总控模块,实现全局控制,保证数据库 系统正确高效,协调地工作。它监视着数据库运行过程中的所有操作,控 制分配和管理数据库资源等。数据库引擎对不需要接口层进行处理的a p i 调 用进行直接处理。决定将数据库操作引导到相应的处理模块;同时可进行安 全性控制和存取权限控制。 2 3 嵌入式数曩库蕾理系统和中兴3 g 平台中其它模块的关系 数据库子系统分布在前台各处理器上。从结构上看数据库子系统属于分布式 数据库系统,主要为前台各个子系统提供数据支持。数据库子系统在系统中的位 置: 图2 弓嵌入式数据库管理系统在3 g 平台中的位置 2 系统体系结构 由图2 弓可知,嵌入式数据库系统使用操作系统平台提供的接口使用系统资 源,并提供数据库接口给平台中其它子系统使用: 为信令配置模块完成与呼叫信令、n 0 7 信令、a t m 信令相关的信令处理提 供数据支持。 为承载配置模块完成以a t m 为传输承载的相关网元以及为以口为传输承载 的相关网元提供数据库支持。 为o s 、系统控制、o a m & t m n 所完成的模块功能提供数据库支持。 2 4 小结 通过这一章的讨论,我们己经对整个系统的体系结构有了整体把握,总的 来说,我们的工作主要是数据存储管理设计、数据库系统安全机制设计、s q l 解析的实现,数据库同步管理设计。 在下面的四章中我们按这样的分类来讨论嵌入式数据库管理系统的实现思想 和实现方法: 嵌入式数据库系统基本管理功能的设计:主要讨论数据库存储管理的基本功 能实现方法。 嵌入式数据库系统的事务管理:主要讨论事务管理器。 s o l 编译器:主要讨论查询处理器中的查询编译器和查询预处理器 嵌入式数据库系统的同步机制:主要讨论同步管理器。 3 嵌入式数据库系统数据衰示和存储功能设计与实现 3 嵌入式数据库系统数据寰示和存储功能设计向实现 本章讨论一个嵌入式数据库系统基本功能的设计思路和实现方法。嵌入式数 据的基本功能指的是数据库中基本数据元素的物理表示和存取控制。通过对数据 库中数据元素的抽象,我们将数据库中的数据元素分为表数据结构、索引数据结 构、资源队列数据结构以及文件数据结构。通过对以上数据库核心结构的控制, 为整个数据库提供数据表示和存储的基本功能。本章主要从下面几个方面来对具 体的设计思路和实现方法进行讨论: 1 数据库中核心对象的设计和实现,包括表结构、索引结构、资源队列结 构和文件读写结构 2 对系统中的存储管理设计和实现进行优化 3 1 ,系统中的棱心对象的设计与实现 根据嵌入式数据库基本功能的特点,设计时将系统中涉及的数据分为数据 表,数据表索引,资源队列三大类。并由此定义了系统的3 大类核心数据对象: 二维表对象( t a b l eo b j e c o 、表索引对象( i n d e xo b j e c t ) 和队列对象( q u e u eo b j e c t ) 。 对于每一种核心对象,都有相应的对象特征描述来规定该对象的共有特性以及对 象的基本方法。每一种基本对象的某个实例在系统中用唯一的一个1 6 位整数标 识,这个整数称为对象的旬柄( h a n d l e ) 。因此,设计与实现的关键就在于对这几 个核心对象结构,各自定义方法的重载实现以及对它们彼此间的关系的理解。 3 1 1 系统中裹结构的设计与实现 3 1 1 1 ,二维表结构数据结构 t y p e d e fs t r u c t d b h a n d l ed b h a n d l e ; c h a rd b n a m e d b n a m e l e n b y t e曲c a t e g o r y ; d w o r dd b e l e m e n t ; d w o r dd b m o d u l e ; 3 嵌入式数据库系统数据表示和存储功能设计与实现 w o r d d b t a g ; b y t e d b s y n c t y p e ; d w o r d d b c a p a c i t y ; w o r d d b t u p l e l e n ; b y t e d b d o m a i n n u m ; d w o r d d b t u p l e n u m ; d w o r d d b t u p l e n o ; l p d n 珏汀d b i n f o : l p s t r d b a d d r ; d b h a n d l e i d x h a n d l e d b i n d e x n u m ; l p q u e i t e mq u e a d d r d b q u e g r o u p n u m ; d b h a n d l e i d l e q u e h a n d l e ; 搴二维表方法, d b m e t h o d d b l o a d p r c p a r c ; d b m e t h o dd b l o a d ; d b m e t h o d d b l o a d t r i g g e r ; d b m e t h o d d b s a v e p r e p a r e ; d b m e t h o dd b s a v e ; d b 匝t h o d d b s a v e t r i g g e r ; d b m e t h o d d b i n s e r t p r e p a r e ; d b m e t h o dd b i n s e r t ; d b m e t h o d d b l n s e r t t r i g g e r ; d b m e t h o d d b d e l e t e p r e p a r e ; d b m e t h o d d b d e l e t e ; d b m e r h o d d b d e l e t e t r i g g e r ; d b 鹰t h o dd b m o d i f y p r e p a r e ; d b m e t h o dd b m o d i f y : d b m e t h o d d b m o d i f y t r i g g e r ; d b m e t h o dd b n o t i f y ; d b m e t h o dd b d i s t r i b u t e ; ,p a c k e d1d b r t , + l p d b r t ;产7 9 + 6 4 b y t e s + 其中的关键数据域: d b h a n d l e :关系表的旬柄 3 嵌入式数据库系统数据表示和存储功能设计与实现 一个数据实例句柄是一个1 6 位的整数,其中的高4 位标识数据对象类别,低 1 2 位标识该数据对象类的数据实例编号。 表3 1 数据实例旬柄 b i t l 5b i t l 4b i t l 3b i t l 2b i t l l 0 0 o b j e c t c l a s so b j e c t i n s t a n e e 表3 - 2 对象类型 字段名取值解释 0 b j e c t c l a s s l 二维表 0 b j e c t c l a s s 2 索引 o b j e c t c l a s s 3队列 d b n a m e d b n a m e l e n :关系表名 d b s y n c t y p e :二维表同步类型( 不同步,表级同步,记录级同步) d b c a p a c i t y :二维表能容纳的元组数 d b t u p l e l e n :记录标记+ 记录的有效字段长度 d b d o m a i n n u m :记录中包含的字段数量 d b t u p l e n u m :关系表有效记录数 d b t u p l e n o :二维表中当前操作元组号 b i n f o :二维表字段描述表地址 字段描述表数据结构: 表3 - 3 字段描述表 字段名类型解释 d m n m n e c h a r 11 】 a s c i i 码字段名 d m t y p e c h a r字段类型 d m 0 丘e tb y t e 字段相对记录的偏移量 d m t a g b y t e 字段属性标志 d m l e l lb y t e 数据域内存格式长度 d m s a v eb 0 0 l字段是否转储标志 数据域类型支持四种 表3 - 4 数据域支持类型 数据域类型名d m t y p e 值d m l e n 值数据类型 字符型( c 型) c n b y t e n 数字型( n 型) n 1b y t e c h a r 3 骶八虱戳琚库糸绣敷据爱示和j 手储功能设计与实现 数字型( n 型) n 2w o r d s h o r t 数字型( n 型) n 4d w o r d l o n g 3 2 逻辑型( l 型) l 1b o o l 紧缩b c d 型( b 型) b n b y t e n 】( 以四b i t 表示一数据, 范围( 0 0 x f ) a s c i 型( a 型) a n b y t e n ( 以a s c i i 码显示) 字段解释 表3 - 5 宇段解释 段名取值解释 d b t 8 9b i t 0 = 0 1二维表数据已转储未转储 b i t l - - o l二维表数据主备同步失步 b i t 2 = o l二维衰数据模块间同步失步 d b a d d r :二维表元组块存放地址,这是数据在内存中存储的真正位置, 表现为一个入下图所示的数据存储区。 i d x h a n d l e d b i n d e x 砌 :二维表索引旬柄:i d x d b h a n d l e 0 为默认 的主索引 q u e a d d r d b q u e g r o u p n u m :二维表的队列内存起始地址, d b q u e g r o u p n u m 队列使用位表0 表示未创建;1 表示己创建 i d l e q u e h a n d l e :空闲记录号队列旬柄 二维表方法: d b l o a d :二维表从硬盘加载的方法 d b l o a d t r i g g e r :二维表加载触发器 d b s a v e :二维表转储到硬盘的方法 d b s a v e t r i g g e r :二维表转储到硬盘的触发器 d b l n s e r t :二维表中插入一条记录的方法 d b i n s e r t t r i 鹊e r ;二维表中插入一条记录的触发器 d b d e l e t e :二维表删除一条记录的方法 d b d e l e t e t r i g g e r :二维表删除一条记录的触发器 d b m o d i f y :二维表中更新一个记录的方法 d b m o d i f y t r i g g e r :二维表中更新一个记录的触发器 d b n o t i f y :通知其他进程的方法,常用于在插入,删除,更新记录后,调用 该方法告知其他进程记录的变化情况 3 嵌入式数据库系统数据表示和存储功能设计与实现 d b d i s t r i b u t e :判断记录分发的方法 3 1 1 2 二维表对象的内存组织 由表对象的数据结构得出表对象的内存组织图如图3 - 1 l 7 r e c n r df n i n d i c d b n m e d b m o d u i e 。k 世d o m a i n n u m f 2 、 d b t a g 。1 芑:? :。r 1 8 d b c a o a c i w i 一一【 “、 d b t u d l c l e a a ll f j 十l d b d o r r m i n n u mf 1 + 2 d b i n f o dbaddr 0 + 3 i a t a l nf o d b a d d r- _ d b t u p l c n u mr n 、 d b t u p i c n o i d x h a n d l e d b i n - - d b t u p l c n u m 、t n 口v mi 1 n = c l b c a p a c i t y 1 fc u r r e n 士u 。t e d b l o a d p r c p a r c + t h i s _ l o a d e r p r e p a r e 0o 罂竺纠 d b l o a d_ + t h i s _ l o a d e r 0 d b t u p l e l e n + d b l o a d t n g g c r 恤5 一l 。们e f t “g g 。r o o f s e t d b s a v c断ss a v e o f r o m d b l m e r t p r e p a r e t h n i p 唧“( ) d b i n f o d b l n s c r t + t h i s _ i n s e r t 0 d h l n 自 n t h 。t i l i s _ i n 8 帆电g 盯【j l o c a t et h ep o s i t i o n d b m o d i f y p r a i e _ + t h i s m o d i f y p 嘲3 a m o t h ef i e l d d b m o d i 母 【h i s _ m o d i f y ( 、 d b m o d i 白t r i g g e r t h i s _ m o d i e y t r i g g e r ( 、 d b d e l e t e p r e v a r e + t h i s _ d e l e t e p r e p a r c o d b d e l e t c _ t h i s _ d e l e t e ( ) d b d e l e t e t r i g g e r l + t h i s _ d e l e t e t r i g g e r o f 图3 i 寰的内存组织 如图3 t ,数据库管理系统定位一个数据域在内存中存储位置的过程如下: 得到表的句柄d b h a n d l e ,通过这个句柄求得表记录的数据存储区地址d b a d d r 和该表的字段描述数据结构韵地址d b l n f o 。在表记录数据存储区定位要查询的记 录的起始位置。通过查询d b i n f o 中的数据字典求得字段在记录中的偏移量。访 问字段的数据即为所求。 从图3 4 可以发现表对象设计的三个主要线索: l 。记录在内存中存储是在空闲队列( 资源队列) 基础上进行e 1 4 2 方法重载的实现是通过提供函数指针来实现。 3 表与索引、队列关系的连接通过相关对象的旬柄或地址来实现 3 1 1 3 二维表a p i 设计 二维表对象基本操作方法: 一c r e a t e t a b l e 功能:创建一个二维表,若创建过程中产生错误,返回0 。 输入: f 1 ) d b n a m e :二维表名,表名不超过8 个o e m 字符: ( 2 ) d b m o d u l e :二维表模块分配字,表示需要为被创建的表分配内存的模块类 型,不满足该条件的模块上系统不为该表分配内存; ( 3 ) d b c a p a c i t y :二维表能容纳的最大元组数量; 输出: ( 1 ) 若返回值大于零,表示二维表对象旬柄; f 2 ) 若返回值等于零,表示二维表登记表已满; _ g e t d o m a i n 功能:获取二维表中当前记录中指定字段的值。 输入: ( 1 ) h d b :二维表对象句柄; f 2 、d m n a m e :指定的字段名; ( 3 1d m a d d r :存放字段值地址。 输出: ( 1 ) 若返回t r u e ,d m a d d r 为字段值; ( 2 ) 若返回f a l s e ,表示指定字段名d m n a m e 不存在a 功能:将二维表h d b 中当前记录中的字段d h l n 锄e 的值用d m a d d r 的内容填充。 输入: ( 1 ) h d b :二维表对象句柄; ( 2 ) d m n a m e :二维表域名; ( 3 ) d m a d d r :存放域值地址; 输出: 3 嵌入式数据库系统敷据裹示和存储功舵设计与实现 ( 1 ) 若返回t r u e ,设置成功; ( 2 ) 若返回f a l s e ,表示指定字段名d m n m n e 不存在。 g e t f i d d b y n o 功能:获取二维表中当前记录中指定字段的值。 输入: ( 1 ) h d b :二维表对象句柄; ( 2 1d m n o :指定的字段序号; ( 3 ) d m a d d r :存放字段值地址。 输出: ( 1 ) 若返回t r u e ,d m a d d r 中为字段值; ( 2 ) 若返回f a l s e ,表示指定字段名d m n o 不存在。 s e t f i e l d b y n o 功能:将二维表l l i ) b 中当前记录中第d m n o 字段的值用d m a d d r 的内容填充。 输入: ( 1 ) h d b :二维表对象句柄; f 2 、d m n o :二维表域的序号: ( 3 1d m a d d r :存放域值地址; 输出: f 1 ) 若返回t r u e ,设置成功; ( 2 ) 若返回a l s e ,表示指定字段名d m n o 不存在。 _ s e t t u p l e n o 功能:将指定二维表中的一条记录设置为当前操作记录。 输入: mh d b :二维表对象句柄: ( 2 1t u p l e n o :指定的二维表元组号。 输出: ( 1 ) 返回t r u e ,设置成功; ( 2 ) 返回f a l s e ,有三种可能: ( a ) 若t u p l e n o = 0 ,h d b 的当前记录号= 1 ; ( b 、若t u p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年成功入职必刷题招聘笔试模拟题目及答案
- 2025年英语翻译岗位招聘考试指南翻译技能预测题及解析
- 危险化学品泄漏事故现场处置方案
- 2025健康养老专业试题及答案
- 2025年可持续发展工程师专业能力认证考试试题及答案
- 2025年健康照护师高级试题及答案
- 2025年保健药品测试试题及答案
- 2025年酒店管理师证考试中级模拟题集与答案解析
- 药剂科人员工作总结汇报5篇
- 北京市门头沟区2023-2024学年九年级下学期中考第二次模拟考试道德与法制试题含参考答案
- 2025年自动驾驶汽车在自动驾驶环卫车领域的应用研究报告
- 潜才晋升管理办法
- 二零二五年度汽车配件销售合作协议
- 手术室术中无菌技术课件
- 2025至2030中国食品工业中的X射线检查系统行业项目调研及市场前景预测评估报告
- 企业安全生产费用支出负面清单
- 2024云南师范大学辅导员招聘笔试真题
- 2025年广省中考作文《走到田野去》写作指导及范文
- 2025年山东省中考数学试卷(含答案逐题解析)
- 慢阻肺非肺部手术麻醉管理策略
- 一例ICD置入患者的护理查房
评论
0/150
提交评论