第10章对象数据库精选文档.ppt
《第10章对象数据库精选文档.ppt》由会员分享,可在线阅读,更多相关《第10章对象数据库精选文档.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章对象数据象数据库本讲稿第一页,共八十九页第第10章章 对象数据库对象数据库关系数据库的局限性关系数据库的局限性10.1面向对象数据模型面向对象数据模型10.2对象定义语言对象定义语言10.3对象查询语言对象查询语言10.4C+语言绑定与语言绑定与OODBMS实现实现10.5对象对象-关系数据库系统关系数据库系统10.6OODBMS与与ORDBMS对比对比10.72023/1/52本讲稿第二页,共八十九页10.1 关关系系数数据据库的局限性的局限性v关系数据库系统只支持一个很小的、固定的数关系数据库系统只支持一个很小的、固定的数据类型子集。据类型子集。v对复杂数据类型的处理不方便对复
2、杂数据类型的处理不方便呈现很大的能力不足问题。v包含复杂数据类型的各类新型应用包含复杂数据类型的各类新型应用计算机辅助设计与制造(CAD/CAM)多媒体数据处理、大型文档数据处理卫星云图/雷达等复杂气象数据处理地理信息系统(GIS)等2023/1/53本讲稿第三页,共八十九页10.2 面向对象数据模型面向对象数据模型10.2.5 继承继承10.2.4 对象类型对象类型10.2.3 直接量直接量10.2.2 对象对象10.2.1 对象模型概述对象模型概述 10.2.8 事务模型事务模型10.2.7 封锁与并发控制封锁与并发控制10.2.6 数据库操作数据库操作2023/1/54本讲稿第四页,共八
3、十九页10.2.1 对象数据模型概述对象数据模型概述对象数据模型对象数据模型(ODM)的发展历程的发展历程vODBMS自由发展阶段自由发展阶段(1993年以前)年以前)无规范和标准ODBMS:Object Database Managing SystemsvODMG 1.0(1993年年)ODMG对象模型的最早版本提出者:Object Data Management Group vODMG 2.0(1997)vODMG 3.0(2000)是ODMG的最新也是最后版本 2023/1/55本讲稿第五页,共八十九页ODMG对象模型的核心概念对象模型的核心概念(1)v基本模型元素基本模型元素对象(ob
4、ject)和直接量(literal)。每个object有一个唯一标识,而literal则无标识。对象通常用来表示现实世界的一个实体。v对象具有状态对象具有状态状态(state)被定义为一组特性(properties)变量值。一个特性可以是一个对象属性(attribute),或是一个关系(relationship)对象的状态是可变的。v对象具有行为对象具有行为行为(behavior)被定义为一组可被外界或其它对象执行的操作(operations)。操作的具体编码实现,则被称为方法(method)。2023/1/56本讲稿第六页,共八十九页ODMG对象模型的核心概念对象模型的核心概念(2)v对象结
5、构对象结构可通过定义状态变量和行为来规定对象的结构。共享相同结构的对象被聚合为一个类(class)。同类对象具有一组同名、同类型特性变量和一组相同的操作。一个具体对象也被称为它所属类的一个实例。v对象类型对象类型(type)除了可用类(class)概念描述对象类型外,ODMG还引入接口(interface)概念。类是关于对象类型之抽象行为和抽象状态的规范,可直接实例化(intantiable),即可基于类创建的实例对象;而接口只规范对象类型抽象行为,不能直接实例化。v类型允许继承类型允许继承(inheritance)不同类型之间可能存在特化/泛化关系(或ISA关系),即存在继承关系。子类型(s
6、ubtype)允许从它的超类型(supertype)继承特性和方法。2023/1/57本讲稿第七页,共八十九页ODMG及其应用方式综述及其应用方式综述vODMG基本概念基本概念objects、literals、types(classes,interfaces)、operations、properties(attributes,relationships)、inheritances、v借助基于借助基于ODMG对象模型的对象模型的ODL语言来构造应语言来构造应用的对象模式用的对象模式v操纵应用的对象模式操纵应用的对象模式利用SQL99或其它宿主语言,结合基于ODMG的对象查询语言OQL实现2023
7、/1/58本讲稿第八页,共八十九页10.2.2 对象对象一、对象的主要构成(结构)一、对象的主要构成(结构)v一组可包含该对象特性值的特性变量一组可包含该对象特性值的特性变量属性(attributes)或关系(relationships)对象的所有特性变量及其取值规定了对象的状态(state)v一组对象可以响应的消息一组对象可以响应的消息(messages)每个消息可以带0个或多个参数;消息与ODMG对象模型中术语“操作(operations)”等价对象的所有操作,规定了对象的行为(behavior)操作的具体代码实现,称为方法(a method)2023/1/59本讲稿第九页,共八十九页10
8、.2.2 对象对象二、对象的基本特征二、对象的基本特征v有唯一对象标识符有唯一对象标识符(object identifier,oid)v可以有一个或多个有意义的名字可以有一个或多个有意义的名字对象名字好比编程语言中的全局变量,必须在整个ODBMS中保持唯一无重名。应用也可通过对象名来引用对象。v具有自己的生命周期具有自己的生命周期对象的生命周期指明了对象是临时内存对象(transient),还是一个持久对象(persistent)。对象生命期的一个重要特点是独立于类型。v对象具有特定的结构对象具有特定的结构(见前页)(见前页)2023/1/510本讲稿第十页,共八十九页10.2.2 对象对象三
9、、对象等价与对象相等的概念三、对象等价与对象相等的概念v两对象等价,如果它们有相同的对象标识(即是两对象等价,如果它们有相同的对象标识(即是同一个对象)。同一个对象)。v两对象相等,如果它们的状态值都相等(但它们两对象相等,如果它们的状态值都相等(但它们可能有不同的对象标识)。可能有不同的对象标识)。两对象浅度相等,如果两对象除了引用字段外,其余字段值都相同。两对象深度相等,如果两对象不仅非引用字段值相等,而且各相应的引用字段也指向相同的其它对象。2023/1/511本讲稿第十一页,共八十九页10.2.3 直接量直接量(literal)v在在ODMG模型中,模型中,literal指一个没有对象
10、标识指一个没有对象标识的值。的值。vliteral值可以是简单结构或是复杂结构。有三种值可以是简单结构或是复杂结构。有三种类型的直接量:类型的直接量:原子型直接量(atomic literal),对应预定义的基本数据类型,如long、float、char或string等。集合型直接量,指定一个值集或对象集。结构化直接量,包括内置结构,如DATE、TIME、TIMESTAMP等,以及用户自定义结构2023/1/512本讲稿第十二页,共八十九页10.2.4 对象类型对象类型一、类型规范一、类型规范v类型规范定义类型的外部特征类型规范定义类型的外部特征对外可见的部分,由对外部对外可见的部分,由对外部
11、可见的操作、特性和例外等一些抽象的描述构成。可见的操作、特性和例外等一些抽象的描述构成。vODMG对象模型支持的类型规范分以下三种:对象模型支持的类型规范分以下三种:接口(interface),只定义了类型的抽象行为,即操作部分的规范;直接量(literal),只定义了类型的抽象状态,即特性变量部分的规范;类(class),可同时定义类型的抽象行为和抽象状态规范。类的概念可基本对应到ER的实体集。二、类型实现二、类型实现v定义该类型实例对象的一些内部方面,包括实现该类型操作的定义该类型实例对象的一些内部方面,包括实现该类型操作的方法方法(methods)和一些其它内部细节。类型的实现与语言和一
12、些其它内部细节。类型的实现与语言绑定有关。绑定有关。Interface(接口)Literal (直接量)Class(类)图图10.1 ODMG 类型规范示意图2023/1/513本讲稿第十三页,共八十九页10.2.4 对象类型对象类型一、类型规范一、类型规范二、类型实现二、类型实现三、常见的对象类型三、常见的对象类型 原子型对象(atomic object)指用户自定义对象在ODMG对象模型中,没有内建的原子对象/类型。集合型对象(collection object)相当于一个元素容器,其内可存储一个或多个同类型元素。ODMG对象模型支持多种集合对象类型构造,如Set、Bag、List、Arr
13、ay、等。结构化对象特指ODMG预定义的四种对象/类型 2023/1/514本讲稿第十四页,共八十九页10.2.5 继承继承一、子类型与行为继承一、子类型与行为继承ODMG对象模型支持基于继承(inheritance)的超类型/子类型(supertype/subtype)关系。子类型/超类型关系,也称为ISA关系。在ODL规范语法中,用“:”表达接口继承关系,允许多重接口继承。子类型接口可以在超类接口的基础上,附加定义自有的行为特征,或重载细化超类中原有的行为特征。v二、状态继承二、状态继承 v三、继承与类层次结构三、继承与类层次结构 2023/1/515本讲稿第十五页,共八十九页10.2.5
14、 继承继承一、子类型与行为继承一、子类型与行为继承二、状态继承二、状态继承 ODMG对象模型也允许定义扩展(extends)关系,允许子类型从一个超类型 同时继承行为和状态。扩展关系是一种单继承的、但可传递的关系。(类或接口)子类型可以从(多个)接口继承行为;但接口不能从类继承行为。只有类可以通过扩展(extend)从另一个类(超类)同时继承行为和状态。三、类层次结构三、类层次结构 可利用ISA继承关系,将模式中的类组织成层次化的结构 2023/1/516本讲稿第十六页,共八十九页10.2.6 数据库操作数据库操作v数据库操作指针对数据库操作指针对Database类型对象的操作类型对象的操作允
15、许基于一个Database类型,创建多个数据库实例,即多个逻辑数据库。一般利用DatabaseFactory接口中定义的new方法,来创建Database类型实例。ODMG模型的数据库类型原型定义了基本的数据库open/close操作,以及针对范围内的对象进行命名、定位和查找等操作。在对数据库存储域内的任何持久对象之前,必须先用open操作打开数据库。除了open和close操作,其它所有操作都必须在事务(Transaction)中执行,否则将会引发错误例外。2023/1/517本讲稿第十七页,共八十九页10.2.7封锁和并发控制封锁和并发控制vODMG对象模型使用常规的、基于封锁的方法进对象
16、模型使用常规的、基于封锁的方法进行并发控制作为缺省封锁策略。行并发控制作为缺省封锁策略。v并不排斥支持其它更广泛的并发控制策略。并不排斥支持其它更广泛的并发控制策略。2023/1/518本讲稿第十八页,共八十九页10.2.8事务模型事务模型 v对持久对象的任何存取、创建、删除或修改都必对持久对象的任何存取、创建、删除或修改都必须在事务范围内进行。须在事务范围内进行。vODMG通过通过Transaction接口中定义了关于事接口中定义了关于事务对象的各种基本操作。务对象的各种基本操作。2023/1/519本讲稿第十九页,共八十九页10.3 对象定象定义语言言(ODL)vODL(object de
17、finition language)是遵循ODMG标准的对象数据管理系统(ODBMS)规范说明语言,它是独立于任何特定程序设计语言的语义构造。ODL的主要目标促进遵循ODMG规范的ODBMSs系统共享数据,使数据在这些系统之间迁移更为容易。ODL的主要任务创建对象数据库模式,即定义模式中类和接口。用户可先用ODL指定对象DB模式,然后再使用特定语言绑定,将ODL构造映射为特定程序设计语言的相关构造。2023/1/520本讲稿第二十页,共八十九页ODL应用示例应用示例(一个简化版的大学数据库模式一个简化版的大学数据库模式)对应该图的对应该图的ODL定义,可参见课本定义,可参见课本 p322-32
18、32023/1/521本讲稿第二十一页,共八十九页10.4 对象查询语言对象查询语言10.4.1 OQL综述 10.4.2 OQL语言简介2023/1/522本讲稿第二十二页,共八十九页10.4.1 OQL(Object Query Language)综述综述vOQL是是ODMG标准的一部分。标准的一部分。OQL应用必须基于由ODMG-ODL定义的对象类型接口模式。只是一个简单的不完全语言,通常以嵌入形式与其它计算机语言结合使用。它也不保证能表达任意复杂的计算,即它不具有计算完全性。v与其它语言的关系与其它语言的关系OQL语句通常以嵌入形式与其它扩展了持久特性的编程语言(如C+、Java、Sm
19、alltalk等)结合使用。v与与SQL对比对比2023/1/523本讲稿第二十三页,共八十九页OQL与与SQL在语法和语义上的差别对比在语法和语义上的差别对比 vSQL中的关系表中的关系表(Table)名,在名,在OQL中被解释为中被解释为集合型对象名。集合型对象名。SQL中的表属性或列名,在中的表属性或列名,在OQL中被广义解释为属性名中被广义解释为属性名/关系名,或方法名。关系名,或方法名。vOQL在在SQL形式语法基础上,扩展了面向对象概形式语法基础上,扩展了面向对象概念方面的运用,如复杂对象、对象标识、路径表念方面的运用,如复杂对象、对象标识、路径表达、多态、操作激活和延迟绑定等。达
20、、多态、操作激活和延迟绑定等。vOQL能灵活处理复杂结构对象,而能灵活处理复杂结构对象,而SQL不能。不能。vOQL是一种纯粹函数型语言,只要类型系统允许是一种纯粹函数型语言,只要类型系统允许所有操作符均可自由组合。所有操作符均可自由组合。QOL采纳了完全正交风格,允许OQL在保持SQL查询表达式语法简单性的基础上,不限制表达的能力且更易学习。2023/1/524本讲稿第二十四页,共八十九页OQL处理复杂结构对象的主要方式处理复杂结构对象的主要方式v导航存取导航存取能利用对象标识和关系,在对象之间导航。v对象检索对象检索能检索ODB中已有的对象和创建新的对象。v对象行为对象行为能执行对象操作,
21、以更新对象的状态,或从对象状态中导出信息。v利用继承利用继承能利用类型之间的子类型/超类型关系,进行对象存取、检索和更新等操作。2023/1/525本讲稿第二十五页,共八十九页OQL实现实现ODMG对象模型操纵的主要方法步骤对象模型操纵的主要方法步骤 v通常以有名对象或有名对象集作为入口,定位感通常以有名对象或有名对象集作为入口,定位感兴趣对象,并可利用对象标识和对象关系在相关兴趣对象,并可利用对象标识和对象关系在相关对象之间导航。对象之间导航。这可形象比喻为一组“挑选(pick)”、“粘合(mix)”操作。通过pick操作,从已有对象集中挑出感兴趣的对象,再通过mix操作,把这些被挑出的对象
22、粘合关联在一起。v通过激活感兴趣对象上抽象操作所对应的方法,通过激活感兴趣对象上抽象操作所对应的方法,修改对象的状态,或从对象状态中抽取感兴趣的修改对象的状态,或从对象状态中抽取感兴趣的信息。信息。v返回一个表示结果信息的对象。返回一个表示结果信息的对象。2023/1/526本讲稿第二十六页,共八十九页10.4.2 OQL语言简介语言简介(1)1.类似类似SQL的基本的基本SQL语句语句SELECT DISTINCT x.age FROM Persons x WHERE x.name=Pat它通常有一个数据库入口点可以是任意的有名持久对象。对于许多查询来说,入口点就是类的外延名。只要在OQL查
23、询中引用了集合,就应该在定义一个相应的迭代器变量,来指代集合中的每个元素。有三种指定迭代器变量的语法形式(令e表示一个迭代器变量,Es表示一个集合对象):e in Es Es eEs as e2023/1/527本讲稿第二十七页,共八十九页OQL的条件子句的条件子句v由于由于OQL支持正交特性,支持正交特性,WHERE子句中条件表子句中条件表达更为灵活,允许出现任何返回布尔型直接量的达更为灵活,允许出现任何返回布尔型直接量的条件表达。条件表达。例如,除了SQL的比较操作符,OQL还支持一些测试集合对象内容的操作符或表达式。令v为变量,c为集合表达式,b为布尔类型条件表达式,e是与集合c中元素同
24、类型的元素。如元素e是集合c的成员,则表达式(e in c)为true;如集合c的所有元素都满足b,则(for all v in c:b)为true;如集合c中至少有一个元素满足b,则(exist v in c:b)为true;如集合c有且只有一个元素,则表达式unique(c)为true;2023/1/528本讲稿第二十八页,共八十九页10.4.2 OQL语言简介语言简介(2)2.一些比一些比SQL更简单直接的更简单直接的OQL查询表达查询表达 可以直接是一个对象名甚至一个具体值。名字可表示任何类型对象,包括原子型对象、结构型对象、集合型对象,或直接量。2023/1/529本讲稿第二十九页,
25、共八十九页10.4.2 OQL语言简介语言简介(3)3.路径表达式路径表达式(path expression)为实现对象之间的导航操作,OQL引入了路径表达式的概念。路径表达式由一个或多个路径步(steps)构成以一个有效名字(对象名、属性名、关系名或操作名)表示每个路径步用“点.或箭头”作为路径分隔符。应用举例假设我们已得到某特定人员对象p,若还希望知道其配偶居住的城市名,则可采用表达pspouse.address.city.name 进行导航2023/1/530本讲稿第三十页,共八十九页10.4.2 OQL语言简介语言简介(4)3.从集合中选择对象从集合中选择对象 1)从一个集合中选择对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 对象 数据库 精选 文档
限制150内