数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 1页第 4章 数据库建模 —— ODL方法本章概述本章的学习目标主要内容数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 2页本章概述
在当前的数据库市场上,虽然传统的关系型数据库依然占主导地位,
但是其地位已经产生了动摇。随着计算机硬件、软件和网络技术的发展,人们对数据管理的理解越来越深入。简单的二维表数据模型已经无法表达诸如多媒体数据、超文本数据、多维数据、CAD(Computer Aided Design,计算机辅助设计 )数据、地理数据等海量数据的存储和关联。面向对象技术作为新技术,为数据库技术进一步的发展起到了推波助澜的作用。
面向对象数据库的本质就是把客观世界的对象依然看成是一个完整的对象,建立描述该对象的数据和对象之间关联的面向对象模型。
这种面向对象技术克服了关系模型中由于把客观对象肢解成一个个实体而造成的实体之间关系复杂、某些对象无法表示等困难。但是,面向对象数据库技术还不是一个成熟的技术,还处在不断的发展和完善之中。
对象定义语言 (Object Definition Language,ODL)是一种基于面向对象技术建立数据库模型的方法。
本章将要全面介绍 ODL方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 3页本章的学习目标
了解面向对象的基本概念
掌握 ODL方法的基本结构
掌握如何使用 ODL方法描述客观对象的基本原理
掌握如何使用 ODL方法描述子类对象
掌握如何使用 ODL方法描述对象的约束
掌握使用 ODL方法建立数据库模型的步骤数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 4页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 5页
4.1 面向对象的基本概念
面向对象模型 (object-oriented model)是面向对象概念在数据库中的应用。面向对象概念是从程序设计中产生的,
后来引入到了数据库设计中。前面学习的 ER图和 IDEF1x
图都是基于关系模型的方法。虽然使用这些方法可以方便地描述客观对象的数据和关系,但是这种描述方式存在着一些缺点,这些缺点包括:
基于关系模型的图形和方法只具有简单的数据类型,无法描述客观对象复杂的特性。
为了避免数据冗余,在 ER图或 IDEF1x图中,需要把一个完整的对象分散到若干个实体中去描述。如果需要得到某个对象的完整信息,则需要在多个实体中去查找。
有些具有复杂关系的对象,无法转变成二维表格关系,因此不能使用 ER图或 IDEF1x方法表现出来。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 6页面向对象基本概念
对象
状态、行为和消息
类
封装性
继承性
对象标识
类型系统数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 7页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 8页
4.2 ODL的基本结构
ODL概念
ODL接口说明
ODL中的属性
ODL中的联系
反向联系的概念
联系的多重性
ODL中的类型
ODL中的方法署名的说明数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 9页
ODL概念
ODL是对象数据库管理协会 (Object Database
Management Group,ODMG)在从事对面向对象程序设计语言 C++和 Smalltalk的持久化扩展进行标准化研究时的产物。
ODL是使用面向对象的概念说明数据库结构的标准语言,
它是接口定义语言 (Interface Definition Language,IDL)
的扩展,又是标准的公用对象请求代理程序架构
(Common Object Request Broker Architecture,
CORBA)的一个组件。
ODL的主要作用是进行面向对象数据库的设计,进而将其直接转换成面向对象数据库管理系统 (Object Oriented
DataBase Management System,OODBMS)的说明。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 10页
ODL接口说明
前面我们已经讨论了面向对象的基本概念,
知道类是具有相似特性的对象集合。
使用 ODL建立数据库模型的过程,就是描述类的过程,即描述对象的特性的过程。
在使用 ODL方法定义类时,需要描述的特性包括属性、联系和方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 11页
ODL中的属性数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 12页
ODL中的联系
属性只是表示了对象的一部分信息,对象中的有些信息无法使用属性来表示,这些信息是对象与同类对象或不同类其他对象之间的关联信息。在
ODL中,使用联系特性表示这些关联信息。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 13页反向联系的概念数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 14页联系的多重性
反向联系所具有的多种表现形式称为联系的多重性。
不论是把一个给定的对象和唯一的相关对象相关联,还是把一个对象和多个其他对象相关联,这些都是联系的一种表现形式。
在 ODL定义中,可以通过在联系中使用或不使用聚集运算符 (例如 Set),定义联系形式。
在反向联系中,有四种可能的联系形式如下所示:
一对多联系形式
多对一联系形式
一对一联系形式
多对多联系形式数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 15页
ODL中的类型
在 ODL方法中,为数据库模型设计人员提供了一个类型系统,该类型系统与传统的编程语言例如 C中的类型系统非常相似。类型系统是由单独定义的基本类型和利用基本类型与某些递归规则构成的复杂类型组成的。在 ODL语言中,
基本类型包括原子类型和接口类型。
原子类型是一种不可再分割的基本类型,包括整数型、浮点数型、字符型、字符串型、布尔型和枚举型。原子类型对应的关键字如表 4-1所示。
接口类型是由属性和该接口的联系所对应的各种分量组成,
例如类 Book,Press和 Author。这是一种复杂的结构类型,但是由于它是由 ODL规则定义的,所以我们可以把它看成是一种基本类型。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 16页
ODL中的方法署名的说明
在 ODL定义中,允许使用除了属性和联系之外的第三种特性,这种特性就是方法。方法是与类相关的函数,它应用该类的对象并且可能有一个或多个其他参数。
在 ODL定义中,我们可以说明与类相关的方法的名字和这些方法的输入和输出类型。这些说明称为方法署名,就像 C++中的函数说明一样。函数说明与函数定义是不一样的,函数定义给出了实现该函数的代码。方法的实际代码是使用宿主语言编写的,不是 ODL的组成部分。
本节只是介绍方法署名,不涉及方法的代码。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 17页数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 18页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 19页
4.3 子类和约束
除了前面介绍的基本结构定义之外,ODL
还包括子类定义和约束定义。
子类用来描述类内部的继承特性,约束用来描述一些特殊的附加信息。
下面介绍 ODL定义中的子类和约束。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 20页
ODL中的子类
类中往往包含具有附加特性的对象,这些附加的特性并不和类的所有成员相关。这时,可以把这些具有附加特性的对象组织成子类。除了具有整体类的特点之外,
每一个子类有它自己的附加属性或联系。
ODL使用了一种表示子类的简单方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 21页
ODL中的约束
我们知道,建立数据库模型的目的就是描述客观存在的对象和这些对象之间的关系等信息。
前面,我们已经研究了可以使用包含了对象特性例如属性、
联系、方法等的类来描述这些信息。但是,有些信息是无法使用这些定义中的特性来描述的,这些附加信息一般对数据有约束的性质,已经超出了由类、属性、联系、方法的定义范围,只能通过定义约束来描述这些附加的信息。
约束是一种保证数据库中数据一致性的逻辑方式。
下面将要研究一些主要的约束类型。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 22页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结
在当前的数据库市场上,虽然传统的关系型数据库依然占主导地位,
但是其地位已经产生了动摇。随着计算机硬件、软件和网络技术的发展,人们对数据管理的理解越来越深入。简单的二维表数据模型已经无法表达诸如多媒体数据、超文本数据、多维数据、CAD(Computer Aided Design,计算机辅助设计 )数据、地理数据等海量数据的存储和关联。面向对象技术作为新技术,为数据库技术进一步的发展起到了推波助澜的作用。
面向对象数据库的本质就是把客观世界的对象依然看成是一个完整的对象,建立描述该对象的数据和对象之间关联的面向对象模型。
这种面向对象技术克服了关系模型中由于把客观对象肢解成一个个实体而造成的实体之间关系复杂、某些对象无法表示等困难。但是,面向对象数据库技术还不是一个成熟的技术,还处在不断的发展和完善之中。
对象定义语言 (Object Definition Language,ODL)是一种基于面向对象技术建立数据库模型的方法。
本章将要全面介绍 ODL方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 3页本章的学习目标
了解面向对象的基本概念
掌握 ODL方法的基本结构
掌握如何使用 ODL方法描述客观对象的基本原理
掌握如何使用 ODL方法描述子类对象
掌握如何使用 ODL方法描述对象的约束
掌握使用 ODL方法建立数据库模型的步骤数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 4页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 5页
4.1 面向对象的基本概念
面向对象模型 (object-oriented model)是面向对象概念在数据库中的应用。面向对象概念是从程序设计中产生的,
后来引入到了数据库设计中。前面学习的 ER图和 IDEF1x
图都是基于关系模型的方法。虽然使用这些方法可以方便地描述客观对象的数据和关系,但是这种描述方式存在着一些缺点,这些缺点包括:
基于关系模型的图形和方法只具有简单的数据类型,无法描述客观对象复杂的特性。
为了避免数据冗余,在 ER图或 IDEF1x图中,需要把一个完整的对象分散到若干个实体中去描述。如果需要得到某个对象的完整信息,则需要在多个实体中去查找。
有些具有复杂关系的对象,无法转变成二维表格关系,因此不能使用 ER图或 IDEF1x方法表现出来。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 6页面向对象基本概念
对象
状态、行为和消息
类
封装性
继承性
对象标识
类型系统数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 7页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 8页
4.2 ODL的基本结构
ODL概念
ODL接口说明
ODL中的属性
ODL中的联系
反向联系的概念
联系的多重性
ODL中的类型
ODL中的方法署名的说明数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 9页
ODL概念
ODL是对象数据库管理协会 (Object Database
Management Group,ODMG)在从事对面向对象程序设计语言 C++和 Smalltalk的持久化扩展进行标准化研究时的产物。
ODL是使用面向对象的概念说明数据库结构的标准语言,
它是接口定义语言 (Interface Definition Language,IDL)
的扩展,又是标准的公用对象请求代理程序架构
(Common Object Request Broker Architecture,
CORBA)的一个组件。
ODL的主要作用是进行面向对象数据库的设计,进而将其直接转换成面向对象数据库管理系统 (Object Oriented
DataBase Management System,OODBMS)的说明。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 10页
ODL接口说明
前面我们已经讨论了面向对象的基本概念,
知道类是具有相似特性的对象集合。
使用 ODL建立数据库模型的过程,就是描述类的过程,即描述对象的特性的过程。
在使用 ODL方法定义类时,需要描述的特性包括属性、联系和方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 11页
ODL中的属性数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 12页
ODL中的联系
属性只是表示了对象的一部分信息,对象中的有些信息无法使用属性来表示,这些信息是对象与同类对象或不同类其他对象之间的关联信息。在
ODL中,使用联系特性表示这些关联信息。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 13页反向联系的概念数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 14页联系的多重性
反向联系所具有的多种表现形式称为联系的多重性。
不论是把一个给定的对象和唯一的相关对象相关联,还是把一个对象和多个其他对象相关联,这些都是联系的一种表现形式。
在 ODL定义中,可以通过在联系中使用或不使用聚集运算符 (例如 Set),定义联系形式。
在反向联系中,有四种可能的联系形式如下所示:
一对多联系形式
多对一联系形式
一对一联系形式
多对多联系形式数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 15页
ODL中的类型
在 ODL方法中,为数据库模型设计人员提供了一个类型系统,该类型系统与传统的编程语言例如 C中的类型系统非常相似。类型系统是由单独定义的基本类型和利用基本类型与某些递归规则构成的复杂类型组成的。在 ODL语言中,
基本类型包括原子类型和接口类型。
原子类型是一种不可再分割的基本类型,包括整数型、浮点数型、字符型、字符串型、布尔型和枚举型。原子类型对应的关键字如表 4-1所示。
接口类型是由属性和该接口的联系所对应的各种分量组成,
例如类 Book,Press和 Author。这是一种复杂的结构类型,但是由于它是由 ODL规则定义的,所以我们可以把它看成是一种基本类型。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 16页
ODL中的方法署名的说明
在 ODL定义中,允许使用除了属性和联系之外的第三种特性,这种特性就是方法。方法是与类相关的函数,它应用该类的对象并且可能有一个或多个其他参数。
在 ODL定义中,我们可以说明与类相关的方法的名字和这些方法的输入和输出类型。这些说明称为方法署名,就像 C++中的函数说明一样。函数说明与函数定义是不一样的,函数定义给出了实现该函数的代码。方法的实际代码是使用宿主语言编写的,不是 ODL的组成部分。
本节只是介绍方法署名,不涉及方法的代码。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 17页数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 18页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 19页
4.3 子类和约束
除了前面介绍的基本结构定义之外,ODL
还包括子类定义和约束定义。
子类用来描述类内部的继承特性,约束用来描述一些特殊的附加信息。
下面介绍 ODL定义中的子类和约束。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 20页
ODL中的子类
类中往往包含具有附加特性的对象,这些附加的特性并不和类的所有成员相关。这时,可以把这些具有附加特性的对象组织成子类。除了具有整体类的特点之外,
每一个子类有它自己的附加属性或联系。
ODL使用了一种表示子类的简单方法。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 21页
ODL中的约束
我们知道,建立数据库模型的目的就是描述客观存在的对象和这些对象之间的关系等信息。
前面,我们已经研究了可以使用包含了对象特性例如属性、
联系、方法等的类来描述这些信息。但是,有些信息是无法使用这些定义中的特性来描述的,这些附加信息一般对数据有约束的性质,已经超出了由类、属性、联系、方法的定义范围,只能通过定义约束来描述这些附加的信息。
约束是一种保证数据库中数据一致性的逻辑方式。
下面将要研究一些主要的约束类型。
数据库系统原理与应用教程 (第二版 ) 第 4章 数据库建模 —— ODL方法 第 22页主要内容
4.1 面向对象的基本概念
4.2 ODL的基本结构
4.3 子类和约束
4.4 本章小结