书签 分享 收藏 举报 版权申诉 / 63
上传文档赚钱

类型面向对象数据库课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5084414
  • 上传时间:2023-02-09
  • 格式:PPT
  • 页数:63
  • 大小:413.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《面向对象数据库课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面向 对象 数据库 课件
    资源描述:

    1、1第八章第八章 面向对象数据库面向对象数据库 2本章主要内容:本章主要内容:u 面向对象数据模型面向对象数据模型u 面向对象数据库的查询面向对象数据库的查询u 面向对象数据库的并发控制面向对象数据库的并发控制u 面向对象数据库管理系统面向对象数据库管理系统u 对象对象关系数据库系统关系数据库系统38.1 8.1 新应用的需求新应用的需求和传统数据库的局限性和传统数据库的局限性关系数据库系统的不足:关系数据库系统的不足:(1)(1)关系模型结构简单,不能很好模拟复杂对象关系模型结构简单,不能很好模拟复杂对象 (2)(2)数据类型简单,没有定义抽象数据类型数据类型简单,没有定义抽象数据类型的能力的

    2、能力 (3)(3)结构与行为完全分离,使数据库中的信息仅结构与行为完全分离,使数据库中的信息仅能由识别他们的应用程序解释执行;能由识别他们的应用程序解释执行;(4)(4)查询实现复杂,连接优化降低了存取效率。查询实现复杂,连接优化降低了存取效率。下下4 OODB vs RDB5 89年年1月,在美国月,在美国ANSI/X3/SPARC的数据库系统研究的数据库系统研究组组(DBSSG)下成立了面向对象数据库任务组下成立了面向对象数据库任务组(OODBTG),专门对对象数据管理的标准化进行了研究。专门对对象数据管理的标准化进行了研究。90年高级年高级DBMS功能委员会发表了功能委员会发表了第三代数

    3、据库系统宣言第三代数据库系统宣言的文的文章,文章中提出了第三代章,文章中提出了第三代DBMS应具有的基本特征:应具有的基本特征:(1)支持面向对象的数据模型,支持复杂数据类型;支持面向对象的数据模型,支持复杂数据类型;(2)具有第二代数据库系统的优点,即高效、安全、方便具有第二代数据库系统的优点,即高效、安全、方便 (3)具有开放性,即支持数据库标准具有开放性,即支持数据库标准(SQL)、网络协议、网络协议、适应多种软硬件平台适应多种软硬件平台。68.2 8.2 面向对象程序设计语言面向对象程序设计语言l面向对象程序设计的特点面向对象程序设计的特点u支持模块化设计支持模块化设计l以主体数据(对

    4、象)为中心,以数据上的操作作为界以主体数据(对象)为中心,以数据上的操作作为界面进行设计(结构化的方法:数据输入处理数据面进行设计(结构化的方法:数据输入处理数据输出)输出)u软件复用软件复用 l对象封装使程序员可以通过界面理解和操作对象对象封装使程序员可以通过界面理解和操作对象l对象继承允许对象实现复用具有相同特征的其它对象代码对象继承允许对象实现复用具有相同特征的其它对象代码u 软件维护软件维护l面向对象的软件开发,从分析、设计、实现和测试等阶段面向对象的软件开发,从分析、设计、实现和测试等阶段都是基于对象的概念,在开发和维护阶段,软件系统的结都是基于对象的概念,在开发和维护阶段,软件系统

    5、的结构都是一致的,易于维护。构都是一致的,易于维护。7l面向对象程序设计方法在计算机多个领域产生深远影响面向对象程序设计方法在计算机多个领域产生深远影响u程序设计语言程序设计语言u人工智能人工智能u软件工程软件工程u信息系统设计信息系统设计u计算机硬件设计计算机硬件设计u数据库数据库l面向对象数据库系统:面向对象数据库系统:ObjectStore、O2、Orion、Versant、Gemstone、Itasca8 面相对象数据库系统在许多应用中取得了进展:面相对象数据库系统在许多应用中取得了进展:(1)计算机辅助设计与制造(计算机辅助设计与制造(CAD/CAM););(2)计算机集成制造(计算

    6、机集成制造(CIM););(3)计算机辅助软件工程(计算机辅助软件工程(CASE););(4)地理信息系统(地理信息系统(GIS););(5)企业资源规划(企业资源规划(ERP);(6)能源管理系统(能源管理系统(EMS)。)。9lOO数据模型数据模型u用面向对象的观点描述现实世界对象的逻辑组织、用面向对象的观点描述现实世界对象的逻辑组织、对象之间的限制、联系的模型称为对象之间的限制、联系的模型称为OO数据模型。数据模型。lOO模型的核心概念模型的核心概念u对象对象l属性集合属性集合 描述对象的状态、组成和特征描述对象的状态、组成和特征l方法集合方法集合 描述对象的行为特征描述对象的行为特征l

    7、消息集合消息集合 是对象向外提供的界面,由对象接是对象向外提供的界面,由对象接收和响应收和响应简单对象、简单对象、复杂对象复杂对象8.3 8.3 面向对象数据模型面向对象数据模型10u对象标识对象标识l每个对象都有一个内部标识符每个对象都有一个内部标识符OID,OID在整个在整个系统中系统中 是唯一的,一旦生成就不能改变。是唯一的,一旦生成就不能改变。uOID的表示的表示l值标识值标识 由对象的属性组成对象标识由对象的属性组成对象标识l 指针标识指针标识 指向物理存储位置的指针作为对象标识指向物理存储位置的指针作为对象标识l代用品法(代用品法(surrogatesurrogate),),与对象

    8、的内部属性无关。与对象的内部属性无关。11u封装封装l每个对象都是其状态和行为的封装体。每个对象都是其状态和行为的封装体。u类类 l 具有相同特征对象的集合;对象为类中的实例。具有相同特征对象的集合;对象为类中的实例。l 类本身看作对象,称为类对象。类本身看作对象,称为类对象。l面向对象数据库模式是类的集合,形成类层次结构面向对象数据库模式是类的集合,形成类层次结构u类层次类层次l一组相关类形成类层次结构一组相关类形成类层次结构l子类、超类子类、超类l子类和超类的关系体现了子类和超类的关系体现了“is A”is A”的语义的语义12 人人 教职工教职工 学生学生 教师教师 行政人员行政人员 工

    9、人工人 本科生本科生 研究生研究生助教助教 讲师讲师 教授教授 类层次的例子类层次的例子在职研究生在职研究生u类层次类层次 l一组相关类形成类层次结构一组相关类形成类层次结构l子类、超类子类、超类l子类和超类的关系体现了子类和超类的关系体现了“is A”is A”的的语义语义13u继承继承 子类和超类间具有继承关系子类和超类间具有继承关系l子类继承超类的属性和方法。子类继承超类的属性和方法。l单继承和单继承和多继承多继承l 解决同名冲突的方法:解决同名冲突的方法:子类与超类间的同名冲突子类与超类间的同名冲突按子类优先处理按子类优先处理;多个超类间的同名冲突,多个超类间的同名冲突,按说明超类的先

    10、后取第一按说明超类的先后取第一个超类中的定义个超类中的定义 或或 规定继承的超类;规定继承的超类;提供显式方法提供显式方法:从多个冲突的实例变量或方法中继从多个冲突的实例变量或方法中继承一个;继承多个,在类定义中重新命名。承一个;继承多个,在类定义中重新命名。14u多态性多态性l 同一操作有不同的实现,取决于具体对象。如同一操作有不同的实现,取决于具体对象。如“”法法 u滞后联编滞后联编l对对象操作的编译推迟到运行时实现,称滞后联编。对对象操作的编译推迟到运行时实现,称滞后联编。例:在同一个超类的不同子类上执行同一个操作。例:在同一个超类的不同子类上执行同一个操作。如同一个显示操作可以显示不同

    11、的数据类型:如同一个显示操作可以显示不同的数据类型:人的信息、图象人的信息、图象u对象的嵌套对象的嵌套l复合类层次结构复合类层次结构 书:书号、书名、书:书号、书名、作者作者、出版社出版社、出版日期。、出版日期。作者:作者名、地址、电话作者:作者名、地址、电话 出版社:出版社名、地址、负责人出版社:出版社名、地址、负责人15 一般提供:一般提供:对单一类中对象的查询对单一类中对象的查询 以类为根的类层次上的查询。以类为根的类层次上的查询。二类索引:二类索引:类层次索引类层次索引 嵌套属性索引嵌套属性索引 8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询16 类层次索引类层次索引

    12、 建立在类建立在类C C的属性的属性A A上的一个类层次上的一个类层次索引,是以该类为根的类层次中所有类在属性索引,是以该类为根的类层次中所有类在属性A A上的单一上的单一索引,属性索引,属性A A称为称为索引属性索引属性,类,类C C称为称为索引类索引类。在单一类在单一类上建立的索引称为单一索引。上建立的索引称为单一索引。8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询 人人 教职工教职工 学生学生 教师教师 行政人员行政人员 工人工人 本科生本科生 研究生研究生教职工教职工:职务、工资、:职务、工资、参加工作时间参加工作时间17 嵌套属性索引嵌套属性索引 在复合类层次的某个

    13、类的在复合类层次的某个类的属性上建立索引。这种索引是以索引类为根的类复属性上建立索引。这种索引是以索引类为根的类复合层次中某个类的属性,该属性称为索引类的嵌套合层次中某个类的属性,该属性称为索引类的嵌套属性。属性。书:书号、书名、书:书号、书名、作者作者、出版社出版社、出版日期。、出版日期。作者:作者:作者名作者名、地址、电话、地址、电话 出版社:出版社名、地址出版社:出版社名、地址 若在若在auth_nameauth_name上建立上建立bookbook的嵌套属性索引,可的嵌套属性索引,可找到某个作者的所有书,以加快查找速度。找到某个作者的所有书,以加快查找速度。下下18定义图书类:定义图书

    14、类:class book book_no:string;book_name:string;written_by:author;publisher_by:publisher;date_of_publation:date;new();class author ;class publisher ;19 OODB语言标准,大多采用了扩充语言标准,大多采用了扩充SQL语言的方法,语言的方法,称为称为OSQL。例:例:检索作者为严亮的检索作者为严亮的“数据库原理数据库原理”书的出版社名。书的出版社名。SELECT b.published_by.publi_name FROM b IN book WHERE

    15、 b.book_name=“数据库原理数据库原理”AND b.written_by.auth_name=“严亮严亮”;8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询(续续)20在在OODBSOODBS中的更新处理:中的更新处理:(1)(1)当一个事务访问某个类的实例时其它事务不能对这当一个事务访问某个类的实例时其它事务不能对这个类的任何超类进行修改。个类的任何超类进行修改。(2)(2)一个事务在查询计算时其它事务也不能修改该类的一个事务在查询计算时其它事务也不能修改该类的所有子类。所有子类。查询一个类时要对该类和所有子类进行评估。查询一个类时要对该类和所有子类进行评估。在在O

    16、ODBMSOODBMS中需要提供更复杂的锁机制,需要锁更多的中需要提供更复杂的锁机制,需要锁更多的语义信息。语义信息。8.5 8.5 面向对象数据库系统的并发控制面向对象数据库系统的并发控制218.5 8.5 面向对象数据库系统的并发控制面向对象数据库系统的并发控制 多多粒度锁,锁的粒度有:粒度锁,锁的粒度有:RDBSRDBS中的中的锁粒度锁粒度:逻辑单元(属性、元组、表、数据库),逻辑单元(属性、元组、表、数据库),物理单元(数据页、索引页、数据块)。物理单元(数据页、索引页、数据块)。OODBMSOODBMS中中锁的粒度锁的粒度:数据库、类、对象、属性、物理页等。数据库、类、对象、属性、物

    17、理页等。22多粒度多粒度封锁封锁u允许类层次中的每个结点单独加锁允许类层次中的每个结点单独加锁u对一个结点加锁,其下层结点也被加以同样类对一个结点加锁,其下层结点也被加以同样类型的隐式锁。型的隐式锁。l在多粒度封锁中一个数据对象可以两种方式封锁:在多粒度封锁中一个数据对象可以两种方式封锁:显式封锁和隐式封锁显式封锁和隐式封锁23 多粒度封锁多粒度封锁l显式封锁显式封锁u通过上锁命令(通过上锁命令(LOCK)直接加到数据对象直接加到数据对象上的封锁;上的封锁;l隐式封锁隐式封锁u该数据对象没有独立加锁,是由于其上级结该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象隐式加了锁。点加锁而使

    18、该数据对象隐式加了锁。u隐式锁和显式锁的作用是一样的隐式锁和显式锁的作用是一样的24对某个数据对象加锁对某个数据对象加锁 时系统检查的内容时系统检查的内容l 该数据对象该数据对象u有无显式封锁与之冲突有无显式封锁与之冲突l 所有上级结点所有上级结点u检查本事务的显式封锁是否与该数据对象上的隐检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:式封锁冲突:(由上级结点封锁造成的)由上级结点封锁造成的)l 所有下级结点所有下级结点u看上面的显式封锁是否与本事务的隐式封锁看上面的显式封锁是否与本事务的隐式封锁(加到下级结点的封锁)加到下级结点的封锁)冲突。冲突。25意向锁意向锁(intention

    19、 lock)例:事务例:事务T对类对类C 加加X锁,系统必须检查其所有超类锁,系统必须检查其所有超类结点有无冲突、所有子类有无冲突,如果有冲突结点有无冲突、所有子类有无冲突,如果有冲突,则,则T等待。等待。引进意向锁目的引进意向锁目的提高对数据对象加锁时系统的检查效率提高对数据对象加锁时系统的检查效率 引入意向锁,在某对象实例上加引入意向锁,在某对象实例上加S或或X锁前,先在其锁前,先在其祖先结点上加意向锁祖先结点上加意向锁,事务,事务T对类对类C请求请求 加加X锁时,锁时,只要检查该类上的意向锁即可。只要检查该类上的意向锁即可。26l什么是意向锁什么是意向锁u对任一结点加基本锁,必须先对它的

    20、上层结对任一结点加基本锁,必须先对它的上层结点加意向锁点加意向锁u如果对一个结点加意向锁,则说明该结点的如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁下层结点正在被加锁 意向锁意向锁 27常用意向锁常用意向锁l意向共享锁意向共享锁(Intent Share LockIntent Share Lock,简称简称ISIS锁锁)l意向排它锁意向排它锁(Intent Exclusive LockIntent Exclusive Lock,简称简称IXIX锁锁)l共享意向排它锁共享意向排它锁(Share Intent Exclusive LockShare Intent Exclusive L

    21、ock,简简称称SIXSIX锁锁)28l意向锁意向锁:ISIS、IXIX、SIXSIX 意向共享锁意向共享锁(IS):对一个数据对象加对一个数据对象加IS锁,表示事务可能对类中的实例锁,表示事务可能对类中的实例显式请求显式请求S锁。锁。意向排它锁意向排它锁(IX):在类上加在类上加IX锁表示事务可能对类中实例显式请求锁表示事务可能对类中实例显式请求X或或S锁。锁。意向锁意向锁 29 共享意向排它锁共享意向排它锁(SIX)SIX=S+IX,在类上加在类上加SIX锁表示对类中所有实例都隐锁表示对类中所有实例都隐式地加了式地加了S锁。表示该事务要读类中实例,还可能对一些锁。表示该事务要读类中实例,还

    22、可能对一些实例请求实例请求X锁。因此,仅允许其它事务读但不允许更新锁。因此,仅允许其它事务读但不允许更新类中的实例。类中的实例。SIX锁的引入是必要的。合适于需要查询类中的大量实锁的引入是必要的。合适于需要查询类中的大量实例而仅更新少数实例的情况。例而仅更新少数实例的情况。否则,若仅加否则,若仅加IX锁,对只锁,对只需读操作的那些实例为防止其它事务写都要加需读操作的那些实例为防止其它事务写都要加S锁,增加锁,增加了锁的开销。了锁的开销。30 共享锁共享锁(S):加加S锁表示该事务读类中实例锁表示该事务读类中实例。排它锁排它锁(X):该事务要修改类中的实例,请该事务要修改类中的实例,请求求X锁。

    23、锁。31 锁锁 类类 型型 的的 相容性相容性 矩阵矩阵 S XIS IX SIX SYNYNNXNNNNNISYNYYYIXNNYYNSIX NNYNNX XSIXSIXS IXS IXISIS锁强度的关系锁强度的关系32在在OODBS中多粒度加锁的规则:中多粒度加锁的规则:(1).若事务对类层次中的某个粒度上加若事务对类层次中的某个粒度上加S锁,则在其所锁,则在其所有祖先上都要加有祖先上都要加IS锁。锁。(2).若事务对类层次中的某个粒度上加若事务对类层次中的某个粒度上加X锁,在该粒度锁,在该粒度的所有祖先粒度上要加的所有祖先粒度上要加IX锁或锁或SIX锁。锁。(3).若事务已获得对一个类

    24、的某个锁,则该类的所有子若事务已获得对一个类的某个锁,则该类的所有子孙也隐含获得同样的锁。孙也隐含获得同样的锁。(4).加锁从类层次的根开始依此往下进行直到事务申请加锁从类层次的根开始依此往下进行直到事务申请锁的那个粒度,而解锁时的顺序则是由下而上的。锁的那个粒度,而解锁时的顺序则是由下而上的。33 例:例:已知学校人员的类层次结构,若事务已知学校人员的类层次结构,若事务T要修改要修改李伟峰教授的属性值,则不同层次的加锁顺序和锁类型。李伟峰教授的属性值,则不同层次的加锁顺序和锁类型。(1)给类人加给类人加IX锁,锁,(2)给类教职工加给类教职工加IX锁,锁,(3)给类教师加给类教师加IX锁,锁

    25、,(4)给类教授加给类教授加IX锁,锁,(5)给对象李伟峰加给对象李伟峰加X锁。锁。解锁的顺序:李伟峰、教授、教师、教职工、人。解锁的顺序:李伟峰、教授、教师、教职工、人。若要查询其他教授的信息,则对类教授改加若要查询其他教授的信息,则对类教授改加SIX锁其锁其它锁不变。它锁不变。34 ORACLE的锁:的锁:(1)RS 行共享锁行共享锁 可以上可以上SRX、RS、RX、S锁锁 LOCK TABLE IN ROW SHARE MODE(2)RX 行排它锁行排它锁 可以上可以上RS、RX锁锁 LOCK TABLE IN ROW EXCLUSIVE MODE(3)S 共享表锁共享表锁 可以上可以上

    26、RS、S锁锁 LOCK TABLE IN SHARE MODE(4)SRX 共享行排它表锁共享行排它表锁 可以上可以上RS锁锁 LOCK TABLE IN SHARE ROW EXCLUSIVE MODE(5)X 排它表锁排它表锁 LOCK TABLE IN EXCLUSIVE MODE35 8.6 ORION8.6 ORION的的系统结构系统结构 (1)(1)消息处理子系统。消息处理子系统。负责处理发给负责处理发给 对象的所有消息;对象的所有消息;(2)(2)对象子系统。对象子系统。对象的存取操作、版本管理、查询优化、多媒体信息管理;对象的存取操作、版本管理、查询优化、多媒体信息管理;(3)

    27、(3)事务管理子系统。事务管理子系统。提供并发控制和恢复机制;提供并发控制和恢复机制;(4)(4)存储子系统。存储子系统。该子系统包括页缓冲区管理和磁盘管理二个子系统该子系统包括页缓冲区管理和磁盘管理二个子系统,负责存储在磁盘上对象的存取。,负责存储在磁盘上对象的存取。对象子系统对象子系统事务管理子系统事务管理子系统 存储子系统存储子系统 磁盘段管理磁盘段管理页缓冲管理页缓冲管理消息处理子系统消息处理子系统36 8.6.1 ORION的数据模型的数据模型ORIONORION支持面向对象的核心概念:支持面向对象的核心概念:对象、类、消息、方法。对象、类、消息、方法。ORIONORION采用多重继

    28、承,一个类可以有多个超类。采用多重继承,一个类可以有多个超类。解决同名冲突的方法:解决同名冲突的方法:(1)(1)类与超类间的同名冲突按子类优先处理;类与超类间的同名冲突按子类优先处理;(2)(2)多个超类间的同名冲突,按说明超类的先后取多个超类间的同名冲突,按说明超类的先后取第一个超类中的定义;第一个超类中的定义;(3)(3)提供显式方法提供显式方法:从多个冲突的实例变量或方法从多个冲突的实例变量或方法中继承一个;继承多个,在类定义中重新命名。中继承一个;继承多个,在类定义中重新命名。37 ORIONORION中定义中定义ObjectObject作为类层次结构的根作为类层次结构的根用户定义类

    29、用户定义类 Object 系统定义类系统定义类 Vehicle Ptype Collection Integer String Set Air Water LandVehicle Vehicle Vehicle Set of Vehicle Set of Ptype Set ofIntegerSet ofString Set ofAir Vehicle Set ofLand Vehicle Set ofWater Vehicle38 8.6.2 复合对象复合对象ORION中的对象有:中的对象有:复合对象、依赖对象、独立对象复合对象、依赖对象、独立对象 复合对象:一个对象全部或部分由多个依赖对象

    30、组成。复合对象:一个对象全部或部分由多个依赖对象组成。依赖对象:一个对象的存在依赖于另一个对象。依赖对象:一个对象的存在依赖于另一个对象。依赖对象只能由一个对象所依赖对象只能由一个对象所拥有拥有。例如,装在车上的。例如,装在车上的发动机只能为一辆汽车所有,是依赖于汽车的。发动机只能为一辆汽车所有,是依赖于汽车的。独立对象:独立于其它对象存在的对象,可以被其它对独立对象:独立于其它对象存在的对象,可以被其它对象所象所引用引用。计算机:主机,外设,生产厂计算机:主机,外设,生产厂 主主 机:机:CPU,内存,硬盘,软盘内存,硬盘,软盘 外外 设:显示器,键盘,打印机设:显示器,键盘,打印机398.

    31、6.3 模式进化模式进化 模式进化模式进化(schema evolution)修改数据库模式:修改数据库模式:修改类结构修改类结构、类格的继承结构类格的继承结构类定义的修改类定义的修改 对实例变量和方法的修改;对实例变量和方法的修改;增删属性和方法。增删属性和方法。对类格的修改对类格的修改 增、删一个类或超类,增、删一个类或超类,改变类名或改变类名或改变超类名的顺序。改变超类名的顺序。人人 教职工教职工 学生学生 教师教师 行政人员行政人员 本科生本科生 研究生研究生408.6.3 模式进化模式进化ORIONORION为动态修改数据库模式的功能提供了一为动态修改数据库模式的功能提供了一组约束规

    32、则:组约束规则:(1)(1)模式进化操作分类模式进化操作分类 (2)模式进化的不变性模式进化的不变性(一致性一致性)(3)模式进化规则模式进化规则 41 (1)(1)模式进化操作分类模式进化操作分类 类格结点内容的修改类格结点内容的修改(增删变量和方法增删变量和方法)边的修改边的修改(超类子类关系的修改超类子类关系的修改)结点的修改结点的修改(增删类、改类名增删类、改类名)(2)模式进化的不变性模式进化的不变性 模式修改后保持成立的特性(模式一致性模式修改后保持成立的特性(模式一致性:模式内部模式内部的一致性约束的一致性约束)同一类中的类名、变量名和方法名的唯一性同一类中的类名、变量名和方法名

    33、的唯一性 被引用的类、操作和实现必须存在被引用的类、操作和实现必须存在 子类子类/超类不能有环、多继承不能有冲突超类不能有环、多继承不能有冲突42(3)模式进化规则模式进化规则 冲突解决规则冲突解决规则 发生命名冲突时的继承规则发生命名冲突时的继承规则 性质传播性质传播(修改传播修改传播)规则规则 修改超类结果传播给子类修改超类结果传播给子类 DAG操纵规则操纵规则 对类格修改的规则:增加一个子类的超类,对类格修改的规则:增加一个子类的超类,该超类排在所有超类的最后该超类排在所有超类的最后438.6.4 版本管理版本管理 版本版本 类对象版本、实例对象版本类对象版本、实例对象版本 ORION提

    34、供二类版本提供二类版本 1.临时版本临时版本 可修改和删除,可由它导出新的临时版本。可修改和删除,可由它导出新的临时版本。2.工作版本工作版本 只能查看不能修改,可导出临时版本。只能查看不能修改,可导出临时版本。版本对象描述版本对象描述 对象标识符、版本号、版本状态对象标识符、版本号、版本状态(临时、工作(临时、工作)44 版本管理版本管理线性版本管理模型线性版本管理模型按照版本出现的先后顺序排列按照版本出现的先后顺序排列树型版本管理模型树型版本管理模型 一个版本有多个后继版本,能反映版本间的依一个版本有多个后继版本,能反映版本间的依赖关系。赖关系。有向无环图版本管理模型有向无环图版本管理模型

    35、一个版本有多个前驱版本和多个后继版本一个版本有多个前驱版本和多个后继版本 45 DBDB0 0生成的不同版本生成的不同版本 DBDB0 0 DBDB4 4 DBDB3 3 DBDB2 2 DBDB1 1 DBDB6 6 DBDB7 7 DBDB5 5468.6.4 版本管理版本管理 对版本操作命令:对版本操作命令:Create (创建版本对象,生成对象结构创建版本对象,生成对象结构);Derive (派生新的临时版本派生新的临时版本);Replace (替换临时版本的内容替换临时版本的内容);Delete (删除版本删除版本);Promote(改临时版本工作版本改临时版本工作版本).8.6.5

    36、 对象的存储管理对象的存储管理u 二元存储:二元存储:u 基于对象的存储基于对象的存储 对象标识对象标识 对象长度对象长度 属性数属性数 属性向量属性向量 值位移向量值位移向量 值值 对象存储格式对象存储格式u 类层次结构对象的存储类层次结构对象的存储 (1)属性值存储在尽可能低的层次属性值存储在尽可能低的层次 (2)属性值存储在较高的层次,还可以将属性值按不同层次分别属性值存储在较高的层次,还可以将属性值按不同层次分别存储存储 ORION中采用了第一种存储策略,尽可能将类中的实例存储中采用了第一种存储策略,尽可能将类中的实例存储在类层次的最低层。在类层次的最低层。48 人人 教职工教职工 学

    37、生学生 教师教师 工人工人 本科生本科生 研究生研究生 学校人员的类层次结构编号编号 姓名姓名001 王平王平编号编号 姓名姓名 参加工作时间参加工作时间002 李李 力力 1990.02.23003 孙小丹孙小丹 1987.09.15编号编号 姓名姓名 入校时间入校时间004 吴吴 伟伟 1998.09.06编号编号 姓名姓名 参加工作时间参加工作时间 职称职称005 赵亮赵亮 1978.12.15 教授教授006 刘江水刘江水 1988.10.22 副教授副教授007 史为民史为民 1995.08.12 讲师讲师编号编号 姓名姓名 参加工作时间参加工作时间 工种工种008 张也张也 198

    38、1.02.12 钳工钳工009 楼白楼白 1993.05.09 车工车工编号编号 姓名姓名 入校时间入校时间 专业专业010 赵小亮赵小亮 1998.09.06 机电机电011 江浩江浩 1998.09.06 化工化工编号编号 姓名姓名 入校时间入校时间 导师导师012 吕空吕空 1999.09.05 冯江冯江013 陈涛陈涛 2000.09.09 宋为国宋为国49OODB存在的问题:存在的问题:已有已有OODBMS在程序设计接口、实现方法、对查在程序设计接口、实现方法、对查询的支持等多个方面存在许多差异;询的支持等多个方面存在许多差异;模式进化难于实现;模式进化难于实现;与应用程序密切相关,

    39、许多系统仅支持一种语言与应用程序密切相关,许多系统仅支持一种语言 健壮性、容错性;健壮性、容错性;缺乏开发工具。缺乏开发工具。5087 对象对象关系数据库系统关系数据库系统 对象对象关系数据库系统在关系系统基础上应具有关系数据库系统在关系系统基础上应具有以下特征:以下特征:扩充数据类型;扩充数据类型;支持复杂对象管理(组合、集合、引用);支持复杂对象管理(组合、集合、引用);支持继承(子类支持继承(子类/超类,单继承超类,单继承/多继承);多继承);提供通用规则系统(事件和动作为任意提供通用规则系统(事件和动作为任意SQL语句语句的主动性规则、自定义函数、规则的继承)的主动性规则、自定义函数、

    40、规则的继承)51 对象关系数据库系统中扩展的数据类型对象关系数据库系统中扩展的数据类型v扩展的类型:扩展的类型:LOB BOOLEAN 集合类型集合类型ARRAY 用户定义的用户定义的DISTINCT类型类型 面向对象的数据类型面向对象的数据类型 行类型行类型ROW TYPE 抽象数据类型(抽象数据类型(Abstract Data Type)52 SQL3中提供了中提供了CREATE TYPE语句语句 定义定义DISTINCT类型和抽象数据类型类型和抽象数据类型 例:例:使用使用DISTINCT类型类型CREATE TYPE AGE_TYPE AS INTEGER FINAL;CREATE T

    41、YPE GRADE_TYPE AS INTEGER FINAL;WHERE AGEGRADE 53 871 复杂对象复杂对象 对象对象关系数据库系统中关系的属性域是非原子的关系数据库系统中关系的属性域是非原子的,可以用复合数据类型表示,也可以是一个关系,称,可以用复合数据类型表示,也可以是一个关系,称为为嵌套关系嵌套关系。复合数据类型复合数据类型:组合类型、集合类型和引用类型。:组合类型、集合类型和引用类型。组合类型组合类型:由不同类型数据值组成;:由不同类型数据值组成;集合类型集合类型:相同类型值的组合;:相同类型值的组合;引用类型引用类型:指向任意类型实例的指针。:指向任意类型实例的指针。

    42、54 用复合数据类型构造复杂对象用复合数据类型构造复杂对象(抽象数据类型抽象数据类型ADT)v 定义一个定义一个组合数据类型组合数据类型。CREATE TYPE (,);简单类型或简单类型或复合类型复合类型v 集合类型集合类型 用关键词用关键词 setof(T)说明,说明,T是任意数据类是任意数据类型。型。setof(T)是类型为是类型为T的值的集合数据类型。的值的集合数据类型。v 引用类型引用类型 用关键词用关键词 ref(T),T可以是任意数据类型可以是任意数据类型55例子:例子:图书(书号、书名、作者、图书(书号、书名、作者、出版社、出版日期)出版社、出版日期)CREATE TYPE m

    43、ystring varchar(40);CREATE TYPE mydate (year integer,month integer,day integer);CREATE TYPE publisher_t (publi_ name cahr(20),address varchar(40),telephone intger);集合集合类型类型组合类组合类型型56CREATE TYPE book_t (bookno char(20),bookname varchar(40),author setof(mystring),publisher_ref ref(publisher_t),date my

    44、date);CREATE TABLE publisher of type publisher_t;CREATE TABLE book of type book_t;集合类型集合类型参照类型参照类型组合类型组合类型578 87 72 2 继承继承 继承可以在继承可以在类型一级说明类型一级说明,也可以用于,也可以用于表一级表一级。CREATE TYPE UNDER CREATE TABLE UNDER 588 87 72 2 继承继承v 继承继承 可以在可以在类型一级说明类型一级说明CREATE TYPE person_t(name char(8)););CREATE TYPE teacher_t

    45、 (title char(6),salary float,department char(8))UNDER person_t;CREATE TYPE student_t (class integer,department char(8))UNDER person_t;59v 表一级继承表一级继承 直接在定义表中给出继承关系直接在定义表中给出继承关系CREATE TABLE person(name char(8)););CREATE TABLE teacher (title char(6),salary float)UNDER person;CREATE TABLE student (class

    46、 integer,department char(8))UNDER person;CREATE TABLE tcher_stdent(credit integer)UNDER teacher,student;60v 多重继承多重继承 UNDER 后说明多个类型。后说明多个类型。CREATE TYPE teacher_stdent_t(credit integer)UNDER teacher_t,student_t;多重继承会出现属性冲突,解决方法有:多重继承会出现属性冲突,解决方法有:(1)在超类中重新定义冲突属性名;在超类中重新定义冲突属性名;(2)在子类中重新定义冲突属性名。在子类中重新定

    47、义冲突属性名。CREATE TYPE tcher_stdent_t(credit integer)UNDER teacher_t WITH(department AS t_departt_depart),student_t WITH (department AS s_departs_depart);61 Oracle Oracle 的对象关系特征的对象关系特征v 扩展数据类型扩展数据类型 可变长数组类型:可变长数组类型:VARRAY CREATE TYPE phone_type as OBJECT(ph_num CHAR(11);CREATE TYPE tel_list as VARRAY(3

    48、)OF phone_type;CREATE TABLE emp (empno char(6),,phone tel_list););定义对象类型定义对象类型 定义数组定义数组 62 Oracle Oracle 的对象关系特征的对象关系特征v 使用嵌套表表示复杂对象使用嵌套表表示复杂对象 图书(书号、书名、作者、图书(书号、书名、作者、出版社)出版社)CREATE TYPE publisher_type as OBJECT (publi_ name char(20),address varchar(40),telephone intger);CREATE TYPE publish_t as TY

    49、PE OF publisher_type;CREATE TABLE book (bookno char(20),bookname varchar(40),author varchar(20),publisher publish_t)定义表类型定义表类型定义对象类型定义对象类型 63 Oracle Oracle 的对象关系特征的对象关系特征v 扩展数据类型扩展数据类型 Oracle可以存储大对象,如视频、音频、文本文档可以存储大对象,如视频、音频、文本文档 BLOB:二进制大对象二进制大对象 CLOB:字符大对象字符大对象 BFILE:存储在数据库外部的存储在数据库外部的 二进制文件,其目二进制文件,其目录名存储在数据库内。录名存储在数据库内。结束

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:面向对象数据库课件.ppt
    链接地址:https://www.163wenku.com/p-5084414.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库