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

下载本文档

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

文档简介

1、整理ppt高级数据库系统及其实现Advanced Theory on Database Systems整理ppt第1章 面向对象数据库 新型数据库应用 数据模型的发展 ODMG对象数据模型 持久性编程语言 面向对象数据库系统发展历史整理ppt1.1 新型数据库应用新型数据库应用 传统应用的共同特点 数据及结构的一致性:具有相似的结构化数据和相同的大小 面向记录:基本数据由定长数据组成 小数据项:记录不超过几百字节长 原子字段:记录字段短、定长、无结构,满足1NF。整理ppt1.1 新型数据库应用新型数据库应用 新型应用领域: 计算机辅助设计(CAD):储存工程设计数据,包括被设计的构件、构件间

2、的联系、设计的版本等 计算机辅助软件工程(CASE):存储和管理软件开发人员使用的数据,包括源代码、软件模块间的依赖关系、变量的定义与使用、软件系统的发展历史等 多媒体数据库:多媒体数据包括:图像、空间数据、音频(Audio)数据、视频(Video)数据等,主要的应用包括:地理信息系统(GIS)、Voice-mail系统、图形系统、音频点播(AOD: Audio-On-Demand)、视频点播(VOD)等整理ppt1.1 新型数据库应用新型数据库应用 新型应用领域: 办公信息系统(OIS):办公自动化主要包括文档建立工具和文档检索工具 超文本数据库:超文本是由文本和指向其他文档的勾链构成。WW

3、W系统是一个超文本的例子,确切地说,它是一个超媒体的例子,因为Web文档可能是多媒体文档。超文本数据库必须支持基于勾链的文档检索和基于结构的文档查询功能。整理ppt1.2 数据模型的发展Record-orientedHierarchical Data ModelNetwork Data ModelValue-orientedRelational Data ModelObject-orientedExtended Relational Data ModelODMG Data Model整理ppt1.3 ODMG对象模型 模型概述 型(Types) 对象(Objects) 字面量(Literals

4、) 建模对象的状态-特征 建模对象的行为-操作整理ppt1.3.1 对象模型概述 基本建模单位:对象对象和字面量字面量,对象有一个唯一的标识符而字面量没有 每个对象(字面量)具有一个型型,某个型的所有元素具有相同的状态和行为 一个对象的状态由一组特征来描述:属性与联系 一个对象的行为由一组操作来描述整理ppt1.3.2 对象的型 型的定义:一个外部说明和一个或多个实现,外部说明是对象的抽象 外部说明包括:对象的操作和特征 对象(Objects) 型的三种定义方式:Interface、class、literal 接口接口型仅定义一个对象型的抽象行为抽象行为 类类型定义一个对象型的抽象行为和抽象状

5、态 字面量字面量型仅定义了一个字面量型的抽象状态整理ppt1.3.2 对象的型 Interface Employee ; class Person ; struct Complex float re; float im; 型的说明interfaceclassliteral抽象行为抽象状态整理ppt1.3.2 对象的型 一个型可以有多个实现,但在一种绑定语言中,一个型通常只有一个实现 C+实现 Java实现 型的说明独立于型的实现所带来的好处 可以使型的语义独立于绑定语言的表示细节 有利于型的多语言存取和异构计算环境中对象的共享整理ppt1.3.2 对象的型 - 子型化(subtyping)与行

6、为继承 继承 子型化仅仅反映了行为的继承过程 Interface Employee ; interface Professor: Employee ; interface Associate_Professor: Professor . ; Professor/Employee:子型/超型联系 子型继承其所有超型的特征与行为 子型可以提炼(refine)或重载来自超型的特征与行为 类是可实例化的型、接口是不可实例化的型 行为继承反映了两个interface间的ISA联系(generalization-specialization)整理ppt继承 继承:由现有类导出新的类,这个新的类不但可以继承

7、原类的全部属性和方法,而且还可以定义它自己额外的属性和方法,以及重定义继承的方法 子类:新类称为原类的“子类”特化 超类:原类称为导出类的“超类”泛化 继承实现了概念建模中的“IS-A”联系 单继承:一个类只能有一个超类 多继承:一个类可有多个超类,通过组合几个类的描述到一个类而提高共享能力整理pptExample of IS-A Inheritance整理pptClass DAG for banking example.Example of Multiple Inheritance返回整理ppt1.3.2 对象的型 - 子型化(subtyping)与行为继承 继承 子型化仅仅反映了行为的继承

8、过程 Interface Employee ; interface Professor: Employee ; interface Associate_Professor: Professor . ; Professor/Employee:子型/超型联系 子型继承其所有超型的特征与行为 子型可以提炼(refine)或重载来自超型的特征与行为 类是可实例化的型、接口是不可实例化的型 行为继承反映了两个interface间的ISA联系(generalization-specialization)整理ppt1.3.2 对象的型 - 状态继承 行为继承反映的是两个interface间的ISA联系状态继

9、承反映的是两个class间的EXTENDS联系 一个类将继承被它扩展的另一个类的所有的特征和行为 Example整理ppt1.3.2 对象的型 - 状态继承interface Employee ;class Person attribute string name;attribute Date birthDate; class EmployeePerson extends Person : Employeeattribute Date hireDate;attribute Currency payRate; ;整理ppt1.3.2 对象的型 - 外延(extents) 一个型的外延是由数据库中

10、该型的所有实例组成 如果一个对象o是型A的一个实例,则对象o必然是A的外延中的成员 如果型A是型B的一个子型,则A的外延是B的外延的一个子集 在关系数据库中为每个表维持一个外延,而在面向对象数据库系统中型的外延维护是由型的设计者决定的整理ppt1.3.3 对象 - 对象标识 l对象标识符:对象的身份表示l唯一性:OID在对象的整个生命周期内是保持不变的l不可重用性:一旦某个对象被删除之后,该对象的OID不可重用l独立于对象状态:不随对象变量状态的变化而变化l独立于对象的物理存储位置:当对象的存储位置发生变化时OID应保持不变整理ppt1.3.3 对象 - 对象标识 l对象标识是由系统分配而不是

11、由应用产生l对象标识与关键字的区别唯一确定关系中的一行主关键字是可变的主关键字可重复利用主关键字是一个纯逻辑的概念主关键字是由应用产生整理ppt1.3.3 对象 - 对象名字 一个对象可以有一个或多个有意义的名字 对象标识是由系统产生的,而对象名字是由应用产生的 对象名字在整个数据库范围中必须唯一,一个对象可以具有多个名字,但一个名字只能表示一个对象 对象名字类似于编程语言中的全局变量整理ppt1.3.3 对象 - 对象生命周期 对象生命周期是在对象建立时确定的 两种对象:挥发性对象(volatile or transient) 持久性对象(persistent) 挥发性对象:存储在内存中,由

12、编程语言运行系统来管理,其生命周期是当前进程 持久性对象:存储在内存和磁盘中,由ODBMS运行系统来管理 对象生命周期独立于型,即一个型既可以有持久性对象,也可以有挥发性对象整理ppt1.3.3 对象 - 集(聚)合对象 * Set:无序、无重复元素* Bag:无序、有重复元素* List:有序、有重复元素、可按位置操作 元素位置可变* Array:有序、有重复元素、可按位置操 作、元素位置不变* Dictionary:无序、k-v对的无重复集合整理ppt1.3.3 对象 - 结构对象 * Date:日期型* Interval:时间段型* Time:时间型* Timestamp:时间戳型整理p

13、pt1.3.4 字面量 * 原子字面量* 集(聚)合字面量* 结构字面量* 空字面量整理ppt1.3.4 字面量 * 原子字面量- long, short- unsigned long- unsigned short, float- double, boolean- octet, char- string, enum * 集(聚)合字面量- set- bag- list- array- dictionary整理ppt1.3.4 字面量 -结构型* 时间型- date- time- interval- timestamp* 用户自定义型struct Address string dorm_nam

14、e; string room_no;attribute Address dorm_address;整理ppt1.3.4 建模对象状态 - 特征 ODMG定义了2种类型的特征 属性:具有一个类型 联系:通过2个对象类型定义 通过遍历路径的说明显式定义一个联系 遍历路径的说明的功能:描述了参加联系的2个对象实例间的逻辑连接 遍历路径的说明的方向:成对进行,分别说名来自该联系中的不同遍历方向整理ppt1.3.4 建模对象状态 - 特征* 属性interface Person attribute short age; attribute string name; attribute enum gend

15、er male, female; attribute Address home_address; attribute set phones; attribute Department dept;* 联系interface Professor . relationship set teaches inverse Course:is_taught_by; .;整理ppt1.3.4 建模对象状态 - 特征* 如何表示1:1,1:n, n:m relationship X inverse C:R; relationship set inverse C:R;* class Professor . rel

16、ationship set teaches inverse Course:is_taught_by; .;class Course . relationship Professor is_taught_by inverse Professor:teaches; .;整理ppt1.3.4 建模对象行为 - 操作* 多态性多态性:一个对象可以具有多种身份,C+中用case语句来体现* 迟后联编迟后联编:由于多态性问题而引起在C+中是通过虚函数来实现的* 操作重载操作重载:同一接口具有不同的实现在C+中是通过函数重载来实现* 操作提炼操作提炼:子类的操作可对父类继承过来的操作进行修正而得到,例如圆锥

17、体的体积可通过对圆柱体的体积计算进行提炼(修正而得到),在C+中通过调用父类中的方法来实现整理ppt面向对象的语言 增加某种复杂类型和面向对象特征来扩展某种数据操纵语言(如SQL) 对象-关系系统SQL:1999 找一种现存的面向对象程序设计语言,将它扩展以便能对数据库进行处理 持久化程序设计语言整理ppt1.4 持久性编程语言与嵌入式语言的区别 类型阻抗 嵌入式语言与主语言存在类型阻抗问题 持久性编程语言的查询语言已完全集成到宿主语言中,共用相同的类型系统 内存与磁盘之间的数据交换格式 嵌入式语言设计者负责编写外在代码完成 持久性编程语言无需显示编程整理ppt1.4 持久性编程语言 持久性编

18、程语言的缺点: 由于编程语言功能强大,程序也相对容易对数据库进行破坏 语言的复杂性使得自动进行高层优化更加困难 目前持久性编程语言不能很好地支持说明性查询语言整理ppt1.4.1 对象持久化 类持久化类持久化:说明某个类是持久化的,则该类中的所有对象是持久化的,非持久化类的所有对象是挥发性的。该方法比较简单但不够灵活,因为在一个类中既有持久性对象也有挥发性对象对用户来讲总是有用的和方便的,因此在许多面向对象数据库系统中为“可持久化”类 建立持久化建立持久化:通过重载并扩展new操作的功能来建立持久性对象,这样一个对象是否为持久性的取决于该对象的建立过程。这种方法被一些面向对象的数据库系统所采纳

19、。整理ppt1.4.1 对象持久化 标记持久化标记持久化:是上一方法的变种,它是在一个对象被建立以后可以标记它为持久性对象。一般来讲,所有对象被作为挥发性对象来建立,但是如果该对象的有效范围超过程序的执行期间的话,则它必须在该程序结束前被显式地被标记为持久性对象。方法和的区别是:前者在对象建立前决定是否持久化,而后者是在对象建立后才决定其是否持久化 引用持久化引用持久化:一个或多个对象被显式地说明为持久性根对象,所有直接或间接被这些持久性根对象引用的所有对象均为持久性对象整理ppt1.4.2持久性对象存储与存取持久性对象存储与存取 在面向对象的数据库中,一个对象的数据部分被单独地存储在数据库中

20、,而实现一个类的方法的代码部分是作为数据库模式部分存储的,包括类的类型定义。但是在许多系统实现中将方法实现的代码存储在数据库外面的文件中,以避免将诸如编译器这样的系统软件集成到数据库系统中来。整理ppt1.4.2持久性对象存储与存取持久性对象存储与存取 通过对象名字通过对象名字:这种方法仅适合于少量的对象查找,即在数据库中不能命名大量对象,这样会降低通过名字查找对象的效率。通常数据库的入口是通过名字查找得到的 通过对象标识符通过对象标识符:这种方法是实现导航查找对象的方法 集合对象的查找集合对象的查找:允许程序在一个对象的集合(Collection)之上进行迭代以找到所需要的对象。通常对象的集

21、合被建模为聚集类型(Collection Type)的对象 类的外延类的外延(extent):如果一个类存在外延,则在创建该类的一个对象时该对象被自动地被插入到类的外延中,删除该类中的对象时,该对象也自动地从外延中删除掉。类的外延的维护使得该类具有关系的性质。整理ppt1.4.3 持久性持久性C+系统系统 基于C+的持久化扩展的面向对象数据库 通过类库提供持久化支持 优点:对C+做的修改少 易于实现 缺点:设计复杂 完整性约束 提供说明性查询整理ppt The ODMG is an industry consortium aimed at standardizing object-orient

22、ed databases in particular persistent programming languages Includes standards for C+, Smalltalk and Java ODMG-93 ODMG-2.0 and 3.0 (which is 2.0 plus extensions to Java) Our description based on ODMG-2.0 ODMG C+ standard avoids changes to the C+ language provides functionality via template classes a

23、nd class libraries C+ ODL、C+OMLODMG C+ ODL整理pptclass Branch : public d_Object .class Person : public d_Object public:d_String name; / should not use String!d_String address;class Account : public d_Object private:d_Long balance; public:d_Long number;d_Set d_Ref owners; int find_balance();int update_

24、balance(int delta);ODMG C+ ODL: Example整理pptclass Customer : public Person public:d_Date member_from;d_Long customer_id;d_Ref home_branch;d_Set d_Ref accounts; ; ODMG C+ ODL: Example (Cont.)整理pptint create_account_owner(String name, String Address) Database bank_db.obj;Database * bank_db= & bank

25、_db.obj;bank_db =open(“Bank-DB”);d.Transaction Trans;Trans.begin();d_Ref account = new(bank_db) Account;d_Ref cust = new(bank_db) Customer;cust-name - name;cust-address = address;cust-accounts.insert_element(account);. Code to initialize other fieldsTmit();ODMG C+ OML: Example整理pptint print_customer

26、s() Database bank_db_obj;Database * bank_db = &bank_db_obj;bank_db-open (“Bank-DB”);d_Transaction Trans; Trans.begin ();d_Extent all_customers(bank_db);d_Iteratord_Ref iter;iter = all_customerscreate_iterator();d_Ref p;while(iter.next (p)print_cust (p); / Function assumed to be defined elsewhere

27、Tmit();ODMG C+ OML: Example of Iterators整理ppt1.4.3 持久性持久性C+系统系统 基于持久性C+扩展的面向对象数据库系统 Fish、QuickStore、Mneme、. 基于缓冲区机制的面向对象数据库系统 O2、Versant、Ontus、ObjectStore、 实现的区别 单级存储结构 两级存储结构整理ppt1.5 对象与数据库Of object and databases: A decade of turmoil, VLDB96 从学术界和工业界:对象和数据库技术在1986年、1996年、和2006年的发展状况 扩展关系数据库系统 持久性编程

28、语言 面向对象数据库系统 数据库系统工具集/构件整理ppt对象与数据库在1986年 传统的数据库研究者:用复杂数据类型来扩展关系数据模型 编程语言研究者:增加编程语言的持久性特征 其他研究者 结合面向对象编程语言和数据库管理系统的关键特征 - 新一代数据库系统:面向对象数据库系统 用一组工具来辅助系统开发者来构造领域特殊的数据库管理系统整理ppt扩展关系数据库系统对象与数据库在1986年 开放关系数据库的类型系统 允许用户自定义新的抽象数据类型(ADT),并登记到数据库系统中 一旦ADT被定义后,可等同于任何内部(built-in)类型一样使用 典型的商业实例:Postgres整理ppt持久性

29、编程语言对象与数据库在1986年 主要研究问题包括 数据持久化方法 正交性:所有类型都能持久化? Binding技术,主要是DB与PL的无缝集成 系统类型的安全性问题 其他实现技术:持久性结构的导航、持久性数据的维护、垃圾回收等整理ppt面向对象数据库系统对象与数据库在1986年 主要研究 数据模型、查询语言、索引技术、查询处理与优化、系统体系结构、用户接口 问题 在关系数据库早期,有一个公认的数据模型和查询语言,而在OODB早期没有一个统一的认识,不存在一个统一的标准 早期产品 Gemstone、Vbase、Ontos、Orion等整理ppt数据库构件系统对象与数据库在1986年 理念理念:

30、任何一个数据库系统不可能满足所有下一代应用的功能与性能要求,通过一组数据库系统构件来快速构造一个适合某个领域特殊要求的DBMS,以满足他们对查询语言、存取方法、存储组织、事务机制等不同要求 Exodus: 提供对象存储管理器、持久性编程语言、和一个查询优化器生成器 Genesis: 提供一组可复合的存储和索引原语和一个数据库系统编译器(通过一个说明来构造一个合适的存储管理器) Starburst: 提供一组存储和索引构件、通过规则来定义一个可扩展的查询处理子系统整理ppt对象与数据库在1996年 从商业角度而言,数据库构件系统和持久性编程语言系统已经失败 面向对象数据库系统在学术上产生了许多研

31、究成果,也有一些小的OODB公司开发的产品,但远未达到原来的商业期望 扩展关系数据库和持久性编程语言没有任何商业产品 扩展关系数据库-对象关系数据库系统整理ppt两个失败对象与数据库在1996年 数据库构件系统 需要特殊的专门知识 被生成程序效率非常低下 不灵活:数据库实现者喜欢更低层的控制,而面向应用的程序员认为他们又太低层了 持久性编程语言 目前在学术界仍然很活跃 没有一个产品出现 但很多研究成果可直接应用到面向对象数据库系统中:导航编程查询语言接口、持久化模型、指针混用、垃圾回收算法整理ppt面向对象数据库系统对象与数据库在1996年 里程碑:面向对象数据库系统宣言 必要特征:复杂对象、对象标识、封装、继承、迟后联编、方法的计算完备性、可扩展类型系统、并发控制、恢复、ad hoc查询 可选特征:多继承、静态与动态类型检查、分布式、长事务、版本管理 研究工作 数据模型问题:基本对象模型、模式演进 查询处理问题:路径表达式、基于类层次的查询、基于指针的连接方法、基于大对象查询的复杂对象组装模式 面向对象数据库系统索引 客户/服务器体系结构 OODB的Benchmarks:OO1、OO7、TPC-C整理ppt面向对象数据库系统对象与数据库在1996年 标准:对象数据库管理组ODMG -

温馨提示

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

评论

0/150

提交评论