面向对象的数据模型和对象关系数据模型

上传人:mg****85 文档编号:45664157 上传时间:2018-06-18 格式:PDF 页数:65 大小:388.19KB
返回 下载 相关 举报
面向对象的数据模型和对象关系数据模型_第1页
第1页 / 共65页
面向对象的数据模型和对象关系数据模型_第2页
第2页 / 共65页
面向对象的数据模型和对象关系数据模型_第3页
第3页 / 共65页
面向对象的数据模型和对象关系数据模型_第4页
第4页 / 共65页
面向对象的数据模型和对象关系数据模型_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《面向对象的数据模型和对象关系数据模型》由会员分享,可在线阅读,更多相关《面向对象的数据模型和对象关系数据模型(65页珍藏版)》请在金锄头文库上搜索。

1、本讲(第5章)简要说明授课目的与要求:授课目的与要求: 了解对象数据库管理系统的特点、优缺 点以及与传统了解对象数据库管理系统的特点、优缺 点以及与传统DBMS的区别;了解对象关系数据库系统相对关系数据 库的扩充。的区别;了解对象关系数据库系统相对关系数据 库的扩充。1. 高级的数据库应用高级的数据库应用?计算机辅助设计(计算机辅助设计(CAD););?计算机辅助软件工程(计算机辅助软件工程(CASE););?多媒体系统;多媒体系统;?地理信息系统(地理信息系统(GIS););?交互的和动态的交互的和动态的Web站点。站点。5.1 引言1) 处理二进制大对象,文字、图象、 声音、 视频等多媒体

2、数据。处理二进制大对象,文字、图象、 声音、 视频等多媒体数据。 2) 数据模拟: 实体的任意组合、任意联系, 例 聚合、继承。数据模拟: 实体的任意组合、任意联系, 例 聚合、继承。 3) 行为模拟: 对不同数据的多种操作。行为模拟: 对不同数据的多种操作。2. 新的应用需求:新的应用需求:5.1 引言3.关系数据库的弱点?有限的数据类型有限的数据类型?缺少全系统唯一、不依赖于属性的缺少全系统唯一、不依赖于属性的OID (Object ID)?不支持用户自定义或系统可扩展的运算不支持用户自定义或系统可扩展的运算?不能清晰表示和有效处理复杂对象及联系不能清晰表示和有效处理复杂对象及联系?阻抗失

3、配阻抗失配5.1 引言4. 面向对象技术面向对象技术1)对象由属性和)对象由属性和操作操作两部分构成。 一个对象包含若干属性,用以描述对象 的状态、组成、特性。 一个对象包含若干操作,用以描述对象 的行为方式。两部分构成。 一个对象包含若干属性,用以描述对象 的状态、组成、特性。 一个对象包含若干操作,用以描述对象 的行为方式。5.1 引言2)操作(消息)操作(消息/方法)的接口与实现 。接口说明方法)的接口与实现 。接口说明-给出操作的名称、参数表、 操作结果、对象类型等。 实现部分给出操作的名称、参数表、 操作结果、对象类型等。 实现部分-为实现该 操作的一段程序 代码。附加优点:有利于提

4、高数据独立性,有利于数据 完整、安全保护。为实现该 操作的一段程序 代码。附加优点:有利于提高数据独立性,有利于数据 完整、安全保护。5.1 引言3)类与实例具有相同属性和方法的一类对象抽象 (概化)为)类与实例具有相同属性和方法的一类对象抽象 (概化)为类类,其中的每一对象称为该类 的一个,其中的每一对象称为该类 的一个实例实例。5.1 引言4) 继承与类结构) 继承与类结构一个类中所有对象的集合的子集可以定义成一 个新的类,它成为原类的子类,原来的类称为 子类的一个类中所有对象的集合的子集可以定义成一 个新的类,它成为原类的子类,原来的类称为 子类的超类超类。子类的每个成员子类的每个成员继

5、承继承超类的所有属性和方法。 子类和父类(直接超类)用线连接,构成一 个超类的所有属性和方法。 子类和父类(直接超类)用线连接,构成一 个类层次结构类层次结构。子类还可以定义自己特有的属性和方法,也可 以重新定义所继承的超类原有的属性 和方法。子类还可以定义自己特有的属性和方法,也可 以重新定义所继承的超类原有的属性 和方法。5.1 引言5. OODBS研究的问题研究的问题?数据模型数据模型?数据的存储结构数据的存储结构?对每个类只存储对象方法对每个类只存储对象方法1次次?对每个对象实例只存储对象数据对每个对象实例只存储对象数据1次次?数据语言数据语言?事务管理等事务管理等5.1 引言1.2.

6、3 数据模型数据模型数据模型是对客观事物及其联系的 数据描述,即实体模型的数据化。数据模型是对客观事物及其联系的 数据描述,即实体模型的数据化。1.基于记录的数据模型基于记录的数据模型 2.基于对象的数据模型基于对象的数据模型 3.物理数据模型物理数据模型review二、模式及其映射二、模式及其映射1. 模式模式 模式是数据库整体逻辑描述,包 括逻辑记录类型和记录之间的联系。数据结构模式是数据库整体逻辑描述,包 括逻辑记录类型和记录之间的联系。数据结构 允许的操作允许的操作 数据完整性 安全保密控制数据完整性 安全保密控制1.3 数据库的体系结构数据库的体系结构review每个对象在其生命周期

7、中,都有一个系统给 定的唯一不变的对象标识每个对象在其生命周期中,都有一个系统给 定的唯一不变的对象标识OID?只要只要OID相同,就是同一对象(无论对象的 属性、操作如何修改);只要相同,就是同一对象(无论对象的 属性、操作如何修改);只要OID不同,就 是不同对象(尽管其属性、操作都一样)不同,就 是不同对象(尽管其属性、操作都一样)?高效快速定位、用户不可修改、独立于内容高效快速定位、用户不可修改、独立于内容?系统产生系统产生OID的方法有两种: 逻辑的方法有两种: 逻辑OID 物理物理OID对象标识 (对象标识 (OID)6.OO技术与数据库技术结合的途径在面向对象的程序设计语言(例如

8、Smalltalk, C+,Java)环境中扩展传统的数据库的功能。 如GemStone。在面向对象的程序设计语言(例如Smalltalk, C+,Java)环境中扩展传统的数据库的功能。 如GemStone。为OO语言提供面向对象的支持数据库管理(持 久性、事务、并发、安全等)的类库。 如Ontos,Versant和ObjectStore。为OO语言提供面向对象的支持数据库管理(持 久性、事务、并发、安全等)的类库。 如Ontos,Versant和ObjectStore。在RDB上加面向对象的DDL、DML。 如Postgres、Oracle。在RDB上加面向对象的DDL、DML。 如Pos

9、tgres、Oracle。开发一个全新的面向对象数据库的数据模型/数 据语言。 如SIM(Semantic Information Manager)。开发一个全新的面向对象数据库的数据模型/数 据语言。 如SIM(Semantic Information Manager)。7. ODBMS 与传统DBMS的比较?要求面向对象程序设计要求面向对象程序设计?现有数据较少是面向对象形式现有数据较少是面向对象形式?较少查询和报表工具较少查询和报表工具?有限并发控制和事务管理能力有限并发控制和事务管理能力?性能未得到证实性能未得到证实?需要实质性的修改和学习需要实质性的修改和学习?集成程序设计语言集成程

10、序设计语言?自动存储方法自动存储方法?自定义类型自定义类型?处理复杂数据处理复杂数据?自动永久化对象标识自动永久化对象标识?单级存储器缺点优点单级存储器缺点优点8. OODB的标准化的标准化1) OODBTG最终报告(最终报告(ANSI, 1991.8) 提出了对象信息管理(OIM)标准的 建议。其中一个重要内容是) 提出了对象信息管理(OIM)标准的 建议。其中一个重要内容是“对象数据管 理参考模型对象数据管 理参考模型”(ODM),它描述了对象模 型、数据库管理的特征以及对象数据管理 应具备的系统特征。ODM参考模型制定了 OODBMS的基本功能规范。(ODM),它描述了对象模 型、数据库

11、管理的特征以及对象数据管理 应具备的系统特征。ODM参考模型制定了 OODBMS的基本功能规范。5.1 引言2) ODMG-93对象管理集团(对象管理集团(OMG)所属对象数据库管理组)所属对象数据库管理组 1993.9 提出提出ODMG1.0 ,其规定,其规定OODBMS应包 括:应包 括:对象模型对象模型OM。对象定义语言对象定义语言ODL,用以定义对象模型及其接口。用以定义对象模型及其接口。对象操作语言对象操作语言OML,支持对对象的说明性访问。支持对对象的说明性访问。与程序设计语言(与程序设计语言(C+、Smalltalk)联编。)联编。ODMG2.0(1997),),ODMG3.0(

12、1999)5.1 引言3) SQL3 (ANSI, ISO, 1999)将对象的概念、思想、技术引入将对象的概念、思想、技术引入 RDBMS。提出替换。提出替换SQL92的的SQL3,它支 持抽象数据类型、子类、超类、数据类型生 成器、类型模板。标准,它支 持抽象数据类型、子类、超类、数据类型生 成器、类型模板。标准SQL3得到大型关系 数据库厂商,如得到大型关系 数据库厂商,如IBM、Oracle、Sybase、 SQL server的支持。的支持。5.1 引言5.2 OODB ?Names:Set;?Lock_type :enum(read,write,upgrade);?Try_lock

13、(in Lock_type mode);?Same_as(in Object anObject);?Copy( );?Delete( ) /*创建对象的操作不在此定义*/ODMG预定义类型及其层次关系Object Atomic_Object Structured-Object Collection Structure Literal Atomic_Literal Structured-Literal Immutable-Collection Immutable-Structure5.2 OODB attribute string S_no; attribute enum Gender(M,F)

14、 Sex; relationship COURSE Study inverse COURSE : elective; void register(in short secno) ;OO模型学生学生研究生研究生专科生专科生本科生本科生硕士生硕士生博士生博士生5.2 OODB ODMG预定义类型及其层次关系Object Atomic_Object Structured-Object Collection Structure Literal Atomic_Literal Structured-Literal Immutable-Collection Immutable-Structure5.2 OO

15、DB 集类型 数组类型和表类型集类型 数组类型和表类型?对象视图对象视图对象永久化的任务?保存对象实例数据值保存对象实例数据值?转变内存对象指针成为永久、唯一转变内存对象指针成为永久、唯一ID?保存对象类方法保存对象类方法三种对象永久化方案?利用传统的文件系统利用传统的文件系统?一个存放所有对象数据的文件(相关对象链 起来)一个存放所有对象数据的文件(相关对象链 起来)?一个存放所有对象的方法的文件一个存放所有对象的方法的文件?利用关系利用关系DBMS?一类对象一个关系一类对象一个关系?外加一个关系存放所有方法外加一个关系存放所有方法?OODBMS?转变内存地址成为永久转变内存地址成为永久ID

16、并且反过来并且反过来?定义文件数据结构定义文件数据结构?编写使对象永久化代码编写使对象永久化代码?调用对象永久化代码调用对象永久化代码?打包对象到文件结构或反过来打包对象到文件结构或反过来?根据请求找到对象根据请求找到对象?管理文件存储空间管理文件存储空间?其它文件管理任务其它文件管理任务传统文件处理?转变内存地址成为永久转变内存地址成为永久ID并且反过来并且反过来?定义关系数据结构定义关系数据结构?编写编写SQL语句语句?把把SQL语句嵌入程序语句嵌入程序RDBMS调用调用ODBMS Save方法方法OODBMS开发工作对象永久化方案开发工作对象永久化方案类层次结构例子学生学生研究生研究生专科生专科生本科生本科生硕士生硕士生博士生博士生5.2 OODB & ODMG-93课程课程 0.*0.*学习StudentS_noPKNameSexStudyCoursec_noPKTitleTeacherelectiveStudent:OID1S_no

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号