已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)实时dbms与c接口机制的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 f f 实时数据库管理系统( r t d b m s ) 是当前数据库界研究的一个重要方向, 有 很大的应用潜力和前景。实时数据库管理系统强调实时性,其中的事务和数据都可 以有定时特性( 如截止期) 或显式的定时限制o ) r t d b m s 体现了实时任务和传统数 据库事务两者的特征,但它们并非在概念、技术、机制上的简单集成,必须从数据 库的结构、数据的组织、内存管理、缓冲区管理、通讯区管理、查询优化、输入输 出调度等方面加以研究。 实时数据库管理系统n h r t d b 在传统的数据库管理系统基础上,采用主存数 据库技术,系统具有交互式查询语言、支持主动性能的规则予系统和嵌入式查询语 言的功能。我们对数据库的结构、数据的组织、内存管理、缓冲区管理、通讯区管 理等重新设计,以满足实时需求。采用主存数据库技术,将涉及到的关系全部装入 内存,在内存中进行数据库的各项操作,避免了磁盘存取耗时的缺点,提高了响应 速度。本文主要设计和实现了基于主存数据库技术的d b m s 查询语言与c 语言的接 口机制,以满足实时系统在h o s t 语言中使用数据库的要求。 关键字: 实时数据库管理系统,嵌入式查询语言,主存数据库,存储管理机制 a b s t r a c t r e a l t i m ed a t a b a s em a n a g e m e n ts y s t e m ( r t d b m s ) i so n eo ft h ei m p o r t a n t b r a n c h e si nt h ed a t a b a s ef i e l dc u r r e n t l y ,w h i c hh a s a g r e a tp r o s p e c t i v ea p p l i c a t i o n i nl h en e a rf u t u r e r t d b m se m p h a s i z e st h ep r o p e r t i e so fr e a l t i m e i nw h i c h e v e n t sa n dd a t aa l ic a nh a v et i m ea t t r i b u t e s ( s u c ha sd e a d l i n e ) o re x p l i c i tt i m e i i m i t a t i o n f 玎d b m ss h o w st h ep r o p e r t i e so fb o t hr e a l t i m et a s k sa n dc o n v e n t i o n a i d a t a b a s ee v e n t s ,b u tt h e ya r en o ts i m p l yi n t e g r a t i o no fc o n c e p t s t e c h n i q u e s ,a n d m e c h a n i s m s w em u s ts t u d yt h ef o l l o w i n gp r o b l e m s :s t r u c t u r ea n do r g a n i z a t i o no f t h ed a t a b a s e m a n a g e m e n to ft h em a i nm e m o r y ,b u f f e r ,a n dc o m m u n i c a t i o na r e a , q u e r yo p t i m i z a t i o n ,a n di 0s c h e d u l i n g ,a n ds o o n o nl h eb a s i so ft h ec o n v e n t i o n a ld b m s n h r t d bt a k e st h em a i nm e m o r y d a t a b a s e ( m m d b ) t e c h n i q u e s t h es y s t e m h a st h ef u n c t i o n so fs q lq u e r y l a n g u a g e ,r u l es u b s y s t e ms u p p o r t i n g a c t i v eb e h a v i o r sa n de m b e d d e d q u e r y l a n g u a g e d u d n gt h e s er e c e n tt w oy e a r s ,w eh a v er e b u i l tt h ed a t a b a s es t r u c t u r e d a t a o r g a n i z a t i o n , m a i n m e m o r ym a n a g e m e n t b u f f e r m a n a g e m e n t , c o m m u n i c a t i o na r e a a n ds oo ni no r d e rl of u i f i l it h er e a l t i m er e q u i r e m e n t w t t h m m d b t e c h n i q u e ,w el o a da l it h ec o n c e r n e dr e l a t i o n si n t ot h em a i nm e m o r y a n d d oa l lt h eo p e r a t i o n si nt h em a i nm e m o r yt or a i s er e s p o n s es p e e da n dr e d u c ei 0 t i m e s m yt h e s i sm a i n l yd e s i g n e da n dr e a l i z e dt h ei n t e r f a c eo fd b m sq u e r y i a n g u a g ea n dcl a n g u a g eb a s e do nm m d bt e c h n i q u e s i no r d e rt om e e tt h e d e m a n d u s i n gd a t a b a s e i nh o s t l a n g u a g e k e y w o r d s :r e a l - t i m ed a t b a s em a n a g e m e n ts y s t e m ( r t d b m s ) , e m b e d d e d q u e r yl a n g u a g e , m a i n m e m o r yd a t a b a s e ( m m d b ) m e m o r ym a n a g e m e n tm e c h a n i s m 引言 计算机技术能迅速普及,数据库技术和计算机网络技术起了非常重要的作用。 数据库技术是研究如何科学地组织和存储数据,如何高效地检索数据和进行数据处 理的一门学科 4 0 l ,它是当代信息系统的基础,有信息网络而无数据库源,就好像有 路而无车一样。 数据库技术从六十年代中期产生到今天仅仅三十多年的历史,其发展速度之快、 使用范围之广,是其他技术所远不及的。它已从第一代的网状、层次数据库,第二 代的关系数据库系统,发展到第三代以面向对象模型为主要特征的数据库系统。数 据库系统的研究和开发在其三十多年的历史中取得了巨大的成功。形成了一个数百 亿美元的产业。数据库技术和系统的应用已经遍及各个领域,奠定了数据库系统作 为当今社会信息基础设施核心技术的地位。 尽管如此,数据库的研究和发展一刻也未停止过,传统的研究主要集中在增强 和提高数据库管理系统( d b m s ) 的功能和性能上( 3 9 l 。数据库技术与网络通信技术、 人工智能技术、面向对象程序设计技术、并行计算机技术等等互相渗透,互相结合, 衍生出许多新的数据库研究分支。如:面向对象数据库、分布式数据库、并行关系 数据库技术、知识库、主动数据库、演绎数据库、模糊数据库、时态数据库、多媒 体数据库、工程数据库、客户朋艮务器结构的数据库系统、联邦数据库系统、数据采 掘与数据仓库等等f 4 2 删。在过去的十年中,数据库系统学界在查询优化、对象关系 数据库系统、空间数据库、主动数据库、数据复制和数据并行性等领域取得了重大 概念性突破口”。这些思想成功地转化为产业成果,研究学界应该为其业已取得的成 就而自豪。 但是,应用的发展始终是技术进步的动力,计算机技术和应用的飞速发展总是 驱动数据库研究学界拓展研究的重点,探索用于新应用的理论和技术。在过去的十 年中,数据库系统的基本问题发生了显著的变化,因此,数据库系统的研究工作要 探索大量新闻题。改变数据库系统研究重点的驱动力量主要有以下三个方面1 2 t j : 1 、w e b 和i n t e m e t 覆盖全球,使得能便捷地在电脑空间中发布各种信息,几 乎每个人都可以访问这些信息; 2 、越来越复杂的应用环境更加追切地需要把程序和数据集成起来; 3 、硬件的发展推翻了目前数据库管理系统技术所沿用的那些假设和设计策略。 面临以上的新变化,数据库学界重新认识数据库研究的方向,把工作重点转移 到研究新领域上来。 在未来十年内,摩尔定律仍将成立,c p u 会越来越快,磁盘容量会越来越大, 在广域通讯速率方面将出现突破。硬件的进展,使得百太( 1 0 ”) 字节的数据库将普及, 在这些数据库中,将使用太字节的内存来作为缓冲区1 。这样一来,除了一些最大 的数据库表外,其它所有的数据库表将驻留在内存中。这些技术进一步打破了目前 数据库系统体系结构的基本假定。在新的计算机体系结构下,数据结构、算法和工 具都要重新进行评价。 数据库已经成为信息处理的核心部分。而在许多实际应用中,要求在一定的响 应时间内收集、存储、管理及处理数据,所有的操作都受到严格的时间约束。例如: 军事指挥控制系统、雷达跟踪、导航控制、证券交易、网络管理等领域,d b m s 既 要能及时反映数据库状态的变化,适时处理各种事务,又要能自动地监视数据库状 态和其他状态的变化,当一定的状态出现时能及时做出相应的处理。传统的基于商 业信息管理的d b m s 已不能适应这类实时应用领域的需要,实时数据库系统和主动 数据库系统可以分别满足这两种需求,两者的有机集成所构成的数据库系统,称之 为主动实时数据库系统( a r t d b m s ) 1 4 2 1 。 因此,无论是从硬件还是从应用的角度出发都呼唤实时数据库的出现。对于 实时数据库的研究,尤其是对其存储结构和查询语言的研究,已经成为数据库研究 的重要方向。 实时数据库系统的研究需要数据库和实时系统两个领域的共同努力,但各有其 侧重。数据库领域主要研究能够对实时数据进行存储、管理和处理的数据库管理系 统。而实时系统研究者主要研究实时调度和资源分配。 目前,国内外对实时数据库系统的研究仍处于起步阶段,开展的工作并不多。 国内正在研制的原型系统主要有:华中理工大学的a r t s i 原型系统和武汉工程数 字研究所的基于层次对象模型的h o r t - d b m s 和实时关系数据库管理系统 r m x d bf o rp c 。国外的主要有:美国x e r o xa d v a n c e di n f o r m a t i o nt e c h n o l o g y 公司 的具有主动时间约束的d b m s kh i p a c ,美国的c a s ew e s t e r nr e s e r v e 大学的实时、 单用户的关系型d b m s kc a s e - d b ( 这是c a s e d b 的扩充) 。 实时数据库系统( r t d b s ) 是其中的事务和数据都可以有定时特性( 如截止期) 或显式的定时限制的数据库系统i ”。系统的正确性不仅依赖于逻辑结果,而且依赖 于逻辑结果产生的时间。r t d b 体现了实时任务和传统数据库事务两者的特征,但 它们并非在概念、技术、机制上的简单集成,实时事务超过截止期可能带来灾难性 后果,其高性能要求以主存数据库( m h 垣d b ) 作为其底层支持,以使系统对事务的 执行能预先作出安排。 由于实时系统通常在程序环境之中使用数据库,使得事务总是嵌入到应用环境 之中,这就需要研究宿主语言与数据库查询语言的接口机制。一般而言,在运行效 率高、代码简洁、移植性好的c 语言中使用实时系统,因而要求作为其支撑软件的 2 南京航空航天大学硕士学位论文 实时d b m s 具备与c 的接口机制,用以支持较大型的实时应用软件。 此课题来源于航空基础科学基金项目具有主动性能的实时数据库研究,整 个项目力图研究一个具有主动性能的实时d b m s - n 职t d b 。本文的主要工作为 采用主存技术的实时数据库n h r t d b 中c 与查询语言接口机制的设计与实现。 3 第一章主动实时d b m s n h r t d b 系统概述 主动实时d b m $ n h r t d b 在原有的关系d b m s n h d b 和支持抽象数据类型的 d b m s n h e d b ( 在t 0 2 0 下实现) 的基础上发展而来,加入了主动功能; 为了提高 实时性,使用主存d b 的实现方法,将d b m s 本身和数据库的数据全部装入内存, 节省了读写外存的i o 时间,提高了响应速度。 主动实时d b m s n h r t d b 有如下的特点:对各种操作有强实时性,能够根 据环境变化( 如:时间,数据库的状态等) 自动触发有关操作,并能够嵌入c 语言中。 本系统的功能主要有: 1 、基于主存数据库技术的交互式查询语言s q l 吲: 2 、支持主动功能的规则子系统剐: 3 、n h r t d b 与c 的接口: 1 1 交互式接口 基于s q l 的查询语言的b n f 如下: := c r e a t et a b l e 【, 】 := c k e a t ei n d e x o n := a l t e rt a b l e := a d d , 】 id e l e t e , 】 im o d i f y , := d r o pt a b l e := d r o pi n d e x := i n s e r ti n t o 【( , ) 】v a l u e ( , i i n s e r t i n t o ( 关系名 ( ,) s e l e c t 子句 := d e l e t e 【w h e r e 条件】 := s e l e c t 【, 】f r o m 【, 【w h e r e 条件lw h e r e i ns e l e c t 子句1 := r e n a j v et a b l e := u p d a t e s e t 表达式 ,( 属性名 表达商 , w h e r e 条件iw h e r e i ns e l e c t 子旬 4 1 2 规则子系统 主动数据库与实时数据库相结合,可以使得数据库系统具有实时性和高效性, 因为主动数据库除了存储数据外,还存储控制知识( 即规则) 。这种知识说明特定 情形出现时( 某事件发生或条件成立) 所必须采取的行动。这样,主动数据库中的 各种规则能够在特定情形出现时自动触发,完成一个或一系列的操作,以避免由于 人为干预所造成的不及时性。而且,在实时数据库应用中,其环境往往是动态的, 正需要不断地监视和事件驱动控制。 1 2 1 规则子系统的体系结构 本系统中规则予系统的功能部件及其执行结构【5 “,如下图所示 图1 1 规则子系统的功能部件及其执行结构 1 d b m s :它是传统的数据库管理系统,是系统的被动模块,执行传统的物理 数据库管理的功能,用来存储数据和对数据进行维护、管理与运用。本实时数据库 系统采用的是主存技术,它还负责对内存资源的管理。 2 事件探测器:负责基本事件的探测,向规则管理程序发信号以报告事件的发 生,并传递有关信息。在本系统中,由于时问关系,我们只考虑了事件为数据库基 本操作的情况,并且将对这些事件的探测融合于d b m s 之中。 3 规则管理程序:根据收到的事件信号对相关的规则( 可能多条) 进行处理, 调度并执行相应的条件评价器,根据评价结果决定是否触发相应的规则,若是,则 调度规则到命令的转换程序,将所触发的规则转换为数据库操作,并通过d b m s 执 行之。 4 条件评价器:负责相应条件的评价。 5 规则维护程序:负责规则的建立、删除和修改。 5 6 d b 和r b :分别表示数据库和规则库。 系统总的数据和控制流为:作为事件的系统行为一旦发生,相应的事件探测 器即可探测到,并给规则管理程序发信号。规则管理程序根据事件信号激活有关 的规则进行处理。调度相应的条件评价。条件评价器将评价结果返回给规则管理 程序。若条件满足,规则管理程序触发相应的规则,并调度规则到命令的转换程 序。规则转换为命令后,规则管理程序通知d b m s 执行被触发的活动。被触发 活动执行完毕。系统继续正常运行。 1 2 2 规则的表示与维护 规则表示在某一引发事件发生时,如何主动地执行其中包含的由用户预先设定 的动作。一个规则可由“动作”和“条件”两部分组成。当某一引发事件发生时, 检查当前系统状态是否符合规则条件,若是则触发规则,执行相应的动作。其中“动 作”就是一个可执行的程序或操作序列。引发事件可以包含各种类型的基本事件和 组合事件。“条件”是关于数据库的状态或状态变迁,还可以是定时限制的。这些 都要求提供其表示与说明的语言支持。通过s q l 语言就可以来很好地表示规则,在 本系统中,我们采用三个特殊的修饰符与任何一条s q l 语句命令组合以改变这些命令 的作用,这些组合后的命令就是规则。 规则有三种类型,以所带的不同的修饰符相区别。下面给出规则定义语句的基 本形式的文法描述酬: 规则定义语句) := d e f i n er u l e ( 规则) 规则) := ( 规则名) i s ( 修饰符子句) ( 修饰符子句) := a l w a v ss q l 语句 i r e f u s e u p d a t e ( 关系名) w h e r e 子句 i r e f u s ei n s e r t i n t o ( 关系名) w h e r e 子句 lo n c es q l 语句 s q l 语句) := s e l e c t 语句iu p d a t e 语句id e l e t e 语句 ( 规则修改语句) := u p d a t er u l e ( 规则名) ( 规则删除语句) := d e l e t er u l e ( 规则名) 例1 :保持m i k e 的薪金与b i l l 的薪金一致。 a l w a y s u p d a t ee m ps e t s a l a r y = n e ws a l a r y w h e r en a m e“m i k e ”a n d c u r r e n tn a m e = “b i l l ”o r 6 堕塞塾窒塾墨查兰堡主兰堡堕苎 n a m e = “b i l l ”a n dc u r r e n t n a m e = “m i k e ” 这一规则确保任何用户更新m i k e 或b i l l 的薪金时将自动更新b i l l 或m i k e 的薪 金,以保证两人具有相同的薪金。 例2 :禁止选取m i k e 的薪金。 r e f u s es e l e c t s a l a r y f r o me m p w h e r en a m e = “m i k e ” 具有r e f u s e 修饰符的规则的语义就是禁止对满足限制条件的实体执行指定的动 作,其中限制条件可以涉及多个实体集。 例3 ;在4 月1 5 日以后的某时刻执行一次对m i k e 的薪金的选取动作。 o n c es e l e c t s a l a r y f r o me m p w h e r en a m e = - - “m i k e ”a n d t i m e ( p = “a p r i l1 5 ” 1 3 嵌入式接口 由于实时系统通常在程序环境中使用数据库,一般是在运行效率高、代码简洁、 移植性好的c 语言中使用实时系统,因而要求实时d b m s 具备与c 的接口机制。 n h r t d b 的嵌入式接口提供了种方便有效的途径,使得c 语言的应用程序可 以使用查询语言访问和操作数据库。通过调用本系统提供的接口函数,应用程序可 具备“第四代语言”的特性,可以访问权限允许范围内的任何数据库文件,并依需 要对其进行操作。有了这个接口,就好比在d b m s 和应用程序之间架起了一座桥梁, 应用程序可在c 环境中灵活地存取数据库。 本接口最终呈现给应用程序用户的主要是一个集成的函数库l i b ,它包含了全 部与接口有关的函数的目标代码,这些函数负责数据库的检索、存取,用户无须考 虑怎样访问数据库文件,只须与该l i b 库链接即可如调用标准库函数一样直接使用 本接口所提供的接口函数,实现在宿主语言c 中对数据库的操作。 7 第二章主存机制的设计 2 1 主存数据库技术的由来及基本思想 早在d o s 系统面世时,就有了内存驻留程序的概念,把d o s 的内核驻留在内 存高端,这可算作内存思想的萌芽。但当时由于硬件技术限制,内存很有限,只能 驻留最基本的内核程序。近年来硬件技术飞速发展,c p u 越来越快,磁盘容量越来 越大,大容量的数据库将普及,在这些数据库中,将使用大字节的内存来作为缓冲 区。这样一来,除了一些最大的数据库表外,d b m s 系统和其它所有的数据库表将 驻留在内存中。这些技术进一步打破了目前数据库系统体系结构的基本假定。在新 的计算机体系结构下,数据结构、算法和工具都要重新进行评价。 内存与外存显然有明显不同的特性,主要表现在f 1 i : 1 内存的存取时间远远小于外存存取的时间。 2 内存中的数据通常是易失的,外存则不然。但花费一定代价,有可能构建不 易失的内存。 3 外存有一个不依赖于存取的数据量的、较高的、固定的存取代价,因此,用 于外存的磁盘是面向块的存储设备;内存则不然。 4 对于磁盘而言,顺序存取快于随机存取,因而数据在磁盘上的排列至关重要; 内存中对顺序存取的要求并不高。 5 内存通常可被处理器直接存取,磁盘则不然。这使得内存中的数据较外存中 更易受到软件出错的侵袭。 这些不同几乎影响到d b m s 从操作控制到应用接口的各个方面,故须对数据库 的结构、数据的组织、内存管理、缓冲区管理、通讯区管理、输入输出调度等方面 重新加以考虑。 将整个数据库放入内存的设想是合理的和必要的【1 l : 对一些应用来说,数据库规模是有限的或者以小于内存容量增长率的速度增长, 内存足以容纳整个数据库。在一些实时应用中,数据必须驻留在内存以满足实刚需 求,因此必然要求数据库规模小于可用内存( 例如:雷达跟踪要求将所发现的目标 与已知飞行器进行匹配;发现和把握稍纵即逝的证券交易机会。这些数据库的规模 都不大,但对时间要求很严) 。 显然,必将有一些大规模的数据库无法全部放入内存,比如卫星图像数据库。 这时,可以采用磁盘数据和内存数据相结合的方法,优先将经常用到的数据( “热 数据”) 和时间要求严格的数据放到内存中,而把不常用到的数据( “冷数据”) - 8 - 壹塞塾皇堕墨查兰堡主兰些兰塞 和时间要求不严格的数据先放在外存。内外存调度时调出较“冷”( 最近最少使用) 的数据,回收其空间,分配给要调入的关系。 主存数据库传统数据库+ 大缓存( c a c h e ) : 如果传统数据库配有足够大的缓存( c a c h e ) ,可以做到始终将数据库的拷贝驻 留c a c h e 。尽管这样的系统也可获得较好的响应,它却并非充分利用了内存的优点。 比如,应用是通过缓冲区管理来存取数据的,就好比数据还是在磁盘上。每当访问 一个元组时,须先计算出其磁盘地址,然后激活缓冲区管理器,检查相应块( b l o c k ) 是否在c a c h e 内,若在,则拷贝该元组到元组缓冲区,这才真正执行查询。显然, 这样的访问远不如直接引用其内存地址方便快捷。 对于内存数据库的定义有很多种不同的说法。一般认为,判断一个数据库是否 为内存数据库的标准是看其数据库的主拷贝或“工作版本”是否常驻内存。据此给 出如下的定义p 哪: 设有数据库d b ,d b m ( t ) 是t 时刻d b 在内存中的数据集,d b m ( 1 ) cd b : t s 为所有事务的集合,a t ( 1 )是t 时刻的活动事务集,a t ( t ) t s ;对于 v t e a t ( t ) ,d ;( t ) 为t 在t 时刻的操作数据集,若在任一时刻t ,均有: 对于v i e a t ( t ,d ;( t ) c :d b m ( t ) ,则称d b 为一个内存数据库。 内存数据库并未假定任何时候数据库都在内存,还需要外存支持,因而依然有 对外存的i 0 。因此。内外存存储结构的设计以及内外存数据的管理与交换成为内 存数据库的一个重要问题 2 内外存储区的设计与管理 内存数据库存储管理子系统主要解决数据库如何存储在内外存上,尤其是如何 管理内存中的数据库以及如何进行内外存数据的映射。 。 2 2 1 外存结构 由于n h r t d b 具有完善的数据字典( 用于描述每个关系和关系中的每个属性的 性质) ,系统很容易通过数据字典存取外存上的关系,所以对外存数据的管理直接建 立在操作系统的文件系统之上。存储数据库到外存有两条途径: 1 采用传统关系数据库的方法,把每个关系作为一个文件存储在外存; 2 把某一时刻整个数据库的状态( 包括所有的关系和有关的数据字典) 存储在外存的 一个文件中。 数据库状态在实际应用中是非常有用的,它表示数据库在以前某个时刻的值, 9 壅堕里里! 坚量呈堡里型塑堡兰墨兰里一 这为实时数据库( 或主存数据库) 的恢复和满足在不同的初始值下运行提供了保 证。国外正在研究的一些原型系统己具有类似的功能,如在面向对象数据库管理 系统i r i s 基础上研制的对象关系d b m s - - a m o s ,它也是一个主存d b m s a 由于 本项目是应用于航空领域的实时数据库。所处理的数据仍然是传统数据,硬件外 存完全能够支持该功能。 2 2 2 内存管理 为了有效地管理内存资源和数据库系统运行时的各种资源,把主存管理子系 统所涉及的内存分成三个区域:系统区( s y s ) ,临时工作区( t m p ) 和数据库区 ( d a t ) 。其中系统区还可细分出一个数据字典区( d i c ) ,临时工作区还可细分出 个区作为缓冲区( b u f ) 。 l 系统区( s y s ) f 临时工作区( t m p ) | 数据库区( d a t ) l 各区对应内容: 系统区( s y s ) :存放d b m s 系统及数据字典: 临时工作i e ( t m p ) :存放在d b m s 运行过程中所产生的临时数据,中间文件 等: 数据库区( d 芦汀) :存放整个数据库的数据: 以上各区中,s y s 区的程序空间由操作系统申请( 不含d i c 区) ,其余各区和 d i c 区由n h r t d b 的内存管理机制内存管理子系统动态地申请、分配和装入 相应的数据。 d i c 区的数据字典存放次序如下:先放数据库的关系字典和属性字典,再放 用于主存管理的m b t ( 内存块表) 、m r t ( 内存资源表) 、m a p ( 内存映射表) 、 u n u s e d ( 空闲内存表) 。此顺序与写出时的顺序有关。 由于n h r t d b 系统包含程序和数据字典,则需由操作系统申请系统程序空间, n h r t d b 的存储管理机制申请数据字典区。采用的方法和策略如下: 系统启动时,由操作系统装入整个n h r t d b 系统的程序。 系统装入并运行后,首先内存管理机制从内存的空闲空间中为n h r t d 8 的 数据字典申请内存空间d s ,紧接着申请临时工作区d s :,再为数据库区申请其内 存空间d s 3 。 通过n h r t d b 提供的语句,根据数据字典中的信息依次把各个关系( 表示 最新的数据库状态) 或数据库在某一时刻的状态装入数据库区。 当申请的d s 2 或d s 3 不能满足运行需求时。n h r t d b 需再向操作系统申请 另一内存块,如d s 4 空间。以此类推,d s = d s ,d s 2 ,d s 。) 。通常,若d s 2 1 0 南京航空航天大学硕士学位论文 或d s 。申请得足够的大,是能够满足运行需求。 把临时工作区和数据库区分开的目的是两者的工作性质不同,前者需要频繁 地申请和回收空间,而后者则正好相反,这样有利于管理。 2 3 主存机制的存储结构及其相互关系 在操作系统下运行n h r t d b 时( 即装入该系统并运行) ,已占用一部分内存。 为了管理由n h r t d b 控制的d s 空间。将其分页,每页4 k ( 页的大小可根据应用 作适当改变) ,用以下4 个表进行管理: m b t :内存块表,管理d s 空间: m r t :内存资源表,管理数据库在内存中的所有资源对象: m a p :页面映射表,反映内存块页面的使用情况: u n u s e d b :空闲内存表,管理空闲内存: 规定每个资源对象( 关系、数据字典、索引文件、查询结果等) 可以占用多个 页面,但一个页面不能存放多个资源对象。 2 3 1 内存块表m b t 用内存块表m b t 来管理d s 空间,其结构如下: t y p e d e f s t r u c t - n t b t k n o ;1 1 块号 i n tb l k t y p e ;块的类型 i n tb i k s i z e ; 块的大小( 页数) a d d i l e s s s t a r t a d d r e s s ;,块的首址 u n u s e d * f r e e l i s t ;指向该块中空闲空间块链表 i n tm a p s t a r t ;,指向m a p 表中对应该块的起始位 i n t n e x t b l k ;指向该表中同一类型的下一内存块 ) m b t ; 使用内存块表m b t 的目的是为了更加节省内存空间。如在3 2 兆内存环境下。 第一次申请数据库区d s 。时,仅申请8 兆。当d s 。不够用时,n h r t d b 再向操作 系统申请一块空闲内存d s 。( 如4 兆) 作为数据库区。这样使得n h r t d b 能够据不 同应用环境申请不同的数据库空间,并可据内存配置自动向操作系统申请一个较合 理的内存空间。如不采用动态申请内存块的方法,则必须一次申请足够大的内存空 间,可能导致浪费内存空间。 2 3 2 内存资源表m r t 用于管理在内存中的所有资源对象,包括关系、数据字典、索引文件、查询结 1 1 壅堕里坐堡兰曼鳖呈垫型塑堡茎苎壅墨一一 果等。 t y p e d e fs t r u c t i n t d e l e t e ; 删除标记。0 :未删;l ;删除 i n t b l k n o ; “所鼠块号 l o n gl e n g t h ; ,该资源对象的总长度( 字节数) i n t o b i t y p e ; ,该资源对象的类型 c h a r o b j n a m e n a m e l e n ;该资源对象的名字 i n t s t a r t p a g e ; 该资源对象所占用的块内起始内存页号 i m t o t a i p a g e s ; i 该资源对象所占用的页面数 i n t u p d a t e ; 表明该资源对象是否更新过。 ,o :未更新过;l :已更新 i n t r e f n u m :,引用计数器( 仅对关系适用) i n t f r e e ;最后一个页面空闲空间首址 i n t n e x t ;本内存块满或存放该资源对象的连续内存空间满时, 脂向m r t 中后续部分存放空间 ) m r t : 当o b j e c t y p e 表示是“数据字典”类型时,o b j e c t n a m e 的取值是:r e l 、a t t r 、 i n d e x ,分别表示关系字典( 描述每个关系的信息) 、属性字典( 描述每个关系中每 个属性的信息) 、索引字典( 描述每个索引文件的信息) 。元素u p d a t e 主要用于 资源对象是关系、索引文件和数据字典的情况。如值为1 表明了该对象已被修改( 对 关系和索引文件是u p d a t e 、d e l e t e 、i n s e r t 操作,对关系字典和属性字典是a l t e r 和 d r o p 操作) ,则在进行保持内外存数据一致性处理时,该资源对象的值应该写至u # t - 存的对应文件中t 否则,该资源对象不需写到外存。但是,存储数据库状态时,u p d a t e 值不起作用。 2 3 3 内存映射表m a p n h r t d b 为申请到的内存建立m a p 表,每个b i l 位对应于一个页面。b j t 位为 1 ,表示对应的页面已占用;b i t 位为0 ,则表示对应的页面未被占用。如下图所示: 123456789 1 1 内存空间页:_ 圜璺量 】墓霹 工 二二二二曼匪 二 皿 m a p 表:田亚匝e 口丑二= 卫匝回姗 1 2 妻塞鉴塞塾墨查堂堡兰兰垒兰兰一 2 3 4 空闲内存空间链表u n u s e d 用于管理由n h r t d b 控制的空闲内存页,每个内存块有一个u n u s e d 表 t y p e d e f s t r u c tn o d en o d e ,u n u s e d ; s t n l c tn o d e j n t s t a n p a g e ;,该空闲空间的起始页号( 按升序排列) i n t p a g e s ; ,该空闲空间的页面数 n o d e + n e ) 【t :,指向下一空闲空间的结点 ) ; 数据结构与其所管理的内存关系图解: 内存块表( m b t )主存( m m ) 块类型:d a t 区猫缓缀缓燃 块号:l 内存资源表洲f 玎) 缓缓缓缀燃 块的丈小t $ 一 3 块首址 i 啊竹二 删除标记缓缀缀绍獭 u n u s e d ( u n u s e d , 所属块号:1缀缀彩缀黝 1 i p 始孤:3 总长度 6 - 下一个d a t 块空闲页救:1类型:关系 7 t m p 区 名称:t a b l 蝴 2起始页4 大小 j 总页数;3 块首一 l e i 本块中页数:2 u 刖s e d 一 :i 。 i 更新标记:1 啪一 计数器:2 删l 乙 删l l f r e e 一彩缀缀缓燃 一n e x t 缓缓缀缓獭 d a t 区 3 5删除标记 缀缓缀缓燃 大小 55 块首一总长度 u 洲s e 0类型:关系 姒p 7 l 始j l :3 i 名称:t a b l i l i n u l l 起始页一4 l 骂坚f 总页数:3 i本块中页戤:l 厂亍 更新标记:1 i 1 l l 删1 1l 计数嚣:2 n u l l 页面映射表( m a p ) 1 1o11oo110o l 、厂j 块1 l 弋,广 块5 块l ( d a t 区 块2 ( t m p 区 块5 i 蹦区 块n 1 3 - 、lrf、,j、,0产j、l厂 实时d b m s 与c 接口机制的设计与实现 p 通讯区结构,主要负责d b m s 与主存的通讯。+ s t r u c tc o m m u n i c a t e m + t g b i k n o ;申请到的块 i n t g b l k s p a c e :可控块空间 m t g t a b c o u n t ;关系总数 m 。t g t a b s p a c e ;厢t 控关系空间 i 。n t g a t t r c o u n t ;属性总数 m t g a t t r s p a c e ;可控属性空间 m 。t g m r t n o ;m r t 表中的内存资源对象个数 l i l t g m r t s p a c e :可控m r t 表空间 m t g c u r m r t ;m r t 表中当前的内存资源 c h a r g e r r t e x t 8 0 ;出错信息 ) m m $ p o m m u ; 1 4 3 1 装入机制: 第三章主存机制的实现 n h r t d b 提供的装入语句的语法格式为: := l o a d装入整个数据库 il o a d ,装入由“文件名”确定的某个数据库状态 ( 1 ) l o a d 语句首先把关系字典和属性字典装入s y s 区,再根据其中的信息依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级地理《世界的温度场:分布、差异与探因》教案
- 部编版七年级语文上册文言文古今异义词专题精讲教案
- 初中八年级生命科学·人体“食品工厂”的流水线与精炼车间-消化系统结构与功能耦合导学案
- 初三生物专题复习课:“被子植物的一生”生命历程整合与中考能力提升教案
- 北师大版八年级数学《分式的乘除》导学练核心素养教学设计
- 八年级上册英语 Unit 4 Whats the best movie theater Section B Self Check 单元整合与拓展教学设计
- 初中八年级地理《西北地区:干旱环境与人地关系协调》教学设计
- 初三历史中考一轮复习专项教案:基于核心素养的史料图片深度解读与命题思维建构
- 《区域工业科技创新体系:理论建构与全州实践》研究生课程教学设计
- 2028年绿色食品采购合同二篇
- 40米落地式脚手架专项施工方案
- 邻苯二甲酸二丁酯安全技术说明书样本
- 2024年高考物理真题分类汇编(全一本附答案)
- 生产现场管理要点
- 苏教版四年级科学下册单元测试卷及答案(全册)
- 12、口腔科诊疗指南及技术操作规范
- 学前儿童行为观察的方法(课堂PPT)
- 神经康复科诊疗指南规范
- GB/T 35749-2017锦纶66弹力丝
- GB/T 3478.1-2008圆柱直齿渐开线花键(米制模数齿侧配合)第1部分:总论
- GB/T 18851.4-2005无损检测渗透检测第4部分:设备
评论
0/150
提交评论