面向对象的数据模型和对象关系数据模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本讲(第5章)简要说明
授课目的与要求:
了解对象数据库管理系统的特点、优缺点以及与传统DBMS的区别;
了解对象关系数据库系统相对关系数据库的扩充。
5.1 引言
1. 高级的数据库应用
计算机辅助设计(CAD);
计算机辅助软件工程(CASE); 多媒体系统;
地理信息系统(GIS);
交互的和动态的Web站点。
2. 新的应用需求:
1) 处理二进制大对象,文字、图象、
声音、视频等多媒体数据。
2) 数据模拟:
实体的任意组合、任意联系,例
聚合、继承。
3) 行为模拟:
对不同数据的多种操作。
3.关系数据库的弱点
有限的数据类型
缺少全系统唯一、不依赖于属性的OID (Object ID)
不支持用户自定义或系统可扩展的运算 不能清晰表示和有效处理复杂对象及联系 阻抗失配
4. 面向对象技术
1)对象由属性和操作两部分构成。
一个对象包含若干属性,用以描述对象的状态、组成、特性。
一个对象包含若干操作,用以描述对象的行为方式。
2)操作(消息/方法)的接口与实现。
接口说明------给出操作的名称、参数表、
操作结果、对象类型等。
实现部分------为实现该操作的一段程序
代码。
附加优点:有利于提高数据独立性,有利于数据完整、安全保护。
3)类与实例
具有相同属性和方法的一类对象抽象(概化)为类,其中的每一对象称为该类的一个实例。
4)继承与类结构
①一个类中所有对象的集合的子集可以定义成一
个新的类,它成为原类的子类,原来的类称为子类的超类。
②子类的每个成员继承超类的所有属性和方法。
子类和父类(直接超类)用线连接,构成一
个类层次结构。
③子类还可以定义自己特有的属性和方法,也可
以重新定义所继承的超类原有的属性和方法。
5. OODBS
1.2.3
二、模式及其映射
1.
每个对象在其生命周期中,都有一个系统给定的唯一不变的对象标识OID
只要OID 相同,就是同一对象(无论对象的属性、操作如何修改);只要OID 不同,就是不同对象(尽管其属性、操作都一样) 高效快速定位、用户不可修改、独立于内容 系统产生OID 的方法有两种:
逻辑OID 物理OID
对象标识
(OID )
6.OO技术与数据库技术结合的途径
①在面向对象的程序设计语言(例如Smalltalk,
C++,Java)环境中扩展传统的数据库的功能。
如GemStone。
②为OO语言提供面向对象的支持数据库管理(持
久性、事务、并发、安全等)的类库。
如Ontos,Versant和ObjectStore。
③在RDB上加面向对象的DDL、DML。
如Postgres、Oracle。
④开发一个全新的面向对象数据库的数据模型/数
据语言。
如SIM(Semantic Information Manager)。
8. OODB的标准化
1) OODBTG最终报告(ANSI,1991.8)
提出了对象信息管理(OIM)标准的建议。其中一个重要内容是“对象数据管理参考模型”(ODM),它描述了对象模型、数据库管理的特征以及对象数据管理应具备的系统特征。ODM参考模型制定了OODBMS的基本功能规范。
2) ODMG-93
对象管理集团(OMG)所属对象数据库管理组1993.9 提出ODMG1.0 ,其规定OODBMS应包括:
①对象模型OM。
②对象定义语言ODL,用以定义对象模型及其接口。
③对象操作语言OML,支持对对象的说明性访问。
④与程序设计语言(C++、Smalltalk)联编。
ODMG2.0(1997),ODMG3.0(1999)
3) SQL3 (ANSI, ISO, 1999)
将对象的概念、思想、技术引入RDBMS。提出替换SQL92的SQL3,它支持抽象数据类型、子类、超类、数据类型生成器、类型模板。标准SQL3得到大型关系数据库厂商,如IBM、Oracle、Sybase、SQL server的支持。
5.2 OODB &ODMG-93
对象管理集团(OMG)所属对象数据库管理组1993.9 提出ODMG1.0 ,规定OODBMS应包括:
①对象模型OM。
②对象定义语言ODL,用以定义对象模型及其接
口。
③对象操作语言OML,支持对对象的说明性访问。
④与程序设计语言(C++、Smalltalk)联编。
ODMG2.0(1997),ODMG3.0(1999)
一、对象模型(OM)
基本思想:
对象是基本数据结构
每个对象有一个永久的标识符 可以为对象指定类型或子类型 对象的状态由数据值和联系定义 行为由对象操作定义
ODMG预定义类型及其层次关系
Object
Atomic_Object
Structured-Object
Collection
Structure
Literal
Atomic_Literal
Structured-Literal
Immutable-Collection
Immutable-Structure