已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着嵌入式技术的快速发展和其应用领域的不断扩大,单纯的文件系统已经无法满足系统和用 户对大量数据处理的各种要求。因此嵌入式数据库的概念随之引入,它作为嵌入式软件的一个分支 越来越受到业界的重视。嵌入式数据库的发展扩大了嵌入式系统的应用范围,提高了数据的共享性 和应用软件的可重用性。 本文首先分析和研究了通用数据库技术的基本理论,在此基础上详细地阐述了本课题研究和实 现的嵌入式数据库中主要模块的实现原理、内部结构和其中重要的数据结构。然后描述了在实际的 嵌入式系统中,运行于这个嵌入式数据库上各类应用数据库的设计和实现。最后,通过对数据库操 作的系统测试来验证其总体性能的优劣性,经过验证该嵌入式数据库性能稳定,具有良好的搜索效 率。 目前,本文实现的嵌入式数据库已经成功的运行在嵌入式操作系统u c l i n u x 和a m l 的软件平台 上,其运行的硬件平台有m o t o r o l a m 6 8 0 0 0 系列和i n t e l x s c a l e 系列的处理器。在实践过程中证明t 该数据库可以方便的移植到不同的嵌入式系统平台上,简化了应用程序的整体开发过程和缩短了开 发周期,提高了用户存取和搜索数据的效率,实现了多用户之间的数据共享。针对现有嵌入式数据 库系统的不足,未来将对其进行不断地改进和优化,以便开发出更高性能的嵌入式数据库。 关键词:嵌入式系统嵌入式数据库数据访问模式内存池系统 东南大学硕士论文 a b s t r a c t a i o n gw i t ht h ei n c r e a s i n gd e v e l o p m e n to ft h ee m b e d d e ds y s t e ma n dt h ec o n t i n u o u s l yb r o a do ni t s a p p i i c a t i o ns c o p e s ,t h es i n g l ef i l es y s t e mh a sn o ts a t i s n e ds y s t e ma n du s e r sn e e dt ol a 唱ed a t am a n a g e m e m t h e r e f o r e ,t h ec o n c e p to ft h ee m b e d d e dd a t a b a s ei si n t r o d u c e d ,a n da s 姐o f f e to fe m b e d d e ds o f t w a r e ,i s m o r ea n dm o r er e g a r d e db yc o m p u t e ri n d u s 廿vt h ed e v e l o p m e mo ft h ee m b e d d e dd a t a b a s ee n l a 唱e s a p p l j c a t i o ns c o p eo f e m b e d d e ds y s t e m ,a n di m p r o v e sd a t as h a r ea n dr e p e a to fa p p l i c a t i o n t h ep a p e ra n a l y s e sa n ds t u d i e sd a t a b a s e sp r j n c i p a lt h e o a 1 1 dd e t a l e d l ye 。p 而a t e sr e a l i z a t i o nt h e o i m e m a ls t r u c t u r ea n di m p o r t a n td a t as t m c t l l r eo fm a i nm o d u l e so nt h ee m b e d d e d 出止a b a s e t h e nj t d e s c r i b e sr e a l l z a t i o no fv a r i o u s 印p l i c a t i o nd a t a b a s er u n n i n go nm ee m b e d d e dd a t a b a s eo nt h ep r a c t i c a i e m b e d d e ds y s t e m f i n a l ly ,t 1 1 ep a p e rv a l i d a t e si t sp e r f b m a n c eb ys y s t e mt e s to fd a t a b a s et e s tp r o v e st h a t t h i sd a t a b a s ei ss t e ,l d ya n d9 0 0 ds e a r c hs p e e d a tp r e s e m ,血ee m b e d d e dd a t a b a s eh a ss u c c e e d e di nr u n n i n gs t a b l yo nt h es o f t w a r ep l a t f o m l ,f o r e x a m p l eu c l i n u xa n da 皿o p e r a t i n gs y s t e m ,a n do nt h eh a r d w a r ep l a t f o n n ,i n c l u d i n gm o t o r o l am 6 8 0 0 0 s e r i e sa n di n t e lx s c a l es e r i e sp r o c e s s o lp r a c t i c ep r o v e st h a tt h ee m b e d d e dda t c l b a s ec a nb ec o n v e n i e n t l y p l a n t e dt od i 船r e n ts y s t e mp l a t f o 加,s i m p l j n e st h ew h o l ee x p l o j t a t i o nc o u r s eo fa p p l i c a t i o na n ds h o n e n s e x p l o i t a t i o np e r i o d s ,i m p r o v e su s e rs t o r a g ea n ds e a r c hs p e e d ,r e a l i z e sm u i t i u s e r sd a t as h a r e t h es y s t e m s h o u i db eah i g h - p o w e r e de m b e d d e dd a t a b a s eb yk e e p i n go p t i m i z i n g k e yw o r d s :e m b e d d e ds y s t e m ,e m b e d d e dd a t a b a s e ,d a t aa c c e s sm e t h o d ,m e m 。r yp o o l 学位论文独创性声明 本人声明:所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我 所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得东南大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本 研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 签名埴髦日期:塑:5 : 关于学位论文使用授权的说明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交的学位论文 的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文 档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查询 和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 签名:童箜 导师签名日期:圭塑:占 论文研究背景 绪论 随着科技的不断更新,信息电器、移动计算设备在人们生活中的地位日益增强,这些都进一步 促进了嵌入式系统的发展和产业化的进程,同时也对嵌入式系统的性能提出了更高的要求。嵌入式 系统是指以应用为中心、以计算机技术为基础、软件硬件可裁减、适应应用系统对功能、可靠性、 成本、体积、功耗严格要求的专用计算机系统【1 】。它通常指非p c 系统,包括硬件和软件两部分。 嵌入式技术具有广泛的应用范围,其无处不在的应用前景和良好的发展趋势己引起了全球i t 业 众多厂商及广大消费者的关注,它可以用于移动计算平台( p d a ( 即p e r s o n a id i g i t a la s s i s t a n t ,个人 数字助理) 、掌上电脑等) 、信息家电( 数字电视、机顶盒、网络设备等) 、无线通讯设备( 智能手机、 股票接收设备等) 、工业商业控制( 智能工控设备、p o s a t m 机) 、电子商务平台、甚至军事应用 等等诸多领域。可见,嵌入式系统早已渗入到人们日常生活的每一个角落,与我们的生活息息相关。 嵌入式软件是嵌入式系统中研究最为活跃的课题之一,其中涵盖了嵌入式操作系统、嵌入式图 形操作系统、嵌入式技术的开发工具与开发环境等一系列研究方向【1 9 】。随着嵌入式系统的发展和用 户应用的变化,_ i = j 户对嵌入式软件提出了更多的要求,嵌入式软件的研究领域也在不断扩大。嵌入 式数据库就是在这种环境下孕育而生的。 早期的嵌入式系统,如移动电话、掌上电脑等移动信息终端产品,功能简单,系统和用户交互 的数据量小,且各功能间数据的关联性弱,需要共享的数据少,所以对数据存储和操作的要求较低。 初时大多数产品的数据都是基于记录文件来完成的,即一条记录对应一个文件,对记录进行的添加、 修改、删除、读取、查询、排序等各种操作,直接对应于文件的各种操作。这种对数据的处理方法, 基本可以满足早期的嵌入式用户的要求。然而,随着嵌入式系统应用领域的不断广泛、移动信息终 端产品配置的提升和用户储存信息量的增大及关联性的增强,用户对数据存储和操作的要求也在不 断提高,早期嵌入式系统对数据的处理方法已远远不能满足用户的要求,因此,数据库的概念引入 到嵌入式系统中。 数据库技术一直随着计算的发展而不断进步,随着移动信息终端产品的丰富,嵌入式操作系统 对数据库系统的需求为数据库技术开辟了新的发展空间。嵌入式数据库技术目前已经从研究领域逐 步走向广泛的应用领域。随着智能移动终端的普及,人们对移动数据实时处理和管理要求的不断提 高,嵌入式数据库越来越体现出其优越性,从而被学界和业界所重视。 著名的通用数据库管理系统【2 】例如s q l j t e 、m y s q l 等,它们适用于通用计算机系统上海量数据 的存储和搜索。但是,对于各方面资源有限的嵌入式系统设备来说,它 j 并不适用。本文在通用数 据库理论研究分析的基础上,针对移动信息终端设备要求对数据记录频繁操作以及数据共享的问题, 实现了适合于资源有限的移动信息终端应用的数据库,达到对数据的统一管理,增强应用程序的可 移植性。 论文的主要工作 本课题的主要工作是,在嵌入式系统( 主要是移动信息终端产品) 中如何实现一个高效的数据 库系统,以便有用地、准确地、及时地完成用户对数据的操作。实现过程中的具体研究如下: 嵌入式数据库的实现。首先,把数据库按模块划分,主要包括数据库接口模块、数据访问 东南大学硕士论文 模块、数据共享管理模块、文件管理模块。然后研究如何实现这些模块,包括选取恰当的 外部接口、数据结构、算法、存储方式等等。 在实际嵌入式系统平台( u c l i n u x 操作系统,m o t o m l a m 6 8 0 0 0 1 处理器) 上的嵌入此数据库, 实现具体的应用数据库。 _ 基于u c l i n u x 操作系统,在其白带的指令级模拟器平台上建立一套数据库的测试系统,测 试和验证这个嵌入式数据库的性能。 总结嵌入式数据库的实现,并指出待改进之处。 本文的组织 根据课题所涉及到的主要工作,本文的重点是论述嵌入式数据库的研究和实现。同时也简单的 介绍了数据库和嵌入式数据库的相关知识。文本结构如下: 绪论部分介绍本文的研究背景、本文的主要结构和组织。 第一章,综述嵌入式数据库的发展、技术要求以及研究趋势。 第二章,数据库技术的相关概念和原理的介绍。 第三章,嵌入式数据库的实现。分别介绍数据库几个重要模块的实现:外部接口、数据访问模 块、共享内存管理模块、文件管理模块。 第四章,介绍在嵌入式系统中数据库的应用,例如:名片、备忘、单词记忆等应用程序中应用 数据库的建立。 第五章,构建测试平台,根据测试数据,分析这个嵌入式数据库的总体性能。 最后,总结了本文的工作,提出未来的研究工作。 见m o i o r o l am 6 8 0 0 0 处理器说明书 第一章嵌入式数据库概述 第一章嵌入式数据库概述 1 1 嵌入式数据库的发展 自从计算机产生开始,其技术和应用发展的原动力就主要来自两方面,一是不断发展扩大的应 用需求;一是其它支撑技术的发展。当然,数据库技术也不例外。数据库的支撑技术之一是计算环 境,它是数据库发展不可缺少的重要因素,两者互相影响,互相促进,不断发展。 计算环境经历了集中式计算环境、分布计算环境、网络计算、移动计算环境m c e ( m o b i l e c o m p u t i n ge n v i r o n m e n t ) 和普遍化计算环境p c e ( p e r v a s i v ec o m p u t i n ge n v i r o 啪e n t ) 等多种计算模 式。移动计算是对“任何时间,任何地点的立即通讯”的扩展。在分布式计算的基础上,计算环境 进一步扩展为包含各种移动设备、具有无线通信能力的服务网络,构成了一个新的计算环境,即移 动计算环境。相应地,数据库系统也发展了集中式数库系统、分布式数据库系统、b a ,s 多层结构 的数据库系统、嵌入式数据库和移动数据库技术【6 】。 嵌入式移动数据库简单来说指可嵌入到移动计算设各上的数据库。从系统的体系结构方面,它 的定义为:嵌入式移动数据库系统是支持移动计算或某种特定计算模式的数据库管理系统,数据库 系统与操作系统和具体应用集成在一起,运行在各种智能型嵌入式设备或移动设备上。 目前,嵌入式移动数据库技术已经从研究领域向更广泛的应用领域发展,随着移动通信技术的 进步和人们对移动数据处理和管理需求的不断提高,与各种智能设备紧密结合的嵌入式移动数据库 技术已经得到了学术界、工业界、军事领域、民用部门等各方面的重视和发展,它己逐步进入了实 用化和产品化的阶段。实际上,人们在很多地方已用到嵌入式数据库,只是不易发觉它的存在,这 恰好正是嵌入式数据库的设计特点和目的在对系统最低限度的干预和影响的条件下进行数据的 存取。不久的将来嵌入式移动数据库将无处不在。人们希望随时随地存取任意数据信息的愿望终将 成为现实。 纵观目前国际、国内嵌入式数据库的应用情况,许多计算机硬件厂商和电器厂商己开发或正在 开发他们自己的移动计算设备和嵌入式系统,在这些系统中嵌入数据库管理,因而形成了嵌入式数 据库或移动式数据库的应用处于一个“百花齐放、百家争鸣”的状态,也成为数据库厂商在移动计 算领域必争之地。目前的嵌入式数据库产品繁多【3 】,如e m p r e s sr d b m s 、o b j e c t i v i t y d b 、b i r d s t e p d a t a b a s e 等,这些都是国际上著名的嵌入式数据库,其功能完善,符合嵌入式系统的要求。当前基 于嵌入式数据库应用的市场需求已经进入加速发展的阶段,但是由于需求的多种多样,应用和计算 平台也各有特色,因而还没有任何一家厂商能够做到其数据库产品能一统天下。整个嵌入式数据库 市场的需求空间仍旧很大。 1 2 嵌入式数据库的技术要求 嵌入式数据库在软件应用或硬件设备上是既可变动又可固定的。许多嵌入式数据库的应用,如 旅行推销员的产品信息、家庭护士的病人病历等所管理的数据量都不大,用文件系统也能很好地完 成那么为什么还要引入数据库系统昵? 数据管理是一步步从早期的文件系统演变到今天的数据库系统的,二者的根本差别在于,基于 文件系统的数据管理很大程度上是由应用自身来完成的,而同样的任务在基于数据库系统的应_ = j 中 则交由数据库管理系统来统一完成。 毫鸯丈学硬士论文 与基于数据痒系统的应用相眈,基于文件系统的应用有若干固有的缺陷【1 2 1 : 一 数据孤立襻始,难戳建立统一形式。虫予数据分散在不同文释中,这些文件霄可能爨蕊不 同的格式,嗣此增加了应用开发的难度与代价,所有的成用都要独立鼠煎复的进行数据管 璞工接,缡霹令捻索适当数摆的耨痘磁稷净是缀豳难静,劳虽会有缀大t 璃麓冗余爨。 文俘本身焉法解决数据完黧瞧翔题。数据瘁中翳存德数掭瓣氆必颓满莲菜些特定斡一致瞧 约束。例如,银行账户余额永远不会低于懿个预定的值。开发者通过程释种不同应用中加 入适当的托码来增强系统中的这些约束。然而,当新的约寐加入时,缎滩通过修改程序采 俸嚣这些赣熬约束。霓其蹩在茶泵涉及币阁文律中静多个数撂璎辩,翔题裁变褥受热复数。 羧据於共事缝差。鸯了提毫笨统耱总体豫能、龆浃螭瘟逮黢彝鼗据戆萃瓣率+ 许多系统允 许多个用户按享数据文件。蜓是数据基于文件的共享性较整,而数据交曩在网络时代魁必 嚣的。 数据安全性问题。并非数攒库系统的所肖用户都可以访问所有数据。例如,在学生基本情 嚣孛,藏续公毒太员翼要番劐鼗鬟津孛关予学生藏绫豹箨郛分售患。毯钓不需要臻溺关予 学生的其稳信息。融于应矧程序总是帮藤蜘入鳓系统中采盼,因魏这样抟安全性约束涟黻 实现。 应用的独立性、语义性、移植性差,造成了软件的可重羽性麓,很多软件由于文件系统的 不嗣,开发缓蠼。 上述这些都是遥络时代软俘秀发瓣丈忌,在遮塑方嚣,鼗撵瘁管理系统体袋出了它於怒天饶势; 箍在嵌入式设备中使用嵌入式数据库避能发挥其优势,使用户能够快速的、共事的、随时随地的获 取信息,软件开发者融避免了差复的数据管理工作,篱亿了开发难艘。 嵌入式数据库在熬个嵌入式系统中的体系结构如下: 鞠1 1 嵌入式绒j l 基本构架 在这个嵌入式架构中,嵌入式数据廖畚统2 够和嵌入式操作系统存抛遗结合在越,为应用开发人 璺提供蒋簸豹奉遣鼗攥警逢手羧。餐楚,数据瘁翁嵌入嚣要数据痒囊赛满足基下b 个赣煮: l 、数据量小: 2 、数据存储空间小: 3 、裁实辩嫡应翊户要求,刳如,按速启动数据痒,及时修改记袋数据等; 4 、数箨共享,攀多建户共事数瓣露囊源。 1 。3 嵌入式数辎库研究趋势 嚣祷。a j 籍不褥受荤一搽箨系统翦爱麓,嚣驭隧簿麓遗楚穗照务,传递信息。袋入式数据露 的兴趣日l 发了数据库技术的又次突破。当前嵌入式数据库一般利用掌上设备,满过有线或无线邋 信手段下载主机数据,再由自身的数据管理和处理系统来实现特定的应用,以适应移动办公、人员 流动班敷特辣环境约满求。 褒褥寒,p d a 幕l 其恁释袋入式竣戆嵌入式数撂疼霹戳蓑渡连续转送豹数掘溅,实现数攥| 莓 步 1 3 j 的技术,班满足遮些设备的应用需求。这是嵌入式数据库来来发展的基本趋势的一个方蕊。冀 一方掰,嚣于手持设菇使羽秃线通信技术,这一按h 术越嵌入式数据库豹泰来发展将产生举足轻重鹣 4 笙二童壁垒苎塑塑曼塑堕 影响。因此,无线通信技术的不断发展和无线通信业务成本的降低,将是嵌入式数据库在未来发展 中取得成功的关键因素【4 】。 总体来说,嵌入式数据库技术将朝着广度和深度的方向发展。朝着广度发展,就是数据库能够 支持越来越多的嫩入式平台,扩展性越来越强,可以处理从小到火各种规模、各种形式的数据;朝 着深度方向发展,也就是嵌入式数据库能够提供多种功能,例如数据同步、多种连接协议等,以丰 富嵌入式系统的应用。 东南大学硕士论文 2 1 数据库技术的概述 第二章数据库技术 当前人类社会正在处于信息社会,人类知识与信息以惊人的速度增长,引发了如何组织和利用 这些知识和信息成为了急需解块的问题。在比较了不同领域和种类的数据处理系统之后,人们发现 了数据处理系统的一些共性,诸如数据共享、减少冗余、程序( 应用) 独立于数据、数据完整、数 据安全等等。基于这些共性,人们陆续制作出一些在大多数领域“普适”的软件部件,并随着这一 部件的性能优化和功能明确,将其命名为数据库管理系统( d b m s ) ,同时围绕其功能和性能完善了 许多外嗣工作,形成一个个的功能完善且独立运作的数据库系统,终于在2 0 世纪6 0 年代的“软什 危机”中,数据库技术作为一门软件科学应运而生了。 数据库( d a t a b a s e ,简称d b ) 这个名词起源于2 0 世纪5 0 年代,当时美国为了战争的需要,把 各种情报集中在一起,存储在计算机里,简称i n f o m l a t i o nb a s e 或d a t a b a s e 【1 5 】。 1 9 6 8 年美国i b m 公司推出层次模型的| m s 数据库管理系统,1 9 6 9 年1 0 月美国系统语言协会 ( c o d a s y l ) 的数据库任务组( d b t g ) 发表关于网状模型的d b t g 报告,1 9 7 0 年美国i b m 公司 的e f c o d d 提出了关系模型。这三件事情奠定了数据库技术的基础。2 0 世纪7 0 年代是数据库蓬勃 发展的年代。网状系统和层次系统占据了整个商用市场,而关系系统仅处于实验阶段。许多计算机 厂商研制了各种数据库管理系统,许多学者发表了大量的探讨性论文,使数据库技术在实践中和理 论上得到飞速发展。数据库技术也日趋成熟。到8 0 年代,关系系统由于使用简便,逐步代替网状系 统和层次系统占领了市场。同时关系数据库的理论日趋完善,走向更高级的阶段。数据库的理论研 究以及新的数据库系统的研究仍在继续,不断深化。 随着数据在计算机应用中的地位与作用曰益重要,及在商业、事务处理中占有主导地位,近年 米在统计领域、工程领域,在图形、图像、声音等多媒体领域以及在智能领域等的地位与作用也变 得十分重要,因此,数据己成为构成一个计算机系统的重要支柱。由此而产生的数据库技术已成为 计算机领域中最重要的技术之一和软件科学中一个独立的分支。这个技术的出现使得计算机应用渗 透到社会的各个角落,并正改变着人们的工作方式和生活方式。数据库已成为信息高速公路的核心 部分。 数据库是记录的集合,它具有一个组织形式并存放于统一的存储介质上它是多种应用的数据 集成,并可被应用所共享。亦即是数据库集中了各种应用的数据,进行统一构造与存储,同时,这 些数据可为不同应用使用。 通常,数据的标准结构如下:位组合成字节或字符,字符组合成域,域组台成记录,记录组合 成文件( 见图2 1 ( a ) ) 。然而,数据库包含用户数据文件和其它内容,它在元数据中包含关于自身 的描述。另外,数据库还包含用来表示数据之阃的关系和提高数据库应用的性能的索引。昂后,数 据库还包含关于使用数据库的应用程序的数据。数据入口窗体或报表的格式有时也是数据库的一部 分,我们称最后一种数据分类为应用元数据。这样一来,一个数据库就包含如图图2l ( b ) 所示的 四种数据:用户数据文件、元数据、索引和应用元数据。这些数据按数据库所提供的数据模式存放, 数据模式能构造复杂的数据结构以建立数据间的内在联系复杂的关系,从而构成数据的全局结构模 式以适应数据共享要求。而数据库的每个应用则仅是取全局模式中的个局部子模式。 第二章数据库技术 位)字节或字符 位)字节或字符) 域 ( a ) 域) f 记录i文件 l、 记录 文件 1 + j 元数据f + 索引 + 应用元数据j ( b ) ( a ) 文件处理中数据元素的层次结构( b ) 数据库处理中数据元素的层次结构 图2 1 数据元素的层次结构 2 2 数据模型 2 2 1数据模型的基本概念 数据库结构的基础是数据模型,任何的数据库系统都是基于某种数据模型。数据模型是一个描 述数据、数据联系、数据语义以及一致性约束的概念工具的集合。数据模型主要描述数据的两个方 面: _数据的静态特性 它包括数据的基本结构、数据间的联系和数据中的约束。 _数据的动态特性 它指定义在数据上的操作。 从数据模型所描述的内容上,它可分为三个部分:数据结构、数据操作和数据约束。 ( 1 ) 数据结构 数据模型中的数据结构主要描述数据类型、内容、性质的有关情况咀及描述数据间的联系 的有关情况。数据结构是数据模型的基础,数据操作与约束就建立在数据结构上。不同数据结 构有不同的操作与约束。因此,一般数据模型的分类均以数据结构的不同而分。 ( 2 ) 数据操作 数据模型中的数据操作主要描述在相应数据结构上的操作类型与操作方式。 ( 3 ) 数据约束 数据模型中的数据约束主要描述数据结构内数据间的语法,语义联系,它们间的制约与依 存关系,以及数据动态变化的规则以保证数据的正确、有效与相容。 若以文件系统为例,它所用的数据模型包含文件( f i l e ) 、记录( r e c o r d ) 和字段( f i e l d ) 等概念。 对每个字段可以定义数据类型和长度,作为其约束,有打开、关闭、读、写等文件操作。这是一个 简单的数据模型,没有描述数据间的联系的手段。也有个别数据模型,例如e - r 数据模型。只有描 述数据的静态特性,还缺少操作的定义。 数据模型的好坏很难抽象的评价,这取决于它的用途。对人来说,总是希望数据模型能够尽可 能自然地反映现实世界和接近人对现实世界的观察和理解,也就是数据模型要面向现实世界,面向 东南大学硕士论文 用户。但是,数据模型又是实现d b m s 的基础,它对系统的复杂性、性能影响颇大。从实现的角度 来看,又希望数据模型接近数据在计算机中的物理表示,以便于实现、减少开销,也就是数据模型 还不得不在一定程度上面向实现、面向计算机。这两方面的要求显然是矛盾的。数据库中解决这个 矛盾的途径有点类似于程序设计语言。在程序设计语言中,有面向用户的高级程序设计语言,也有 面向计算机的汇编语言,有时还有介于两者之间的中间语言,各有各的用途,而又编译系统完成高 级到低级程序设计语言的转换。在数据库中,也是针对不同的使用对象和应用目的采用多极数据 模型,一般可分为下面三级【”】。 1 概念数据模型( c o n c e p t u a ld a t am o d e l ) d b m s 至少向用户提供一种数据模型,例如目前用得最多的关系模型。这类数据模型有诸多规 定和限制,不便于非计算机专业人员的理解和应用。数据库是对一个单位( e n t e f _ p r i s e ,泛指公司、 机关、部门、工厂、车间、医院、学校等) 的模拟,它的设计必须得到单位中r 。大工作人员的台作 和参与。显然,一开始就用d b m s 所提供的数据模型来设计数据库是不适合的。因为这既不便于非 计算机专业人员的理解和参与,同时也会是数据库设计人员一开始就纠缠于实现的细节,不符合自 顶向f 、逐步求精的软件设计原则。概念数据模型是面向用户、面向现实世界的数据模型,是与d b m s 无关的。它主要用来描述一个单位的概念化结构。采用概念数据模型,数据库设计人员可以在设计 的开始阶段,把主要精力用于了解和描述现实世界上,而把涉及d b m s 的一些技术性的问题推迟到 设计阶段去考虑。 2 逻辑数据模型( 1 0 9 i c a ld a t am o d e l ) 逻辑数据模型是用户从数据库所看到的数据模型。它与d b m s 有关,d b m s 常以其所用的逻辑 数据模型来分类。关系数据模型是目前常用的逻辑数据模型。在关系数据模型以前,层次、网状模 型曾经是主要的逻辑数据模型,现在仍有这种d b m s 在运行。个别d b m s 提供多种逻辑数据模型, 例如既支持网状,有支持关系数据模型。用概念数据模型表示的数据必须转化为逻辑数据模型表示 的数据,才能在d b m s 中实现。逻辑数据模型既要面向用户,也要面向实现。目前流行的逻辑数据 模型是现阶段技术条件下的折衷。随着计算机处理能力的提高和价格的下降,逻辑数据模型将更多 地面向用户。 3 物理数据模型( p h y s i c a ld a t am o d e l ) 逻辑数据模型只反映数据的逻辑结构,例如文件、记录、字段等,而不反映数据的存储结构, 例如物理块、指针、索引等。反映数据存储结构的数据模型称为物理数据模型。数据库的数据终须 存储到介质上,每种逻辑数据模型在实现时,都有其对应的物理数据模型。物理数据模型不但与 d b m s 有关,而且还与操作系统和硬件有关。 概念数据模型只用于数据库的设计,逻辑数据模型和物理数据模型用于d b m s 的实现。 2 2 2 关系数据模型 关系模型( r e l a t i o n a lm o d e l ) 用表的集合来表示数据和数据问的联系。它的基本数据结构是二维 表,由行和列组成。一张二维表( t a b l e ) 称为一个关系,每个表有多个列,每列有唯一的列名。在 关系模型中,实体和实现问的联系都是用关系表示的。在二维表中存放了两类数据: 实体本身的数据: 一 实体间的联系。 关系模型中的二维表一般需满足一些限定条件【9 : ( 1 ) 同一表中的属性名各不相同; ( 2 ) 表中属性与次序无关,可以任意交换; ( 3 ) 表中元组均不相同; 第二章数据库技术 ( 4 ) 表中元组与次序无关,可以任意交换; ( 5 ) 表中每一分量必须是不可分割的基本数据项。 如图2 2 是一个表示学生和教师任课情况的关系模型,图2 2 ( a ) 和( b ) 分别表示学生关系和 教师任课关系。这两个关系也表示了学生和任课教师间的多对多联系,它们之间的联系是在两个关 系中的同名属性“班级”表示的。 学号姓名班级 9 0 9 9 0 1 王明 9 0 9 9 1 9 0 9 9 0 2 李丽 9 0 9 9 2 9 0 9 8 0 l 刘敏 9 0 9 8 l 9 0 9 8 0 2 陆辛 9 0 9 8 2 9 0 9 8 0 3 程立 9 0 9 8 1 ( a ) 职工姓名系别课程班级 吴云峰数学离散数学 9 0 9 9 l 赵伟外语英语9 0 9 9 2 马晓路计算机 数据结构 9 0 9 8 l 曹跃岩训算机数据库 9 0 9 8 2 ( b ) 图2 2 学生和教师任课情况的关系模型 关系模型是基于记录模型的一种。基于记录模型的名称的由来是由于它用一些固定格式的记录 来描述数据库结构。每张表包含某种特定类型的记录,每个记录类型定义固定数目的字段( 或属性) 。 表格的列对应于记录类型的属性。 将表存储在文件中看起米并不难。例如,特殊字符( 如逗号) 可以用来划分一个记录的不同属 性,而另一种特殊字符( 如换行符) 可以划分记录。关系模型对数据库开发者和用户隐藏了这种底 层的实现细节。 关系数据模型是使用最广泛的数据模型。当今大量的数据库系统都是基于这种关系模型的。关 系模型比e r 模型的抽象层次更低。数据库设计通常基于e r 模型来进行,然后再转化成关系模型。 与其他数据模型相比,关系模型有下列优点: _ 数据结构单一,不管实体还是实体问的联系都用关系来表示; _建立在严格的数学概念基础上,具有坚实的理论基础; _将数据定义和数据操纵统一在种语言中,使用方便,易学易用。 2 2 3 其他数据模型 面向对象的数据模型是另一种越来越被关注的数据模型。面向对象的数据模型可以看成是e r 模型增加了封装、方法和对象标示等特征后的扩展。 对象关系数据模型结台了面向对象的数据模型和关系数据模型的特征。 ! r 结构数据模型允许那些相同类型的数据项有不同的属性集的数据说明。这和早先提到的数据 模型形成了对比:在那些数据模型中所有某种特定类型的数据项必须有相同的属性集。可扩展标记 语言( x m l ) 被广泛地用来表示半结构数据。 在历史上还有另外两种数据类型,网状数据类型和层次数据模型,先于关系数据模型出现。这 些模型和底层的实现联系很紧密,并且使数据建模复杂化。因此除了在某些地方这种旧的数据库还 在服务外,今天它们已经很少被使用了。 2 3 数据模式 数据模型和数据模式是不同的。数据模型是描述数据的手段;数据模式是数据模型的一部分, 在数据模型中有关数据结构及相互间关系的描述称为数据模式( d a t as c h e m a ) 。数据模式是相对稳定 的,而实例是相对变动的。数据模式反映一个单位的各种事物的结构、属性、联系和约束,实质上 是用数据模型对一个单位的模拟。而实例反映数据库的某一时刻的状态,也就是这一单位在此时的 状态。 9 堡亘查兰竺主丝苎 美国国家标准化协会( a n s i ) 在1 9 7 8 年的a n s i x 3 s 队r c 最终报告中将数据模式分为三级 它们是概念模式、外模式和内模式。 ( 1 ) 概念模式( c o n c e p t l l a ls c h e m a ) 概念模式给出了整个数据库的全局逻辑结构,它是全体用户的公共数据视图。概念模式所描述 的结构是面向数据库系统的,它一般以某种数据模型为基础,描述数据的类型、长度、特征、数据 间的联系以及有关安全性、完整性要求。数据库系统一般提供模式描述语言用以描述概念模式。概 念模式对应于数据模型中的逻辑数据模型。 ( 2 ) 外模式( e x t e r n a ls c h e m a ) 外模式又称为子模式,它是用户的数据视图,亦即是用户所见到的模式的一个部分或由概念推 导而出。概念模式给出了全局的数据描述,而外模式则给出了局部的描述。一个概念模式可以由若 干个外模式,每个用户只关心与它有关的外模式,这样可屏蔽大量无关信息且有利于数据保护,因 此对用户极为有益。数据库系统一般提供外模式描述语言用以描述外模式。 ( 3 ) 内模式( i n t e r n a ls c h e m a ) 内模式又可称为物理模式,它表示数据库的内部结构及其内部存储方式和物理结构,如数据存 储的文件、块结构、索引、簇集、h a s h 等存取方式及存取路径等,数据库系统一般提供内模式描述 语言用以描述内模式。 数据模式的三个级别层次反映了模式的不同环境的不同要求,其中内模式处于最低层,它反映 了数据在计算机中的实际存储形式;概念模式处于中间层,它反映了设计者的数据全局逻辑要求: 而外模式则处于最外层,它反映了用户的局部数据逻辑要求。 图2 3 数据模式关系图【5 1 5 】 这三个模式之间可以有二个映射将概念模式映射至内模式以及将外模式映射至概念模式。 _ 概念模式 内模式的映射 该映射给出了数据的逻辑结构到数据的物理存储结构间的对应关系,此种映射由数据库管理系 1 0 兰三童塑塑壁塾查 统完成。 外模式 概念模式的映射 一个概念模式已有若干个外模式,每个外模式是概念模式的一个局部视图。外模式到概念模式 的映射给出了外模式与概念模式间的对应关系,此种映射由数据库管理系统。 三种模式中只有内模式是真实存在于计算机中的模式,而另外两种模式以内模式为基础通过由 数据库管理系统所提供的两种映射而得到。这样,三种模式两个映射构成了一个模式整体,它们适 应不同环境满足不同要求,即能根据需要通过映射作转换,亦能各自独立完成不同的需求。图2 3 可以表示它们之间关系。 东南大学硕士论文 第三章嵌入式数据库的实现 3 1 数据库的总体框架 本课题实现的嵌入式数据库主要是面向移动信息终端产品的,它用以配合系统数据的处理和用 户对数据的操作。因此嵌入式数据库必须符合嵌入式系统的特点,即容量小、可裁减、功能强等特 点。根据以上这些特点,本文实现的数据库使用了常见的关系模型数据库。这种模型的数据库结构 简单、使用方便、理论成熟,从而引来了越米越多的用户。 本文研究和实现的是数据库的核心引擎,即数据库内部数据的表示方法和存储结构的实现。在 采用数据库技术以前,这些工作分散在应用程序中;采用数据库技术以后,可以通过数据库集中起 来系统地进行。这个嵌入式数据库的总体构架如图3 1 所示,可分为三个模块:数据访问模块、内 存池管理模块、文件管理模块。 皇望翌! a p i 接】 数据访问层 l 内存池管理层 童 i 系统文件管理层l 图3 1 嵌入式数据库总体框架 数据访问模块开放给上层的接口称为a p i ( a p p l i c a t i o np m g r a m m i n gi n t e r f a c e 。应用编程接口) 接口,它是应用程序和数据库访问层连接的纽带。它提供统的应用层a p i 接口,也就是以函数调 用的形式提供给应用程序使用,用户只需了解所要操作的数据库对象、操作类型和操作数据,即可 方便快速的使用各种数据库操作,提高了应用程序员程序设计的便捷性,增强了应用程序的可移植 性。它的主要功能是向上层( 应用程序) 提供记录的所有操作( 修改、添加、删除、查找等) 以及 对数据库的访问控制。 数据访问层的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式。内模式不 直接面向用户,一般用户也无需了解它的设计思想。数据访问层的设计不用考虑用户理解的方便, 其主要设计目标是提高数据库性能和有效地利用存储空间。它在物理层次上以某种存取结构组织管 理记录和创建访问数据库文件,控制应用程序对数据库的访问。 内存池管理层主要是用来解决快速存取数据以及多用户间数据共享的问题。使用内存池可以缓 存数据,减少i ,o 操作,提高运行速度。在多用户系统中,很多数据是可以重复使用的,通过共享 内存管理层可以方便的访问各个数据库,提取所需数据,且实现多用户读和单用户写的功能以便 统一的进行数据管理工作,提高了应用软件和数据的重用性。 系统文件管理层是与底层文件系统的接口层,它完成数据库数据到文件的转化。这层主要是针 对不同文件系统和操作系统接口的封装,使数据库系统可以方便的移植到不同的系统平台上,而无 需对数据库的核心引擎结构做较大的变动,有利于数据库系统运行于不同的平台和在其之上的广泛 2 第三章嵌入式数据库的实现 应用。 在嵌入式移动终端产品中,无法提供较大的存储设备且运行速度受限,客观要求数据库占用少 量存储空间、并能够实时响应用户要求,因此在实现嵌入式数据库的各个模块时,要时时考虑到时 间和空间两方面的因素,以达到时空的最佳结合点。 3 2 数据库的实现 3 2 1 数据库接口的形式 用户使用数据库,必须对数据库进行各式各样的操作,例如查询、增、删、改数据等。数据库 系统必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。这种接口的好坏直接影 响了用户对数据库的接受程度。因此,现代数据库系统都在用户接口上狠下功夫,尽量使用户感到 方便和友好。数据库可能有不同类型的用户,有经常使用计算机的专业用户,也有偶尔使用计算机 的非专业用户。数据库系统所提供的语言一般局限于对数据库的操作,有别于计算完备的程序设计 语言,称为数据库语言( d a t a b a s e1 a n g u a g e ) 旧。 应用在关系数据库系统的数据语言有多种,其中s q l 语言是使用最为广泛的一种语言,它风格 独特,独树一帜,最大优点是语言本身接近英语,通用性强,易学易用,成为国际标准化组织所确 认的关系数据库系统的标准语言。s q l 语言又称结构化查询语言( s t r u c t u r e dq u e r yl a n g u a g e ) , 是1 9 7 4 年由b o ”e 和c h a m b e r l i n 提出的并在i b m 公司s a mj o s 研究实验室所研制的关系数据库管 理系统s y s t e m r 上实现的。 然而在嵌入式系统中更加关注的是减少系统开销,加快数据响应,紧缩数据库系统结构。而恰 恰相反的是,s o l 语言是在数据库的核心引擎上又封装了一层的结构化语言。从速度上而言,远远 不如用户直接调用数据库的核心引擎进行各类数据库的操作;从空间上分析,也会增加数据库系统 的整体负担,使其结构趋于复杂化。由于上述各方面因素的限制,本文选择了直接提供以函数调用 的形式出现的a p i 接口,以提高应用程序的运行速度和精简数据库结构。 基于本课题的数据库引擎主要使用在移动信息终端产品上,所以给用户提供了基本的数据定义 接口、数据查洵接口和数据操纵接口。其中,数据定义接口用于创建、撤销数据库和索引表等;数 据查询接口主要用于查询各类型数据的操作;数据操纵接口用于增、删、改数据的操作。这些接口 使用起来简单、易懂,而且上层应用程序根本无需了解接口的内部结构和具体运行过程。表3 1 是 本文所提供的数据库的部分接口。 表3 1 数据库部分接口说明 誓“爹i 絮害穆鏊誓j? 3 1 二警誊篓,姜j j 誊皇0 誊。啦弗。:jj 。j i ? 、一: 。o p 曲黜曲a s c 蕊。创建,打开主数据库 i 秭蛹骥d 9 雕i i 创建打开索引数据库 , i :罐$ i o s e 玲a t 曲舔e 尊一; 关闭数据库 i 鞲骖峨磺蘸、餮 读取记录 ;i 蕊面e r 赫;d 藩。毒i添加记录 ii 自e j 西百;i 翻纛囊曩删除记录 聪s 潞零睡囊礴簿秽 根据关键字查找记录 蔷漏蠛蛹嘲冁鬻 统计主数据库中的记录数 黪鞭懒毒警鬻 立即保存数据库 由上表可以看出,这些数据库接口的含义是容易被应用程序者所接受的,而且使用也较为简单。 例如,创建或打开一个主数据库只要调用o p e n d a t a b a s e 函数,而创建或打开索引数据库就调用 0 p e n l n d e x d b 即可;所有的记录查询操作都可以使用s e a r c h d b r e c o r d ,只是不同的查询要求其查询 函数的入口参数不一样,需要因地制宜。 1 3 东南大学硕士论文 3 2 2 数据访问模块 数据访问模块是数据库实现的一个重要模块, 方式这类似于数据模式中内模式所完成的工作。 因此合理的方案可以节省空间,减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景区旅游产品开发与营销推广方案
- 平门小区封控通知书
- 幼儿园新生入园通知书
- 广东规划审定通知书
- 广州校园停电通知书
- 店铺员工违规处罚通知书
- 建平县房价降价通知书
- 延期交房催告通知书
- 建昌县封城文件通知书
- 弘锦物业停电通知书
- 四级手术术前多学科讨论制度(2025年)
- 血友病预防知识培训课件
- 沙石料销售知识培训内容课件
- 人教版六年级数学上册第一单元测试卷(含解析)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人备考考试题库附答案解析
- 2025年微生物专升本习题库(含答案)
- 互联网医院在线医疗培训方案
- 国家基层高血压防治管理指南(2025版)培训项目试题有答案
- 2025秋新教材统编版(2024)八年级上册道德与法治全册教案
- 人教版小学数学123456年级教资面试试讲逐字稿155篇
- 中药汤剂煎煮法课件
评论
0/150
提交评论