高级数据库系统及其实现ppt课件.ppt_第1页
高级数据库系统及其实现ppt课件.ppt_第2页
高级数据库系统及其实现ppt课件.ppt_第3页
高级数据库系统及其实现ppt课件.ppt_第4页
高级数据库系统及其实现ppt课件.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级数据库系统及其实现AdvancedTheoryonDatabaseSystems 第1章面向对象数据库 新型数据库应用数据模型的发展ODMG对象数据模型持久性编程语言面向对象数据库系统发展历史 1 1新型数据库应用 传统应用的共同特点数据及结构的一致性 具有相似的结构化数据和相同的大小面向记录 基本数据由定长数据组成小数据项 记录不超过几百字节长原子字段 记录字段短 定长 无结构 满足1NF 1 1新型数据库应用 新型应用领域 计算机辅助设计 CAD 储存工程设计数据 包括被设计的构件 构件间的联系 设计的版本等计算机辅助软件工程 CASE 存储和管理软件开发人员使用的数据 包括源代码 软件模块间的依赖关系 变量的定义与使用 软件系统的发展历史等多媒体数据库 多媒体数据包括 图像 空间数据 音频 Audio 数据 视频 Video 数据等 主要的应用包括 地理信息系统 GIS Voice mail系统 图形系统 音频点播 AOD Audio On Demand 视频点播 VOD 等 1 1新型数据库应用 新型应用领域 办公信息系统 OIS 办公自动化主要包括文档建立工具和文档检索工具超文本数据库 超文本是由文本和指向其他文档的勾链构成 WWW系统是一个超文本的例子 确切地说 它是一个超媒体的例子 因为Web文档可能是多媒体文档 超文本数据库必须支持基于勾链的文档检索和基于结构的文档查询功能 1 2数据模型的发展 Record oriented HierarchicalDataModel NetworkDataModel Value oriented RelationalDataModel Object oriented ExtendedRelationalDataModel ODMGDataModel 1 3ODMG对象模型 模型概述型 Types 对象 Objects 字面量 Literals 建模对象的状态 特征建模对象的行为 操作 1 3 1对象模型概述 基本建模单位 对象和字面量 对象有一个唯一的标识符而字面量没有每个对象 字面量 具有一个型 某个型的所有元素具有相同的状态和行为一个对象的状态由一组特征来描述 属性与联系一个对象的行为由一组操作来描述 1 3 2对象的型 型的定义 一个外部说明和一个或多个实现 外部说明是对象的抽象外部说明包括 对象的操作和特征对象 Objects 型的三种定义方式 Interface class literal接口型仅定义一个对象型的抽象行为类型定义一个对象型的抽象行为和抽象状态字面量型仅定义了一个字面量型的抽象状态 1 3 2对象的型 InterfaceEmployee classPerson structComplex floatre floatim 型的说明 1 3 2对象的型 一个型可以有多个实现 但在一种绑定语言中 一个型通常只有一个实现C 实现Java实现型的说明独立于型的实现所带来的好处可以使型的语义独立于绑定语言的表示细节有利于型的多语言存取和异构计算环境中对象的共享 1 3 2对象的型 子型化 subtyping 与行为继承 继承子型化仅仅反映了行为的继承过程InterfaceEmployee interfaceProfessor Employee interfaceAssociate Professor Professor Professor Employee 子型 超型联系子型继承其所有超型的特征与行为子型可以提炼 refine 或重载来自超型的特征与行为类是可实例化的型 接口是不可实例化的型行为继承反映了两个interface间的ISA联系 generalization specialization 继承 继承 由现有类导出新的类 这个新的类不但可以继承原类的全部属性和方法 而且还可以定义它自己额外的属性和方法 以及重定义继承的方法子类 新类称为原类的 子类 特化超类 原类称为导出类的 超类 泛化继承实现了概念建模中的 IS A 联系单继承 一个类只能有一个超类多继承 一个类可有多个超类 通过组合几个类的描述到一个类而提高共享能力 ExampleofIS AInheritance ClassDAGforbankingexample ExampleofMultipleInheritance 返回 1 3 2对象的型 子型化 subtyping 与行为继承 继承子型化仅仅反映了行为的继承过程InterfaceEmployee interfaceProfessor Employee interfaceAssociate Professor Professor Professor Employee 子型 超型联系子型继承其所有超型的特征与行为子型可以提炼 refine 或重载来自超型的特征与行为类是可实例化的型 接口是不可实例化的型行为继承反映了两个interface间的ISA联系 generalization specialization 1 3 2对象的型 状态继承 行为继承反映的是两个interface间的ISA联系状态继承反映的是两个class间的EXTENDS联系一个类将继承被它扩展的另一个类的所有的特征和行为Example 1 3 2对象的型 状态继承 interfaceEmployee classPerson attributestringname attributeDatebirthDate classEmployeePersonextendsPerson Employee attributeDatehireDate attributeCurrencypayRate 1 3 2对象的型 外延 extents 一个型的外延是由数据库中该型的所有实例组成如果一个对象o是型A的一个实例 则对象o必然是A的外延中的成员如果型A是型B的一个子型 则A的外延是B的外延的一个子集在关系数据库中为每个表维持一个外延 而在面向对象数据库系统中型的外延维护是由型的设计者决定的 1 3 3对象 对象标识 对象标识符 对象的身份表示唯一性 OID在对象的整个生命周期内是保持不变的不可重用性 一旦某个对象被删除之后 该对象的OID不可重用独立于对象状态 不随对象变量状态的变化而变化独立于对象的物理存储位置 当对象的存储位置发生变化时OID应保持不变 1 3 3对象 对象标识 对象标识是由系统分配而不是由应用产生对象标识与关键字的区别唯一确定关系中的一行主关键字是可变的主关键字可重复利用主关键字是一个纯逻辑的概念主关键字是由应用产生 1 3 3对象 对象名字 一个对象可以有一个或多个有意义的名字对象标识是由系统产生的 而对象名字是由应用产生的对象名字在整个数据库范围中必须唯一 一个对象可以具有多个名字 但一个名字只能表示一个对象对象名字类似于编程语言中的全局变量 1 3 3对象 对象生命周期 对象生命周期是在对象建立时确定的两种对象 挥发性对象 volatileortransient 持久性对象 persistent 挥发性对象 存储在内存中 由编程语言运行系统来管理 其生命周期是当前进程持久性对象 存储在内存和磁盘中 由ODBMS运行系统来管理对象生命周期独立于型 即一个型既可以有持久性对象 也可以有挥发性对象 1 3 3对象 集 聚 合对象 Set 无序 无重复元素Bag 无序 有重复元素List 有序 有重复元素 可按位置操作元素位置可变Array 有序 有重复元素 可按位置操作 元素位置不变Dictionary 无序 k v对的无重复集合 1 3 3对象 结构对象 Date 日期型Interval 时间段型Time 时间型Timestamp 时间戳型 1 3 4字面量 原子字面量集 聚 合字面量结构字面量空字面量 1 3 4字面量 原子字面量long shortunsignedlongunsignedshort floatdouble booleanoctet charstring enum 集 聚 合字面量setbaglistarraydictionary 1 3 4字面量 结构型 时间型datetimeintervaltimestamp 用户自定义型structAddress stringdorm name stringroom no attributeAddressdorm address 1 3 4建模对象状态 特征 ODMG定义了2种类型的特征属性 具有一个类型联系 通过2个对象类型定义通过遍历路径的说明显式定义一个联系遍历路径的说明的功能 描述了参加联系的2个对象实例间的逻辑连接遍历路径的说明的方向 成对进行 分别说名来自该联系中的不同遍历方向 1 3 4建模对象状态 特征 属性interfacePerson attributeshortage attributestringname attributeenumgender male female attributeAddresshome address attributesetphones attributeDepartmentdept 联系interfaceProfessor relationshipsetteachesinverseCourse is taught by 1 3 4建模对象状态 特征 如何表示1 1 1 n n mrelationshipXinverseC R relationshipsetinverseC R classProfessor relationshipsetteachesinverseCourse is taught by classCourse relationshipProfessoris taught byinverseProfessor teaches 1 3 4建模对象行为 操作 多态性 一个对象可以具有多种身份 C 中用case语句来体现迟后联编 由于多态性问题而引起在C 中是通过虚函数来实现的操作重载 同一接口具有不同的实现在C 中是通过函数重载来实现操作提炼 子类的操作可对父类继承过来的操作进行修正而得到 例如圆锥体的体积可通过对圆柱体的体积计算进行提炼 修正而得到 在C 中通过调用父类中的方法来实现 面向对象的语言 增加某种复杂类型和面向对象特征来扩展某种数据操纵语言 如SQL 对象 关系系统SQL 1999找一种现存的面向对象程序设计语言 将它扩展以便能对数据库进行处理持久化程序设计语言 1 4持久性编程语言与嵌入式语言的区别 类型阻抗嵌入式语言与主语言存在类型阻抗问题持久性编程语言的查询语言已完全集成到宿主语言中 共用相同的类型系统内存与磁盘之间的数据交换格式嵌入式语言设计者负责编写外在代码完成持久性编程语言无需显示编程 1 4持久性编程语言 持久性编程语言的缺点 由于编程语言功能强大 程序也相对容易对数据库进行破坏语言的复杂性使得自动进行高层优化更加困难目前持久性编程语言不能很好地支持说明性查询语言 1 4 1对象持久化 类持久化 说明某个类是持久化的 则该类中的所有对象是持久化的 非持久化类的所有对象是挥发性的 该方法比较简单但不够灵活 因为在一个类中既有持久性对象也有挥发性对象对用户来讲总是有用的和方便的 因此在许多面向对象数据库系统中为 可持久化 类建立持久化 通过重载并扩展new操作的功能来建立持久性对象 这样一个对象是否为持久性的取决于该对象的建立过程 这种方法被一些面向对象的数据库系统所采纳 1 4 1对象持久化 标记持久化 是上一方法的变种 它是在一个对象被建立以后可以标记它为持久性对象 一般来讲 所有对象被作为挥发性对象来建立 但是如果该对象的有效范围超过程序的执行期间的话 则它必须在该程序结束前被显式地被标记为持久性对象 方法 和 的区别是 前者在对象建立前决定是否持久化 而后者是在对象建立后才决定其是否持久化引用持久化 一个或多个对象被显式地说明为持久性根对象 所有直接或间接被这些持久性根对象引用的所有对象均为持久性对象 1 4 2持久性对象存储与存取 在面向对象的数据库中 一个对象的数据部分被单独地存储在数据库中 而实现一个类的方法的代码部分是作为数据库模式部分存储的 包括类的类型定义 但是在许多系统实现中将方法实现的代码存储在数据库外面的文件中 以避免将诸如编译器这样的系统软件集成到数据库系统中来 1 4 2持久性对象存储与存取 通过对象名字 这种方法仅适合于少量的对象查找 即在数据库中不能命名大量对象 这样会降低通过名字查找对象的效率 通常数据库的入口是通过名字查找得到的通过对象标识符 这种方法是实现导航查找对象的方法集合对象的查找 允许程序在一个对象的集合 Collection 之上进行迭代以找到所需要的对象 通常对象的集合被建模为聚集类型 CollectionType 的对象类的外延 extent 如果一个类存在外延 则在创建该类的一个对象时该对象被自动地被插入到类的外延中 删除该类中的对象时 该对象也自动地从外延中删除掉 类的外延的维护使得该类具有关系的性质 1 4 3持久性C 系统 基于C 的持久化扩展的面向对象数据库通过类库提供持久化支持优点 对C 做的修改少易于实现缺点 设计复杂完整性约束提供说明性查询 TheODMGisanindustryconsortiumaimedatstandardizingobject orienteddatabasesinparticularpersistentprogramminglanguagesIncludesstandardsforC SmalltalkandJavaODMG 93ODMG 2 0and3 0 whichis2 0plusextensionstoJava OurdescriptionbasedonODMG 2 0ODMGC standardavoidschangestotheC languageprovidesfunctionalityviatemplateclassesandclasslibrariesC ODL C OML ODMGC ODL classBranch publicd Object classPerson publicd Object public d Stringname shouldnotuseString d Stringaddress classAccount publicd Object private d Longbalance public d Longnumber d Set owners intfind balance intupdate balance intdelta ODMGC ODL Example classCustomer publicPerson public d Datemember from d Longcustomer id d Refhome branch d Set accounts ODMGC ODL Example Cont intcreate account owner Stringname StringAddress Databasebank db obj Database bank db ODMGC OML Example intprint customers Databasebank db obj Database bank db ODMGC OML ExampleofIterators 1 4 3持久性C 系统 基于持久性C 扩展的面向对象数据库系统Fish QuickStore Mneme 基于缓冲区机制的面向对象数据库系统O2 Versant Ontus ObjectStore 实现的区别单级存储结构两级存储结构 1 5对象与数据库Ofobjectanddatabases Adecadeofturmoil VLDB 96 从学术界和工业界 对象和数据库技术在1986年 1996年 和2006年的发展状况扩展关系数据库系统持久性编程语言面向对象数据库系统数据库系统工具集 构件 对象与数据库在1986年 传统的数据库研究者 用复杂数据类型来扩展关系数据模型编程语言研究者 增加编程语言的持久性特征其他研究者结合面向对象编程语言和数据库管理系统的关键特征 新一代数据库系统 面向对象数据库系统用一组工具来辅助系统开发者来构造领域特殊的数据库管理系统 扩展关系数据库系统对象与数据库在1986年 开放关系数据库的类型系统允许用户自定义新的抽象数据类型 ADT 并登记到数据库系统中一旦ADT被定义后 可等同于任何内部 built in 类型一样使用典型的商业实例 Postgres 持久性编程语言对象与数据库在1986年 主要研究问题包括数据持久化方法正交性 所有类型都能持久化 Binding技术 主要是DB与PL的无缝集成系统类型的安全性问题其他实现技术 持久性结构的导航 持久性数据的维护 垃圾回收等 面向对象数据库系统对象与数据库在1986年 主要研究数据模型 查询语言 索引技术 查询处理与优化 系统体系结构 用户接口问题在关系数据库早期 有一个公认的数据模型和查询语言 而在OODB早期没有一个统一的认识 不存在一个统一的标准早期产品Gemstone Vbase Ontos Orion等 数据库构件系统对象与数据库在1986年 理念 任何一个数据库系统不可能满足所有下一代应用的功能与性能要求 通过一组数据库系统构件来快速构造一个适合某个领域特殊要求的DBMS 以满足他们对查询语言 存取方法 存储组织 事务机制等不同要求Exodus 提供对象存储管理器 持久性编程语言 和一个查询优化器生成器Genesis 提供一组可复合的存储和索引原语和一个数据库系统编译器 通过一个说明来构造一个合适的存储管理器 Starburst 提供一组存储和索引构件 通过规则来定义一个可扩展的查询处理子系统 对象与数据库在1996年 从商业角度而言 数据库构件系统和持久性编程语言系统已经失败面向对象数据库系统在学术上产生了许多研究成果 也有一些小的OODB公司开发的产品 但远未达到原来的商业期望扩展关系数据库和持久性编程语言没有任何商业产品扩展关系数据库 对象关系数据库系统 两个失败对象与数据库在1996年 数据库构件系统需要特殊的专门知识被生成程序效率非常低下不灵活 数据库实现者喜欢更低层的控制 而面向应用的程序员认为他们又太低层了持久性编程语言目前在学术界仍然很活跃没有一个产品出现但很多研究成果可直接应用到面向对象数据库系统中 导航编程查询语言接口 持久化模型 指针混用 垃圾回收算法 面向对象数据库系统对象与数据库在1996年 里程碑 面向对象数据库系统宣言必要特征 复杂对象 对象标识 封装 继承 迟后联编 方法的计算完备性 可扩展类型系统 并发控制 恢复 adhoc查询可选特征 多继承 静态与动态类型检查 分布式 长事务 版本管理研究工作数据模型问题 基本对象模型 模式演进查询处理问题 路径表达式 基于类层次的查询 基于指针的连接方法 基于大对象查询的复杂对象组装模式面向对象数据库系统索引客户 服务器体系结构OODB的Benchmarks OO1 OO7 TPC C 面向对象数据库系统对象与数据库在1996年 标准 对象数据库管理组ODMG ODMG2 0 包括对象模型 ODL OQL C Binding SmalltalkBinding JavaBinding存在的问题对OO概念和定义没有一个统一的认识OODBMS开发商没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论