第11章面向对象数据库 ■新的数据库应用和新的数据类型 ■面向对象的数据模型 ■对象关系数据库与对象数据库 ■面向对象数据库研究中的几个特点 ■ RDBMS、 ORDBMS和 OODBMS的比较
第11章 面向对象数据库 ◼ 新的数据库应用和新的数据类型 ◼ 面向对象的数据模型 ◼ 对象关系数据库与对象数据库 ◼ 面向对象数据库研究中的几个特点 ◼ RDBMS、ORDBMS和OODBMS的比较
新的数据库应用和新的数据类型 ■新的数据库应用 ■计算机辅助设计(CAD)、多媒体技术(音 频、视频文件的存储和处理)等 复杂的数据类型 ■用户定义的抽象数据类型 ■构造类型 ■继承
新的数据库应用和新的数据类型 ◼ 新的数据库应用 ◼ 计算机辅助设计(CAD)、多媒体技术(音 频、视频文件的存储和处理)等 ◼ 复杂的数据类型 ◼ 用户定义的抽象数据类型 ◼ 构造类型 ◼ 继承
面向对象的数据模型 对象与类 对象的属性、方法和状态 对象的交互与消息 类的确定与划分 封裝 继承性 多态性 对象标识符
面向对象的数据模型 ◼ 对象与类 ◼ 对象的属性、方法和状态 ◼ 对象的交互与消息 ◼ 类的确定与划分 ◼ 封装 ◼ 继承性 ◼ 多态性 ◼ 对象标识符
对象与类 ■对象 数据特征、状态特征和行为特征 对象应该具有如下特性 ■每一个对象必须能够通过某种方式(如名称) 区别于其它对象 ■用特征或属性来描述对象 有一组操作,每一个操作决定对象的一种行为
对象与类 ◼ 对象 ◼ 数据特征、状态特征和行为特征 ◼ 对象应该具有如下特性 ◼ 每一个对象必须能够通过某种方式(如名称) 区别于其它对象 ◼ 用特征或属性来描述对象 ◼ 有一组操作,每一个操作决定对象的一种行为
具有相同数据特征和行为特征的所有对 象称为一个对象类,简称类 ■对象是类的一个实例,类是型的概念, 对象是值的概念
类 ◼ 具有相同数据特征和行为特征的所有对 象称为一个对象类,简称类。 ◼ 对象是类的一个实例,类是型的概念, 对象是值的概念
类和数据类型的区别 ■类型只表示数据结构的描述,而类将数据结构 和操作作为一个整体描述; ■类型通常是静态的概念,而类却可以用方法表 现出其动态性; 类型在常规程序设计语言中的作用主要体现在 保证程序的正确性,而类的作用则在于作为 种重要的模拟手段,以统一方式构造现实世界 模型; 类型与程序代码和代码共享无关,而类却提供 了软件重用和代码共享的机制
类和数据类型的区别 ◼ 类型只表示数据结构的描述,而类将数据结构 和操作作为一个整体描述; ◼ 类型通常是静态的概念,而类却可以用方法表 现出其动态性; ◼ 类型在常规程序设计语言中的作用主要体现在 保证程序的正确性,而类的作用则在于作为一 种重要的模拟手段,以统一方式构造现实世界 模型; ◼ 类型与程序代码和代码共享无关,而类却提供 了软件重用和代码共享的机制
对象的属性、方法和状态 属性 ■描述对象的数据特征 方法 完成具体操作的行为特征 状态 具体的操作通过改变属性的值体现了对象的状态
对象的属性、方法和状态 ◼ 属性 ◼ 描述对象的数据特征 ◼ 方法 ◼ 完成具体操作的行为特征 ◼ 状态 ◼ 具体的操作通过改变属性的值体现了对象的状态
对象的交互与消息 对象之间的通讯是通过消息传递实现的 个对象可以通过接收来自其他对象的消息而执行某些操 作(方法) ■面向对象中的消息具有如下性质: 个对象可以接收来自不同对象的相同形式的消息,可 以做出相同的响应; 个对象可以接收来自其它对象不同形式的多个消息, 做出不同的响应; 相同形式的消息可以传递给不同的对象,从而得到不同 的响应; 如果消息的发送不考虑具体的对象,则对象可以响应消 也可以不响应消息
对象的交互与消息 ◼ 对象之间的通讯是通过消息传递实现的 ◼ 一个对象可以通过接收来自其他对象的消息而执行某些操 作(方法) ◼ 面向对象中的消息具有如下性质: ◼ 一个对象可以接收来自不同对象的相同形式的消息,可 以做出相同的响应; ◼ 一个对象可以接收来自其它对象不同形式的多个消息, 做出不同的响应; ◼ 相同形式的消息可以传递给不同的对象,从而得到不同 的响应; ◼ 如果消息的发送不考虑具体的对象,则对象可以响应消 息,也可以不响应消息
类的确定与划分 ■如何确定和划分类是面向对象方法中的关键 ■需要做细致的需求分析 没有统一的方法和固定的标准 ■依赖于设计人员的知识、经验、技巧和对实际问 题的把握程度 ■基本原则就是把握事物的共性,将有相同的属性、 相同的操作的对象确定为一个类 ■不能把面向过程程序设计中的函数和过程简单地 组合成类,类不是函数的集合
类的确定与划分 ◼ 如何确定和划分类是面向对象方法中的关键 ◼ 需要做细致的需求分析 ◼ 没有统一的方法和固定的标准 ◼ 依赖于设计人员的知识、经验、技巧和对实际问 题的把握程度 ◼ 基本原则就是把握事物的共性,将有相同的属性、 相同的操作的对象确定为一个类 ◼ 不能把面向过程程序设计中的函数和过程简单地 组合成类,类不是函数的集合
封装 ■类包括了数据和操作,它们是被“封装”在类 定义中的。 用户通过类的接口(即可以在该对象类上执 的操作的说明)进行操作, ■对用户来讲“功能”是可见的,而实现部分是 封装在类定义中的,用户是看不见的。 ■消息传递是对象之间联系的唯一方式,这保证 了对象之间的高度独立性,这种特性有利于保 证软件的质量
封装 ◼ 类包括了数据和操作,它们是被“封装”在类 定义中的。 ◼ 用户通过类的接口(即可以在该对象类上执行 的操作的说明)进行操作。 ◼ 对用户来讲“功能”是可见的,而实现部分是 封装在类定义中的,用户是看不见的。 ◼ 消息传递是对象之间联系的唯一方式,这保证 了对象之间的高度独立性,这种特性有利于保 证软件的质量