论文部分内容阅读
在一个机构庞大的公司中,一般都存在多种旧的数据库系统,像财务管理、人事管理、产品开发等各个部门可能采用不同的数据库系统,以不同的数据模型描述数据,使用不同的语言描述数据查询和操纵事务,这样客观上就存在了多种异构的数据库系统。为了有效地实现各个数据库系统之间的信息共享、传递和反馈,人们迫切地需要构造异构数据库系统,以解决信息资源和人力资源的共享和协同问题。此外,在计算机网络技术不断发展的今天,分布式数据库系统作为主流的数据库系统,也正在演化为异构型分布式数据库系统。
一、异构数据库系统的目标、特点
实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享,其中关键在于以局部数据库模式为基础,建立全局的数据模式或全局外视图。这种全局模式对于建立高级的决策支持系统尤为重要。大型机构在许多地点都有分支机构,每个子机构的数据库中都有着自己的信息数据,而决策制订人员一般只关心宏观的、为全局模式所描述的信息。建立在数据仓库技术基础上的异构数据库全局模式的描述是一种好的解决方案。数据仓库可以从异构数据库系统中的多个数据库中收集信息,并建立统一的全局模式,同时收集的数据还支持对历史数据的访问,用户通过数据仓库提供的统一的数据接口进行决策支持的查询。
数据仓库具有以下特点:
1.面向主题。它是面向企业的主题,如客户、产品,而不是面向过程。
2.集成性。数据从面向应用的操作环境提取到数据仓库中时都要经过集成化,集成性以多种形式表现出来,如一致的数据属性、一致的编码结构等。
3.不易失性。由于数据仓库只有两种基本操作——装载数据和访问数据,因此数据是相对稳定的,其修改和重组是由管理员定期在后台实现,这样数据仓库可在物理层上做很多优化工作。
数据仓库应用是一个典型的C/S结构。其客户端的工作包括客户交互、格式化查询及报表生成等。服务器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等。现在,普遍采用三层结构的形式,即在客户与服务器之间增加一个应用服务器,它能加强和规范决策支持的服务工作,集中和简化客户端和DW服务器的部分工作,降低系统数据传输量,因此提高了工作效率。
二、基于数据仓库的数据挖掘
数据挖掘是应用特定的发现算法,从大量数据中搜索或产生一个感兴趣的模式或数据集。数据挖掘过程分为三个步骤:数据准备、挖掘和表述。在解决实际问题时,经常要同时使用多种模式。一个数据系统或仅仅一个数据挖掘查询就可能生成成千上万的模式,但是并非所有的模式都令人感兴趣。因此,兴趣度通常被用来衡量模式的总体价值,它包括正确性、新奇性、可用性和简洁性。
数据挖掘工具还要求具有开放性,它的开放性体现在两个方面:能与各种数据源集成,分析结果是通用或易于转化的。数据控制工具相互差别很大,这不仅体现在关键技术上,还体现在运行平台、数据存取和价格等方面。从运行平台来看,简单的工具可运行在PC的DOS或Windows上,复杂的工具要求运行在Unix工作站或并行处理平台上;从数据存取来看,简单工具处理的数据以文件形式输入,复杂工具要求大型的数据库环境。
数据仓库和数据挖掘是作为两种独立的信息技术出现的。数据仓库是不同于数据库的数据组织和存储技术,它从数据库技术发展而来并为决策服务,通过OLAP工具验证用户的假设;数据挖掘是通过对文件系统和数据库中的数据进行分析,获得具有一定可信度知识的算法和技术。它们从不同侧面完成对决策过程的支持,相互间有一定的内在联系。因此,将它们集成到一个系统中,形成基于数据挖掘的OLAP工具,可以更加有效地提高决策支持能力。
数据挖掘不一定需要建立在数据仓库基础上,但以数据仓库为基础,对于数据挖掘来说源数据的预处理将简化许多;另外,为了保证结果的正确性,数据挖掘对基础数据量的需求是巨大的,数据仓库可以很好地满足这个要求。
异构数据库系统是由多个异构的成员数据库系统组成的数据库系统,异构性体现为各个成员数据库之间在硬件平台、操作系统或数据管理系统等方面的不同。
三、异构特性与异构技术
由于实际的企业应用环境非常复杂,它们可能分布在不同的地理位置上,使用着不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性问题,因此,在普通的应用环境中很难将这些高度分布的数据集中起来充分利用。在构建数据仓库进行数据转移的过程中,则可以通过数据转移工具将位于不同操作系统平台、不同数据组织形式中的数据按照一定的规则,集中在一个数据仓库中,从而保证数据仓库中数据的完全一致,达到充分利用各种数据源的目的。因此,数据转移工具必须支持异构数据源。
由于数据仓库系统存储的数据量大,对查询速度要求快,因此它往往采用分布式的客户/服务器体系结构,并支持并行处理的硬件平台。数据仓库系统可运行于不同操作系统的机器上,数据也分布在不同的机器上,整体上构成一个系统,再通过适当的粒度划分和数据分割,可提高数据抽取和查询响应的并行度。数据仓库也支持广泛的硬件平台,从单CPU到SMP(对称多处理)、NUMA(非均匀存储存取)SMP簇或者MMP(大规模并行处理)体系,利用并行处理器将单个查询分为多个子任务并将它们分布到多个处理器上执行,从而提高查询的响应速度。因此,从数据仓库的运行环境来看,它是运行在一个异构平台上。
实现数据源中的数据向数据仓库的集成需要解决两个问题:提取和格式转换。对于从异构数据库中提取数据大多采用开放式数据互连(ODBC)。ODBC是一种用来在数据库系统之间存取数据的标准应用程序接口,目前流行的数据库管理系统都提供了相应的ODBC驱动程序,它使数据库系统具有很好的开放性,数据格式转换也很方便。另一种提取数据的方法是针对不同的数据库系统编写专用的嵌C接口程序,这样可提高数据的提取速度。
为了从异构数据源中集成数据,各数据库厂商和其他软件开发商提供了很多中间件工具来提取和转换数据,如Informix的InfoMover、Microsoft SQL Server 7的DTS和Oracle的Open Gateway等,这些工具在一定范围内解决了数据的提取和转换。目前,这些工具还不能自动完成数据的抽取,用户还需利用这些工具编写适当的转换程序,而且数据往往是批量加载,数据源被假设为不工作状态。
ODBC驱动程序的使用把应用程序从具体的数据库调用中隔离开来,驱动程序管理器针对特定数据库的各个驱动程序进行集中管理,并向应用程序提供统一的标准接口,这就为ODBC的开放性奠定了基础。ODBC是为最大的互用性而设计的,要求一个应用程序有用相同的源代码(不用重新编译或重新链接)访问不同的数据库管理系统(DBMS)的能力。使用相同源代码的应用程序访问不同的DBMS,体现了ODBC的数据库独立性。各个DBMS参照的标准、提供的功能不尽相同,应用程序可以以统一的接口使用各个DBMS特有的功能。通过使用多个驱动程序可以同时访问多个DBMS系统。ODBC可以同时连接到多个DBMS,解决了同时访问多个DBMS的问题,提供了异构成员数据库之间互操作的能力。
JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC与ODBC都是基于X/Open的SQL调用级接口,JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC保持了ODBC的基本特性,也独立于特定数据库。使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS。连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。JDBC的DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。与ODBC一样,JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。
但是,JDBC除了具有ODBC的上述特点外,还具有对硬件平台、操作系统异构性的支持。这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。Java语言具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,利用Java的平台无关性,JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。
四、JDBC和ODBC和Internet上的应用
JDBC和ODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。在Internet上访问数据库通常采用三层模式。以JDBC为例,在三层模式中客户端的Java Applet主要作为用户界面,它不直接与数据库交换信息,而是通过自定义的应用层网络协议与应用服务器交互,应用服务器通过JDBC与数据库服务器交换信息,并实现应用逻辑。DM3的JDBC和ODBC驱动程序支持目前流行的ASP和JSP技术,可以分别借助ODBC和JDBC同时访问Internet上多个异构的数据库。
ASP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP使用VBScript之类的脚本语言,它在HTML代码中嵌入某种程序代码,由HTML代码负责描述信息的显示样式,由嵌入的程序代码来描述处理逻辑。在ASP下,VBScript代码被ASP引擎在Web服务器端解释执行,执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。这里,VBScript代码可以通过ODBC访问多个异构的数据库。
JSP是一种基于Java Servlet的Web开发技术,它和ASP非常相似,但又有区别:在JSP下,嵌入HTML页面的程序代码是Java代码;页面中嵌入的程序代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java虚拟机执行。这里Java代码可以通过JDBC访问多个异构的数据库,其平台无关性特别好。
数据仓库还可运行在多种硬件环境和操作系统上,充分发挥分布式数据库和并行处理器的能力,提高查询响应速度。Internet上大量信息必须通过数据库系统才能有效管理。由于历史等原因,Internet上的数据库系统不少是异构的。为了在Internet环境下,基于异种系统平台实现对异构数据库的查询和联合使用,必须提供一个独立于特定的数据库管理系统的统一编程界面。
目前,许多数据库系统均支持SQL,对于由SQL数据库组成的异构数据库系统,JDBC和ODBC为访问其异构成员提供了统一的方式,也为各异构成员之间的协作和多个成员之间的操作打下了基础。当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。▲
一、异构数据库系统的目标、特点
实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享,其中关键在于以局部数据库模式为基础,建立全局的数据模式或全局外视图。这种全局模式对于建立高级的决策支持系统尤为重要。大型机构在许多地点都有分支机构,每个子机构的数据库中都有着自己的信息数据,而决策制订人员一般只关心宏观的、为全局模式所描述的信息。建立在数据仓库技术基础上的异构数据库全局模式的描述是一种好的解决方案。数据仓库可以从异构数据库系统中的多个数据库中收集信息,并建立统一的全局模式,同时收集的数据还支持对历史数据的访问,用户通过数据仓库提供的统一的数据接口进行决策支持的查询。
数据仓库具有以下特点:
1.面向主题。它是面向企业的主题,如客户、产品,而不是面向过程。
2.集成性。数据从面向应用的操作环境提取到数据仓库中时都要经过集成化,集成性以多种形式表现出来,如一致的数据属性、一致的编码结构等。
3.不易失性。由于数据仓库只有两种基本操作——装载数据和访问数据,因此数据是相对稳定的,其修改和重组是由管理员定期在后台实现,这样数据仓库可在物理层上做很多优化工作。
数据仓库应用是一个典型的C/S结构。其客户端的工作包括客户交互、格式化查询及报表生成等。服务器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等。现在,普遍采用三层结构的形式,即在客户与服务器之间增加一个应用服务器,它能加强和规范决策支持的服务工作,集中和简化客户端和DW服务器的部分工作,降低系统数据传输量,因此提高了工作效率。
二、基于数据仓库的数据挖掘
数据挖掘是应用特定的发现算法,从大量数据中搜索或产生一个感兴趣的模式或数据集。数据挖掘过程分为三个步骤:数据准备、挖掘和表述。在解决实际问题时,经常要同时使用多种模式。一个数据系统或仅仅一个数据挖掘查询就可能生成成千上万的模式,但是并非所有的模式都令人感兴趣。因此,兴趣度通常被用来衡量模式的总体价值,它包括正确性、新奇性、可用性和简洁性。
数据挖掘工具还要求具有开放性,它的开放性体现在两个方面:能与各种数据源集成,分析结果是通用或易于转化的。数据控制工具相互差别很大,这不仅体现在关键技术上,还体现在运行平台、数据存取和价格等方面。从运行平台来看,简单的工具可运行在PC的DOS或Windows上,复杂的工具要求运行在Unix工作站或并行处理平台上;从数据存取来看,简单工具处理的数据以文件形式输入,复杂工具要求大型的数据库环境。
数据仓库和数据挖掘是作为两种独立的信息技术出现的。数据仓库是不同于数据库的数据组织和存储技术,它从数据库技术发展而来并为决策服务,通过OLAP工具验证用户的假设;数据挖掘是通过对文件系统和数据库中的数据进行分析,获得具有一定可信度知识的算法和技术。它们从不同侧面完成对决策过程的支持,相互间有一定的内在联系。因此,将它们集成到一个系统中,形成基于数据挖掘的OLAP工具,可以更加有效地提高决策支持能力。
数据挖掘不一定需要建立在数据仓库基础上,但以数据仓库为基础,对于数据挖掘来说源数据的预处理将简化许多;另外,为了保证结果的正确性,数据挖掘对基础数据量的需求是巨大的,数据仓库可以很好地满足这个要求。
异构数据库系统是由多个异构的成员数据库系统组成的数据库系统,异构性体现为各个成员数据库之间在硬件平台、操作系统或数据管理系统等方面的不同。
三、异构特性与异构技术
由于实际的企业应用环境非常复杂,它们可能分布在不同的地理位置上,使用着不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性问题,因此,在普通的应用环境中很难将这些高度分布的数据集中起来充分利用。在构建数据仓库进行数据转移的过程中,则可以通过数据转移工具将位于不同操作系统平台、不同数据组织形式中的数据按照一定的规则,集中在一个数据仓库中,从而保证数据仓库中数据的完全一致,达到充分利用各种数据源的目的。因此,数据转移工具必须支持异构数据源。
由于数据仓库系统存储的数据量大,对查询速度要求快,因此它往往采用分布式的客户/服务器体系结构,并支持并行处理的硬件平台。数据仓库系统可运行于不同操作系统的机器上,数据也分布在不同的机器上,整体上构成一个系统,再通过适当的粒度划分和数据分割,可提高数据抽取和查询响应的并行度。数据仓库也支持广泛的硬件平台,从单CPU到SMP(对称多处理)、NUMA(非均匀存储存取)SMP簇或者MMP(大规模并行处理)体系,利用并行处理器将单个查询分为多个子任务并将它们分布到多个处理器上执行,从而提高查询的响应速度。因此,从数据仓库的运行环境来看,它是运行在一个异构平台上。
实现数据源中的数据向数据仓库的集成需要解决两个问题:提取和格式转换。对于从异构数据库中提取数据大多采用开放式数据互连(ODBC)。ODBC是一种用来在数据库系统之间存取数据的标准应用程序接口,目前流行的数据库管理系统都提供了相应的ODBC驱动程序,它使数据库系统具有很好的开放性,数据格式转换也很方便。另一种提取数据的方法是针对不同的数据库系统编写专用的嵌C接口程序,这样可提高数据的提取速度。
为了从异构数据源中集成数据,各数据库厂商和其他软件开发商提供了很多中间件工具来提取和转换数据,如Informix的InfoMover、Microsoft SQL Server 7的DTS和Oracle的Open Gateway等,这些工具在一定范围内解决了数据的提取和转换。目前,这些工具还不能自动完成数据的抽取,用户还需利用这些工具编写适当的转换程序,而且数据往往是批量加载,数据源被假设为不工作状态。
ODBC驱动程序的使用把应用程序从具体的数据库调用中隔离开来,驱动程序管理器针对特定数据库的各个驱动程序进行集中管理,并向应用程序提供统一的标准接口,这就为ODBC的开放性奠定了基础。ODBC是为最大的互用性而设计的,要求一个应用程序有用相同的源代码(不用重新编译或重新链接)访问不同的数据库管理系统(DBMS)的能力。使用相同源代码的应用程序访问不同的DBMS,体现了ODBC的数据库独立性。各个DBMS参照的标准、提供的功能不尽相同,应用程序可以以统一的接口使用各个DBMS特有的功能。通过使用多个驱动程序可以同时访问多个DBMS系统。ODBC可以同时连接到多个DBMS,解决了同时访问多个DBMS的问题,提供了异构成员数据库之间互操作的能力。
JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC与ODBC都是基于X/Open的SQL调用级接口,JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC保持了ODBC的基本特性,也独立于特定数据库。使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS。连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。JDBC的DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。与ODBC一样,JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。
但是,JDBC除了具有ODBC的上述特点外,还具有对硬件平台、操作系统异构性的支持。这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。Java语言具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,利用Java的平台无关性,JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。
四、JDBC和ODBC和Internet上的应用
JDBC和ODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。在Internet上访问数据库通常采用三层模式。以JDBC为例,在三层模式中客户端的Java Applet主要作为用户界面,它不直接与数据库交换信息,而是通过自定义的应用层网络协议与应用服务器交互,应用服务器通过JDBC与数据库服务器交换信息,并实现应用逻辑。DM3的JDBC和ODBC驱动程序支持目前流行的ASP和JSP技术,可以分别借助ODBC和JDBC同时访问Internet上多个异构的数据库。
ASP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP使用VBScript之类的脚本语言,它在HTML代码中嵌入某种程序代码,由HTML代码负责描述信息的显示样式,由嵌入的程序代码来描述处理逻辑。在ASP下,VBScript代码被ASP引擎在Web服务器端解释执行,执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。这里,VBScript代码可以通过ODBC访问多个异构的数据库。
JSP是一种基于Java Servlet的Web开发技术,它和ASP非常相似,但又有区别:在JSP下,嵌入HTML页面的程序代码是Java代码;页面中嵌入的程序代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java虚拟机执行。这里Java代码可以通过JDBC访问多个异构的数据库,其平台无关性特别好。
数据仓库还可运行在多种硬件环境和操作系统上,充分发挥分布式数据库和并行处理器的能力,提高查询响应速度。Internet上大量信息必须通过数据库系统才能有效管理。由于历史等原因,Internet上的数据库系统不少是异构的。为了在Internet环境下,基于异种系统平台实现对异构数据库的查询和联合使用,必须提供一个独立于特定的数据库管理系统的统一编程界面。
目前,许多数据库系统均支持SQL,对于由SQL数据库组成的异构数据库系统,JDBC和ODBC为访问其异构成员提供了统一的方式,也为各异构成员之间的协作和多个成员之间的操作打下了基础。当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。▲