Presentation is loading. Please wait.

Presentation is loading. Please wait.

数据库原理及应用 《数据库原理及应用》课程组 Jmun_jsjxy@163.com 2007.3 荆楚理工学院.

Similar presentations


Presentation on theme: "数据库原理及应用 《数据库原理及应用》课程组 Jmun_jsjxy@163.com 2007.3 荆楚理工学院."— Presentation transcript:

1 数据库原理及应用 《数据库原理及应用》课程组 2007.3 荆楚理工学院

2 第九章 网络环境的数据库体系结构 2007.3 荆楚理工学院

3 【本章要点】 本章主要介绍数据仓库、数据挖掘、面向对象的数据库系统、分布式数据库系统、实时数据库系统等新的数据处理方式层出不穷。掌握新的数据库技术与发展方向,对于我们在实际应用时会有很好的指导意义! 2007.3 荆楚理工学院

4 9.1 数据仓库 9.1数据仓库 传统的数据库应用软件多数是面向联机事物处理(OLTP)的,以单一的数据资源即数据库作为数据管理的手段。其数据缺乏组织性,大多数以原始数据的形式存储,数据的价值仅仅体现在完成一个事务,而数据的体系结构、数据的含义并没有引起人们的足够重视,难以转化为有用的信息,从而对分析处理的支持不能令人满意。在此基础上由数据库、模型库和知识库为核心的旧的决策支持系统也不能适应新的企业管理要求,大多数也只能停留在演示阶段,灵活性和可用性差,很不实用。 2007.3 荆楚理工学院

5 9.1 数据仓库 一、数据仓库(DM)的概念 数据仓库(DM)技术是指“面向主题的、集成的、稳定的和随时间变化的数据集合,主要用于决策制定”。数据仓库并不是一个新的平台(它仍然是建立在数据库管理系统基础上,例如SQL SERVER、SYBASE、ORACLE等都提供了数据仓库功能),其特点如下: 2007.3 荆楚理工学院

6 9.1 数据仓库 ● 面向主题 与传统的数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。主题是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用。 2007.3 荆楚理工学院

7 9.1 数据仓库 ● 集成的 指数据的集成。数据仓库中的数据是从原有的分散的 数据库数据中抽取出来的。数据集成要用一些设计方法来 建立数据仓库的数据库,并在命名协议、关键字、关系、 编码和翻译中的一致性问题特别注意。也就是说数据在进 入数据仓库之前,必须要经过统一和综合这个关键的步骤。 2007.3 荆楚理工学院

8 9.1 数据仓库 ● 稳定的 也就是指数据的不可更新。数据仓库中的数据主要是供决策支 持系统之用,所涉及的数据操作主要是数据查询,一般情况下并 不进行修改操作。数据仓库中的数据不进行实时更新,通常数据 是以天、周或月为周期进行更新,这一更新过程并不是简单的数 据拷贝,而是要经过复杂的提取、概括、聚集和过滤等操作过程, 而数据一旦进入数据仓库中就不再允许随便更新了。 2007.3 荆楚理工学院

9 9.1 数据仓库 ● 随时间变化 指数据仓库随时间不断增加新的内容或删除旧的内容或大量的综合数据随着时间而改变。数据仓库中的稳定是一种相对稳定,主要是针对应用来说的,数据仓库在用户进行分析处理的一个周期里不进行数据更新操作。但每一个应用处理完成后要将处理结果添加进数据仓库。要删去那些对决策已无意义的数据。 2007.3 荆楚理工学院

10 数据仓库的数据源可以包括数据库和非数据库数据源。数据源一般是异构的,通过网络相连。
9.1 数据仓库 二、数据仓库和数据集市 1.数据仓库对数据的处理过程 数据仓库的数据源可以包括数据库和非数据库数据源。数据源一般是异构的,通过网络相连。 为了把来自各个数据源的数据集成为数据仓库的数据,必须按照数据仓库的统一要求进行必要的变换(具体变换处理步骤和方式下一节介绍)。不但要集成数据,还要集成数据的数据,即元数据(META DATA)。 2007.3 荆楚理工学院

11 对于来自数据库的数据,可从数据字典中取得元数据,但要进行必要的变换。
9.1 数据仓库 对于来自数据库的数据,可从数据字典中取得元数据,但要进行必要的变换。 对于来自非数据库的数据,还要为之定义元数据。数据经必要的变换后,就可加载到数据仓库中。 加载过程实际上相当于数据的一次全扫描,可以利用这个过程对数据进行必要的处理例如完整性约束检查、排序、簇集、聚集函数计算、建立索引等。 2007.3 荆楚理工学院

12 9.1 数据仓库 2.数据仓库的基本数据模式 ●星型模式 ●雪花模式 ●星座模式 ●暴风雪模式 2007.3 荆楚理工学院

13 9.1 数据仓库 3.数据集市 数据集市可以被看作是一种面向部门的、小型的数据仓库。不同的数据集市可以按照业务的分类来组织。数据集市中包含的数据一般是某一特定业务领域的数据,不同的数据集市可以分布在不同的物理平台上,也可以逻辑地分布于同一平台上。 2007.3 荆楚理工学院

14 数据集市的组织方式是多种多样的,除了按业务来划分外,也可以按照数据仓库的主题或数据的地理分布来组织。
9.1 数据仓库 数据集市的组织方式是多种多样的,除了按业务来划分外,也可以按照数据仓库的主题或数据的地理分布来组织。 数据集市的提出为分布式数据仓库技术提供了有力的支持。如果按照数据的地理分布来建设数据集市,那么就形成了一个地理上分布的数据仓库。 2007.3 荆楚理工学院

15 数据仓库的处理主要涉及到数据准备和根据对数据的分析进行决策分析的过程。
9.1 数据仓库 三、 数据仓库的处理 数据仓库的处理主要涉及到数据准备和根据对数据的分析进行决策分析的过程。 1.数据准备 数据仓库的数据来自于不同的数据源(传统的关系数据库、外部文件、包括图像、文本、音频和视频等多种类型的非结构化数据等),要从不同的数据源中提取数据,进行清洗、转换和合并整理,再载入到决策支持数据库中,然后进行周期性的刷新。 2007.3 荆楚理工学院

16 数据分析是由系统提供的一整套数据分析工具完成的,包括数据查询工具、数据解释工具、多维分析工具和数据挖掘工具。
9.1 数据仓库 2. 数据分析 数据分析是由系统提供的一整套数据分析工具完成的,包括数据查询工具、数据解释工具、多维分析工具和数据挖掘工具。 ● 数据查询是指以某种检索条件为依据而提出的一般数据请求。 ● 数据解释则是对数据处理和可视化数据的展现(如统计分析等)。 2007.3 荆楚理工学院

17 9.1 数据仓库 ● 多维分析是指从业务角度对数据聚集的分析,也叫做联机分析处理(OLAP)。所谓OLAP是针对特定问题的联机数据访问和分析,通过对信息的很多中可能观察形式进行快速的、稳定的一致的和交互式的存取,允许决策人员对数据进行深入的观察。 2007.3 荆楚理工学院

18 9.1 数据仓库 ● 数据挖掘(DATA MINING)是一个决策支持过程,主要基于AI、统计学、机器学习等技术,高度自动化地分析企业原来的数据,做出归纳性的推理,从中挖掘出潜在的模式,预测客户的行为,帮助企业的决策者调整市场策略,减少风险,做出正确判断和决策。 2007.3 荆楚理工学院

19 9.1 数据仓库 四、联机分析(OLAP)技术概述 联机分析(ONLINE ANALYSIS PROCESS, OLAP)技术就是专门用来支持复杂的分析操作, 侧重对决策支持人员和高层管理人员的决策支持, 可以实现快速灵活地大量数据的复杂查询处理, 并且以直观的形式提供给用户。 2007.3 荆楚理工学院

20 9.1 数据仓库 1.OLTP和OLAP的关系 在OLTP中,数据分离出来以数据表的形式和应用捆 绑在一起。但是随着应用的不断发展,人们认识到操作 型数据和分析型应用必须分离。这就引起了数据库应用 从OLTP到OLAP技术的转变。 所谓OLAP是针对特定问题的联机数据访问和分析。 通过对信息的很多种可能观察形式进行快速的、稳定的、 一致的和交互式的存取,允许决策人员对数据进行深入 的观察。 2007.3 荆楚理工学院

21 9.1 数据仓库 OLAP是以数据库或者数据仓库为基础的,其最终数据来源与OLTP一样都是来自底层的数据库系统,但是由于两者的使用用户不同,其在数据的特点和处理方式上也表现出很大的不同,表10.1.1给出了OLTP和OLAP之间的差别。 2007.3 荆楚理工学院

22 2.多维数据库(MULTIDIMENSION DATABASE)
9.1 数据仓库 2.多维数据库(MULTIDIMENSION DATABASE) 传统的关系数据库一般采用二维表的形式来表示数据。 多维数据库扩展了关系数据库模型,它提出了一个可以包含超过两个维的数据结构,这种数据结构就是多维数据库,多维数据库又称为数据立方体(CUBE)。在维的交叉处,可能有不止一个数据元素,在多维数据库中把这种维的交叉处称为度量(MEASURE)。 2007.3 荆楚理工学院

23 根据OLAP实现时采用的存储模式的不同,现在主要存在以下三种OLAP结构:
9.1 数据仓库 3. OLAP的存储模式 根据OLAP实现时采用的存储模式的不同,现在主要存在以下三种OLAP结构: ● 基于多维数据库的OLAP----MOLAP MOLAP是以多维数据库为核心建设的基于多维数据库的OLAP。多维数据库有时不仅在于多维概念的表达清晰,更重要的是它有着高速的综合处理速度。 2007.3 荆楚理工学院

24 在ROLAP中,关系数据库将多维数据库中的多维结构划分为事实表和多维表来实现和多维数据库类似的功能。
9.1 数据仓库 ● 基于关系数据库的OLAP----ROLAP 在ROLAP中,关系数据库将多维数据库中的多维结构划分为事实表和多维表来实现和多维数据库类似的功能。 ● 混合OLAP----HOLAP HOLAP系统综合了基于多维数据库的OLAP系统和基于关系数据库的OLAP系统的优点。它把事实表保存在关系数据库中,充分利用了成熟的关系模型所带来的高性能、高可靠性的特点,同时又把聚集信息保存在多维数据库中,很好地满足了联机分析处理的需要。 2007.3 荆楚理工学院

25 五、SQL SERVER 2000中的数据仓库组件 ● 关系数据库
9.1 数据仓库 五、SQL SERVER 2000中的数据仓库组件 ● 关系数据库 SQL SERVER 2000使用关系数据库作为数据仓库的基础。SQL SERVER 2000数据仓库的核心实际上就是SQL SERVER 2000的关系数据库引擎。 2007.3 荆楚理工学院

26 9.1 数据仓库 ● 数据转移服务(DTS) 数据仓库需要从众多的数据源中获得数据,这些数据源可能是文本文件、电子邮件,也可能是其他数据库系统,因此整合不同的数据源到一个数据仓库中就显得必不可少了。 2007.3 荆楚理工学院

27 9.1 数据仓库 ● 联机分析处理(OLAP) 数据仓库的主要目的是对大量的数据进行分析并辅助决策支持,SQL SERVER 2000中的联机分析处理工具可以有效地组织数据仓库的大量数据并从中寻求有效的信息。 2007.3 荆楚理工学院

28 9.1 数据仓库 ● 英语查询 基于英语的查询可以有效地缩短用户和计算机之间 的技术鸿沟,SQL SERVER 2000的ENGLISH QUERY用 于开发基于英语的查询应用,通过它提供的语言分析引 擎,程序员可以开发出高性能的采用英语来查询数据库 的应用程序,从而提供给决策支持制定人员使用。 2007.3 荆楚理工学院

29 9.1 数据仓库 ● 元数据服务 数据仓库的基本数据就是元数据(META DATA)。 SQL SERVER 2000中的工具将大量的元数据存放在 MSDB系统数据库中。SQL SERVER 2000的元数据服务 提供了浏览这些元数据的有效支持,同时开发人员还 可以在应用程序中使用这些元数据。 2007.3 荆楚理工学院

30 9.1 数据仓库 ● 复制工具 SQL SERVER 2000的复制工具能够分发 数据并协调不同的数据库之间的更新操作, 尤其是复制工具能够有效地把中央数据仓库 中的数据分发到数据集市中。 2007.3 荆楚理工学院

31 9.2 数据挖掘 一、数据挖掘技术概述 数据挖掘是一门综合性的技术,涉及到很多学科---数据库、人工智能和数理统计等等。目前其主要研究内容包括基础理论、发现算法、数据仓库、可视化技术、定性定量互换模型、知识表示方法、发现知识的维护和再利用、半结构化和非结构化数据中的知识发现以及网上数据挖掘等。 2007.3 荆楚理工学院

32 数据挖掘与数据仓库技术有着密切的关系。见图10.2.1
9.2 数据挖掘 数据挖掘与数据仓库技术有着密切的关系。见图10.2.1 2007.3 荆楚理工学院

33 9.2 数据挖掘 数据挖掘库可能是你的数据仓库的一个逻 辑上的子集,而不一定非得是物理上单独的 数据库。但如果你的数据仓库的计算资源已 经很紧张,那你最好还是建立一个单独的数 据挖掘库。 2007.3 荆楚理工学院

34 9.2 数据挖掘 数据挖掘和OLAP的不同之处: ● OLAP是决策支持领域的一部分。OLAP分析过程在 本质上是一个演绎推理的过程。但是如果分析的变量达到几 十或上百个,那么再用OLAP手动分析验证这些假设将是一 件非常困难和痛苦的事情。 数据挖掘与OLAP不同的地方是, 数据挖掘不是用于验证某个假定的模式(模型)的正确性, 而是在数据库中自己寻找模型。他在本质上是一个归纳的过 程。 2007.3 荆楚理工学院

35 9.2 数据挖掘 ● 数据挖掘和OLAP具有一定的互补性。 在利用数据挖掘出来的结论采取行动之前, 你也许要验证一下如果采取这样的行动会 给公司带来什么样的影响,那么OLAP工具 能回答你的这些问题。 2007.3 荆楚理工学院

36 二、数据挖掘(DATA MINING)的定义
9.2 数据挖掘 二、数据挖掘(DATA MINING)的定义 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 2007.3 荆楚理工学院

37 ● 数据源必须是真实的、大量的、含噪声的; ● 发现的是用户感兴趣的知识; ● 发现的知识要可接受、可理解、可运用;
9.2 数据挖掘 以上定义包括好几层含义: ● 数据源必须是真实的、大量的、含噪声的; ● 发现的是用户感兴趣的知识; ● 发现的知识要可接受、可理解、可运用; ● 并不要求发现放之四海皆准的知识,仅支持特定的发现问题。 2007.3 荆楚理工学院

38 数据挖掘的目标是从数据中找到感兴趣的模式,用这些模式来决定商业策略或发现不正常的情况。数据挖掘工具在海量数据上应用了统计技术来查找这些模式。
9.2 数据挖掘 数据挖掘的目标是从数据中找到感兴趣的模式,用这些模式来决定商业策略或发现不正常的情况。数据挖掘工具在海量数据上应用了统计技术来查找这些模式。 2007.3 荆楚理工学院

39 以TWO CROWS公司的数据挖掘过程模型为例进行讨论。
9.2 数据挖掘 三、 数据挖掘的过程模型及常用技术 以TWO CROWS公司的数据挖掘过程模型为例进行讨论。 基本数据挖掘步骤包括:定义商业问题、 建立数据挖掘模型、分析数据、准备数据、建立模型、评价模型和 实施。 2007.3 荆楚理工学院

40 ①人工神经网络,即仿照生理神经网络结构的非线形预测模型,通过学习进行模式识别。
9.2 数据挖掘 数据挖掘常用技术包括: ①人工神经网络,即仿照生理神经网络结构的非线形预测模型,通过学习进行模式识别。 ②决策树,它代表着决策集的树形结构。 ③遗传算法,基于进化理论,并采用遗传结合、遗传变异、以及自然选择等设计方法的优化技术。 ④近邻算法,将数据集合中每一个记录进行分类的方法。 ⑤规则推导,从统计意义上对数据中的"如果-那么"规则进行寻找和推导。 2007.3 荆楚理工学院

41 四、目前数据挖掘的主要应用 ● 网站的数据挖掘 ● 生物信息或基因的数据挖掘 ● 文本的数据挖掘 9.2 数据挖掘 荆楚理工学院
● 网站的数据挖掘 ● 生物信息或基因的数据挖掘 ● 文本的数据挖掘 2007.3 荆楚理工学院

42 9.3 面向对象的数据库技术 面向对象的数据库技术可以直接处理一些复 杂的对象、描述这些对象的复杂特征,因此, 它可以满足当前一些新的数据库应用的需要。 这些新的应用中的数据大部分是不能利用关系 模型和实体-联系模型来充分加以描绘的。这些 应用包括: 2007.3 荆楚理工学院

43 CAD数据库存储了与一个工程设计相关的数据,包括所设 计物品的各个组件、这些组件之间的相互关系等。
9.3 面向对象的数据库技术 ● 计算机辅助设计(CAD) CAD数据库存储了与一个工程设计相关的数据,包括所设 计物品的各个组件、这些组件之间的相互关系等。 ● 计算机辅助软件工程(CASE) CASE数据库存储了用于辅助软件开发者的一些数据。这 些数据包括源代码、软件模块间的依赖关系、变量的定义和 使用,以及软件系统的开发历史等。 2007.3 荆楚理工学院

44 办公自动化包括基于工作台的文档的生成和检索工具、维护日程安排的工具等。办公自动化数据库必须允许对日程、文档和文档内容进行查询。
9.3 面向对象的数据库技术 ● 多媒体数据库 多媒体数据库包含图像数据、空间数据、音频数据、视频数据等等。这种类型的数据主要用于存储照片和地理数据,以及语音邮件系统、图形系统和视频点播系统等。 ● 办公自动化系统 办公自动化包括基于工作台的文档的生成和检索工具、维护日程安排的工具等。办公自动化数据库必须允许对日程、文档和文档内容进行查询。 2007.3 荆楚理工学院

45 9.3 面向对象的数据库技术 ● 超文本数据库 在互连网上存在大量的超文本。所谓超文本就是经过增强的文本,它带有指向其他文档的链接。WWW就是超文本(更准确的现在应该是超媒体)的一个实例。为了对它进行索引,超文本也可以是有结构的。超文本数据库必须支持基于链接的文档检索,以及根据文档结构对它进行查询的功能。 2007.3 荆楚理工学院

46 面向对象数据模型包括对象、类、继承、对象标识和对象包含这些方面的内容。
9.3 面向对象的数据库技术 一、面向对象数据模型 面向对象数据模型包括对象、类、继承、对象标识和对象包含这些方面的内容。 ● 对象 在面向对象数据模型中,一个对象可以看成是对应的E-R模型中的一个实体。在对象结构中封装了这个对象的相关数据和代码。它们是一个包含对象本身数据的变量集合即对象的属性、一个对象所响应的消息的集合和一个方法的集合。 2007.3 荆楚理工学院

47 一个类中的所有对象共享一个公共的定义,尽管它们对属性所赋予的值不同或方法的具体实现上有不同。
9.3 面向对象的数据库技术 ● 类 一个类中的所有对象共享一个公共的定义,尽管它们对属性所赋予的值不同或方法的具体实现上有不同。 ● 继承性 面向对象的数据模型中每个类可派生出它的子类,子类继承父类的属性和方法。父类中包含了共同的属性和方法,子类中只定义属于自己的属性和方法,称为类的继承性。子类可以继续派生自己的子类。而一个子类的父类也可以有几个,它可以从每一个父类那里继承公共的属性,即为多重继承。 2007.3 荆楚理工学院

48 ● 对象标识(Object IDentification, OID)
9.3 面向对象的数据库技术 ● 对象标识(Object IDentification, OID) 在面向对象数据库系统中每一个对象都有一个唯一的标识,称作对象标识。它用来识别不同的对象。一个对象始终保持自身的标识不变,即使它的一些或全部属性的值或方法的定义多次改变。在面向对象系统中使用的对象标识不需要用户定义标识符,每个对象在创建时被系统自动赋予一个标识符。 2007.3 荆楚理工学院

49 对象包含的并不是其它对象本身,而是这些对象的对象标识,对象包含是通过对对象OID的引用来描述的。
9.3 面向对象的数据库技术 ● 对象包含 对象包含的并不是其它对象本身,而是这些对象的对象标识,对象包含是通过对对象OID的引用来描述的。 我们称包含其他对象的对象为复杂对象或复合对象。可以存在多层包含,这样就产生了对象间的包含层次(Containment Hierarchy)。 2007.3 荆楚理工学院

50 在具体程序设计实现时又有两种不同的途径:
9.3 面向对象的数据库技术 二、面向对象数据库系统中的程序设计语言 在具体程序设计实现时又有两种不同的途径: ● 对象-关系系统,是通过增加复杂类型和面向对象的特征来扩展某种数据操纵语言(例如SQL),在关系系统上提供面向对象扩展的系统。 ● 持久化程序设计语言,是一种合适的现有的面向对象的程序设计语言(例如C++和Smalltalk),在它基础上扩展数据库功能,以便能对数据库进行处理。 2007.3 荆楚理工学院

51 持久化的含义是从持久化的数据来的。持久化的数据是指数据库语言所操纵的数据,这些数据即使在创建数据的程序已经终止后它们仍然存在。
9.3 面向对象的数据库技术 持久化的含义是从持久化的数据来的。持久化的数据是指数据库语言所操纵的数据,这些数据即使在创建数据的程序已经终止后它们仍然存在。 传统的面向对象的程序设计语言是不能操作任何持久化的数据的,它们所能直接操纵的唯一持久数据就是文件。 在一个典型的面向对象的系统中持久化程序设计语言是用以处理持久数据而扩充了结构的程序设计语言。在这种语言中,查询语言和宿主语言完全集成,再不用进行SQL语句的嵌入了。 三、一个持久化程序设计语言实现面向对象数据库的实例(P277) 2007.3 荆楚理工学院

52 所谓“透明”是指从逻辑角度来看,应用程序所操作的数据好像是由运行在一台机器上的单一的DBMS管理着。
9.4 分布式数据库 在一个分布式数据库中,一个应用可以对其所需的数据进行透明的操作,这些数据在不同的数据库中分布、由不同的DBMS管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络支持。 所谓“透明”是指从逻辑角度来看,应用程序所操作的数据好像是由运行在一台机器上的单一的DBMS管理着。 一个客户/服务器系统可以看作是一般分布式系统的一个简单的特例。 2007.3 荆楚理工学院

53 9.4 分布式数据库 一、分布式数据库系统概述 一个分布式数据库系统是由很多在物理位置上分开的地方上的数据库系统通过通信网络连接在一起的,在每一个地方上的数据库系统本身是一个完整的数据库系统,但是不同位置的数据库可以协同工作,用户可以通过分布式系统访问到网络上任何位置的数据库中的数据,就好像是在本机上访问一样。 2007.3 荆楚理工学院

54 9.4 分布式数据库 目前最著名的分布式数据库系统有以下三个: INGRES/STAR, INGRES的分布式数据库组件; ORACLE的分布式数据库可选组件 (DISTRIBUTED DATABASE OPTION);DB2的 分布式数据库支持工具(DISTRIBUTED DATA FACILITY)。这些系统都提供了建立在关系模型 上、基于SQL的分布式数据处理的支持。 2007.3 荆楚理工学院

55 9.4 分布式数据库 无论是哪一种分布式数据库系统,都应该满足 一个最基本的要求:分布式数据库系统应该是在 内部层次上实现的,而不是在外部或者应用程序 层次实现的,使用户在使用分布式系统的时候, 应该完全感觉不到系统是分布的。从这个角度说, 目前的客户/服务器应用系统只是一个能够提供远 程数据存取的系统。 2007.3 荆楚理工学院

56 一个描述实际应用系统中某个关系的表,在分布式数据库中的存储可以采用下述几种方法:
9.4 分布式数据库 二、分布式数据存储 一个描述实际应用系统中某个关系的表,在分布式数据库中的存储可以采用下述几种方法: ● 复制就是在一个分布式数据库系统中维护一个关系表的几个完全相同的副本,各个副本可以存储在不同位置的节点上。 2007.3 荆楚理工学院

57 9.4 分布式数据库 ● 分片是指为了应用对数据物理存储的需要,将给定的关系分成几个小块或片段,每个片段是一个逻辑上完整的数据库的一个部分,各个片段存储在不同的节点上。一般来说,一个分片可以由选择操作和投影操作的任意组合来产生。这些操作都是由关系模型的关系操作来完成,所以我们说分布式数据库是采用关系模型的。 2007.3 荆楚理工学院

58 9.4 分布式数据库 分片的重要特性是分片要具有独立性称为分片透明性,是指在逻辑上,用户或应用程序不必考虑关系的分片,用户看到的是一个数据视图,在这个视图中各个分片是通过合适的连接和合并逻辑重新组合在一起的。分片的变化不会影响到用户或应用程序。 2007.3 荆楚理工学院

59 9.4 分布式数据库 ●复制与分片相结合的方法就是将关系划分为几个片段,系统为每个片段维护几个副本。也就是说,数据复制和数据分片技术可以用于同一个关系,分片可以被复制成几个副本,而分片的副本又可以进一步被分片。 2007.3 荆楚理工学院

60 9.4 分布式数据库 三、分布式数据的查询处理 在集中式系统中,衡量某个优化策略的基本准则是磁盘的访问量,而在一个分布式系统中优化策略要综合考虑磁盘开销和网络开销问题。 在分布式系统的查询处理中原则上应该尽量减少对网络的利用,即尽可能减少要传送的数据信息的数量和大小。尽可能减少利用网络就使我们在进行查询优化过程时要使查询优化进程本身是分布的,查询执行的进程也是分布式的。 2007.3 荆楚理工学院

61 所以整个查询优化过程是由两个步骤完成的: 首先是参与查询的各个地点上存在的数据库对于查询要求由一个位置上的数据库做出全局优化策略。
9.4 分布式数据库 所以整个查询优化过程是由两个步骤完成的: 首先是参与查询的各个地点上存在的数据库对于查询要求由一个位置上的数据库做出全局优化策略。 然后才是参与查询的各个地点上的数据库中的本地优化。 在实际分布式数据库系统中,为了提高查询效率,减少数据传输的时间,有些优化策略还可以允许在两个位置的数据库系统中并行地进行处理。 为了提高查询性能,在分布式系统中可以采用对查询进行转换、进行简单的连接处理和半连接等策略。 2007.3 荆楚理工学院

62 9.4 分布式数据库 四、分布式数据库系统中的事务处理 代理:是指在一个分布式系统中,一个单独的事物可以涉及多个位于不同位置的节点上的代码的执行,事务甚至可以对多个节点中的数据同时进行修改。因此在分布式数据库系统中每个事务都可以看作是由多个代理组成的,代理即是指在每一个节点上代表一个事务执行的进程。为了保证一个给定的事务(在分布式环境中,它是由不同节点上的代理组成的)在分布式环境中具有原子性,系统必须保证这个事务的所有代理要么全部一起提交,要么全部一起回滚,这在目前的系统中是采用两阶段提交协议(Two Phase Commitment Protocol,2PC)来实现的。 2007.3 荆楚理工学院

63 1. 并发控制 (1) 封锁协议 分布式系统中的并发控制是基于封锁的。 ● 网络传输开销问题
9.4 分布式数据库 1. 并发控制 (1) 封锁协议 分布式系统中的并发控制是基于封锁的。 ● 网络传输开销问题 在一个分布式系统中,设置、释放封锁的请求基本上是由网络上传送的消息完成的,而消息就意味着网络上的传输开销。解决办法就是采用主副本策略。对一个给定的数据对象,拥有它的节点将处理所有有关该对象的封锁操作。这样针对封锁而言,一个对象的所有副本的集合可以看作是一个单一的对象,而消息的总数也将减少到2N+3(一条封锁请求、一条封锁授权、N条修改消息、N条确认消息和一条解锁请求)。但是这种方案也会带来一个问题,就是如果其中一个主副本不能被使用了,一个事务就会失败,即使事务是只读的而且有一个本地副本可用。 2007.3 荆楚理工学院

64 9.4 分布式数据库 ● 锁管理器的管理机制 单一锁管理器方式 是指每个系统选定一个节点(设为Si),只在这个节点上维护一个单一的锁管理器。这种方式的优点是实现简单、对于死锁的处理也比较简单。缺点是节点Si容易成为瓶颈,另外若Si出现故障,则并发控制就不能实现了。 多协调器的方式 可以在多个节点上设置锁管理器。每个锁管理器管理数据项封锁和解锁请求的一个子集,每个锁管理器位于不同的节点上。这种方式可以避免瓶颈问题,但死锁的处理变得复杂了。 2007.3 荆楚理工学院

65 9.4 分布式数据库 多数协议 每个节点维护自己的锁管理器,这时的锁管理器是负责管理存储在该节点上的数据项的封锁和解锁请求。如果数据项在多个节点中存有副本,则封锁请求必须送到存储有该数据项副本的所有的节点中。这种方式以一种分散的方式处理数据的副本,可以避免集中控制的缺点。但是对于死锁的处理更加复杂,尤为突出的一个问题是即使只有一个数据项被封锁时也可能发生死锁。可以对所有节点按照相同的预定顺序请求数据项副本上的封锁,以避免死锁。 2007.3 荆楚理工学院

66 9.4 分布式数据库 有偏协议类似多数协议。不同之处在于,共享锁请求比排它锁请求的实现要方便一些。系统同样在每个节点上维护一个锁管理器,锁管理器管理存储在该节点上的所有数据项上的锁。 主副本方式是选择一个副本作为主副本,对每个数据项而言它的主副本位于一个节点上,这个节点称之为主节点。事务要对一个数据项封锁时,只在该数据项所在的主节点上请求封锁就可以了。但是当主节点发生故障时,即使包含数据项的其它接点的副本是可用的,该数据项也不能被访问了。 2007.3 荆楚理工学院

67 分布式系统是采用给每个事务一个唯一的时间戳的方式实现事务的可串行化的。
9.4 分布式数据库 (2)时间戳 分布式系统是采用给每个事务一个唯一的时间戳的方式实现事务的可串行化的。 在分布式系统中,产生唯一时间戳的方法有两种,一种是集中式的,即由一个节点来分发时间戳的,这个节点可以利用一个逻辑计数器或自己本地的时钟来达到这个目的。另一种是分布式的,每个节点利用逻辑计数器或本地时钟产生唯一的局部时间戳,通过将唯一的局部时间戳和唯一的节点标识符结合起来产生一个唯一的全局时间戳。 2007.3 荆楚理工学院

68 由于在分布式系统中事务的执行是分布的,封锁的方法会引起全局死锁的问题,全局死锁涉及两个或两个以上节点的死锁。
9.4 分布式数据库 (3)死锁处理 由于在分布式系统中事务的执行是分布的,封锁的方法会引起全局死锁的问题,全局死锁涉及两个或两个以上节点的死锁。 对于全局死锁,采用任何一个节点的内部信息来进行死锁检测是无法检测出来的。在实际分布式系统中,采用了其他的死锁检测方法,如超时机制,在这种机制中假设在预定时间内不工作的事务发生了死锁。 2007.3 荆楚理工学院

69 在分布式数据库系统中,是采用两阶段提交协议完成恢复控制的。
9.4 分布式数据库 2.恢复控制 在分布式数据库系统中,是采用两阶段提交协议完成恢复控制的。 对于一个事务,系统要求对不同的独立的分布的DBMS中的数据处理要么执行提交(COMMIT),要么执行回滚(ROLLBACK),对一个DBMS执行提交而对另一个DBMS执行回滚是没有意义的。因此,事务需要发出一个全局范围内的提交或回滚。 该全局范围内的提交或回滚由一个称作协调者的系统部件控制,协调者保证参与事务的资源管理器(也称作参与者)对它们各自的更新操作所作的提交或回滚是一致的,正是两阶段提交协议使协调者提供了这样的保证。 2007.3 荆楚理工学院

70 假设事务已完成数据处理过程,它将发出系统范围内的提交请求,对于两阶段提交协议,协调者在收到提交请求后将进入以下两个阶段进行处理:
9.4 分布式数据库 假设事务已完成数据处理过程,它将发出系统范围内的提交请求,对于两阶段提交协议,协调者在收到提交请求后将进入以下两个阶段进行处理: (1)协调者要求所有的参与者做好准备,即每个参与者必须将事务对本地资源的所有操作的日志登记选项强制写入物理日志中。若成功写入物理日志中,参与者将向协调者发出"准备好"的响应,否则发出"未准备好"的响应。 2007.3 荆楚理工学院

71 9.4 分布式数据库 (2)当协调者收到来自所有参与者的响应时,它将在自己的日志中登记其关于事务的决定,并将该记录项强制写入物理日志中。如果所有的响应都是“准备好”,其决定就是“提交”该事务;如果其中有一个响应是“未准备好”,其决定就是“回滚”该事务。接着协调者将向所有的参与者发出它的决定信息,每个参与者根据该决定对事务的本地代理进行本地的提交或回滚,每个参与者必须在第二个阶段完成协调者的提交或回滚的决定,而协调者日志中的记录的事务决定的登记项指出了从阶段一到阶段二的转变。 当参与者为本地代理完成提交或回滚操作后,还要向协调者发回一条“确认”消息,表示事务的执行完毕。当协调者收到了所有的确认信息后,整个两阶段提交的过程就结束了。 2007.3 荆楚理工学院

72 9.4 分布式数据库 如果系统在整个处理过程中出现了故障,重新启动系统后将在协调者的日志中查找事务决定的记录项。如果找到该记录,两阶段提交过程将从其被中止的那一点继续执行;如果没有找到,系统将假设事务回滚,并完成相应的回滚操作。 2007.3 荆楚理工学院

73 在实际的分布式数据库系统中,采用了一种两阶段提交协议的变形模式,我们称之为假想提交和假想回滚。
9.4 分布式数据库 在实际的分布式数据库系统中,采用了一种两阶段提交协议的变形模式,我们称之为假想提交和假想回滚。 假想提交的优点在于,当事务成功提交后可以减少所需的消息数量。 假想回滚模式,则可以在当事务不成功进行回滚时减少所需的消息数量。 2007.3 荆楚理工学院

74 五、 数据对象的命名方式与目录表的管理 1、 数据对象的命名方式
9.4 分布式数据库 五、 数据对象的命名方式与目录表的管理 1、 数据对象的命名方式 在分布式数据库中我们必须保证不同的节点上不 会使用同一名字代表不同的数据对象。这就需要一种 命名方法把用户所知道的名称映射成系统所知道的名 称。 2007.3 荆楚理工学院

75 在R*系统中给一个数据对象一个外部名和一个系统名。
9.4 分布式数据库 以R*系统为例讨论这种命名方法。 在R*系统中给一个数据对象一个外部名和一个系统名。 ● 外部名是用户使用该对象时给出的名字,比如在 SQL 的SELECT语句中给出的数据表名就是该数据表的 外部名。 2007.3 荆楚理工学院

76 9.4 分布式数据库 ● 系统名是指数据对象的全局唯一内部标识。 系统名由四个部分组成:数据对象的创建者的 标识、数据对象创建者所在节点的标识、数据 对象的本地名、生成数据对象的节点的标识 (即数据对象最初存储的节点的标识)。 2007.3 荆楚理工学院

77 用户一般通过数据对象的外部名来引用它们,外部名可以有两种形式,一种是本地名,一种是本地名的同义词。
9.4 分布式数据库 用户一般通过数据对象的外部名来引用它们,外部名可以有两种形式,一种是本地名,一种是本地名的同义词。 (1)通过本地名引用,这时系统假设使用所有的缺省值来推断系统名。也就是,数据对象是由正在使用的用户创建的、是在这个用户所在的节点上创建的、最初也是存储在这个节点上。 (2通过同义词引用,系统询问相关的同义词表来决定系统名。同义词表可以认为是系统目录表的一个组成部分。 2007.3 荆楚理工学院

78 9.4 分布式数据库 2、目录表的管理 系统目录表:在分布式数据库系统的每一个节点都要 为这个节点上的每个用户维护一个系统目录表,包括基本 表、视图、权限等目录数据和一些控制信息。在系统目录 表中需要维护的信息包括每个在该节点产生的数据对象的 一个目录表的表项,以及每个现在存储在该节点的数据对 象的一个目录表的表项。 2007.3 荆楚理工学院

79 9.4 分布式数据库 目录表的管理:在分布式系统中,对目录 表是分布存放的,即每一个节点都存在系统 目录表,用户给出了数据对象名后,通过系 统目录表给出的信息来访问相关的数据对象 信息。这种目录表管理是完全基于分布式模 式的。 2007.3 荆楚理工学院

80 由于TEA1是一个同义词,所以系统首先在本地节点的同义词表中查找到对应的系统名。
9.4 分布式数据库 假设现在用户发出一个请求: SELECT * FROM TEA1 由于TEA1是一个同义词,所以系统首先在本地节点的同义词表中查找到对应的系统名。 比如根据系统名知道了数据对象的最初存储节点在北京,于是用户就会询问位于北京节点上的系统目录表,根据每个在该节点产生的数据对象的一个目录表的表项的信息就可以找到该数据对象了。 2007.3 荆楚理工学院

81 如果该数据对象已经被迁移到上海了,则应在位于北京节点上的系统目录表的相关目录表的表项中要记录下这个信息。
9.4 分布式数据库 如果该数据对象已经被迁移到上海了,则应在位于北京节点上的系统目录表的相关目录表的表项中要记录下这个信息。 再次查找时,根据这个信息就知道要到上海节点的系统目录表中去找了,又因为每一个节点的系统目录表中包含每个现在存储在该节点的数据对象的一个目录表表项,所以就可以在该节点中根据相关目录表表项的信息找到所需要的数据对象了。 2007.3 荆楚理工学院

82 首先在新地点的数据库节点的系统目录表中插入一个表项; 然后将上海节点中的相关目录表项删除; 最后修改武汉节点将相关目录表表项指向新的节点。
9.4 分布式数据库 若数据对象再次迁移,则要做以下工作。 首先在新地点的数据库节点的系统目录表中插入一个表项; 然后将上海节点中的相关目录表项删除; 最后修改武汉节点将相关目录表表项指向新的节点。 综上所述对任何一个数据对象的查找采用这种管理方法后都只需要两次远程访问就可以实现了。 2007.3 荆楚理工学院

83 9.4 分布式数据库 六、 更新传播 在分布式数据库系统中是支持数据复制的,这样应 用程序就可以在本地的数据副本上进行操作,而避免 了远程通信带来的一些问题。但是复制存在的最大的 问题就在于当一个复制对象被修改后,这个对象的所 有副本都必须进行修改,这就是更新传播问题。 2007.3 荆楚理工学院

84 常用的解决方法是主副本方法。主副本方法的具 体处理有以下几个要点:
9.4 分布式数据库 常用的解决方法是主副本方法。主副本方法的具 体处理有以下几个要点: ● 被复制对象的一个副本被指定为主副本,剩下 的都是从属副本。 ● 不同数据对象的主副本存储在不同的节点中。 2007.3 荆楚理工学院

85 9.4 分布式数据库 但在实际系统中,采用了一种延迟传播的方法,也就是说主副本对其他副本的修改可以延迟执行,甚至可以在用户指定的某个时候再修改。但这种方法的问题在于数据库无法保证数据在任何时候都是一致的,甚至用户在使用不同的副本时所操作的数据的值都是不同的。 2007.3 荆楚理工学院


Download ppt "数据库原理及应用 《数据库原理及应用》课程组 Jmun_jsjxy@163.com 2007.3 荆楚理工学院."

Similar presentations


Ads by Google