【教学课件】第八章面向对象数据库.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【教学课件】第八章面向对象数据库.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第八章面向对象数据库.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 面向对象数据库面向对象数据库 1本章主要内容:本章主要内容:u 面向对象数据模型面向对象数据模型u 面向对象数据库的查询面向对象数据库的查询u 面向对象数据库的并发控制面向对象数据库的并发控制u 面向对象数据库管理系统面向对象数据库管理系统u 对象对象关系数据库系统关系数据库系统28.1 8.1 新应用的需求新应用的需求和传统数据库的局限性和传统数据库的局限性关系数据库系统的不足:关系数据库系统的不足:(1)(1)关系模型结构简单,不能很好模拟复杂对象关系模型结构简单,不能很好模拟复杂对象 (2)(2)数据类型简单,没有定义抽象数据类型数据类型简单,没有定义抽象数据类型的能力的能
2、力 (3)(3)结结构构与与行行为为完完全全分分离离,使使数数据据库库中中的的信信息息仅仅能能由识别他们的应用程序解释执行;由识别他们的应用程序解释执行;(4)(4)查询实现复杂,连接优化降低了存取效率。查询实现复杂,连接优化降低了存取效率。下下3OODBvsRDBRDBMSRDBMS OODBMS OODBMSOriginalOriginalStoredStoredRecoveredRecoveredOriginalOriginalStoredStoredRecoveredRecovered4 89年年1月,在美国月,在美国ANSI/X3/SPARC的数据库系统研究的数据库系统研究组组(DB
3、SSG)下成立了面向对象数据库任务组下成立了面向对象数据库任务组(OODBTG),专门专门对对象数据管理的标准化进行了研究。对对象数据管理的标准化进行了研究。90年高级年高级DBMS功功能委员会发表了能委员会发表了第三代数据库系统宣言第三代数据库系统宣言的文章,文章的文章,文章中提出了第三代中提出了第三代DBMS应具有的基本特征:应具有的基本特征:(1)支持面向对象的数据模型,支持复杂数据类型;支持面向对象的数据模型,支持复杂数据类型;(2)具有第二代数据库系统的优点,即高效、安全、方便具有第二代数据库系统的优点,即高效、安全、方便(3)具具有有开开放放性性,即即支支持持数数据据库库标标准准(
4、SQL)、网网络络协协议议、适应多种软硬件平台适应多种软硬件平台。58.2 8.2 面向对象程序设计语言面向对象程序设计语言l面向对象程序设计的特点面向对象程序设计的特点u支持模块化设计支持模块化设计l以主体数据(对象)为中心,以数据上的操作作为界以主体数据(对象)为中心,以数据上的操作作为界面进行设计(结构化的方法:数据输入处理数据输面进行设计(结构化的方法:数据输入处理数据输出)出)u软件复用软件复用l对象封装使程序员可以通过界面理解和操作对象对象封装使程序员可以通过界面理解和操作对象l对象继承允许对象实现复用具有相同特征的其它对象代码对象继承允许对象实现复用具有相同特征的其它对象代码u软
5、件维护软件维护l面向对象的软件开发,从分析、设计、实现和测试等阶段面向对象的软件开发,从分析、设计、实现和测试等阶段都是基于对象的概念,在开发和维护阶段,软件系统的结构都是基于对象的概念,在开发和维护阶段,软件系统的结构都是一致的,易于维护。都是一致的,易于维护。6l面向对象程序设计方法在计算机多个领域产生深远影响面向对象程序设计方法在计算机多个领域产生深远影响u程序设计语言程序设计语言u人工智能人工智能u软件工程软件工程u信息系统设计信息系统设计u计算机硬件设计计算机硬件设计u数据库数据库l面向对象数据库系统:面向对象数据库系统:ObjectStore、O2、Orion、Versant、Ge
6、mstone、Itasca7 面相对象数据库系统在许多应用中取得了进展:面相对象数据库系统在许多应用中取得了进展:(1)计算机辅助设计与制造(计算机辅助设计与制造(CAD/CAM););(2)计算机集成制造(计算机集成制造(CIM););(3)计算机辅助软件工程(计算机辅助软件工程(CASE););(4)地理信息系统(地理信息系统(GIS););(5)企业资源规划(企业资源规划(ERP);(6)能源管理系统(能源管理系统(EMS)。)。8lOO数据模型数据模型u用面向对象的观点描述现实世界对象的逻辑组织、用面向对象的观点描述现实世界对象的逻辑组织、对象之间的限制、联系的模型称为对象之间的限制、
7、联系的模型称为OO数据模型。数据模型。lOO模型的核心概念模型的核心概念u对象对象l属性集合属性集合描述对象的状态、组成和特征描述对象的状态、组成和特征l方法集合方法集合描述对象的行为特征描述对象的行为特征l消息集合消息集合是对象向外提供的界面,由对象接是对象向外提供的界面,由对象接收和响应收和响应简单对象、简单对象、复杂对象复杂对象8.3 8.3 面向对象数据模型面向对象数据模型9u对象标识对象标识l每个对象都有一个内部标识符每个对象都有一个内部标识符OID,OID在整个在整个系统中系统中是唯一的,一旦生成就不能改变。是唯一的,一旦生成就不能改变。uOID的表示的表示l值标识值标识由对象的属
8、性组成对象标识由对象的属性组成对象标识l指针标识指针标识指向物理存储位置的指针作为对象标识指向物理存储位置的指针作为对象标识l代用品法(代用品法(surrogatesurrogate),),与对象的内部属性无关。与对象的内部属性无关。10u封装封装l每个对象都是其状态和行为的封装体。每个对象都是其状态和行为的封装体。u类类l具有相同特征对象的集合;对象为类中的实例。具有相同特征对象的集合;对象为类中的实例。l类本身看作对象,称为类对象。类本身看作对象,称为类对象。l面向对象数据库模式是类的集合,形成类层次结构面向对象数据库模式是类的集合,形成类层次结构u类层次类层次l一组相关类形成类层次结构一
9、组相关类形成类层次结构l子类、超类子类、超类l子类和超类的关系体现了子类和超类的关系体现了“is A”is A”的语义的语义11人人教职工教职工学生学生教师教师行政人员行政人员工人工人本科生本科生研究生研究生助教助教讲师讲师教授教授类层次的例子类层次的例子在职研究生在职研究生u类层次类层次l一组相关类形成类层次结构一组相关类形成类层次结构l子类、超类子类、超类l子类和超类的关系体现了子类和超类的关系体现了“is A”is A”的的语义语义12u继承继承子类和超类间具有继承关系子类和超类间具有继承关系l子类继承超类的属性和方法。子类继承超类的属性和方法。l单继承和单继承和多继承多继承l解决同名冲
10、突的方法:解决同名冲突的方法:子类与超类间的同名冲突子类与超类间的同名冲突按子类优先处理按子类优先处理;多个超类间的同名冲突,多个超类间的同名冲突,按说明超类的先后取第一按说明超类的先后取第一个超类中的定义个超类中的定义 或或 规定继承的超类;规定继承的超类;提供显式方法提供显式方法:从多个冲突的实例变量或方法中继从多个冲突的实例变量或方法中继承一个;继承多个,在类定义中重新命名。承一个;继承多个,在类定义中重新命名。13u多态性多态性l同一操作有不同的实现,取决于具体对象。如同一操作有不同的实现,取决于具体对象。如“”法法u滞后联编滞后联编l对对象操作的编译推迟到运行时实现,称滞后联编。对对
11、象操作的编译推迟到运行时实现,称滞后联编。例:在同一个超类的不同子类上执行同一个操作。例:在同一个超类的不同子类上执行同一个操作。如同一个显示操作可以显示不同的数据类型:如同一个显示操作可以显示不同的数据类型:人的信息、图象人的信息、图象u对象的嵌套对象的嵌套l复合类层次结构复合类层次结构 书:书号、书名、书:书号、书名、作者作者、出版社出版社、出版日期。、出版日期。作者:作者名、地址、电话作者:作者名、地址、电话 出版社:出版社名、地址、负责人出版社:出版社名、地址、负责人14 一般提供:一般提供:对单一类中对象的查询对单一类中对象的查询 以类为根的类层次上的查询。以类为根的类层次上的查询。
12、二类索引:二类索引:类层次索引类层次索引 嵌套属性索引嵌套属性索引 8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询15 类类层层次次索索引引 建建立立在在类类C C的的属属性性A A上上的的一一个个类类层层次次索索引引,是是以以该该类类为为根根的的类类层层次次中中所所有有类类在在属属性性A A上上的的单单一一索索引引,属属性性A A称称为为索索引引属属性性,类类C C称称为为索索引引类类。在在单单一一类类上建立的索引称为单一索引。上建立的索引称为单一索引。8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询人人教职工教职工学生学生教师教师行政人员行政人员工人工人本
13、科生本科生研究生研究生教职工教职工:职务、工资、:职务、工资、参加工作时间参加工作时间16 嵌嵌套套属属性性索索引引 在在复复合合类类层层次次的的某某个个类类的的属属性性上上建建立立索索引引。这这种种索索引引是是以以索索引引类类为为根根的的类类复复合合层层次次中中某某个个类类的的属属性性,该该属属性性称称为为索索引引类类的的嵌嵌套套属属性。性。书:书号、书名、书:书号、书名、作者作者、出版社出版社、出版日期。、出版日期。作者:作者:作者名作者名、地址、电话、地址、电话 出版社:出版社名、地址出版社:出版社名、地址 若若在在auth_nameauth_name上上建建立立bookbook的的嵌嵌
14、套套属属性性索索引引,可可找到某个作者的所有书,以加快查找速度。找到某个作者的所有书,以加快查找速度。下下17定义图书类:定义图书类:classbookbook_no:string;book_name:string;written_by:author;publisher_by:publisher;date_of_publation:date;new();classauthor;classpublisher;18 OODB语语言言标标准准,大大多多采采用用了了扩扩充充SQL语语言言的的方方法法,称为称为OSQL。例:例:检索作者为严亮的检索作者为严亮的“数据库原理数据库原理”书的出版社名。书的出
15、版社名。SELECTb.published_by.publi_nameFROMbINbookWHEREb.book_name=“数据库原理数据库原理”ANDb.written_by.auth_name=“严亮严亮”;8.4 8.4 面向对象数据库系统的查询面向对象数据库系统的查询(续续)19在在OODBSOODBS中的更新处理:中的更新处理:(1)(1)当当一一个个事事务务访访问问某某个个类类的的实实例例时时其其它它事事务务不不能能对对这这个类的任何超类进行修改。个类的任何超类进行修改。(2)(2)一一个个事事务务在在查查询询计计算算时时其其它它事事务务也也不不能能修修改改该该类类的的所有子类
16、。所有子类。查询一个类时要对该类和所有子类进行评估。查询一个类时要对该类和所有子类进行评估。在在OODBMSOODBMS中中需需要要提提供供更更复复杂杂的的锁锁机机制制,需需要要锁锁更更多多的的语义信息。语义信息。8.5 8.5 面向对象数据库系统的并发控制面向对象数据库系统的并发控制208.5 8.5 面向对象数据库系统的并发控制面向对象数据库系统的并发控制 多粒度锁,锁的粒度有:多粒度锁,锁的粒度有:RDBSRDBS中的中的锁粒度锁粒度:逻辑单元(属性、元组、表、数据库),逻辑单元(属性、元组、表、数据库),物理单元(数据页、索引页、数据块)。物理单元(数据页、索引页、数据块)。OODBM
17、SOODBMS中中锁的粒度锁的粒度:数据库、类、对象、属性、物理页等。数据库、类、对象、属性、物理页等。21多粒度多粒度封锁封锁u允许类层次中的每个结点单独加锁允许类层次中的每个结点单独加锁u对一个结点加锁,其下层结点也被加以同样类对一个结点加锁,其下层结点也被加以同样类型的隐式锁。型的隐式锁。l在多粒度封锁中一个数据对象可以两种方式封锁:在多粒度封锁中一个数据对象可以两种方式封锁:显式封锁和隐式封锁显式封锁和隐式封锁22多粒度封锁多粒度封锁l显式封锁显式封锁u通过上锁命令(通过上锁命令(LOCK)直接加到数据对象直接加到数据对象上的封锁;上的封锁;l隐式封锁隐式封锁u该数据对象没有独立加锁,
18、是由于其上级结该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象隐式加了锁。点加锁而使该数据对象隐式加了锁。u隐式锁和显式锁的作用是一样的隐式锁和显式锁的作用是一样的23对某个数据对象加锁对某个数据对象加锁时系统检查的内容时系统检查的内容l该数据对象该数据对象u有无显式封锁与之冲突有无显式封锁与之冲突l所有上级结点所有上级结点u检查本事务的显式封锁是否与该数据对象上的隐检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:式封锁冲突:(由上级结点封锁造成的)由上级结点封锁造成的)l所有下级结点所有下级结点u看上面的显式封锁是否与本事务的隐式封锁看上面的显式封锁是否与本事务的隐式封锁(加
19、到下级结点的封锁)加到下级结点的封锁)冲突。冲突。24意向锁意向锁(intentionlock)例:事务例:事务T对类对类C加加X锁,系统必须检查其所有超类锁,系统必须检查其所有超类结点有无冲突、所有子类有无冲突,如果有冲突,结点有无冲突、所有子类有无冲突,如果有冲突,则则T等待。等待。引进意向锁目的引进意向锁目的提高对数据对象加锁时系统的检查效率提高对数据对象加锁时系统的检查效率引入意向锁,在某对象实例上加引入意向锁,在某对象实例上加S或或X锁前,先在其锁前,先在其祖先结点上加意向锁祖先结点上加意向锁,事务,事务T对类对类C请求请求加加X锁时,锁时,只要检查该类上的意向锁即可。只要检查该类上
20、的意向锁即可。25l什么是意向锁什么是意向锁u对任一结点加基本锁,必须先对它的上层结对任一结点加基本锁,必须先对它的上层结点加意向锁点加意向锁u如果对一个结点加意向锁,则说明该结点的如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁下层结点正在被加锁 意向锁意向锁 26常用意向锁常用意向锁l意向共享锁意向共享锁(Intent Share LockIntent Share Lock,简称简称ISIS锁锁)l意向排它锁意向排它锁(Intent Exclusive LockIntent Exclusive Lock,简称简称IXIX锁锁)l共享意向排它锁共享意向排它锁(Share Intent
21、 Exclusive LockShare Intent Exclusive Lock,简简称称SIXSIX锁锁)27l意向锁意向锁:ISIS、IXIX、SIXSIX意向共享锁意向共享锁(IS):对一个数据对象加对一个数据对象加IS锁,表示事务可能对类中的实例锁,表示事务可能对类中的实例显式请求显式请求S锁。锁。意向排它锁意向排它锁(IX):在类上加在类上加IX锁表示事务可能对类中实例显式请求锁表示事务可能对类中实例显式请求X或或S锁。锁。意向锁意向锁 28共享意向排它锁共享意向排它锁(SIX)SIX=S+IX,在在类类上上加加SIX锁锁表表示示对对类类中中所所有有实实例例都都隐隐式式地地加加了
22、了S锁锁。表表示示该该事事务务要要读读类类中中实实例例,还还可可能能对对一一些些实实例例请请求求X锁锁。因因此此,仅仅允允许许其其它它事事务务读读但但不不允允许许更更新新类类中的实例。中的实例。SIX锁锁的的引引入入是是必必要要的的。合合适适于于需需要要查查询询类类中中的的大大量量实实例例而而仅仅更更新新少少数数实实例例的的情情况况。否否则则,若若仅仅加加IX锁锁,对对只只需需读读操操作作的的那那些些实实例例为为防防止止其其它它事事务务写写都都要要加加S锁锁,增增加加了锁的开销。了锁的开销。29共享锁共享锁(S):加加S锁表示该事务读类中实例锁表示该事务读类中实例。排排它它锁锁(X):该该事事
23、务务要要修修改改类类中中的的实实例例,请请求求X锁。锁。30锁锁类类型型的的相容性相容性矩阵矩阵SXISIXSIXSYNYNNXNNNNNISYNYYYIXNNYYNSIX NNYNNX XSIXSIXS IXS IXISIS锁强度的关系锁强度的关系31在在OODBS中多粒度加锁的规则:中多粒度加锁的规则:(1).若若事事务务对对类类层层次次中中的的某某个个粒粒度度上上加加S锁锁,则则在在其其所所有祖先上都要加有祖先上都要加IS锁。锁。(2).若若事事务务对对类类层层次次中中的的某某个个粒粒度度上上加加X锁锁,在在该该粒粒度度的所有祖先粒度上要加的所有祖先粒度上要加IX锁或锁或SIX锁。锁。(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第八 面向 对象 数据库
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内