《数据库技术与设计》课件第9章 数据库系统新进展_第1页
《数据库技术与设计》课件第9章 数据库系统新进展_第2页
《数据库技术与设计》课件第9章 数据库系统新进展_第3页
《数据库技术与设计》课件第9章 数据库系统新进展_第4页
《数据库技术与设计》课件第9章 数据库系统新进展_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章数据库系统新进展(自学)Chapter9NewDevelopmentofDatabaseSystem

本章重点本章主要介绍了面向对象数据库系统、分布式数据库系统、XML语言和数据挖掘等基本内容,要求学生了解面向对象数据库系统和分布式数据库系统,熟悉XML语言,了解数据挖掘的任务、流程和方法。

9.1面向对象数据库系统9.1.1面向对象数据模型的基本概念

一个00模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了00模型的基础。00模型的核心概念有如下一些。1.对象与对象标识

对象是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。对象之间的界面由一组消息定义。一个对象包括:属性集合、方法集合、消息集合。

面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识。

2.封装

每一个对象是其状态与行为的封装,其中状态是该对象一系列属性值的集合,而行为是在对象状态上操作的集合,操作也称为方法。3.类

共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的一个实例。例如,学生是一个类,李勇、刘晨、王敏、张立等都是学生类中的对象。

可以认为:类相当于关系模式,类的属性相当于关系模式中的属性,类中的一个对象相当于关系中的一个元组。4.类层次(结构)

一个面向对象数据库模式可能有多个类层次。在一个类层次中,一个类继承其所有超类的全部属性、方法和消息。

图9.1某学校数据库的类层次结构图其中:人:身份证号、姓名、年龄、性别、住址;

教职员工:工龄、工资、办公室、电话号码、

家庭成员数;教员:职称、职务、专长;行政人员:职务、职责、办公室地址;工人:工种、级别、所属部门;学生:入学年份、专业;本科生:已修学分、平均成绩;研究生:研究方向、导师。5.消息

由于对象是封装的,对象与外部的通信一般只能通过显式的消息传递。

6.继承

若一个子类只能继承一个超类的特性(包括属性、方法和消息),这种继承称为单继承;若一个子类能继承多个超类的特性,这种继承称为多重继承。继承性有如下两个优点:

1、它是建模的有力工具;

2、它提供了信息重用机制。

图9.2具有多继承的类层次结构图

7.对象的嵌套

若对象的属性也是对象,则对象之间就形成了一个嵌套层次结构。设Obj1和Obj2是两个对象。若Obj2是Obj1的某个属性的值,则称Obj2属于Obj1。我们称Obj1为复杂对象,Obj2是Obj1的子对象。

图9.3汽车的嵌套层次图9.1.2对象定义语言ODL概述

对象定义语言(简称ODL)是用面向对象的术语来说明数据库结构的一种推荐的标准语言,其主要用途是书写面向对象数据库的设计,进而将其直接转换成面向对象数据库管理系统(简称OODBMS)的说明。

OODBMS的基本语言一般是C++或者Smalltalk,所以必须把ODL转换成其中一种语言的说明。事实上,我们很快就会看到,ODL与C++是非常类似的,因此这种转换也相当方便。1.面向对象的设计

所谓对象,就是某种可观察、可研究的实体;不同的对象有可能具有很多相似的特性,可以把具有相似特性的对象归为一类。

在进行ODL类的设计时,有三种特性需要描述:

1.属性(attribute),它们的类型是由基本的数据类型构成的。

2.联系(relationship),它们的类型是对某类对象的引用或是这种引用的集合。

3.方法(method),是能用于该类对象的函数,在ODL中对方法的使用与C++中是类似的。2.类的声明

在ODL中,声明一个类的最简单形式包括:

1.关键字interface(接口)2.类的名字

3.用花括号括起来的类的特性表(特性包括属性、联系和方法)

所以,要声明一个类,最简单的形式是:

interface<名字>{<特性表>};

3.ODL中的属性

属性是最简单的一种特性,它用某个简单类型的值来描述对象的某个方面。下面是ODL对课程类的说明。interfaceCourse{attributeintegerCourseNo;

attributestringCourseName;

attributestringTeacher;

attributeStructDate{integerYear,integerMonth,integerDay}CourseDate};

interfaceStudent{attributeintegerStudentNo;

attributestringStudentName;

attributeintegerAge;

attributestringDept;

};interfaceMovie{attributestringTitle;

attributeintegerYear;

attributeintegerLength;

attributeenumFilm{color,blackwhite}Type;

};

interfaceActor{attributestringName;

attributeintegerYear;

};4.ODL中的联系和反向联系

在现实世界中,很多事物都不是孤立的,往往存在各种各样的联系。只用属性来描述一个对象显然是不够的,只有把一个对象与其他对象之间的联系描述出来,才能更完整、准确地反映客观世界。

比如,课程和学生之间存在着选课的联系。我们在Course类的说明中增加如下一行:

RelationshipSet<Student>students;

这一行说明Course类的每个对象中都有一个对Student对象的引用集合,这个引用集合称为students。关键字relationship(联系)说明students是对Student对象的引用,而在<Student>之前的关键字Set表明students引用Student对象的集合,而不是单一的对象。为什么不引用单个的Student对象,而引用一个集合呢?原因很显然,每门课都可能有多个学生选修。

现在得到一个完整的课程类和学生类定义:interfaceCourse{attributeintegerCourseNo;

attributestringCourseName;

attributestringTeacher;

relationshipSet<Student>studentsInverseStudent::courses;};interfaceStudent{attributeintegerStudentNo;

attributestringStudentName;

attributeintegerAge;

attributestringDept;

relationshipSet<Course>courses;InverseCourse::students;};

联系的三种类型

两个类之间的联系可分为三种不同的类型:多对多、多对一或一对多以及一对一。

一对反向的联系可以是多对多的,比如一门课有多个学生选,一个学生也可以选几门课;

一对反向的联系也可以是一对多的,比如一门课只能有一个学生课代表,但一个学生允许同时担任几门课的课代表。

一对反向的联系也可以是一对一的,比如一个班级只能有一个班长,而一个学生只能在一个班级担任班长。

请同学们自己进行练习。

5.子类

定义子类的一般方法:在类A声明的类名A之后加上冒号和另一个类B的名字,就可以定义类A是类B的子类。我们用以下的ODL来说明:

interfacePostgraduate:Student{attributestringTutor;

};interfaceCartoon:Movie{relationshipSet<Actor>voices;

};子类能自动继承其超类的所有特性。

6.继承

一个类可以有多个子类,而子类本身又可以具有子类,形成类的层次结构。另外,一个类还可能有多个超类。下面我们将看到这些复杂的情况。假设现在为Movie再定义一个子类——谋杀片子类Murder:

interfaceMurder:Movie{attributestringWeapon;

};这样,谋杀片除了继承电影所具有的四个属性和两个联系之外,还有一个属性——凶器。

现在,考虑像《谁陷害了兔子罗杰》这样的电影,它既是动画片,又是谋杀片。我们考虑定义另外一个子类Cartoon-Murder(动画-谋杀片),它是cartoon(动画片)和Murder(谋杀片)两者的子类,其ODL说明如下:

InterfaceCartoon-Murder:Cartoon,

Murder{};类Cartoon-Murder的对象从类cartoon中继承了联系voices(配音演员),又从类Murder中继承了属性Weapon(凶器)。9.1.3面向对象数据库系统的发展前景1.标准化和形式化是OODBS研究和发展的一个重要方向。2.改善和加强OODBS的性能。3.面向对象数据库应具有很强的建模能力,面向对象设计和编程则应提供可扩充性。4.加强面向对象数据库的应用开发工具的研制和推广。5.视图、演绎能力、语义建模和长事务也是未来OODBS应该具备的数据库特征。6.加强面向对象数据库技术与关系数据库技术相结合的研究。9.2分布式数据库系统9.2.1分布式数据库系统概述

1.分布式数据库系统定义

分布式数据库(distributeddatabase)是分布在计算机网络上的多个逻辑相关的数据集合。其中“分布在计算机网络上”和“逻辑相关”是分布式数据库的两个基本要点,它既指出分布式数据库是分布在计算机网络的不同结点上,又强调这些分布的数据集合在逻辑上是一个整体。

局部事务全局事务例8假设一个银行系统由三个分布在不同城市的支行系统组成。每个支行是这个系统中的一个结点,它存放其所在城市的所有账户的数据库,而各个支行之间通过网络连接可以互相进行通信,组成一个整体的银行系统。

图10.4局部事务和全局事务的处理

2.分布式数据库系统的特点

由于分布式数据库系统是在成熟的集中式数据库技术基础上发展起来的,它除了集中式数据库的一些特点(例如数据的逻辑独立性和物理独立性)以外,还有很多其他的性质和特点:(1)网络透明性(2)数据冗余和冗余透明性(3)数据片段透明性(4)局部自治性(4)数据库的安全性和一致性3.分布式数据库系统的优缺点

由于分布式数据库有以上的一些特点,所以它与传统的集中式数据库相比有如下几个优点和缺点:

1.优点(1)分布式控制(2)增强数据共享(3)系统可靠性(4)提高系统性能(5)可扩充性好2.缺点(1)系统实现复杂(2)开销增大

9.2.2分布式数据库系统的查询处理和优化1.分布式数据库系统存在的问题

(1)不同场地的通信速度,与局部DBS的存储部件的存取速度相比,是非常慢的。

(2)通信系统有较高的存取延迟时间。集中式系统注意的是磁盘的存取时间,而分布式系统注意的是数据经过网络的传输时间。

(3)在CPU上处理通信的代价很高。

(4)不同通信系统有不同意义的字符,数据转换速度也不一样,可以相差1000倍,存取延迟时间可能相差达106倍。在集中式系统中,主要目标是减少对磁盘的访问次数。而在分布式系统中,压倒一切的性能目标则是使通过网络传送信息的次数和传送的数据量最小。例9下面给出一个例子来说明存取策略优化的重要性。(1)数据库,简化了的供应商和零件数据库:

S(Sno,City)104个元组,存放在场地A;

P(Pno,Color)105个元组,存放在场地B;

SP(Sno,Pno)106个元组,存放在场地A;设每个关系的元组均为100字节长。(2)查询:求供应红色零件的、北京的供应商号:

SELECTS.SnoFROMS,P,SPWHERES.City=’北京’ANDS.SNO=SP.SNOANDSP.Pno=P.PnoANDP.Color=’红色’(3)估算值(某些中间结果的元组数):红色零件数=10

北京供应商的装运单数=105(4)对通信系统的假定:

数据传输速度=104字节/秒传输延迟=1秒

考虑下面2种可能的查询存取策略,对其他各种策略i,根据下面的公式也可分别计算通信时间T[i]:

T[i]=总传输延迟+总数据量/数据传输速度策略l把关系P传送到场地A,在A地进行查询处理,其通信时间为:T[1]=1+105

100/104=1001秒策略2在B站的关系P中选出红色的元组(10个),把结果送到A站完成最终处理,其通信时间为:T[2]=1+(10

100)/104=1.1秒

上面的时间只是在查询处理中的通信时间。查询处理时间还应包括在某一场地上的处理时间(主要包括I/O时间和CPU时间)。在实际系统中,还应加上传送结果的开销。这个例子说明了:

(1)不同的存取策略通信时间相差很大,达多个数量级,因此必须进行优化。

(2)在有些策略中数据传输速度和传输延迟都要考虑;而在有些策略中主要考虑传输延迟,还有一些策略中数据传输量大,主要考虑传输时间。

2.查询处理和优化要解决的问题

在分布式数据库系统中有三类查询:局部查询、远程查询和全局查询。

局部查询和远程查询都只涉及单个结点上的数据(本地的或远程的),所以查询优化采用的技术就是集中式数据库的查询优化技术。

全局查询涉及多个结点的数据,因此查询处理和优化要复杂得多。为了执行全局查询和确定一个好的查询处理策略,要做许多判断、计算工作,但总体上可分为三类。

(1)查询分解

(2)选择操作执行的次序

(3)选择执行操作的方法3.查询优化的目标

无论是在集中式数据库中还是在分布式数据库中,一个查询处理策略的选择都是以执行查询的预期代价为依据的。不同的只是构成一个查询代价的主要因素在这两类系统中不完全一样。(1)在集中式数据库中,查询执行开销主要是:

I/O代价+CPU代价(2)在分布式数据库中,除上面两种开销外还有数据在网络上的传输代价:

I/O代价+CPU代价+通信代价

在查询优化过程中将通信代价作为一个首要问题进行研究,是基于以下两点的考虑:

(1)通信代价容易估计,它通常是数据传输量的一个函数,这个特点是I/O开销所不具备的。

(2)分布查询可分为两部分:存取策略的分布优化和局部优化,二者可以分别予以解决。局部优化可以采用集中式数据库中的技术,而分布优化是分布式系统要考虑的,它比局部优化更重要。

总之,在分布式数据库中查询优化的首要目标是:

使该查询执行时其通信代价最省。不同结点之间的连接操作和并操作是数据传输的主要原因,因此连接查询的优化在分布优化中是举足轻重的。

9.2.3分布式数据库系统的发展前景

分布式数据库兴起于20世纪70年代,繁荣于80年代,而在90年代分布式数据库更以其在分布性和开放性方面的优势重又获得了青睐。其应用领域已不再局限于在线事务处理(简称OLTP)应用,从分布式计算、Internet应用、数据仓库到高效的数据复制都可以看到分布式数据库系统的影子。以SYBASE公司的ReplicationServer为例,该产品是一种典型的分布式数据库系统,具有分布式体系结构、支持场地自治和全局应用、实现了分布透明性。

随着网络环境的日益普及,新的应用呈现出许多相似的特点,那就是开放性和分布性。以数据仓库为例,它建立在原有多个数据库系统的基

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论