数据库系统原理与应用教程(第三版) 教学课件 ppt 作者 978-7-302-17185-0 ch04

上传人:E**** 文档编号:89409515 上传时间:2019-05-24 格式:PPT 页数:35 大小:227.50KB
返回 下载 相关 举报
数据库系统原理与应用教程(第三版) 教学课件 ppt 作者  978-7-302-17185-0 ch04_第1页
第1页 / 共35页
数据库系统原理与应用教程(第三版) 教学课件 ppt 作者  978-7-302-17185-0 ch04_第2页
第2页 / 共35页
数据库系统原理与应用教程(第三版) 教学课件 ppt 作者  978-7-302-17185-0 ch04_第3页
第3页 / 共35页
数据库系统原理与应用教程(第三版) 教学课件 ppt 作者  978-7-302-17185-0 ch04_第4页
第4页 / 共35页
数据库系统原理与应用教程(第三版) 教学课件 ppt 作者  978-7-302-17185-0 ch04_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据库系统原理与应用教程(第三版) 教学课件 ppt 作者 978-7-302-17185-0 ch04》由会员分享,可在线阅读,更多相关《数据库系统原理与应用教程(第三版) 教学课件 ppt 作者 978-7-302-17185-0 ch04(35页珍藏版)》请在金锄头文库上搜索。

1、第1页,第4章 数据库建模ODL方法,本章概述 本章的学习目标 主要内容,第2页,本章概述,随着计算机硬件、软件和网络技术的发展,人们对数据管理的理解更加深入。简单的二维表数据模型已经无法表达诸如多媒体数据、超文本数据、多维数据、CAD(computer aided design,计算机辅助设计)数据和地理数据等大量数据的存储和关联。 面向对象数据库的本质就是把客观世界的对象依然看成是一个完整的对象,建立描述该对象的数据和对象之间关联的面向对象模型。这种面向对象技术克服了关系模型中由于把客观对象肢解成一个个实体而造成的实体之间关系复杂、某些对象无法表示等困难。 对象定义语言(object de

2、finition language,ODL)是一种基于面向对象技术建立数据库模型的方法。 本章全面介绍ODL方法的基本概念和特点。,第3页,本章的学习目标,了解面向对象的基本概念; 掌握ODL方法的基本结构; 掌握如何使用ODL方法描述客观对象的基本原理; 掌握如何使用ODL方法描述子类对象; 掌握如何使用ODL方法描述对象的约束; 掌握使用ODL方法建立数据库模型的步骤。,第4页,主要内容,4.1 概述 4.2 ODL的基本结构 4.3 子类和约束 4.4 本章小结,第5页,4.1 概述,面向对象模型(object-oriented model,OOM)是面向对象概念在数据库中的应用。面向对

3、象概念是从程序设计中产生的,后来引入到了数据库设计中。前面学习的ER图和IDEF1x图都是基于关系模型的方法。虽然使用这些方法可以方便地描述客观对象的数据和关系,但是这种描述方式存在一些缺点: 基于关系模型的图形和方法只具有简单的数据类型,无法描述客观对象复杂的特性。 为了避免数据冗余,在ER图或IDEF1x图中,需要把一个完整的对象分散到若干个实体中去描述。如果需要得到某个对象的完整信息,则需要在多个实体中查找。 有些具有复杂关系的对象,无法转变成二维表格关系,因此不能使用ER图或IDEF1x方法表现出来。,第6页,面向对象基本概念,对象 状态、行为和消息 类 封装性 继承性 对象标识 类型

4、系统,第7页,主要内容,4.1 概述 4.2 ODL的基本结构 4.3 子类和约束 4.4 本章小结,第8页,4.2 ODL的基本结构,下面从ODL的基本概念入手,详细研究ODL的基本组成元素,包括接口、属性、联系、方法以及涉及到的数据类型,达到理解ODL的基本结构的目的。,第9页,ODL概念,ODL是对象数据库管理协会(Object Database Management Group,ODMG)在从事对面向对象程序设计语言C+和Smalltalk的持久化扩展进行标准化研究时的产物。 ODL是使用面向对象的概念说明数据库结构的标准语言,它是接口定义语言(interface definition

5、 language,IDL)的扩展,也是标准的公用对象请求代理程序架构(common object request broker architecture,CORBA)的一个组件。 ODL的主要作用是进行面向对象数据库的设计,进而将其直接转换成面向对象数据库管理系统(object oriented database management system,OODBMS)的说明。,第10页,使用ODL设计数据库模型的思路示意图,第11页,ODL接口说明,在ODL定义中,最简单的类的说明形式如图4-3所示。 在这种类的形式中,包括这些内容:关键字interface;接口名或类名;用花括号括起来的类的特

6、性表,特性表中可以包括属性、联系和方法。,第12页,ODL中的属性,在对象的特性中,最简单的特性是属性。属性通过把一个对象与某个简单的数据类型连接起来,描述该对象的某个方面。 例如对大学来说,对象university都会有一个字符串类型的属性name,其值是该大学的校名。对象university还会有一个属性address,这是一个若干个字符串组成的记录结构,代表城市、街道和门牌号。 下面通过一些示例讲述如何在ODL定义中表示类的属性。,第13页,ODL中Book类的说明,第14页,ODL中Press类的说明,第15页,ODL中的联系,属性只是表示了对象的一部分信息,对象中的某些信息无法使用属

7、性来表示,这些信息是对象与同类对象或不同类其他对象之间的关联信息。在ODL中,使用联系特性表示这些关联信息。 下面举例讲述如何在ODL中表示联系特性。,第16页,包含联系的Press类的ODL说明,第17页,反向联系的概念,在ODL方法中,可以通过把关键字inverse和另一个联系的名字放在每个联系的说明中来表示publications和publicated两个联系之间的关联机制。 如果另一个联系在其他某个类中,那么可以通过类名、双冒号和联系名来引用这个联系。,第18页,表明联系和反向联系的Book类,第19页,联系的多重性,联系具有反向性,即一个联系总是有一个与此对应的反向联系。另外,这种反

8、向联系也可以以多种形式表现出来。反向联系所具有的多种表现形式称为联系的多重性。 不论是把一个给定的对象和唯一的相关对象相关联,还是把一个对象和多个其他对象相关联,这些都是联系的一种表现形式。 在ODL定义中,可以通过在联系中使用或不使用聚集运算符(例如Set),定义联系形式。在反向联系中,有四种可能的联系形式如下所示: 一对多联系形式 多对一联系形式 一对一联系形式 多对多联系形式,第20页,ODL中的类及其联系,第21页,ODL中的类型,在ODL方法中,为数据库模型设计人员提供了一个类型系统,该类型系统与传统的编程语言例如C中的类型系统非常相似。类型系统是由单独定义的基本类型和利用基本类型与

9、某些递归规则构成的复杂类型组成的。在ODL语言中,基本类型包括原子类型和接口类型。 原子类型是一种不可再分割的基本类型,包括整数型、浮点数型、字符型、字符串型、布尔型和枚举型。原子类型对应的关键字如表4-1所示。 接口类型是由属性和该接口的联系所对应的各种分量组成,例如Book、Press和Author类。这是一种复杂的结构类型,但是由于它是由ODL规则定义的,所以可以把它看成是一种基本类型。,第22页,ODL中的方法署名的说明,在ODL定义中,允许使用除了属性和联系之外的第三种特性:方法。方法是与类相关的函数,它应用该类的对象并且可能有一个或多个其他参数。 在ODL定义中,可以说明与类相关的

10、方法的名字和这些方法的输入和输出类型。这些说明称为方法署名,类似于C+中的函数说明。函数说明与函数定义不同,函数定义给出了实现该函数的代码。方法的实际代码是使用宿主语言编写的,不是ODL的组成部分。因此,本节只是介绍方法署名,不涉及方法的代码。,第23页,在Book类中增加了方法署名,第24页,主要内容,4.1 概述 4.2 ODL的基本结构 4.3 子类和约束 4.4 本章小结,第25页,4.3 子类和约束,除了前面介绍的基本结构定义之外,ODL还包括子类定义和约束定义。 子类用来描述类内部的继承特性 约束用来描述一些特殊的附加信息 下面介绍ODL定义中的子类和约束。,第26页,ODL中的子

11、类,类中往往包含具有附加特性的对象,这些附加的特性并不和类的所有成员相关。这时,可以把这些具有附加特性的对象组织成子类。除了具有整体类的特点之外,每个子类有它自己的附加属性或联系。ODL使用了一种表示子类的简单方法。 在ODL定义中表示子类的形式是:如果A类是B类的子类,那么在A类说明中,类名A后面加上冒号和B类的名字来定义。这时, B类是A类的超类,或父类。这种表示形式如图4-17所示。,第27页,子类Literature的ODL定义,第28页,多重继承,第29页,多重继承中同名冲突解决方案示意图,第30页,ODL中的约束,在ODL定义中,经常需要描述的约束类型包括 键码 单值约束 参照完整

12、性约束 域约束 一般约束,第31页,键码,在ODL定义中,类的键码是一个或多个属性的集合K,其含义就是对于该类中给定的任意两个不同的ObjectA和ObjectB对象,都有与键码K对应的两组不同的属性值。 在如图4-26所示的包含了键码属性和非键码属性图形中,每一行表示类中的一个对象实例,可以看到所有这些对象实例的键码属性都是不相同的,第32页,单值约束,一般地,在数据库设计中要求最多有一个值扮演特定角色,这种约束称为单值约束。例如,假定一本图书对象有唯一的书号、书名、页数、价格和图书类型,并要求一本图书由一个出版社出版。 这些约束都是单值约束,在ODL中定义并不困难,因为这些特性(属性和联系

13、)都只有一个类型。,第33页,参照完整性约束,如果对于一个给定的角色正好有一个值存在,那么称这种要求为参照完整性约束。从概念上来讲,参照完整性约束可以用于类中的非空单值属性,但是实际上参照完整性主要是针对类之间的联系。,第34页,其他类型的约束,域约束是指把属性的值限制在一个有限的集合内。例如,在ODL定义中,需要为每个属性指定一个类型,而这种类型实际上就是域约束的最简单的形式。例如,如果图书的页数使用了整数类型,那么就不能为页数提供非整数值如16.8或字符值如ABC。 一般约束实际上是用户对客观对象的一种除了前面提到的特性和约束类型之外的约束要求,它可以保证复杂的信息要求。,第35页,主要内容,4.1 概述 4.2 ODL的基本结构 4.3 子类和约束 4.4 本章小结,

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

当前位置:首页 > 高等教育 > 大学课件

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