第10章对象关系数据库 在传统的关系型数据库系统的基础上引入了面 向对象的这类系统称为对象关系数据库系统 (ORDB)。 本章主要内容包括:对象关系数据模型 ORDBS数据库设计方法一对象联系法、SQL3 对 ORDBS的支持、 OODBS和 ORDBS的比较
第10章对象关系数据库 ◼ 在传统的关系型数据库系统的基础上引入了面 向对象的这类系统称为对象关系数据库系统 (ORDB)。 ◼ 本章主要内容包括:对象关系数据模型、 ORDBS数据库设计方法—对象联系法、SQL3 对ORDBS的支持、OODBS和ORDBS的比较
第10章对象关系数据库 10.1对象关系数据模型 0.2对象联系图 103ORDB的定义语言 104ORDB的查询语言 10.50ODB与ORDB的比较 10.6小结 07习题
第10章对象关系数据库 ◼ 10.1 对象关系数据模型 ◼ 10.2 对象联系图 ◼ 10.3 ORDB的定义语言 ◼ 10.4 ORDB的查询语言 ◼ 10.5 OODB与ORDB的比较 ◼ 10.6 小结 ◼ 10.7 习题
10.1对象关系数据模型 传统关系模型称为“平面关系模型”,不允许表中有表 在传统关系数据模型基础上,增加了元组、数组、集合 等数据类型,以及提供了处理新数据类型操作的能力, 并具有继承性和对象标识等面向对象特点,这样的数据 模型,称为“对象关系数据模型”。基于对象关系数据 模型的DBS称为“对象关系数据库系统”( ORDBS)。 ■对象关系模型是对关系模型的发展,与传统的关系模型 兼容,因此许多概念,如实体标识、多值属性、泛化/细 化等,都可以直接引用,而无需经过变换转化。原来 SQL语言照样可用,只不过扩充了更强的功能 对象关系模型使用对象联系图来描述系统结构
10.1 对象关系数据模型 ◼ 传统关系模型称为“平面关系模型” ,不允许表中有表。 ◼ 在传统关系数据模型基础上,增加了元组、数组、集合 等数据类型,以及提供了处理新数据类型操作的能力, 并具有继承性和对象标识等面向对象特点,这样的数据 模型,称为“对象关系数据模型”。基于对象关系数据 模型的DBS称为“对象关系数据库系统”(ORDBS)。 ◼ 对象关系模型是对关系模型的发展,与传统的关系模型 兼容,因此许多概念,如实体标识、多值属性、泛化/细 化等,都可以直接引用,而无需经过变换转化。原来 SQL语言照样可用,只不过扩充了更强的功能。 ◼ 对象关系模型使用对象联系图来描述系统结构
10.2对象联系图 对象联系图是实体联系图的一种扩充形式,用 于表达系统中各对象之间的相互关系,不仅能 描述关系中基本的数据结构,还可以用来表达 面向对象技术中嵌套、递归的数据结构。 ■10.2.1对象联系图的成分 ■10.2.2学校、教师和教材对象联系图 1022数据的泛化/细化的描述
10.2 对象联系图 ◼ 对象联系图是实体联系图的一种扩充形式,用 于表达系统中各对象之间的相互关系,不仅能 描述关系中基本的数据结构,还可以用来表达 面向对象技术中嵌套、递归的数据结构。 ◼ 10.2.1 对象联系图的成分 ◼ 10.2.2 学校、教师和教材对象联系图 ◼ 10.2.2 数据的泛化/细化的描述
10.2.1对象联系图的成分 用实线表示对象之间的联系。 ■椭圆代表对象类型(相当于实体类型)。 小圆圈表示属性是基本数据类型(整型、实型、字符串) 椭圆之间的边表示对象之间的“引用” 单箭头(→)表示属性值是单值(属性可以是基本数据类型, 也可以是另一个对象类型)。 双箭头(→→)表示属性值是多值(属性可以是基本数据类 型,也可以是另一个对象类型)。 双线箭头()表示超类与子类间的联系(从子类指向超类) 双向箭头(→)表示两个属性之间值的联系为逆联系
10.2.1 对象联系图的成分 ◼ 用实线表示对象之间的联系。 ◼ 椭圆代表对象类型(相当于实体类型)。 ◼ 小圆圈表示属性是基本数据类型(整型、实型、字符串)。 ◼ 椭圆之间的边表示对象之间的“引用” 。 ◼ 单箭头(→)表示属性值是单值(属性可以是基本数据类型, 也可以是另一个对象类 型)。 ◼ 双箭头(→→)表示属性值是多值(属性可以是基本数据类 型,也可以是另一个对象类型)。 ◼ 双线箭头( )表示超类与子类间的联系(从子类指向超类)。 ◼ 双向箭头(→)表示两个属性之间值的联系为逆联系
0.2.2学校教师和教材对象联系图 fr president Faculty! H)fname orks for age salary sname O)staff Schoole a teach edito cname Coursetext edit textname
10.2.2 学校教师和教材对象联系图
10.2.3数据的泛化/细化的描述 当在较低层上抽象表达了与之联系的较高层上 抽象的特殊情况时,就称较髙层上抽象是较低 层上抽象的“泛化”,而较低层上抽象是较高 层上抽象的“细化”。 ■其中,较高层的对象类型称为“超类 型”( Supertype),较低层的对象类型称为“子 类型”( SubType)。 子类型具有继承性,能继承超类型的特征,而 子类型本身又有其他的特征
10.2.3 数据的泛化/细化的描述 ◼ 当在较低层上抽象表达了与之联系的较高层上 抽象的特殊情况时,就称较高层上抽象是较低 层上抽象的“泛化”,而较低层上抽象是较高 层上抽象的“细化” 。 ◼ 其中,较高层的对象类型称为“超类 型”(Supertype),较低层的对象类型称为“子 类型”(SubType)。 ◼ 子类型具有继承性,能继承超类型的特征,而 子类型本身又有其他的特征
10.2.3带泛化边的对象联系图 name Person age acu Student slay○ sno
10.2.3带泛化边的对象联系图
10.30RDB的定义语言 对象关系数据库系统支持更复杂的数据类型, 如结构类型、元组、数组、集合数据类型,支 持继承和引用,与关系模型兼容,因此原来支 持关系模型的SQL语言也照样可用 ■在sQL99标准中提供了对对象关系模型数据库 的支持。 ■本小节介绍ORDB的定义语言,主要包括ORDB 的数据类型的定义、继承性和引用类型的定义 等内容
10.3 ORDB的定义语言 ◼ 对象关系数据库系统支持更复杂的数据类型, 如结构类型、元组、数组、集合数据类型,支 持继承和引用,与关系模型兼容,因此原来支 持关系模型的SQL语言也照样可用。 ◼ 在SQL99标准中提供了对对象关系模型数据库 的支持。 ◼ 本小节介绍ORDB的定义语言,主要包括ORDB 的数据类型的定义、继承性和引用类型的定义 等内容
10.30RDB的定义语言 103.1ORDB的数据类型 ■10.32结构类型 1033集合、数组和大对象 10.3.4继承性的定义 1035引用类型的定义 10.3.6方法、函数和过程 ■10.3.7SQ3过程语句
10.3 ORDB的定义语言 ◼ 10.3.1 ORDB的数据类型 ◼ 10.3.2 结构类型 ◼ 10.3.3 集合、数组和大对象 ◼ 10.3.4 继承性的定义 ◼ 10.3.5 引用类型的定义 ◼ 10.3.6 方法、函数和过程 ◼ 10.3.7 SQl3过程语句