1、12/4/2022第10章数据库新技术概述 本章要点v分布式数据库的概念、特点和体系结构v面向对象数据库的理论和实现方法v数据仓库技术v数据挖掘技术12/4/2022 新一代的数据库技术主要体现在以下几个方面:(1)整体系统方面,相对传统数据库而言,在数据模型及其语言、事务处理与执行模型、数据库逻辑组织与物理存储等各个方面,都集成了新的技术、工具和机制。属于这类数据库新技术的有:面向对象数据库(Object-Orient Database),主动数据库(Active Database),实时数据库(Real-Time Database)。(2)体系结构方面,不改变数据库基本原理,而是在系统的体
2、系结构方面采用和集成了新的技术。属于这方面的数据库新技术有:分布式数据库(Distributed Database),并行数据库(Parallel Database),数据仓库(Data Warehouse)。(3)应用方面,以特定应用领域的需要为出发点,在某些方面采用和引入一些非传统数据库技术,加强系统对有关应用的支撑能力。属于这类的数据库新技术有:12/4/2022工程数据库(Engineering Database),支持CAD、CAM、CIMS等应用领域,空间数据库(Spatial Database),包括地理数据库(Geographic Database),支持地理信息系统(GIS)
3、的应用,科学与统计数据库(Scientific and Statistic Database),支持统计数据中的应用,超文档数据库(Hyperdocument Database),包括多媒体数据库(Multimedia Database)。12/4/202210.1分布式数据库10.1.1 分布式数据库系统的概念 分布式数据库系统中数据库的数据存储在物理上分布在计算机网络的不同计算机中,系统中每一台计算机被称为一个结点(或场地)。在逻辑上是属于同一个系统。其一般结构如图10-1所示。12/4/2022服务器1服务器2服务器3数据库1数据库2数据库3服务器4数据库4计算机网 络局部应用1局部应用
4、3局部应用2局部应用4全局应用 图10-1 分布式数据库系统12/4/202210.1.2 分布式数据库系统的特点 分布式数据库系统主要有如下几个特点:(1)数据的物理分布性。(2)数据的逻辑整体性。(3)结点的自主性。数据独立性。适当增加数据冗余。全局的一致性、可串行性和可恢复性。10.1.3 分布式数据库系统的体系结构 集中式数据库系统具有三级模式结构,分布式数据库系统应该由若干个局部数据模式加上一个全局数据模式构成。全局数据模式用来协调各局部数据模式,使之成为一个整体的模式结构。图为分布式数据库系统模式结构的一个参考模型。12/4/2022局部数据库局部内模式局部概念模式局部数据库局部内
5、模式局部概念模式局部数据库局部内模式局部概念模式局部概念模式局部内模式分布模式分片模式全局概念模式外模式外模式外模式全局概念模式全局外模式图10-2 分布式数据库系统的模式结构12/4/2022 (1)全局外模式:是全局应用的用户视图,是全局概念模式的子集。(2)全局概念模式:是对分布式数据库中全体数据的逻辑结构和特征的描述,它不考虑数据分布的物理地点和分布细节,使得数据如同没有分布一样。通常采用关系模型。(3)分片模式:每一个全局关系可以分为若干不相交的部分,每一部分称为一个片段(Fragment)。分片模式定义片段以及全局关系到片段的映像。这种映像是一对多的,一个全局关系可对应多个片段,而
6、一个片段指来自一个全局关系。数据分片的方法有:水平分片:是指按一定的条件将关系按行(水平方向)分为若干个不相交的子集,每个子集为关系的一个片段。垂直分片:是指将关系按列(垂直方向)分为若干子集。12/4/2022 垂直分片的诸片段必须能够重构原来的全局关系,即可以用连接的方法恢复原关系,因此垂直分片的诸片段通常都包含关系的码。导出分片:是指导出水平分片,即水平分片的条件不是本身属性的条件而是其他关系的属性的条件。混合分片:是指按上述三种分片方式得到的片段继续按另一种方式分片。如先水平分片再垂直分片,或先垂直分片再水平分片。不管使用哪种分片方式,都应保证满足以下条件:完备性:不相交性:可重构性:
7、(4)分布模式:用来描述片段到不同结点间的映象,即各个片段的物理存放位置。12/4/202210.1.4 分布式数据库系统的发展前景 分布式数据库兴起与20世纪70年代,经过20多年的发展,分布式数据库系统已发展得相当成熟,其应用领域涵盖了OLTP应用、分布式计算、互联网上的应用以及数据仓库的应用中。随着计算机网络的广泛普及,新的应用都体现了开放性和分布性的特点。从简单的数据系统全球连网查询,逐渐地转向更具有分布式数据库系统特色的应用环境。因此,在当前基于网络,具有分布性、开放性特点的应用环境下,分布式数据库系统将具有更好的发展前景和更广泛的应用领域。12/4/202210.2 面向对象数据库
8、 面向对象的数据库系统(Object Oriented Database System,简称OODBS)是数据库技术与面向对象程序设计方法相结合而产生的数据库系统。10.2.1 面向对象数据模型 面向对象数据模型(Object-Oriented Data Model,简称O-O Data Model)是一种可扩充的数据模型。在该数据模型中,数据模型是可扩充的,即用户可根据需要,自己定义新的数据类型及相应的约束和操作。(1)对象 客观世界中任何一个事物都可以看成一个对象(或者说,客观世界是由千千万万个对象组成的,它们之间通过一定的渠道相互联系)。如学校、一个班级、军队中的一个团、一个连都是对象。
9、12/4/2022一个对象包括以下几个部分:属性集合 所有属性合起来构成了对象数据的数据结构。每一个对象都有自己的状态、组成和特性,称为对象的属性。属性可能是一个单值或值的集合,也可能是其他对象,即对象的嵌套,并且这种嵌套可以继续下去,从而组成各种复杂的对象。每个对象有惟一的对象标识(OID:Object Identity),一个对象的OID是独立于属性值的,在系统中是唯一不变的。方法集合 方法是对象的行为特性。方法的定义包含两个部分:一是方法的接口,包括方法的名称、参数和结果类型;二是方法的实现部分,它是一段程序编码,以实现方法的功能,即对象操作的算法。12/4/2022消息集合 消息是对象
10、向外提供的界面,消息由对象接收和响应。(2)类和实例 有一些对象是具有相同的结构和特性的。类代表了某一批对象的共性和特征。每个对象都属于一个类型,对象的类型就是类。类是对象的抽象,而对象是类的具体实例(Instance)。一个类中的所有对象其特性必须相同,即具有相同的属性、响应相同的消息、使用相同的方法。(3)类的继承 一个新类可以通过对已有类进行修改或扩充某些特性来满足新类的要求,而这些特性并不和类的所有成员相关。从一个类继承定义的新类,将继承已有类的所有方法和属性,并且可以添加新的方法和属性。新类被称为已有类的子类或派生类,已有类称为父类或基类。12/4/2022 若一个子类只能继承一个父
11、类的特性,叫做单继承;若一个子类能继承多个父类的特性,叫做多重继承。例如,学校模型中有教职工和学生两个类,其中教职工中又可分为教师类和行政人员类,所有教师有专业这一属性,行政人员有行政级别属性,它们是教职工的两个子类。同时教职工和学生也具有某些相似的属性,如都有身份证号码、姓名、性别、年龄等,可以把它们看成是人的子类。其中在职研究生同时继承了教职工和学生的特性,这种情况成为多重继承。其类层次结构如图10-4所示。教师行政人员在职研究生本科生研究生教职工学生人图10-4 学校数据库的类层次结构图12/4/202210.2.2 面向对象数据库建模 本节介绍面向对象数据库的模型描述工具ODL(对象定
12、义语言),它是CORBA(公共对象请求代理程序体系结构)的一个组件。ODL与具体的OODBMS无关,和E-R图一样,是建立数据库概念模型的工具,也可以向DBMS支持的数据模型转化,如图10-5所示。现实世界OODBMSODL抽象对象数据模式图10-5 数据库建模和实现的过程(1)ODL的类说明在对象的定义中主要包括以下几个部分:关键字 Interface(接口)。类的名字。类的特性表,可以是属性、联系、方法。12/4/2022 所以,ODL类说明的最简单形式是:Interface ;(2)ODL中属性的说明 属性是类的一种最简单的特性。例10.1 利用ODL描述学生(student)类,语句如
13、下:interface student /student是一个类attribute string sno;/属性sno,其类型是stringattribute string name;/属性name,其类型是stringattribute integer age;/属性age,类型是整型attribute enum sextype male,female sex;/属性sex,其类型是枚举型;12/4/2022 这是student类的说明,任何一个student对象在这几个属性上均对应一个分量。该例中的属性均是原子的,事实上属性类型可以是结构、集合、聚集等复杂类型。例10.2 给出类colle
14、ge的ODL描述,有属性name(学院名)、president(负责人)、address(地址),其中address是一个结构,包括楼层和房间号:interface college attribute string name;attribute string president;attribute struct Addr string room,string flooraddress;ODL中的原子类型有:整型(integer)、浮点型(float)、字符(char)、字符串(string)、布尔型(boolean)和枚举型(enum)。复杂类型可以是集合、列表、数组和结构等。12/4/202
15、2(3)ODL中的联系 为了得到对象与同类或不同类的其他对象的连接方式,需要在类的定义中说明类与类之间的联系。如学生类与学院类之间有联系,一个学生对象总与某个学院对象有关系(从属关系)。在student类说明中,可用下面的ODL语句表示这种联系:Relationship college studyin;该语句说明在student类中的每个对象,都有一个对college对象的引用,引用名为studyin。(4)ODL中的类的继承 假设类B是类A的子类,那么在定义类B时,可以在后加上:A,说明类B是类A的子类,并可继承类A的所有特性。例10.4 定义类postgraduate(研究生)为stude
16、nt的子类。12/4/2022 interface postgraduate:student /类postgraduate是类student的子类Relationship college member /所有的postgraduate对象都有一个联系member,表/示该研究生属于一个学院,并且一名研究生只属于一个学院;在多重继承时,特性名之间可能会发生冲突。如两个或多个超类可能有同名的属性或联系,而这些特性的类型可能不同。在ODL中提供以下几种机制来建立解决多重继承产生的冲突:指出超类特性的多个定义中哪一个用于子类;在子类中,对于有相同名字的另一个特性给一个新的名字;在子类中重新定义一个或多
17、个超类中已定义的某些特性。(5)ODL中方法的说明 类的另一个特性是方法,方法是与类相关的函数。类中的每一个对象都能引用方法,同一方法可用于多个类,这是面向对象语言的特点。方法说明中主要有方法名、方法的12/4/2022输入/输出类型说明等。而方法的实际代码是用宿主语言写的,代码本身不是ODL的一部分。调用方法时,可能会引起异常,即出现异常或非希望的情况,这种情况一般应由某个函数来处理(相当于出错处理)。在ODL的方法说明中,提供关键字raises(引发),在括号里列出异常处理列表。例10.5 类student的扩充定义,增加了方法的说明:interface student (key name
18、)attribute string sno;attribute string name;attribute integer age;attribute enum sextype male,female sex;Relationship college studyin Inverse college:owns;12/4/2022 Relationship set joins Inverse item:joinby;String Departname()raises(nodepartFound)Otheritem(in item,out set)raise(noitemin);第一个方法是Depa
19、rtname,该函数将产生一字符串型的返回值。第二个方法是Otheritem,该函数没有任何返回值,其输入参数类型为item,输出参数为student的对象集合。(6)E-R模型向面向对象数据模型的转换 当建立了现实世界的E-R模型以后,可将其转换为OO模型。转换时,可按照以下的步骤进行:将E-R模型中的每个实体集生成一个类,实体集的属性转换为类的属性。将E-R模型中具有ISA联系的实体集生成的类之间建立类/子类关系。12/4/2022 在转换得到的类中加入联系的说明:对原E-R模型中有一对一联系的实体集,在其生成的类中,都加入联系说明,说明其和另一个类中的一个对象有关。对原E-R模型中有一对
20、多联系的实体集,在一方生成的类中,加入联系说明,说明其和另一个类中的对象集合有关;在多方生成的类中,加入联系说明,说明其和另一个类中的一个对象有关。对原E-R模型中有多对多联系的实体集,在其生成的类中,都加入联系说明,说明其和另一个类中的对象集合有关。10.2.3 对象-关系数据库 一个对象关系数据库系统必须满足两个条件:一是支持一核心的面向对象数据模型;二是支持传统数据库系统所有的数据库特征。对象-关系数据库系统就是按照这样的目标将关系数据库12/4/2022系统与面向对象数据库系统两方面的特征相结合。对象-关系数据库系统除了具有原来关系数据库的各种特点外,还应该提供以下特点:(1)扩充数据
21、类型 允许用户自己定义数据类型、函数和操作符,而且这些新的数据类型、函数和操作符一经定义将存放在数据库管理系统核心中,如同基本数据类型一样可供所有用户共享。(2)支持复杂对象 能够在SQL中支持复杂对象。复杂对象是指由多种基本数据类型或用户自定义的数据类型构成的对象。(3)支持继承的概念 能够支持子类、超类的概念,支持继承与派生的概念,支持单继承与多重继承,支持重载。(4)提供通用的规则系统 能够提供强大而通用的规则系统,如规则中的事件和12/4/2022动作可以是任意的SQL语句,可以使用用户自定义的函数、规则能够被继承等。实现对象-关系数据库系统,可以采用方法:从头开发对象-关系数据库系统
22、。这种方法费时费力,一般不采用。在现有的关系型数据库系统基础上进行扩展。扩展方法有五种:(1)对关系型数据库系统核心进行扩充,逐渐增加对象特性。(2)不修改现有的关系型数据库系统核心,而是在现有关系型数据库系统外面加上一个包装层,由包装层提供对象-关系型应用编程接口。(3)将现有的关系型数据库系统与其他厂商的对象-关系型数据库系统连接在一起,使现有的关系型数据库系统直接而迅速地具有了对象-关系特征。12/4/2022 (4)将现有的面向对象型数据库系统与其他厂商的对象-关系型数据库系统连接,使现有的面向对象型数据库系统直接而迅速地具有了对象-关系特征。(5)扩充现有的面向对象的数据库系统,使之
23、成为对象-关系型数据库系统。12/4/202210.3 数据仓库10.3.1数据仓库的定义与特征 数据仓库涉及在关系数据库中存储数据和处理这些数据,使数据成为查询和决策支持分析的更加有效的工具。换句话说,数据仓库是一种把收集的各种数据转变成有商业价值的信息的技术。目前,数据库应用主要有两类:联机事务处理和分析型处理。联机事务处理(OLTP)注重数据库的完整性、安全性以及高可用性。与OLTP不同,分析型处理主要用于管理人员的决策分析,通过对大量数据(特别是历史数据)的综合、统计和分析得出有利于企业的决策信息。这种分析查询,一般需要访问大量的数据和花费相对多的时间才能完成。而数据仓库和联机分析处理
24、(OLAP)等技术能够从多个数据源收集数据,提供用户进行决策分析。12/4/2022 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。根据数据仓库概念的含义,数据
25、仓库拥有以下四个特征:(1)面向主题。(2)集成的。(3)相对稳定的。(4)反映历史变化。12/4/202210.3.2 数据仓库系统的体系结构 一个数据仓库一般来说包含以下7个主要组成部分:(1)数据源 (2)数据抽取、转换和装载工具 (3)数据建模工具。(4)核心存储。(5)数据仓库的目标数据库。(6)前端数据访问和分析工具。(7)数据仓库管理工具。数据仓库的体系结构如图10-6所示:12/4/2022数据库数据文件其 它 数 据源数据仓库管理工具专用多维数据库管理系统用户查询工具数据抽取转换工具核 心仓 储数据建模工具关 系 型 数据库 管 理 系统标准c/s工具报 表工 具DSS/EI
26、S工具分析工具图10-6 数据仓库体系结构12/4/202210.3.3 数据仓库的数据库模式 数据仓库的基本组成是事实表和维表。这些组件能够用于不同的设计中,比较流行的有星型模式和雪花模式。(1)事实表 事实表(Fact Table)是数据仓库中存储历史商务数据的表。它们包含描述特定事件或业务的信息和数据的汇总。(2)维表 维表(Dimension Table)用于提炼事实表中所包含的数据,或者更详细地描述它。因此,数据类型一般是字符数据。事实表和维表之间的关系由事实表到维表上的外码约束。一般地,一个事实表的主码由多部分组成,主码的每一部分是它周围维表的外码。与事实表不同,维表中的数据时常需
27、要得到更新。但是它仅需要在一个地方即维表中进行修改,而不是在可能存在许多行的事实表中进行修改。12/4/2022(3)数据库模式 在数据仓库的建模技术中,常用的有星型模式和雪花模式。下面介绍星型模式和雪花模式中事实表和维表的关联方式。星型模式 雪花模式10.3.4 数据仓库工具 数据仓库工具是数据仓库系统的一个重要组成部分,主要有数据抽取和转换工具和前端数据访问和分析工具。(1)数据抽取和转换工具 传统的关系型数据库管理系统也许不能全面满足对数据抽取和转换的功能需要,数据仓库体系结构设计人员可以根据具体的需要选择合适的数据抽取和转换工具,与数据库管理系统相结合,全面实施数据抽取和转换。12/4
28、/2022(2)前端数据访问和分析工具 目前市场上能获得的数据访问和分析工具种类繁多,主要有关系型查询工具、关系型数据的多维视图工具、DSS/EIS软件包和客户机/服务器工具等四大类。关系型查询工具 关系型数据的多维视图工具 DSS/EIS工具 客户机/服务器工具12/4/202210.4 数据挖掘技术 数据挖掘(Data Mining)是指对数据进行深入地研究,从超大型数据库(VLDB)或数据仓库中发现事先未注意到的,但是潜在有用的信息和知识,它综合了人工智能、机器学习、统计学等技术,是应用数据仓库进行决策支持的关键技术。数据仓库、OLAP和数据挖掘是作为三种独立的信息处理技术出现的,用数据
29、仓库存储和组织数据,数据的分析由OLAP集中完成,数据挖掘则致力于知识的自动发现。12/4/202210.4.1 数据挖掘的主要功能数据挖掘的主要功能如下:(1)分类 是指将数据映射到预先定义好的群组或类。分类算法要求分析对象的属性、特征,以建立不同的类别来描述事物。例如银行部门根据以前的数据将客户分成了不同的类别,以确定对新申请贷款的客户是否批准或确定信用风险。(2)聚类 一般是指将数据划分或分割成相交或不相交的群组的过程。聚类合分类很相似,只不过聚类中的类别没有事先定义而是由数据决定的。例如将贷款申请人分为高信用度申请者,中信用度申请者,低信用度申请者等。12/4/2022(3)汇总 是指
30、将数据映射到具有简单描述的子集中。汇总从数据库中抽取或者得到有代表性的信息,也可以得到一些总结性信息,汇总有时也被称为特征化或泛化。(4)关联规则和序列模式的发现 关联是某种事物发生时其他事物跟着会发生的这样一种联系。例如每天买大米的人也有可能买纸巾,可能性有多大,可以通过关联的支持度和可信度来描述。与关联不同,序列是一种纵向的联系。例如所有买了圆珠笔的人,一个月后又有30%的人买笔芯,70%的人又买新的圆珠笔。(5)预测 把握分析对象发展的规律,对未来的趋势做出预见。例如对未来股市行情的判断。(6)偏差的检测 数据库中的数据存在者很多异常的情况,通过对数据的分析发现少数的、极端的特例的描述,
31、揭示内在的原因,即为偏差的检测。12/4/202210.4.2 数据挖掘的方法及工具(1)传统统计方法 抽样技术:我们面对的是大量的数据,对所有的数据进行分析是不可能的也是没有必要的,就要在理论的指导下进行合理的抽样。多元统计分析:因子分析,聚类分析等。统计预测方法:如回归分析,时间序列分析等。(2)可视化技术:用图表等方式把数据特征用直观地表述出来,如直方图等,这其中运用的许多描述统计的方法。可视化技术面对的一个难题是高维数据的可视化。(3)决策树:利用一系列规则划分,建立树状图,可用于分类和预测。常用的算法有CART、CHAID、ID3、C4.5、C5.0等。(4)神经网络:模拟人的神经元
32、功能,经过输入层,隐藏层,输出层等,对数据进行调整、计算,最后得到结果,用于分类和回归。12/4/2022 (5)遗传算法:基于自然进化理论,模拟基因联合、突变、选择等过程的一种优化技术。(6)关联规则挖掘算法:关联规则是描述数据之间存在关系的规则,形式为“A1A2AnB1B2Bn”。一般分为两个步骤:求出大数据项集和用大数据项集产生关联规则。除了以上的常用方法外,还有粗集方法,模糊集合方法,Bayesian Belief Netords,最邻近算法(K Nearest Neighbors(KNN))等。10.4.3 数据挖掘的实施步骤 实施数据挖掘的一般的步骤如下,如图10-7所示:问题理解
33、和提出数据准备数据整理建立模型评价和解释图10-7 数据挖掘的一般步骤12/4/2022(1)问题理解和提出 在开始数据挖掘之前最基础的就是理解数据和实际的业务问题,在这个基础之上提出问题,对目标有明确的定义。(2)数据准备 获取原始的数据,并从中抽取一定数量的子集,建立数据挖掘库,其中一个问题是如果企业原来的数据仓库满足数据挖掘的要求,就可以将数据仓库作为数据挖掘库。(3)数据整理 由于数据可能是不完全的、有噪声的、随机的,有复杂的数据结构,就要对数据进行初步的整理,清洗不完全的数据,做初步的描述分析,选择与数据挖掘有关的变量,或者转变变量。(4)建立模型 根据数据挖掘的目标和数据的特征,选
34、择合适的模型。12/4/2022(5)评价和解释 对数据挖掘的结果进行评价,选择最优的模型,作出评价,运用于实际问题,并且要和专业知识结合对结果进行解释。以上的步骤不是一次完成的,可能其中某些步骤或者全部要反复进行。10.4.4 数据挖掘应用现状 数据挖掘的应用非常广泛,只要该产业有分析价值与需求的数据库,皆可利用Mining工具进行有目的的发掘分析。常见的应用案例多发生在零售业、制造业、财务金融保险、通讯及医疗服务:(1)商从顾客购买商品中发现一定的关系,提供打折购物券等,提高销售额。(2)保险公司通过数据挖掘建立预测模型,辨别出可能的欺诈行为,避免道德风险,减少成本,提高利润。12/4/2
35、022 (3)在制造业中,半导体的生产和测试中都产生大量的数据,就必须对这些数据进行分析,找出存在的问题,提高质量。(4)电子商务的作用越来越大,可以用数据挖掘对网站进行分析,识别用户的行为模式,保留客户,提供个性化服务,优化网站设计。10.4.5 数据挖掘中存在的问题 尽管数据挖掘有如此多的优点,但数据挖掘也面临着许多的问题,这也为数据挖掘的未来的发展提供了更大的空间。(1)数据挖掘的基本问题就在于数据的数量和维数,数据结构也因此显的非常复杂,如何进行探索,选择分析变量,也就成为首先要解决的问题。(2)面对如此大的数据,现有的统计方法等都遇到了问题,我们直接的想法就是对数据进行抽样,那么12/4/2022怎么抽样,抽取多大的样本,又怎样评价抽样的效果,这些都是值得研究的难题。(3)既然数据是海量的,那么数据中就会隐含一定的变化趋势,在数据挖掘中也要对这个趋势做应有的考虑和评价。(4)各种不同的模型如何应用,其效果如何评价。不同的人对同样的数据进行挖掘,可能产生不同的结果,甚至差异很大,这就涉及到可靠性的问题。(5)当前互联网的发展迅速,如何进行互联网的的数据挖掘,还有文本等非标准数据的挖掘,都引起了极大的兴趣。(6)数据挖掘涉及到数据也就碰到了数据的私有性和安全性。(7)数据挖掘的结果是不确定的,要和专业知识相结合才能对其做出判断。