电子商务的本质就是对处于分布环境中的各种计算机应用系统进行交流协调,从而开创新的商业运作模式。数据管理技术是实现电子商务信息处理的基础和条件;计算机网络通信技术,尤其是Internet技术,是电子商务的通信基础,而管理和传输系统之间的业务信息、协调各个系统的处理模块的中间管理服务系统,是保证电子商务应用成功的关键。
本章主要内容
& 数据库技术、数据仓库与数据挖掘
& 计算机网络及其分类
& 网络体系结构、OSI参考模型
& 网络协议、网络互连设备
& 局域网、无线局域网、广域网
& Internet技术、IP地址与域名
& Internet接入技术ADSL、DDN、GPRS、CDMA
& Internet的功能与应用
& Web开发技术、Web工作基本原理
& Web服务器、虚拟主机与服务器托管
& Web编程语言、XML、ASP、PHP、JSP、ASP.NET
& C/S模式与B/S模式
& 中间件技术与电子商务
何谓信息,何谓数据,信息与数据有何区别,不同的人有不同的看法。数据(Data),一般意义上认为是客观实体的属性值。例如夏天买西瓜,一个西瓜有6000克重,这6000克就是数据;一张床长×宽为190mm×130mm,这190mm和130mm也是数据。除数值数据外,文字也是数据,声音、语言、图形等等也是数据。而信息(Information)有许多定义,我国国家标准GB489885《情报与文献工作词汇基本术语》中,关于“信息”的解释是:“Information是物质存在的一种方式、形态或运动状态,也是事物的一种普遍属性,一般指数据、消息中所包含的意义,可以使消息中所描述事件的不定性减少。”例如“某公司2006年的营业额为800万元”是一条信息,而“某公司”、“2006年”、“营业额”、“800万元”等都只是数据。在文献中常见对信息的定义还有:“信息是数据加工的结果”,“信息是帮助人们做出正确决策的知识”,“信息是能够导致某种决策行动的外界情况”。从上面定义可以归纳如下几条:
(1)信息是有一定含义的数据。
(2)信息是加工(处理)后的数据。
(3)信息是对决策有价值的数据。
数据处理是指对各种形式的数据进行收集、储存、加工和传播的一系列活动的总和。其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;是为了借助计算机科学地保存和管理复杂的大量的数据,以便人们能方便而充分地利用这些宝贵的信息资源。
数据处理的中心问题是数据管理。数据管理指的是对数据的分类、组织、编码、储存、检索和维护。在计算机处理中,数据的管理显示了其更加重要的作用。数据管理技术经历了人工管理阶段、文件系统阶段、数据库系统阶段。
这个时期的计算机主要用于科学计算。从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。
这个时期数据管理的特点是:
(1)数据不能存储。该时期的计算机主要应用于科学计算,一般不需要将数据长期保存,只是在计算某一课题时将数据输入,用完后不保存原始数据,也不保存计算结果。
(2)没有对数据进行管理的软件系统。程序员不仅要规定数据的逻辑结构,而且还要在程序中设计物理结构,包括存储结构、存取方法、输入输出方式等。因此程序中存取数据的子程序随着存储的改变而改变,数据与程序不具有一致性。
(3)没有文件的概念。由于数据和应用程序组织在一起,当数据的逻辑结构或物理结构改变时,要通过改变应用程序来实现;当应用程序改变时,数据的逻辑结构和物理结构也要发生相应的改变。数据和应用程序之间缺乏独立性。
(4)数据不能共享。一组数据对应于一个程序,数据是面向应用的。即使两个程序用到相同的数据,也必须各自定义、各自组织,数据无法共享、无法相互利用和互相参照,从而导致程序和程序之间有大量重复的数据。
人工管理阶段数据和应用程序之间的关系如图3-1所示。
这个时期的计算机不仅用于科学计算,而且还大量用于管理数据。在硬件方面,外存储器有了磁盘、磁鼓等直接存取的存储设备。在软件方面,操作系统中已经有了专门用于管理数据的软件,称为文件系统。
图3-1 人工管理阶段数据和应用程序之间的关系图
这个时期数据管理的特点是:
(1)数据可以长期保存。数据以独立数据文件的形式长期存储在外存储器上,可以被应用程序随时访问,对文件进行查询、修改、插入和删除等操作。
(2)应用程序和数据之间具有“设备独立性”。操作系统提供了文件管理功能和访问文件的存取方法,程序和数据之间有了数据存取的接口,程序可以通过文件名和数据打交道,不必再寻找数据的物理存放位置,数据具有了“设备独立性”,即数据的存储设备发生改变时不影响应用程序。至此,数据有了物理结构和逻辑结构的区别,但此时程序和数据之间的独立性尚还不充分。
(3)文件的形式已经多样化。由于已经有了直接存取的存储设备,文件也就不再局限于顺序文件,还有了索引文件、链表文件等,因而,对文件的访问可以是顺序访问,也可以是直接访问。
(4)数据的存取基本上以记录为单位。
文件管理阶段程序和数据之间的关系如图3-2所示。
图3-2 文件管理阶段数据和应用程序之间的关系图
随着数据管理要求的提高,处理的数据量不断增加,数据的共享性的要求越来越强,为提高数据处理的效率,加上计算机硬件技术的提高,数据库技术应运而生。数据库系统中的数据是长期存储在计算机中大量的、有组织的、可以共享的,冗余度小、独立性强,可以统一管理和控制的数据的集合。
数据库管理阶段的特点是:
(1)有专门的数据管理软件——数据库管理系统(DBMS),对数据实施统一的管理和控制。数据库管理系统是计算机厂商提供的数据管理软件,数据库系统中的数据由DBMS统一管理和控制,这些控制包括数据的完整性控制、数据的恢复、并发控制、事务支持。数据库系统的数据对系统中的用户是共享资源,由DMBS统一管理,所有的应用程序可以同时存取数据库中的数据,DBMS还提供方便的用户接口,利用命令(数据库语言)对数据库中的数据实施查询和更新操作,从某种程度上说,DBMS系统软件的发展水平标志着数据库技术的发展水平。
(2)数据结构化。数据库系统的数据都是统一设计,用复杂的数据模型表示数据。数据模型不仅描述数据本身的特点,还描述数据之间的联系。数据不再面向特定的一个或多个应用程序,而是面向整个应用系统。
(3)数据共享性高、冗余度小。数据库系统中数据是独立于应用系统的,不为某个或某类应用系统而设计,多个应用程序可以同时访问数据库中的数据,甚至可以同时访问同一个数据,达到数据的共享。同时数据库中的数据是专门设计的,有效地控制了数据的冗余,保持了数据的一致性。
(4)数据独立性高。数据库系统中的数据具有较高的数据独立性,这主要是指数据与应用程序之间的独立。数据库系统中数据结构采用三级结构:用户逻辑结构、数据库整体逻辑结构、数据库的物理结构。每级结构之间具有相应的独立性,这种独立性使得在数据库的整体逻辑结构改变时尽量不影响用户的逻辑结构;当数据库的物理结构发生改变时尽量不影响数据的整体逻辑结构。数据和应用程序具有较好的独立性。
(5)数据操作灵活。可以整体操作数据库中的数据、可以方便地操作其中的某些数据或数据项,进行数据的查询和更新操作,也可以方便地进行数据的扩展。
数据库管理阶段的程序和数据之间的关系如图3-3所示。
图3-3 数据库管理阶段的程序和数据之间的关系图
数据库技术是20世纪60年代开始发展起来的一门数据管理自动化的综合性新技术。数据库的应用领域相当广泛,从一般事务处理,到各种专门化数据的存储与管理,都可以建立不同类型的数据库。
广义上来说,实际的数据库系统由下面几部分构成:
· 计算机硬件、软件,包括操作系统、中文平台等。
· 数据库管理系统、应用开发工具。
· 数据库。
· 应用系统。
· 数据库管理员、用户等。
(1)数据库。
数据库是数据处理的最新技术,是一种先进的软件工程。简单地说,数据库是一个提供数据的基地。它是保存数据并且负责用户从此访问有用数据的机构。确切地说,数据库是某个企事业单位存储在计算机内的一组业务数据,它能以最佳方式、最少的数据重复为这个单位中的所有可能的应用系统所共享。
数据库中的业务数据是以一定的组织方式存储在一起的相互有关的数据整体。即数据库中保存的是相关数据;数据库中的数据是一种相对稳定的中间数据,它既不同于输入数据,也不同于输出数据。尽管输入数据可能经过应用程序的加工处理转变为业务数据而存入数据库,或者更新原有数据;输出数据是从数据库中的数据推导产生出来的数据,但是它们本身却不是数据库中的一部分。
数据库是以一定的组织方式存储在计算机中相互有关数据的集合,它能以最佳方式、最少的重复、最大的独立性为多种应用服务。
(2)数据库系统。
数据库系统是为了组织和存取大量数据的管理系统,是帮助用户使用数据库的工具。它是由计算机系统与数据库、数据库管理系统、应用程序、数据库管理员组成。
在数据库系统中,用户不能直接对数据库操作,必须有一套专门管理数据存取的系统,此系统就是数据库管理系统(DataBase Management System,DBMS)。DBMS是用户与数据库之间的桥梁,它是管理和维护数据库的一组软件,它的主要功能是维持数据系统的正常活动,接收并回答用户提出的访问数据库的各种应用要求,如检索、存储数据等。用户使用数据库是目的,数据库管理系统是帮助达到这一目的的工具和手段。
数据的独立性,数据的最小冗余度和数据的最多共享性是数据库系统的主要特性。
(3)数据库管理员(DBA)。
要想成功地运行数据库系统,就要配备高素质的数据库管理人员,他们是控制数据整体结构的人员。因此要求数据库管理员必须熟悉企业全部数据的性质和用途;对用户的需求有充分的了解;对系统的性能非常熟悉。数据库管理员承担创建、监控和维护整个数据库结构的责任。
在数据库系统中,数据库管理系统是系统的核心,数据库管理系统功能的强弱,对数据库系统的性能起决定性的作用。数据库系统结构如图3-4所示。
图3-4 数据库系统结构示意图
(1)数据组织。
为了高效率地对数据进行处理,必须把大量的、分散在企业中的各种数据加以有目的、有次序地组织后,以一定的方式存放在各种存储介质上。数据库中将数据分为四级组织单位存储,它们分别是数据项、记录、文件和数据库。
①数据项。数据项也称字段,是用来描述实体属性的。对数据项命名应尽量使名和义结合起来,一般采用属性名作为描述它的字段名。
②记录。在数据库中,描述对象的数据称为记录,它包括记录类型和记录值两方面。记录类型只是指出记录的构造或框架,只有给这个框架的每个数据项取值后才得到记录,因此记录类型是数据项的集合,记录值是数据项值的集合。
③文件。每一个文件都有可以鉴别的文件名。在一个存储器(如磁盘)上可以存有好几个文件,反之,一个文件也可以占用好几个存储器。
一个文件的全部记录,其记录长度可能都相等,叫定长记录的文件;记录长度可能不完全相等,叫变长记录文件。变长记录文件可节省存储单元,但会使程序编制复杂化。
④数据库。数据库是数据组织层次中的最高级别。它是逻辑相关文件的集合。
(2)实体—联系模型。
数据库中存储的是数据,这些数据反映了现实世界中有意义、有价值的信息,它不仅反映数据本身的内容,而且反映数据之间的联系。那么如何抽象表示、处理现实世界中的数据和信息呢?这就需要使用数据模型这个工具,数据模型是数据库中用于提供信息表示和操作手段的形式框架,它是将现实世界转换为数据世界的桥梁。
目前广为使用的模型大致可分为两种:一种称为概念模型(信息模型),它的建立独立于任何计算机系统,如实体—联系模型;另一种称为基本数据模型,它是按计算机系统的观点对数据建模,如网状模型、层次模型、关系模型。这两种模型可以看成两个过程,一般在数据库设计时,先调研某个企业、组织或部门的情况,为其建立概念模型,其次再将概念模型转换为基本数据模型,最终在计算机中得以实现,如图3-5所示。
图3-5 数据模型
概念模型的特点是完全不涉及信息在计算机中的表示问题,只描述组织中特定的有意义的信息结构,因而这类模型概念简单、清晰,易于用户理解,它的语义表达能力很强,能够方便、直接地表达应用中的各种语义知识。而基本数据模型的特点是与计算机系统密切相关,它直接面向数据库中数据的逻辑结构,它通常有一组严格定义了的语法和语义的语言,人们可以使用它来定义、操纵数据库中的数据,它是现实世界中的信息最终在机器世界得到的反映。
实体—联系模型(即E-R模型),实体—联系模型包含了实体、联系、属性三个成分,它可将现实世界中的客观对象抽象为某一种信息结构,这种结构并不依赖于计算机系统,它的基于语义单位是实体与联系。
所谓实体,是指客观存在并可相互区分的事物。从具体的人、物、事件到抽象的状态与概念都可以用实体抽象地表示,例如,在学校里,一个学生,一个老师,一门课程都是实体。
所谓属性,是指实体所具有的某一特性。一个实体可由若干属性来刻画。例如,职工实体可由职工编号、姓名、性别、部门、职务、年龄、学历等属性组成。
所谓联系,是事物内部或事物之间语义关系的抽象表示。由于现实世界的事物之间是有联系的,那么在信息世界中也要反映出这种联系来,在实体—联系模型中将联系分为三类:
①一对一联系(1∶1)。如旅客与座位之间就是一对一的联系,因为一个人只能坐一个座位,一个座位只能由一个人来坐。
②一对多联系(1∶n)。如部门与职工之间是一对多联系,因为一个部门可有若干个职工,但一个职工只能属于一个部门。
③多对多联系(m∶n)。如职工与培训课程之间为多对多联系,因为一个职工可以学习多个培训课程,一个培训课程可由多个职工学习。
E-R模型可用图形形象地加以表示,最常用的是E-R图。它的主要思想是以矩形框表示实体型,菱形框表示联系,椭圆形框表示属性,相应的实体名、联系名、属性名均写入框中,然后用无向线段将上述框联起来,在联系实体型的线段上标上联系的类型(1∶1、1∶n或m∶n)。
E-R图是抽象描述现实世界的有力工具,它与计算机系统所支持的数据模型相独立,它更接近于现实世界。虽然现实世界丰富多彩,各种信息十分繁杂,但用E-R 图可以很清晰地表示出其中的错综复杂关系。
(3)数据模型。
数据模型是数据库系统的核心,是对客观事物及其联系的数据描述,它反映了实体内部和实体之间的联系。即实体模型的数据化,是指数据库中排列、组织所遵循的规则,以及对数据所能进行操作的总体。简单地说,数据模型是标识实体之间联系的模型。
数据模型设计的好坏直接影响数据库的性能,一个基本数据模型实际上给出了一个通用的在计算机系统上可实现的描述和动态地模拟现实世界信息结构及其变化的抽象方法。为了在计算机系统上实现这种方法,人们开发了相应的支持软件,这就是数据库管理系统DBMS。显然,DBMS是因其支持的数据模型而异。
目前在数据库技术中使用最广泛的基本数据模型有三种:层次模型(Hierachical Model)、网状模型(Network Model)、关系模型(Relational Model)。数据模型把数据逻辑地组成为数据库,使得用户能够有效地存取和处理数据。
①层次模型。层次模型是较早用于数据库技术的一种数据模型,使用该模型的典型系统是IBM公司的IMS。层次模型的典型数据结构是以记录类型为节点的有向树,它把整个数据库的结构表示成为一个有序树的集合,而这些有序树的每一个节点是一个由若干数据项组成的逻辑记录型。
在现实世界中,具有层次型联系的事物是很多的,如组织机构,各种生物或非生物的类别归属,需要区分主目和细目的文件等等,用层次模型来描述它们非常自然、直观。结构简单、层次清晰,易于理解,这些是层次模型突出的优点。但另一方面,层次模型很难表示出那些非层次型的系统,即使表示出来也非常不自然,另外层次模型的数据库不仅在逻辑上而且在物理上都是按有序树结构来组织的,这使得数据库模式适应变化的能力很差,如要对数据库模式稍加修改,就要整个地对数据库进行重新组织,这无疑大幅度地增加了系统的开销,层次模型的这一缺陷使它很难适应许多信息需求动态变化的应用环境。
②网状模型。网状模型以系结构为基础,它是系的集合。系从图论的观点来看是一棵二级树,二级树的根称为首记录,其子记录称为属记录。一个网状模型可以分解成若干个系,但它本身与树状结构又有所区别,主要区别在于:可以有一个以上的节点无双亲;至少有一个节点有多于一个的双亲。
与层次模型相比,网状模型的表示能力、精巧性和直接性都要强得多。网状模型不仅可以直接表示层次体系的传统结构,而且在表示网状结构体系、多元联系等方面都较层次模型直观、易于理解得多。另外,网状数据库系统的查询效率较高,这是它至今仍拥有大量用户和吸引力的最重要原因。但网状模型也存在一些严重的缺点,为了使命令结构简单,模型的设计者们在数据操作命令中隐蔽了大量的过程细节,但这样做也带来了副作用,即很难简单地从阅读一段程序中的命令序列来判定程序的执行效果,这使程序的理解性降低。另一个值得注意的特点是网状模型在数据库模式设计中包含了许多物理存储的细节,这使系统的数据独立性降低,当某些存储结构发生改变时,原有的应用程序也不得不修改,这就使程序维护的工作量大大增加。
③关系模型。关系模型的理论基础是数学理论,数据的操作通过关系运算实现。在关系模型中用二维表表示实体及实体之间的联系,关系模型的实例称为关系,而从数学的观点上看,关系是集合,其中的元素是元组(记录)。同时可以遵循一定的规则,将E-R模型转换成关系模型。
在关系模型中,信息被组织成若干张二维表的结构,每一张二维表称为一个关系(relation)或表,每个表中的信息只用来描述客观世界中的一件事情。
关系模型与层次和网状模型最大的区别是用关键字而不是用指针做向导来操作数据,数据的操纵是通过关系的运算来完成的,而且关系的数据模型是二维表,简单、易懂,编写应用程序时不涉及存储结构、访问技术等细节,因此关系模型得到了广泛的应用,一些以前的、正在使用的层次、网状模型数据库系统也设计了关系模型的用户接口。
④面向对象模型。虽然在数据处理领域,关系数据库的使用相当普遍,但是现实世界存在着许多含有更复杂数据结构的实际应用领域,如CAD数据、图形数据等,因此需要有一种数据模型来表达这种信息,在人工智能研究中也出现了类似的需要,这种数据模型就是面向对象的数据模型。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每个分支。面向对象数据库是面向对象技术和数据库技术相结合的产物。面向对象数据模型的核心概念是:
· 对象。对象是现实世界中实体的模型化,与记录的概念相仿,但远比记录复杂。每个对象有一个唯一的标识符,称为对象标识(OID),对象的标识不同于关系模式中记录的标识(关键字),它是独立于具体的值、是全系统唯一的。
· 封装。每一个对象是状态和行为的封装。状态是该对象属性的集合,行为是在该对象状态上操作方法的集合。
· 对象的属性。对象的属性描述对象的状态、组成和特性,对象的属性可以是单个的值或值的集合。对象的一个属性本身在该属性看来也是一个对象。
· 类和类层次。属性集和方法集相同的所有对象构成一个对象类。任何一个对象都是某个对象类的一个实例。对象类中属性的定义域可以是任何类;所有的类组成了一个有根、有向、无环图,称为类层次。一个类可以直接或间接地从其祖先(超类)中继承所有的属性和方法,这个类称为祖先类(超类)的子类。
· 继承。子类可以从超类中继承所有属性和方法,称为类继承。类继承可分为单继承和多重继承,单继承指的是一个类只能有一个超类,多重继承指的是一个类可以有多个超类。
面向对象的数据模型比层次模型、网状模型、关系模型的数据模型具有更加丰富的表达能力。但正因为面向对象模型具有丰富的表达能力,模型相对复杂,实现起来较困难。
目前已从多方面发展了现行的数据库系统技术。可以从数据模型、新技术内容、应用领域三个方面概括新一代数据库系统的发展。
(1)面向对象的方法和技术对数据库发展的影响最为深远。
20世纪80年代,面向对象的方法和技术的出现,对计算机各个领域,包括程序设计语言、软件工程、信息系统设计以及计算机硬件设备等都产生了深远的影响,也给面临新挑战的数据库技术带来了新的机遇和希望。数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象的数据库模型。当前有许多研究是建立在数据库已有的成果和技术上的,针对不同的应用,对传统的DBMS,主要是RDBMS进行不同层次上的扩充,例如建立对象关系(OR)模型和建立对象关系数据库(ORDB)。
(2)数据库技术与多学科技术的有机结合。
数据库技术与多学科技术的有机结合是当前数据库发展的重要特征。计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。传统的数据库技术和其他计算机技术的结合、互相渗透,使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型的数据库,如分布式数据库、并行数据库、演绎数据库、知识库、多媒体库、移动数据库等,它们共同构成了数据库大家族。
(3)面向专门应用领域的数据库技术的研究。
为了适应数据库应用多元化的要求,在传统数据库基础上,结合各个专门应用领域的特点,研究适合该应用领域的数据库技术,如工程数据库、统计数据库、科学数据库、空间数据库、地理数据库、Web数据库等,这是当前数据库技术发展的又一重要特征。
同时,数据库系统结构也由主机/终端的集中式结构发展到网络环境的分布式结构,随后又发展成两层、三层或多层客户/服务器结构以及Internet环境下的浏览器/服务器和移动环境下的动态结构。多种数据库结构满足了不同应用的需求,适应了不同的应用环境。
随着数据库技术的应用和发展,人们尝试对数据库中的数据进行再加工,形成一个综合的,面向分析的环境,以更好地支持决策分析,从而形成了数据仓库技术。
现代商业的灾难是数据太多而信息不足。企业能用得上的只是数据,而不是信息——更不是在适当的时间出现的适当的信息。能在适当的时间里提供适当的信息,这正是数据仓库的目的。数据仓库技术就是要把分散存放在企业各个地方的数据集中到一起,并利用这些数据制定出更好的决策。决策支持的概念很广,它既可以简单到每周把生产报表送到一线经理手中,也可以复杂到运用神经网络建立潜在顾客模型,以便银行决定该给哪些顾客提供信用支持。这两极之间任何为了改善决策而使用数据,都可以称为“决策支持”。
由“决策支持”的概念自然而然地就联系到数据挖掘。数据挖掘的目的就是要从数据中找出可用的模式,从而对数据的“干净”、“一致”有着不容置疑的严格要求。数据挖掘要做的工作包括识别数据、获取数据和清洗数据。如果企业有了一个设计良好的数据仓库,那么就能为数据挖掘提供适用的必要数据。如果在设计数据仓库的时候考虑到了对数据挖掘应用程序的支持,那么这个数据仓库就能为数据挖掘提供巨大的便利并加快数据挖掘的速度。数据仓库技术和数据挖掘技术的配合能够创造出巨大的价值。数据挖掘能将几乎完全被弃置不用的数据源转化成可用的信息,从而在很大程度上实现了数据仓库的任务。
数据仓库(Data Warhouse)是计算机应用领域里的一个崭新方向,它是一种信息管理技术,其研究的主要宗旨是通过通畅、合理、全面的信息管理,来达到对管理决策的支持。
从概念上说,数据仓库的基础十分广泛,具有一种能力。它实质上是把运作数据转换成商业信息,帮助公司解决许多不同的复杂商业难题。从技术上说,数据仓库是企业内部各单位的运作数据和事务数据的中央仓库,这些数据经过了归化、平衡、协调和编辑。它是为最终用户进行分析处理而专门设计的,使最终用户可以针对任何一个经营单位或整个企业、用任何一个需要的参数去存取市场数据以及客户、产品或事务的信息。
数据仓库不是一个静止不变的产品,而是一个动态的、不断变化的过程——这个过程为全企业的管理系统奠定信息基础。该系统可用来测算利润、管理和分析风险、进行市场分析、帮助规划和加强客户服务计划及市场推进计划。与现买现装的产品不同,成功的数据仓库实际上是一个过程。它要求公司仔细分析本公司的基本原则,决定需要哪些运作数据和外部数据源,然后利用一种严密的方法把所有的数据集中起来,再变换成有用的信息。
数据仓库是测算利润、管理和分析风险、进行市场分析,以及加强客户服务与营销活动等的催化技术;它在支持和管理突飞猛进的商业变化以及在保持这种竞争优势方面已日益扮演着举足轻重的角色。
数据仓库的主要功能是提供企业决策支持系统(DSS)或行政和信息系统(EIS)所需要的信息,它把企业日常营运中分散不一致的数据经归纳整理之后转换为集中统一的、可随时取用的深层信息,这种信息虽然也是按关系数据库的存储结构存储起来的,但与面向逐条记录的OLTP(联机事务处理)不同,在数据仓库中的一条记录,有可能是基础数据中若干个表、若干条记录的归纳和汇总。
数据仓库的基本特点为:
(1)数据仓库存储的信息是面向主题来组织的。它根据所需要的信息,分不同类、不同角度等主题把数据整理之后存储存来(按横向对数据进行分类存储)。
(2)数据仓库中要有一处专门用来存储5~10年或更久的历史数据,以满足比较、预测之用的数据需求(按纵向对数据进行分类存储)。
(3)不论数据来源于何处,进入数据仓库之后都具有统一的数据结构和编码规则,数据仓库中的数据具有一致性的特点。
(4)数据仓库是一个信息源,它只是为在其上开发的DSS或EIS等提供数据服务,因此它应是只读数据库,一般不轻易做改动,只能定期刷新。
数据仓库中的信息存储,是根据对数据的不同深度处理来分成不同层次的。其结构一般划分为以下几个方面:
(1)历史性详细数据层。它存储历史数据,供分析、建模、预测之用。
(2)当前详细数据层。存储最新详细数据,是进一步分析数据的基础。
(3)不同程序的归纳总结信息层。可包含多个层次,根据所需分类和归纳的不同深度而定,如按周、月、年统计的数据。
(4)专业分析信息层。进一步专业分析的结果,如统计分析、运筹分析、时间序列分析以及表面数据的内在规律分析等。
(5)结构信息。数据仓库的内部结构信息,反映各种信息在数据仓库中的位置分布和处理方式等,以便检索查询之用。
(1)定义部件。定义部件由(数据)仓库设计人员和管理人员用来:①设计和定义数据仓库的数据库;②定义由仓库数据获得的数据来源;③确定在将数据从源系统向数据仓库的数据库复制时进行的数据清理和增强的规则。此部件的输出作为信息目录部件的元数据储存。
(2)数据采集部件。数据仓库系统的主要目标之一是要以业务用户容易理解和使用的形式存放公司数据。数据采集部件通过把数据从源系统中提取出来并依据定义部件定义的规则清理和交换数据,从而达到上述目标。清理可能需要对记录或字段的重建结构、去除只与日常运作有关的数据、对字段值的译码和解释、提供丢失的字段值,以及检查数据的完整性和一致性、变换可能涉及增加时间字段来反映数据、数据摘要或推导值计算的现时性。一旦源数据已被清理和变换,它就被映像到目标仓库的数据库、输送到数据仓库系统以及装入(或更新)相应的仓库数据库。
(3)管理部件。管理部件由一组供其他仓库部件使用和管理仓库数据集合的服务组成。数据集合是一组对特定用户或用户群感兴趣的数据。数据集合是从数据采集部件生成的基础数据中得到的。管理部件提供的服务包括对从仓库的基本数据推导出来的新数据集合的数据维护服务、把仓库数据外送至分散的仓库数据库服务器和其他最终用户决策支持系统的分配服务。管理部件还提供对仓库数据和数据集合的安全、归档、备份和恢复以及监测等项的处理服务。这些服务常常要用到基本操作系统和数据库软件提供的一些功能。
(4)信息目录部件。数据仓库的信息目录部件包含了关于仓库数据库中数据的信息(称作元数据)。信息目录的主要长处是有助于业务用户了解仓库存放了哪些信息以及如何访问和使用它们。
信息目录的三大部分是技术目录、业务目录以及信息引导器。
(5)DBMS部件。DBMS部件由维护和检索仓库数据的数据库软件组成。在为数据库仓库系统选购数据库产品时两项关键考虑是可扩缩性和速度性能。一旦仓库的价值被认识后,仓库数据库通常就非常快速增长,DBMS能否高度可扩缩便是至关紧要的了。由于仓库数据库可以含有大量千兆字节的数据,故数据库产品在处理这些极大的数据库数据时必须能提供高速性能。
(6)数据访问和分析部件。数据访问和分析部件提供了让用户研究和分析数据仓库的工具,以便让他们改进决策和增强竞争优势。这些工具包括从查询生成工具到复杂数据分析的多维产品以及数据采集工具等。
数据库是面向事务的设计,数据仓库是面向主题设计的;数据库一般存储在线交易数据,数据仓库存储的一般是历史数据;数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计;数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表;数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。
数据仓库是一种概念,不是一种产品,它包括E-mail文档、语音邮件文档、CD-ROM、多媒体信息以及还未考虑到的数据。数据仓库最根本的特点是物理地存放数据,而且这些数据并非是最新的、专有的,而是来源于其他的数据库。数据仓库的建立并不是要取代原有的数据库,而是建立在一个较全面、完善的信息应用的基础上,用于支持高层决策分析。数据仓库是数据库技术的一种新的应用,它是用数据库管理系统来管理其中的数据。
数据仓库的关键是数据库,以辩证的眼光来看,数据仓库的兴起实际上是数据管理的一种回归,是螺旋式的上升。
随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,在大量的数据背后隐藏着许多重要的信息,如果能把这些信息从数据库中抽取出来,将为公司创造很多潜在的利润,而这种从海量数据库中挖掘信息的技术,就称之为数据挖掘。
从技术上来说,数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
从商业角度来看,数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。
数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。
从商业数据到商业信息的进化过程中,每一步前进都是建立在上一步的基础上的,如表3-1所示。从表中可以看到,数据挖掘阶段的进化是革命性的,因为从用户的角度来看,这一阶段的数据库技术已经可以快速地回答商业上的很多问题了。
表3-1 数据挖掘的进化历程
进化阶段 |
商业问题 |
支持技术 |
产品厂家 |
产品特点 |
数据搜集 (20世纪 60年代) |
“过去三年中公司的总收入是多少” |
计算机、磁带和磁盘 |
IBM,CDC |
提供历史性的、静态的数据数据信息 |
数据访问 (20世纪 80年代) |
“在广州的分部去年九月的销售额是多少” |
关系数据库(RDBMS),结构化查询语言(SQL),ODBC |
Oracle、Sybase、IBM、Microsoft |
在记录级提供历史性的、动态数据信息 |
续上表
进化阶段 |
商业问题 |
支持技术 |
产品厂家 |
产品特点 |
数据仓库: 决策支持 (20世纪 90年代) |
“在广州的分部去年九月的销售额是多少?上海据此可得出什么结论?” |
联机分析处理(OLAP)、多维数据库、数据仓库 |
Pilot、Comshare、Arbor、Cognos、Microstrategy |
在各种层次上提供回溯的、动态的数据信息 |
数据挖掘 (正在流行) |
“下个月上海的销售会怎么样?为什么” |
高级算法、多处理器计算机、海量数据库 |
SPSS、SAS、IBM、SGI等其他公司 |
提供预测性的信息 |
数据挖掘的核心模块技术历经了数十年的发展,其中包括数理统计、人工智能、机器学习等。在数据挖掘中最常用的技术有:
· 人工神经网络。仿照生理神经网络结构的非线形预测模型,通过学习进行模式识别。
· 决策树。代表着决策集的树形结构。
· 遗传算法。基于进化理论,并采用遗传结合、遗传变异以及自然选择等设计方法的优化技术。
· 近邻算法。将数据集合中每一个记录进行分类的方法。
· 规则推导。从统计意义上对数据中的“如果—那么”规则进行寻找和推导。
今天,这些成熟的技术,加上高性能的关系数据库引擎以及广泛的数据集成,让数据挖掘技术在当前的数据仓库环境中进入了实用的阶段。
(1)定义问题。清晰地定义出业务问题,确定数据挖掘的目的。
(2)数据准备。①选择数据:在大型数据库和数据仓库目标中提取数据挖掘的目标数据集。②数据预处理:进行数据再加工,包括检查数据的完整性及数据的一致性、去噪声,填补丢失的域,删除无效数据等。
(3)数据挖掘。根据数据功能的类型和数据的特点选择相应的算法,在净化和转换过的数据集上进行数据挖掘。
(4)结果分析。对数据挖掘的结果进行解释和评价,转换成为能够最终被用户理解的知识。
(5)知识的运用。将分析所得到的知识集成到业务信息系统的组织结构中去。
数据挖掘工具是怎样准确地推断那些隐藏在数据库深处的重要信息的呢?它们又是如何作出预测的?答案就是建模。建模实际上就是在知道结果的情况下建立起一种模型,并且把这种模型应用到所不知道的那种情况中。比如说,如果想要在大海上去寻找一艘古老的西班牙沉船,也许首先就是去找找过去发现这些宝藏的时间和地点有哪些。那么,经过调查发现这些沉船大部分都是在百慕大海区被发现,并且那个海区有着某种特征的洋流,以及那个时代的航线也有一定的特征可寻。在这众多的类似特征中,将它们抽象并概括为一个普适的模型。利用这个模型,就很有希望在具有大量相同特征的另外一个地点发现一个不为人知的宝藏。