已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)对象—关系数据库语言及其实现机制.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 ( 关系数据库对复杂对象处理能力的缺乏导致了面向对象数据库的诞生。而面向 对象数据库的查询语言、永久性等问题还亟待解决,因此出现了一种数据库新技术 扩展关系数据库,增加对象的特性和功能,并允许用户定义类和函数,使其具 有描述复杂对象的能力,即对象一关系数据库。 在我们自行研制开发的对象一关系数据库管理系统原型o r c s i 中,较好地实 现了关系数据库和对象数据库的理论、技术和机制的集成。系统通过在标准关系数 据库语言s q l 的基础上扩充对象特性,设计了一种全新的对象一关系数据库语言 o r c s s q l ,并实现了o r c s i 的数据说明系统和数据字典系统。 系统的研究关键,首先是对象一关系数据模型。该数据模型包括对数据类型 的扩充,如基本数据类型扩充、大对象、集合、抽象数据类型等,以及面向对象 概念的引入,包括行对象、对象表、对象视图、继承和引用机制。在此基础上, 系统扩展了相关对象概念的定义语言和对象的插入、删除、修改、查询等数据操 纵描述机制。 o r c s i 的数据说明系统和数据字典系统的设计和实现是难点。涉及预编译系 统的体系结构、工作流程,以及词法和语法分析的实现;并在传统数据字典的基础 上,扩充了抽象数据类型、方法等的表存储结构和管理策略,提出了数据字典中类 层次查询和路径查询的算法。 关键词:对象关系数据库:s q l 语言;预编译系统:数据字典 华中科技大学硕士学位论文 a b s t r a c t t b - ea b s e n c eo f h a n d l i n gc o m p o s i t eo b j e c t si nr e l a t i o n a ld a t a b a s es y s t e m sc a u s e dt h e c o m i n go fo b j e c t o r i e n t e dd a m b a s em a n a g e m e n ts y s t e m s b u to o d b m s s h a v em a n y p r o b l e m st os o l v e ,s u c ha sq u e r yl a n g u a g e a n dt h ep e r m a n e n c e s ot h e r ei san e w t e c h n o l o g y e x t e n d i n gr e l a t i o n a ld a t a b a s es y s t e m s ,i n c r e a s i n gt h eo b j e c t sc h a r a c t e r i s t i c s a n df u n c t i o n s i ta l l o w st h eu s e rt od e f i n ec l a s s e sa n df u n c t i o n s ,t h e nm a k e s 也ed a t a b a s e h a v e a b i l i t y t od e s c r i b e c o m p o s i t eo b j e c t s t h et e c h n o l o g y n a m e so b j e c t - r e l a t i o n a l d a t a b a s e t h e p r o t o t y p eo b j e c t r e l a t i o n a ld a t a b a s em a n a g e m e ms y s t e m - o r c s i d e v e l o p e d b yo u r s e l v e s ,h a sr e a l i z e dt h ei n t e g r a t i o no fr e l a t i o n a l d a t a b a s ea n do b j e c td a t a b a s e s t h e o r y ,t e c h n o l o g y a n dm e c h a n i s mp e r f e c t l y t h e s y s t e m i n t r o d u c e sab r a n d - n e w o b j e c t r e l a t i o n a l d a t a b a s el a n g u a g eo r c s s q l ,d e s i g n e dt h r o u g he x p a n d i n go b j e c t s c h a r a c t e r i s t i c so nt h eb a s i so fs t a n d a r dr e l a t i o n a ld a t a b a s el a n g u a g es q l ,a n di m p l e m e n t s t h ed a t a e x p l a n a t i o ns y s t e m a n dt h ed a t a d i c t i o n a r ys y s t e mo f o r c s 一1 t h em s e a r c he m p h a s i so ft h i ss y s t e mi st h eo b j e c t r e l a t i o n a ld a t am o d e lf i r s t t h e d a t am o d e li n c l u d e st h ee x p a n s i o no f t h ed a t a t y p e ,s u c ha st h ee x p a n s i o no f t h eb a s i cd a t a t y p e ,l a r g eo b j e c t ,s e t ,a b s t r a c td a t at y p e ,e t c ,a n d0 0 sc o n c e p t sa r ei m p o r t e di n t ot h e m o d e l ,i n c l u d i n gr o wo b j e c t ,o b j e c tf o r m ,o b j e c tv i e w , i n h e r i tm e c h a n i s ma n dq u o t e b a s e do nt h eo b j e c t r e l a t i o n a ld a t am o d e l t h es y s t e me x p a n d st h ed e f i n i t i o nl a n g u a g eo f t h eo b j e c tc o n c e p t sa n dt h ed e s c r i b a b l em e c h a n i s mo f o b j e e ld a t a h a n d l i n g :i n s e r t i n g , d e l e t i n g ,m o d i f i c a t i o na n dq u e r y i n g ,e t c t h ed e s i g na n dr e a l i z a t i o no ft h ed a t ae x p l a n a t i o ns y s t e ma n dt h ed a t ad i c t i o n a r y s y s t e m o f o r c s i i s v e r y i m p o r t a n t i t i s i n v o n e d t h a t t h es y s t e m a t i cs t r u c t u r e ,w o r k 1 0 w , i i 华中科技大学硕士学位论文 t h er e a l i z a t i o no fm o r p h o l o g ya n ds y n t a c t i c a n a l y s i s ;b a s e do i l t h ec o n d i t i o n a ld a t a d i c t i o n a r y , t h es y s t e me x p a n d st h es t o r a g es t r u c t u r ea n d m a n a g e m e mp o l i c yo f t h ea b s t r a c t d a t at y p ea n d m e t h o d ,a n db r i n g sf o r w a r dt h ea r i t h m e t i co f t h ec a s sq u e r ya n dt h er o u t e q u e r y 。 k e yw o r d s :o b j e c t r e l a t i o n a ld a t a b a s e ;s q l l a n g u a g e ;p 舭o m p i l m gs y s t e m d a t a d i c t i o n a r y 一 i 华中科技大学硕士学位论文 1绪论 1 1 课题背景 关系数据库系统的广泛应用在很大程度上归功于关系数据库使用的方便性和 灵活性。目前有许多强大有效的关系数据库管理系统,如o r a c l e 、s y b a s e 等。然而, 现实世界中还存在许多特殊应用需求,如数据结构复杂,数据类型特殊等,它们在 计算机辅助设计( c a d ) 、计算机集成制造( c i m ) 和多媒体领域中常常出现。对 此类应用,关系模型的描述能力就显得力不从心了 1 圳。鉴于这一原因,新的数据库 理论和新的数据库技术不断被研究发现,其中最有影响的是面向对象数据库技术。 面向对象数据库在理论上已经从关系模型中脱离出来,它支持新的数据类型,强调 数据抽象、继承和永久陛的概念。但是,面向对象数据库系统在实现上难度较大, 特别是查询语言、永久性和并发控制等问题还处于研究之中【5 8 】。 因此在新一代数据库技术研究中,种趋势是扩展关系数据模型,增加对象的 特性和功能,并允许用户定义类和对象,使其具有描述复杂数据类型的能力,来满 足不断增长的多媒体应用、迅速发展的w e b 应用及其它新的应用需求。对象一关系 数据库就是这样发展起来的睁“1 。 在对象一关系数据库中,对象一经定义,其他用户在获得权限的条件下可以 像使用基本数据类型一样使用它们,从而使关系数据库能够理解具体应用的特定 数据类型,扩大数据建模的能力。例如,在对象一关系数据库中,除字符串、整 型、实型等基本数据类型以外,人、学校、汽车等对象类型都可以像基本数据类 型一样使用“2 。”3 。 1 2 对象一关系数据库研究的国内外概况 对象一关系数据库系统是面向对象技术与数据库技术的结合走向成熟的产物。 它提供对于复杂数据进行复杂查询的支持,从而能够更好地满足迅速发展的多媒体、 w e b 等新应用的需求。目前市场上已有若干个具有o r d b 特性的数据库产品推出, 并有不少数据库厂商纷纷预告了各自的o r d b 产品。 华中科技大学硕士学位论文 在系统实现方面,许多o r d b 系统承诺提供用任意编程语言实现它们的a d t 和应用的能力。在支持中间层和桌面应用方面,这些服务器将和高性能、面向对象、 具有缓存的前端一道工作,以提供一个开发环境,使得同一对象模型可在不同层上 描述数据库,支持s q l 查询和导航式编程。在功能实现方面,方法可在客户端的缓 存数据上运行,或在服务器方运行,这取决于在哪边运行更便宜。对于触发器、参 照完整性以及其他完整肚限制,如商业规则,采用s q l 或强制式的面向对象的语言 加以描述,而由系统决定在服务器或客户端上运行“4 ”1 。 采用增量式的方法,把一个关系型的d b m s 引擎变为对象一关系型的引擎, 是许多关系厂商的演变策略1 “。第一个采用增量式演变策略的是i n g r e s 公司,它 于1 9 8 8 年将它的关系引擎扩展为具有基本类型扩充功能和规则管理器的系统,这两 个特征是对象一关系数据库四个特征中的两个。开始时,提供的功能尽管不够全面, 但它较早开始了向对象关系型系统迈进。1 9 9 0 年被a s k 公司购买后,这种演变 过程基本上停止了。当a s k 公司被c a 公司收购后,采用了一种新的策略,即网关 方式来得到对象一关系型的功能。i b m 已经采用增量式演变策略作为它们发展对象 一关系功能的策略,并将u n i x 上的关系引擎d b 2 6 0 0 0 扩展为支持基本数据类型 扩充功能和规则管理器的系统。微软也采用增量式演变策略,改写m i c r o s o f ts q l s e r v e r 的某些部分,并开放各种各样的内部接口,并在s q l 中增加复杂对象。 另种策略是扩展面向对象的数据库管理系统,使之成为个对象一关系数 据库系统。目前大多数的o o d b m s 都与一种特定的语言紧密集成o ”“,如c + + 或 s m a l l t a l k ,它们提供与用户程序相同地址空间的运行系统。o d m g 中的o q l 有与 s q l 3 相同的特征,但在与s q l 3 的关系上,存在两种可能的局面,即o q l 和s q l 3 相互融合,形成一个单一的标准,或者o q l 被s q l 3 埋葬。这主要基于推动s q l 3 的那些公司的力量所决定的,这些公司包括i b m 和o r a c l e 。这样o o d b m s 有必 要向o q l 系统发展,并要完成以下工作:( 1 ) 实现一个s q l 分析器;( 2 ) 实现一 个s q l 优化器:( 3 ) 实现一个执行查询计划的执行引擎;( 4 ) 完成与原有运行存储 系统的集成。 市场上的对象一关系数据库系统主要有以下些:o r a c l e 8 、d b 2 6 0 0 0c s 、 u n i s q l 、c a - i n g r e s 、o d b 、o d a p t e r 、i l l u s t r a 、o m n i s c i e n c e 等,上述系统尽管在 华中科技大学硕士学位论文 支持对象一关系数据库的全面特征上存在差异,但都是开创o r d b 市场的先锋。“。 1 o r a c l e 8 o r a c l e 公司于1 9 9 7 年6 月底推出了对象关系数据库o r a c l e 8 。o r a c l e 8 在原 o r a c l e 数据库基础之上做了很多的改进,但是它最重要的改进是支持对象技术,这 使得o r a c l e 8 增加了处理新的、更加复杂的数据类型和应用语义的能力。“。 o r a c l e 8 是一个“允许对象”的r d b m s ,它的数据模型具有利用对象关系 , 扩展集合来支持对象的能力。比起o r a c l e 7 ,o r a c l e 8 在“允许对象”方面增加了如 下新的功能: ( 1 ) 扩展类型系统( 对象类型,具有特性、方法、参数) ; ( 2 ) 用户定义函数( p l 、s q l 、c c + + 的外部过程) ; ( 3 ) 对象视图; ( 4 ) 客户对象存储器; ( 5 ) 对象类型翻译器: ( 6 ) 新数据集。 对象类型可以是雇员、顾客、订单、存货清单、保险单、航班、银行账目等现 实世界的实体。o r a c l e 8 通过扩展类型系统完成在数据库中建立对象及其相关属性和 访问工作。 数据库设计者使用o r a c l e 8 的扩展类型系统,来定义实际应用中的复杂的数据 类型。它具有以下功能: ( 1 ) o r a c l e 8 的对象类型是可以堆积的块。一个对象类型可以是一个列类型,也 可以是表类型。列类型建立列对象,表类型建立表对象。 ( 2 ) o r a c l e 8 的对象类型在语义上等同于s q l 3 的行类型,它被设计成能表达现 实世界实体的事物对象。 ( 3 ) 每个对象有一个唯一的、通用的对象标识,这是数据库自动赋值的。o i d 在行对象存在时永远不能被改变,也不能赋给不同的行对象。 ( 4 ) 一个对象类型有一个或多个属性,每个属性有名字或类型。其中类型必须 是基本类型、值集合、大对象、另一对象类型( 可嵌套) 。每个对象类型有自己的特 性、方法或函数。 华中科技大学硕士学位论文 o r a c l e 8 用户端也支持对象管理。当一个应用使用到对象时,建立对象存储器并 可将复杂对象放入客户对象存储器中,并通过数据库中的复杂对象检索提供客户端 导航。 另外,o r a c l e 8 为用户提供的管理和使用对象的工具是对象类型翻译器,它能 将o r a c l e 8 的对象类型翻泽成相应的编程语言的结构和对象。 o r a c l e 8 还全面提出了网络计算结构( n c a ) 的观点:在客户端通过c o r b a , 对象扩展的分布式对象计算,在中间的应用服务器起纽带作用,最后是后端支持服 务器。为了支持对象关系,o r a c l e 8 中提供了对象扩展模块,可以插入n c a 体系中。 但是o r a c l e 8 也只提供了5 种对象扩展,它对通用对象的支持还不够。 事实上,o m l c e 8 并未完全实现对象一关系模型:它提供了封装性,但仅仅是 通过p l s q l 方法;嵌套表也仅局限于一层,不支持继承陛;函数可以重载,但没 有动态的多态性;外部过程只能从p l s q l 而不是s q l 中调用。 2 u n i s q l u n i s q l 提供了一个对象一关系数据库管理系统。它是一个客户机服务器对象 关系数据库管理系统,支持大而复杂的数据库类型,还可以与来自多厂商数据库 的数据透明地集成。u n i s q l 的应用领域有:用计算机表示的患者记录、文档管理 和公布、卫星支持系统、网络管理、复杂的金融分析和贸易、工程、地理信息系统、 国防系统、制造业、电子邮件记录系统、保险系统等”。 u n i s q l 是个统一的对象一关系系统,它在关系模型中引进了面向对象的一 些核心概念,如在面向对象的编程语言中用到的数据封装、对象标识、多重继承、 任意数据类型、嵌套对象等。 。u n i s q l xd b m s 从三个方面扩充了关系模型,反映了面向对象的概念。因此, 这一数据模型被划分为对象关系数据模型这类。第一个扩充反映了面向对象系 。 统的基本概念一个对象的值也是一个对象。即系统允许一个元组的某列的值 是任一用户定义的表的个元组,而不仅仅是某个系统定义的数据类型( 数字、串 等) 的一个元素;允许个表中的列包含另一个表的元组就直接导致了嵌套表的出 现。第二个扩充是面向对象的封装概念。把数据和对数据进行操作的程序( 过程) 结合到一起,让用户将过程附着在表上,并使该过程对每个元组中的列的值迸行操 4 华中科技大学硕士学位论文 作。第三个扩充是面向对象的继承层次的概念。它允许用户将数据库中所有表组织 成一种层次结构。这种表的继承性较之常规关系模型中大量独立表的简单聚集有两 个优点。它允许, n f l c q 建一个新的表,该表作为一个或多个已有表的子表;这个新 的表继承了已有表及其祖先表中所说明的全部列和过程。 u n i s q l x d b m s 还扩充了一种关系模型,即它允许表的行列条目拥有一组值 而不仅仅是一个值,而且允许这组值的数据类型不止一个。关系模型限制表的行 列条目只能是一个值,这就迫使用户创建额外的表和或在表的一个列中出现重复。 3 i l l u s t r a i l l u s t r a 出自i l l u s t r a 信息技术公司,它是一个数据库服务器,是为某些高级应 用开发的,这些应用要求在一个数据库系统中能支持数字、字符、文本、视频图像、 图像以及文档等。i l l u s t r a 的基本概念是在关系数据模型的一个良好构造的结构里嵌 入说明和操纵面向对象数据的能力。其目标是通过在其产品中集成抽象数据类型来 扩充关系数据库系统的数据类型,并且通过使用关系模型的先进的查询能力来提高 面向对象数据库的查询能力。“3 。 i l l u s t r a 通过标准的s q l 数据操纵语言来支持关系数据库的灵活性和强大的存 取能力,它还用标准的安全控制来限制数据库中数据的存取。它完全支持服务器要 求的数据完整性,还通过管理事务的执行和恢复来支持标准的事务概念。 i l l u s t r a 在关系数据库模型中融合了面向对象数据库模型的特征,从而扩充了关 系数据库模型的基本特征。i l l u s t r a 提供t t q 建任意用户定义的抽象数据类型的能力。 该产品还提供t x 寸用户定义的扩充数据类型的扩充、优化的存取能力。通过与面向 对象概念的结合,数据库设计者提供了封装、继承和多态等概念开发非传统数 据库管理系统需要的概念。其性能的改善是通过使用对象标识符指针直接存取对象 而获得的。 后来的i n f o r m i x 兼并了i l l u s t r a 和s t o n e b r a k e r 的作为业界先驱的o r d b m s ,这 称得上是“天作之合”:开创性的对象扩展结构和最快的、最具伸缩性的主流关系引 擎的结合。i n f o r m i x d y n a m i cs e r v e r 是当前最好的对象关系数据库技术,尽管在 它目前的版本中缺少一些关键特性,诸如复制,多重继承,j a v a 服务器扩展等。 华中科技大学硕士学位论文 1 3 对象关系数据库及其语言的标准化工作 s q l ( 结构化查询语言) 是一个国际公认的定义和管理关系数据库的编程语 言呲3 。 最初的开发是由i b m 公司于7 0 年代后期进行的,s q l 被认为是数据库界的奇 迹。在认识到数据库管理关系方法的诸多优越性后,各厂商纷纷开始开发基于这些 原理的商业应用产品。由于s q l 是被新产品广泛支持的语言,它很快就成为关系数 据库产品事实上的标准。 1 9 8 6 年1 0 月a n s i 发布了a n s i 文件x 1 3 5 1 9 8 6 数据库语言s q l ) ) ,该语言 成为国际公认的正式标准。 国际标准化组织已研制了一个代号为s q l 9 9 的新规范。“。 s q l 9 9 用抽象数据类型( a d t ) 定义对象的属性和函数。对外只看到它的属性 和函数的定义,而隐藏其实现,也就是a d t 是封装的。其属性和函数按p u b l i c 、 p r i v a t e 、p r o t e c t e d 三个等级进行不同的保护。a d t 下可以定义子类型,和一般对象 模型一样,a d t 之间形成超类型子类型层次结构,并支持继承、函数名重载等概 念。因此,s q l 9 9 中的a d t 与类没有实质的区别。也许以数据类型相称,在概念 上更接近s q l 的传统。 s q l 9 9 的属性按其值是否存储在数据库中,分为存储属性和虚拟属性。虚拟属 性的值不存于数据库中,而是由给定的函数导出。s q l 9 9 属性按其可修改程度分为 3 种,即u p d a t a b l e 、r e a l ) o n l y 、c o n s t a n t 。 s q l 9 9 定义三种类型的函数:构造函数,用以创建一个a d t 的实例;析构函 数,用以撤销一个a d t 的实例并释放其资源;作用函数,对a d t 的实例进行其他 的操作。 。 每个a d t 的实例可以附有一个全系统唯一的o i d 。在s q l 9 9 中,o i d 被看作 a d t 的一个隐含的存储属性,但这个属性的值不能由用户指定或更新。s q l 9 9 中用 u n d e r 子句说明子类型和其直接超类型的关系。 总之,s q l 9 9 一面用a d t 向对象数据库看齐,一面用c r e a t et a b l e 语句保 持与后兼容。它主要对s q l 标准数据库语言进行了下列三方面的扩展: 华中科技大学硕士学位论文 1 在程序设计方面的扩展 s q l 9 9 增) j n t 大量的复合语句,其典型代表为c o m p o u n d 语句,它为s q l 管理提供了强大的功能。c o m p o u n d 语句可用于变量声明、异常声明、事务处理, 用户亦可以使用动态的c o m p o u n d 语句。除此之外,s q l 9 9 同时还增设了许多业 已在其他高级语言中实现了的复合语句。 2 类型系统方面的扩展 s q l 9 9 定义了抽象数据类型a d t ,并引进子类型和超类型的概念。s q l 9 9 还 可以用一个已存在的a d t 或生成的类型来定义新的类型,即异类型。a d t 定义时 允许带有参数,其中参数可以是值参数,也可以是类型参数。作为内置的参数化类 型,s q l 9 9 提供了最常见的聚集类型s e t 、m u l t i s e t 、l i s t 。 3 查询语言方面的扩展 s q l 9 9 引入了触发器规则。触发器规则是指一个命名的对象在“触发事务点 火”,或者在满足某个任选的条件时,该事件即予发生。s q l 9 9 通过在基本表上指 定i n s e r t 、u p d a t e 、d e l e t e 等行为构成触发事件。s q l 9 9 还在查询语言中增 加了一些新的谓词,如f o r a l l 、f o r s o m e 等。 1 4 课题主要研究工作 o r c s i 是一个基于客户机朋务器的对象一关系数据库系统。本文以o r c s i 的研制为背景,讨论了对象关系数据库语言和数据说明系统的设计和实现技术, 着重研究对象一关系数据模型、对象一关系数据库语言设计、预编译技术以及数据 字典技术。第一章介绍对象关系数据库的国内外研究概况和对象关系数据库语 言的标准化工作:第二章溉要介绍o r c s i 的执行模型和功能结构;第三章讨论了 o r c s i 中采用的对象关系数据模型:第四章详细讨论了对象一关系数据库语言 o r c s s q l ;第五章重点讨论了o r c s - i 数据说明系统的设计和实现技术;第六章 为结束语,对全文所作的工作进行概括和总结。 华中科技大学硕士学位论文 2o r c s i 简介 o r c s i 是我们在w i n d o w s 平台上用v c + 中开发的一个对象一关系型数据库管 理系统原型。它使用比较成熟的客户机,服务器结构,采用消息驱动机制,支持扩充 的大对象等数据类型。 2 1o r c s i 的体系结构和执行模型 o r c s i 系统采用高档微机作为服务器,其o d b c 系统运行在档次较低的客户 机上,用户可以使用p o w e r b u i l d e r 通过o d b c 与o r c s i 服务进程相连。消息是用 户应用程序和核心系统都认可的通讯规范。客户机与服务器之间通过网络联接,通 过消息进行通讯。 运行于服务器上的o r c s i 核心系统由一个后台核心进程及一个磁盘i o 处理 进程组成。磁盘i o 处理进程负责系统缓冲区与物理d b 之间的块交换,即当核心 进程需要读取某一物理块而发现它并不在系统缓冲区中时,核心系统通过近似l r u 算法选择系统缓冲区中的某一块淘汰,并发消息给i o 处理进程,请求磁盘i o 进 程读入该物理块,而核心进程则拥有直接访问存贮于该站点的数据库的所有权力。 用户程序必须以消息通讯的方式与核心进程打交道。核心进程启动之后,处于不断 地接收消息、处理消息的循环之中。消息的处理包括:首先作必要的检查及相应的 准备工作,然后进行相应的消息处理,即对数据字典、数据库实施增、删、改、查 等操作,控制消息处理( 线索执行) 的并发执行,最后把访问数据库的结果组成消 息回送给对应的请求进程( 用户进程) 。 值得注意的是从操作系统的角度看,o r c s i 的核心进程、磁盘i o 进程是等同 的,都是用户进程。但实际上,磁盘i o 进程是o r c s i 核心进程的服务进程。只 有当核心进程提出磁盘读块请求时,i o 进程才能真正开始工作,它们之间的同步 互斥通过信号量操作实现。 o r c s i 系统的执行模型见图2 i 。 华中科技大学硕士学位论文 一= 请求服务消息l【服务响应消息 二 二 l 。1 。1 。1 。 ,一一 睦兰三三豸 d bj 一一 图2 1 0 r c s i 核心系统执行模型 为了提高o r c s i 系统的总体效率及并发度,o r c s i 核心系统采用了目前较 流行的多线索。一般说来,线索是d b m s 的一个执行流,它服务于d b m s 中的某 个用户。d b m s 的各个线索能在逻辑上并发执行,它们共存于一个d b m s 核心进程 中,共享d b m s 的所有资源,线索是o s 进行调度的基本单位。 在o r c s - i 系统中,个线索对应于一个消息的完整的执行过程。线索因消息 华中科技大学硕士学位论文 接收而被创建,因获得申请的资源而进入就绪状态,因得不到相应的资源而进入等 待,因调度而执行,因磁盘读i o 请求而进入i o 等待,最后因执行完成而消亡。 2 2o r c s 1 的功能结构 对象一关系数据库管理系统o r c s i 的功能结构划分为六个模块:用户接口; 客户机服务器接口:数据说明处理;数据操纵技术;事务处理;存储管理。 2 2 1用户接口 该模块负责用户界面,提供客户端与服务器的o d b c 接口。 2 2 2 客户机服务器接口 客户机服务器接口为客户程序提供与服务器进程相连并存取数据库的途径。 o r c s i 服务器是o r c s i 数据库管理系统的核心软件,它负责管理数据库资 源,为与它相连的客户应用程序提供最基础的数据库存取服务。服务器进程接受并 处理客户程序连入o r c s i 系统的命令,完成客户操作数据库的请求。服务器的基 本功能是完成存贮管理、事务管理和并发控制等数据库管理系统核心的任务。 在o r c s i 系统中,客户机阴殴务器接口提供了在客户应用程序和一个数据库服 务器进程之间的联系途径。客户程序与一个指定的服务器进程相连,而服务器能接 收多个客户的连接。客户程序负责提供数据库o d b c 接口、交互式工作环境,进行 服务器的连接、登录,并进行数据操纵等工作。 223 数据说明处理 数据说明模块的功能是对用户的数据定义、控制定义进行预处理,建立与维护 关系表、属性表、索引表、各种安全控制表并存入数据字典d d 。数据字典是对象 关系数据库语言处理、执行以及对象一关系数据库管理系统进行管理的基本依据。 2 24 数据操纵技术 数据操纵的功能是把词法和语法分析过的s q l 语句转化成具体的增、删、改、 查操作。数据操纵部分首先进行完整性检查,然后转换成数据操作命令交给事务处 华中科技大学硕士学位论文 理器进行并发处理,最后交给存储系统进行真正的i o 操作。 2 2 5 事务处理 事务处理是进行数据库操作的执行单位,它的主要功能是对数据库的元素进行 读写。事务之间的相互影响可能导致数据库状态的不一致,必须对事务进行并发控 制。即保证操作的原子性:要么每个操作全做,要么全不做。 2 26 存储管理 存储管理完成数据库、数据字典的物理存储。 磁盘i o 的过程中通常会引起主调进程挂起。为了实现高效的多线索控制,必 须选择一种异步的磁盘i o 方案,保证各线索在读写磁盘期间,其它线索还能占用 c p u 。o r c s i 系统在读写数据库文件时采用了这种策略。具体做法是:创建一个 i o 进程或线索专门对物理数据库进行读写操作;分配一块共享内存作为磁盘i o 缓 冲区,核心进程和i o 进程都能访问这块缓冲区;核心进程的各个线索在相应的时 候发出请求,让l j o 进程读磁盘块到i o 缓冲区中或将i o 缓冲区中内容写到磁盘上, 并且线索是在i o 缓冲和自己的私有缓冲之间交换数据。 2 3 小结 本章主要介绍了客户机朋日务器式对象一关系数据库管理系统o r c s i 的体系结 构、执行模型以及模块划分。系统划分为六个模块:用户接口、客户机服务器接口、 数据说明处理、数据操纵、事务处理和存储管理。用户接口负责用户界面,提供客 户端与服务器的o d b c 接口;客户n 务器接口为客户程序提供与服务器进程相连 并存取数据库的途径;数据说明模块对用户的数据定义、控制定义进行预处理,建 立与维护关系表、属性表、索引表、各种安全控制表并存入数据字典d d ;数据操 纵的功能是把词法和语法分析过的s q l 语句转化成具体的增、删、改、查操作:事 务处理负责对数据库的元素进行读写;存储管理完成数据库和数据字典的物理存储。 华中科技大学硕士学位论文 3 对象一关系数据模型 数据模型是用来表示实体及实体间联系的模型,它是数据库系统的基础,对系 统的性能、功能和应用范围起着决定性作用。因此要设计一种数据库语言,必须首 先要确定该数据库管理系统的数据模型“。 关系数据模型是一个简单的平面数据模型,一个关系数据库是由一个关系集合 组成的。关系中的每个列项可以有单个值,并且这个值属于一个系统定义的数据类 型。用户可以对这些值施加更进一步的限制,称为完整性约束。用户可以在一个关 系上进行非过程化查询,只检索出关系中那些其各列的值满足用户说明的条件的元 组。另外,用户可以发出一个对关系中用户指定列的值进行比较的连接查询来把两 个或多个关系关联起来。 关系数据模型的基本特征决定了它存在一些局限性。首先关系数据模型强迫用 户用多个关系的元组表达层次数据或复杂嵌套数据。这些在语义上都具有密切关联 的复杂数据被迫分散存放到多个关系中,导致在检索这些复杂数据时,必须借助于 联接手段将分散的数据集合起来。其次,关系数据模型仅为用户提供了一组基本的、 内部的数据类型作为关系的列的值域,而不提供增加用户自定义数据类型的手段。 对象一关系数据模型对关系模型进行了面向对象的扩展,集成复杂数据的智能 化访问和管理,较好地解决了关系数据模型的局限性。它的基本特性包括:基本数 据类型扩充,集合和抽象数据类型,对象表和视图,继承机制,引用。 3 1 数据类型 31 1 基本数据类型扩充 s q l 9 2 定义的基本数据类型只有以下几种:整数、实数、字符串、数值和小数。 这些基本数据类型上的操作符和函数也都是精确定义的。由于这些数据类型和操作 集合有限,很难满足现实世界中各种问题的编码要求,即使编成代码,性能也不佳。 如非公历日期的表示、非a s c i i 字符的字母顺序,以及二维以上数据的表示等。因 华中科技大学硕士学位论文 此,用户要求能够在s q l 环境中创建有相应操作符和函数的新数据类型。 所谓基本数据类型扩充,就是指用户在s q l 中利用继承性,根据已有的基本数 据类型去创建带有相应操作符和函数的新数据类型,建立用户自己的数据类型,用 以补充系统的内部数据类型“。 例如,在建立一个数据库时,可用一种特殊方法去使用一种内部数据类型。利 用整数表示年龄,用十进制数d e c i m e ( 8 ,2 ) 类型表示总钱数,d o u b l e 类型表示几何角。 对于用户意义下的数据,可由一些规则来保证按用户要求计算。例如,它可规定两 个总钱数只能做加、减运算,但不能做相乘运算,而且确保年龄和总钱数之间不能 进行加和比较操作。如果定义十进制数据类型u s d ,长度为1 0 位整数,数据库管 理程序应该能够区分传统的十进制数据类型和这种扩展数据类型。 上述能力就叫做“基本数据类型扩充”。所以,基本数据类型扩充主要是数据 类型以及函数( 方法和操作符) 的扩展。实现的方法是将高级查询语言与数据多视 图相结合,目的是利用更多的语义来增加存储数据的值。使得数据类型和函数定义 都带有语义部分,可以在用户定义对象模型的应用范围内,创建对象的数据类型和 函数。 3 1 2 大对象 大对象,即l o b ( l a r g eo b j e c e t ) ,能够存储大量的数据。由于多媒体信息的大 量传播,网络上w e b 服务器的流行使人们需要在数据库中存储大量的大型数据对 象。这些对象一般需要8 k 字节以上的存储空间,如声频、视频、图像、大型文本 等。为了满足这种应用需求,对象关系数据模型增d u t 存储大型对象的数据类型。 每个最大为2 g b 的大对象列可以被每个表定义,可以像操作其他数据库对象 样操作它们,准确大小依赖于每列的定义。为了使大对象数据在数据库中被直接管 理和用s q l 进行存储和恢复,要求数据库提供存储复杂内部状态对象的能力。对于 非结构信息如图像、声音和视频,其存储的最重要特性之一是其绝对尺寸,例如1 分钟压缩视频依据其压缩方法的不同需要1 0 m b 至3 0 m b 的存储空间。如果用常规 方法处理,视频剪辑和其他大型对象将会占用了几乎所有资源,包括缓冲区和日志 记录,从而会大大降低系统性能。虽然许多数据库系统都可以存储大型对象,但一 华中科技大学硕士学位论文 个真正的对象一关系型系统必须提供特殊的方法,以提高大型对象应用的性能和尽 量减少大型对象对系统资源的冲击。 同时还为l o b 类型定义了它们的标引变量,以避免园l o b 类型的引进对应用 性能产生影响。变量中并不包含l o b 数据的真实值,而只是说明得到真实值的方 法。此变量可以与其他类型的数据样出现在s q l 查询语句中。所有对l o b 数据 的操作均通过标引变量来完成,而且可以进行查询优化,把对l o b 数据的真实询 问尽可能延后。 3 1 3 集合 集合是种特殊的数据类型。它是对象的一个集合,其中每个对象都具有相同 的数据类型。集合用来在对象关系模型中表示多个重复的数据项即在个表中 可以使用集合作为某个字段的数据类型,集合的大小以及可存储数据项的f 生质由集 合声明时决定,集合可以存储抽象数据类型的数据,它是对象关系模型中“列对 象”的一种表现形式。 3 1 4 抽象数据类型 抽象数据类型是由一个或多个标准的数据类型组合而成的数据类型,它能够更 精确的描述用户的数据。如果我们在其上定义了访问这类数据的方法,这样的抽象 数据类型就构成了一个标准的数据库对象类。抽象数据类型可以嵌套使用,即个 类的成员属性可以是另一个在数据库中已经定义的类“。 例如一个关于地址的抽象数据类型可以由下面几列组成: s t r e e t c h a r ( 2 0 ) c 畸c h a r l :1 1 3 ) z i p i n t 对象的两个优点复用和标准支持可以通过使用抽象数据类型体现出 来。当创建了一个抽象数据类型时,也就建立了一个对抽象数据元素的描述标准。 如果在多个地方使用同一个抽象数据类型,则我们就可以确信,在这些地方,相同 的逻辑数据是以相同的方式描述的。抽象数据类型的重复使用导致对数据的描述趋 华中科技大学硕士学位论文 向规范。 前面举例的对象仅仅包含对象属性,一个完整的对象类应该是既有数据结构部 分,也有对数据的操作部分,即方法。从本质上说,方法就是对象中包含的标准程 序,对应于内部的函数或过程( 成员函数) “1 。 在对象一关系数据模型中,抽象数据类型是作为特定的一类信息的存储表示和 对该类信息适用的操作符和函数来定义的,即抽象数据类型既是信息又是操作。因 此对抽象数据类型,用户必须加入类型要求的操作,这就需要扩充函数和操作符的 能力。但只有把操作在类型实例上运用起来,该新数据类型才能真正有用。 面向对象的设计本质上是将对象模型直接转换为计算机应用,系统中的每一个 实体在应用中表示为一个对象。对象表示了真实世界实体的属性数据以及对这些属 性数据的操作。关系的方法是在一个较低的层次上使用一系列表列和表行处理数据, 对象的方法是在一个更高的层次上处理数据。例如,在面向对象的数据库中处理“客 户”数据时,实际上是在处理一个称之为“客户”的对象,通过对象与对象之间的 关系来处理客户与其他实体数据之间的关系,而不是在处理客户及其相关联的一系 列表,并且处理这些对象就象在关系数据库中处理表行与表列数据一样,能够存储、 更新与检索数据。 3 2 对象表 将面向对象的思想引入数据库系统,可以引出两个特殊的概念:列对象和行 对象。 如果将表的某一列定义为对象类型,这样的列就构成了所谓的列对象。由于关 系模型中字段的数据类型只能采用标准数据类型,为了解决这一局限性,对象关 系数据模型将能够自定义的对象类型延伸到对字段的定义中。抽象数据类型或集合 可以作为一个列嵌入到表中,就像真正的列那样对待。大对象也可以存放在表的单 个列中。因此,列对象在对象关系模型中具有普遍意义。它是基于对数据库中已 经实现的功能的扩展,极大的丰富了表中的每一列对数据的表达能力。 行对象是用于描述表格中整个行或嵌套列的数据类型,它将表的一行作为一个 对象来处理。这样就允许数据库在单一的行对象中包含一个“条目”。如雇员、部门、 华中科技大学硕士学位论文 用户或项目。在行对象中,对象被表示成行而不是列,此时数据不是被嵌入到主表 中,而代之的是主表包含了对其他表的引用。 包含行对象的表称为对象表。要创建对象表,事先应规划和定义好构成行对象 的抽象数据类型对象类,有了这个类,对象表的每一行就成为这个类的一个个 实例对象,对象的属性相当于关系表的域或字段。对象表的操纵方式在很多方面类 似于关系表。借助于类的构造函数,使用对象表的一个明显的好处在于事先预定义 的类方法,它为设计开发人员操纵表中的数据增加了一条全新的途径“。 在向对象表中插入一个记录行时,就对这行分配一个对象标识( o d ) ,它的 值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济城市管理人才需求分析报告
- 2026-2031中国电动汽车充电桩行业现状分析及赢利性研究预测报告
- 2026-2031中国第三方检测市场研究与未来前景预测报告
- 2026-2031中国花露水市场运营格局及投资潜力研究预测报告
- 小班冬天的语言课模板教案
- 高考生物一轮复习第七单元生物的进化浙科版教案
- 《图形的认识测量》教案(2025-2026学年)
- 公开课教案教学设计语文版初中语文七上木兰诗二(2025-2026学年)
- 大班科学活动设计有趣的影子教案(2025-2026学年)
- 有趣的灵魂有趣的流动画教案
- 高空曲臂车安全操作规程
- 2025年粉尘涉爆培训题库及答案
- 厨房消防安全培训课件
- 2025江苏吉安吉水县城控人力资源服务有限公司招聘水电工2人笔试考试参考试题附答案解析
- 新员工CNC操机技能培训计划含理论实操
- 丙型肝炎防治指南
- 2025中国农业科学院第三批统一招聘2人笔试考试备考题库及答案解析
- GB/T 30340-2025机动车驾驶员培训机构业务条件
- 传统文化经典教案范例分享
- 统战工作基础知识手册
- 2025年国企招聘考试(财会专业)历年参考题库含答案详解(5套题)
评论
0/150
提交评论