2.5 数据库系统平台
2.5.1 数据处理技术的发展
在当今的信息社会,信息资源已经成为最重要的社会资源之一。人们的全部社会活动 (生产、交流、生活等)都离不开数据信息。对数据的采集、储存、分析加工、检索使用和维护管理工作更是我们每天自觉或不自觉地开展的大量烦琐工作。例如,每天的工作、活动日程安排,个人 (或家庭)的收支账目、股票价格的涨跌变化等,更不用说生产管理、办公管理中大量事务性处理工作无处不在,每时每刻都有大量的对数据的处理和管理工作。
计算机的应用为高效率、低成本精确进行数据处理提供了有利的条件,建立相应的信息处理系统便成为社会、企业、部门,甚至家庭或个人生存和发展的重要支柱。
数据处理实际上包括对各种类型数据进行加工的处理操作,以及将处理过的数据合理组织、存储,随时为用户服务的管理操作。数据处理包括对数据的采集、整理、存储、加工、传输等;数据管理包括对数据的分类、编码、组织、存储、检索、维护等。
数据处理的目的在于,不但要从大量的、原始的数据中获得我们所需要的资料并提取有用的数据成分,而且要管理好这些数据信息,以便人们能够随时提取和使用它们。所以数据处理是基础,数据管理是核心。
随着电子计算机软件和硬件技术的发展,数据处理过程发生了划时代的变革,数据库技术的发展又使数据处理跨入了一个崭新的阶段。一般认为,数据处理技术的发展经历了三个阶段。
1.人工管理阶段
20世纪50年代以前,计算机主要用于数值计算,因为要处理的数据量不大,所以没有专门的软件对数据进行管理,在程序中既要考虑处理过程,又要考虑数据的定义和组织,程序和数据总是联系在一起的,并且数据随着计算处理的结束而退出计算机。其中程序和数据之间的对应关系如图2—14所示。
图2—14 人工管理阶段程序与数据的关系
因为每个应用程序都有属于自己的一组数据,各应用程序之间不能互相调用,所以必须在处理同一批数据的多个应用程序中重复存放这些数据,从而造成大量的数据冗余,不但加大了存储的容量,而且容易造成数据的不一致。
2.文件系统阶段
到了60年代中期,由于大容量数据存储器的出现,为适合科学计算及简单数据管理的需要,人们将数据从程序中分离出来,组成相互独立的数据文件。文件系统建立了数据文件内部的数据结构,每个程序都通过自己的文件系统和相应的数据联系,每个文件系统都管理着某个程序需要的数据。其中程序和数据之间的对应关系如图2—15所示。
但是各数据文件之间没有联系,或者说文件系统在整体上是无结构的。如果需要这种联系,只能靠建立专门的程序来实现。
图2—15 文件阶段程序与数据的关系
3.数据库系统阶段
到了60年代后期,随着计算机在管理领域的应用,数据处理的规模急剧增长,对数据处理的精度、速度也不断提出更高的要求。为了满足这种不断增长的要求,人们不但需要更先进的计算机,而且需要更先进的数据组织与管理技术。于是,一种新的数据处理方法——数据库技术出现了。
数据库技术一方面实现了数据与程序的完全独立,另一方面实现了数据的统一管理。众多程序或应用需要的各种数据,全部交给数据库系统管理,大大压缩了冗余数据,实现了多用户、多应用数据的共享。其中程序和数据之间的对应关系如图2—16所示。
图2—16 数据库阶段程序与数据的关系
数据库系统是在文件系统的基础上发展起来的。由于数据库具有数据结构化、高度共享、冗余度低、程序和数据相互独立、易于扩充、易于编制应用程序等优点,因此一出现便得到了迅速的发展。目前国内开发使用的管理信息系统都是以数据库为基础的。同时,数据库的应用范围已经从一般的事务处理扩展到计算机辅助设计、人工智能、软件工程、电子设计自动化 (EDA)、办公室自动化、多媒体等计算机应用的各个领域。
2.5.2 数据库系统的组成
数据库系统 (data base system)是指以计算机系统为基础,以数据库方式管理大量共享数据的综合系统。它一般由数据库、计算机硬软件系统、数据库管理系统、数据库管理员和用户 (最终用户、应用程序设计员)五个部分构成。人们习惯上常常把数据库系统简称为数据库,但是应当注意和仅有相关数据集合的数据库概念相区别。数据库系统各部分的层次结构可以用图2—17表示。
1.数据库
数据库 (data base, DB)可以定义为:以一定的组织方式将特定组织各项应
图2—17 数据库系统的组成结构
用相关的全部数据组织在一起并存储在外存储器上所形成的、能为多个用户共享的、与应用程序彼此独立的一组相互关联的数据集合。
数据库不是根据某个用户的需要,而是按照信息的自然联系构造数据。它能以最佳的方式,最少的冗余,为多个用户或多个应用共享服务。
数据库的主体是相关应用所需的全部业务数据的集合,称为物理数据库;另外还用一个数据字典系统存放各级数据结构的描述,称为描述数据库。
2.硬件支持系统
计算机硬件是数据库赖以存在的物理设备,特别是必须有足够大的内存储器、大容量的磁盘和光盘等直接存取设备,以及较好的传输数据的设备等。
3.软件支持系统
最主要的是数据库管理系统 (DBMS)软件,它是在计算机操作系统支持下运行的庞大的系统软件,是数据库系统的核心。利用这个软件,用户可以实现数据库的创建、操作使用和维护。
当然,任何软件都必须在计算机操作系统的支持下运行,所以数据库系统还必须选择与数据库管理系统软件相适应的操作系统。
一般的数据库管理系统软件都自含程序开发设计语言,否则就必须使用其他的程序设计语言及软件开发工具。
4.数据库管理员
对于较大规模的数据库系统来说,必须有专人全面负责建立、维护和管理,承担这项任务的人员称为数据库管理员 (DBA)。数据库管理员负责保护和控制数据,使得数据能够被任何有权使用的人有效利用。其职责是:定义并存储数据库的内容,监督和控制数据库的使用,负责数据库的日常维护,必要时重新组织和改进数据库。
5.用户
数据库系统的用户主要有两种:一种是对数据库进行联机查询和通过数据库应用系统提供的界面 (菜单、表格、窗口、报表等)使用数据库的最终用户,另一种是负责应用程序模块设计和数据库操作的应用系统开发设计人员。
2.5.3 数据库系统的结构
数据库系统具有严谨的体系结构,根据美国标准化协会 (ANSI)所属的标准计划与需求委员会 (SPARS)1 9 7 5年公布的数据库标准报告,数据库有三级组织结构。这是一个从内到外分三个层次描述的三级模式结构,可以用图2—18来表示。
图2—18 数据库的三级模式结构
可以看出,三级模式主要分为物理结构和逻辑结构两个方面。描述物理结构的称为物理模式 (内模式),它直接通过操作系统与硬件联系。一个数据库系统只能有一个内模式。
描述逻辑结构的称为模式 (又称概念模式、逻辑模式),它是数据库数据结构的完整表示,是所有用户的公共数据视图。一个数据库系统只有一个模式,它总是以某一种数据模型为基础,统一考虑所有用户的要求,并有机地综合成一个逻辑整体。模式仅仅是对数据型的描述,不涉及具体数据值。
针对每一个用户或应用,又由模式导出若干子模式 (又称外模式、用户模式)。子模式是直接面向用户的,用户能够看见并使用的局部数据的逻辑结构描述。每一个子模式都是模式的一个子集;也可以把它看成是模式的一个窗口。一个数据库系统可以有多个子模式。
数据库系统的三级模式中还提供了两个映射功能 (模式)。一个是在物理模式与模式之间的映射 (转换)功能,另一个是在模式与子模式之间的映射 (转换)功能。
第一种映射使得数据物理存储结构 (内模式)改变时,只需修改模式与内模式之间的映射关系,而逻辑结构 (模式)不变,因而相应的程序也不需改变,这就是数据库的物理独立性。
第二种映射使得逻辑结构 (模式)改变时,只需修改外模式与模式之间的映射关系,而用户结构 (外模式)不需改变,所以应用程序也不用改变,这就是数据和程序的逻辑独立性。
通过这两种映射,数据库实现了物理独立性和逻辑独立性。一方面使得数据的定义和描述可以从应用程序中分离出去,另一方面使得应用程序的编写再不用考虑数据的存取路径等细节问题,从而大大减少了应用程序的修改和维护工作量。
2.5.4 数据库管理系统
数据库管理系统 (data base management system, DBMS)是指帮助用户建立、使用和管理数据库的软件系统。数据库管理系统是数据库系统的核心,从图2—18中可以看出,它是位于用户和计算机操作系统之间的一层数据管理软件。
1.数据库管理系统的组成
DBMS通常由以下三个基本部分组成。
(1)数据描述语言 (data description language, DDL)。用来描述数据库、表的结构,供用户建立数据库及表。
(2)数据操作语言 (data manipulation language, DML)。供用户对数据表进行数据的查询 (包括检索与统计)和存储 (包括增加、删除与修改)等操作。
(3)其他管理和控制程序。实现数据库建立、运行和维护时的统一管理、统一控制,从而保证数据的安全、完整,及多用户并发操作。同时完成初始数据的输入、转换、转存、恢复、监控、通信,以及工作日志等管理控制的实用程序。
在小型的数据库管理系统中,DDL 和 DML 通常合二为一,成为一体化的语言。
2.数据库管理系统的功能
不同的数据库管理系统因为对应的硬件资源和软件环境不同,所以具体功能也有所不同。但是基本功能应当有如下几点。
(1)数据定义功能。数据定义就是对数据库中数据对象的描述,其中包括定义数据库各模式及模式之间的映射关系,以及相关的约束条件等,并最终形成数据库的框架。这些是通过数据描述语言 DDL 实现的。这些描述存放在数据字典中,作为数据库管理系统存取和管理数据的基本依据。
(2)数据操纵功能。这是直接面向用户的功能,它将接收、分析和执行用户对数据库提出的各种操作要求,并且完成数据库数据的检索、插入、删除和更新等数据处理任务。这些是通过数据操纵语言DML实现的。
(3)数据库的运行管理功能。数据库管理系统的核心工作是对数据库的运行进行管理,主要是执行访问数据库时的安全性检查、完整性约束条件的检查和执行、数据共享的并发控制、发生故障后的系统恢复,以及数据库内部维护等。
(4)数据库的建立和维护功能。主要是实现数据库初始数据的输入、转换工作,数据库的转储、恢复工作,数据库的重组织和性能监视、分析工作等。
2.5.5 数据库技术的新发展
前面介绍的传统数据库系统仅仅是数据库大家族中的一员,当然也是最成熟、应用最广泛的一员。它的核心理论、应用经验和设计方法等是整个数据库技术和应用开发的先导和基础。
传统数据库技术主要应用于商业领域,已经取得了巨大的成功,这种成功也刺激了其他领域对数据库技术的需求。但是,当人们将数据库技术应用于计算机辅助设计与管理、计算机集成制造、办公信息系统、地理信息系统、知识库系统和实时系统等新领域时,却发现很多必需的数据管理功能是传统数据库系统所无法支持的。正是这些新的需求直接推动了数据库新技术的研究和发展,这种研究和发展主要表现在以下三个方面。
1.面向对象的方法和技术对数据库的发展
面向对象的方法和技术不但在程序设计语言、软件工程、信息系统设计和计算机硬件设计方面产生了极大的影响,而且给面临新挑战的数据库技术带来了机会和希望。数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象数据模型。一个面向对象数据模型是用面向对象观点来描述现实世界实体 (对象)的逻辑组织、对象之间限制、联系等的模型。面向对象数据模型吸收了面向对象程序设计方法的核心概念和基本思想,一系列面向对象核心概念构成了面向对象数据模型的基础。
与层次、网状、关系等传统的数据模型不同,面向对象数据模型是非传统的数据模型,面向对象数据库系统 (OODBS)是面向对象程序设计方法与数据库技术相结合的产物。
面向对象数据库系统支持面向对象数据模型,面向对象数据模型定义的对象集合体就是一个对象库,而面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者。由于到目前为止还缺乏对面向对象数据模型的统一的、严格的定义,因此面向对象数据库系统还缺少一个清晰的规范说明。尽管面向对象数据库技术还是一项比较新的技术,但它仍然是数据库技术发展的必然趋势。
2.数据库技术与多学科技术有机结合的发展
在计算机领域中层出不穷的新兴技术对数据库技术的发展产生了重大的影响,传统的数据库技术也在不断地与其他计算机新技术互相结合、互相渗透,使得数据库的许多概念、技术内容和应用领域都有了重大的发展和变化,先后出现了诸如分布式数据库系统、并行数据库系统、演绎数据库系统、知识库系统、Web 数据库和多媒体数据库系统等一系列新型数据库系统。下面重点介绍其中三种。
(1)分布式数据库系统。分布式数据库系统是数据库技术与计算机网络技术相结合的产物,其数据处理方式与传统的数据库系统以集中的方式局限于一台大型计算机上处理有所不同。分布式数据库系统是逻辑上统一而地域上分布的数据集合,可以在分布式数据库管理系统的控制和管理下,实现计算机网络环境中分布在各节点的局部数据库中数据的逻辑集合。
分布式数据库系统按照全局的需要把数据分成具有一定结构的数据子集,并将数据子集分别存储在处于不同地点的计算机中。每个节点计算机的数据库系统都有独立处理本地事务的能力,充分体现出数据库系统的分布性特点。同时,数据库系统还具有数据协调性的特点,在逻辑上各节点上的数据仍然是一个整体,对用户来说具有高度的透明性,各节点之间可以随时互相访问传递数据,虽然用户不知道数据究竟存放在什么位置,但是使用起来就像集中式数据库系统一样方便。因此可以说,分布式数据库系统是由许多数据库逻辑组成的,针对全体用户的全局数据库系统。
分布式数据库系统主要用于地域上很分散的组织或部门的事务处理系统,比如银行业务处理、航空公司的订票业务等。
(2)并行数据库系统。并行数据库系统是在并行计算机上运行的、具有并行处理能力的数据库系统,是数据库技术与并行计算机技术相结合的产物。并行数据库系统充分利用了多处理器平台的并行处理产生的规模效应,通过查询间并行、查询内并行和操作内并行等多种并行方式,在联机事务处理与决策支持应用环境中提供快速的响应时间和较高的事务吞吐量。
数据库管理系统进程结构的最新发展为数据库的并行处理奠定了基础,多线程技术、虚拟服务技术是并行数据库技术实现中采用的重要技术。
(3)多媒体数据库系统。传统的数据库系统主要处理的是文字、数据等结构化数据,多媒体数据库系统既能够处理结构化数据,又能够方便地处理图形、图像和声音等非结构化的多媒体数据。非结构化数据数量庞大且结构复杂,处理起来要复杂困难得多。多媒体数据库系统的主要特点如下。
1)集成性。多媒体是数字、图形、图像、声音和文字等多种媒体的有机结合。
2)独立性。多媒体中的单媒体具有独立性,可单独对某一媒体操作而不影响其他媒体。
3)数据量大。视频和声音信息的数据量特别大,使得多媒体文件比文档文件大得多。
4)实时性。多媒体系统在很多场合是要求能够实时处理的。
5)交互性。各种多媒体信息往往采用交互方式操作。
为了使多媒体数据库具备上述特点,必须建立合适的数据模型,其途径一般有以下四种。
1)基于关系模型。就是在关系数据库的基础上扩充,以支持多媒体数据类型。
2)基于面向对象模型。在面向对象语言中加入对多媒体数据的存储管理功能,形成多媒体数据库。
3)基于超文本、超媒体模型。在超文本、超媒体模型的基础上发展而成。
4)开发全新的数据模型。就是要从底层开发,实现多媒体数据库系统。
3.面向应用领域的数据库新技术——数据仓库
随着市场竞争的加剧和对深层数据的综合处理的需求增长,传统的数据库系统已经远远不能满足需要。传统数据库系统中存放的是单一数据资源,需要它完成的却是从事务处理、批处理到决策分析的各类数据处理工作。对于传统的数据库系统来说,要完成这样的任务显然是非常困难的,其效果也很不理想。为了适应这些特定的应用领域,必须研制符合其要求的特定数据库系统,于是出现了数据仓库、工程数据库、统计数据库、空间数据库、科学数据库等多种不同形式的数据库系统,其中最重要的就是数据仓库。
要完成从事务处理、批处理到决策分析的各类数据处理工作,对于传统的数据库系统来说,必须借助前台软件 (如电子表格、图表等)来实现查询和分析。这就要求最终用户具有使用前台处理软件的能力,而且分析处理的数据不能太复杂。显然在多数情况下,这种操作方式不够有效、灵活和顺畅,有时甚至是不可能的。因为这是两类不同的处理操作,事务处理、批处理属于操作型处理,决策分析属于分析型处理。
事务型处理是对数据库的日常联机操作,是操作型处理。它通常是对一个或一组记录的查询和修改操作,关心的是响应时间和数据的安全性、完整性。管理人员的决策分析工作属于分析型处理。这种处理经常需要访问大量的历史数据,通过分析处理制定出市场策略的决策信息。传统的数据库系统适合完成事务类操作型处理,而实现数据分析型处理操作的最好办法就是数据仓库。
首先必须划清数据处理的分析型环境与操作型环境之间的界限,将原来以单一数据库为中心的数据环境,变为由操作型环境和分析型环境两部分构成的体系化环境。数据仓库就是这个体系化环境的核心,数据仓库架构的简单示意图如图2—19所示。
图2—19 数据仓库架构示意图
从图中可以看出,数据仓库应当由以下几部分组成。
(1)数据仓库数据库。数据仓库数据库是整个数据仓库环境的核心,是数据存放的地方并提供对数据检索的支持。相对于操纵型数据库来说,其突出特点是对海量数据的支持和快速的检索技术。
(2)数据抽取工具。数据抽取工具可以把数据从各种各样的存储介质中拿出来,进行必要的转化、整理,并按主题组织起来,再存放到数据仓库内。
具有对各种不同数据存储方式的访问能力是数据抽取工具的关键,并且应当能够生成COBOL程序、MVS作业控制语言 (JCL)、UNIX脚本和 SQL 语句等,以便访问不同的数据。
数据转换包括:删除对决策应用没有意义的数据段,转换到统一的数据名称和定义,计算统计和衍生数据,给缺值数据赋予缺省值,将不同的数据定义方式统一。
(3)元数据。元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类:技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员在开发和日常管理数据仓库时使用的数据,包括数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录;等等。
商业元数据是从商业业务的角度描述的数据仓库中的数据,包括业务主题的描述,包含的数据、查询、报表等。
元数据为访问数据仓库提供了一个信息目录,该目录全面描述了数据仓库中都有什么数据、这些数据是如何得到的,以及如何访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用它来存储和更新数据,用户通过它来了解和访问数据。
(4)访问工具。访问工具为用户访问数据仓库提供手段,包括数据查询和报表工具,应用开发工具,主管信息系统 (EIS)工具,联机分析处理 (OLAP)工具,数据挖掘工具等。
(5)数据集市 (data marts)。数据集市是为特定的应用目的或应用范围而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据。实际上,数据集市就是为一个战略业务单元或部门服务的,低成本、小规模的数据仓库。
在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的是,在实施不同的数据集市时,同一含义的字段定义一定要相容,只有这样,在以后实施数据仓库时才不会造成大麻烦。
数据仓库是一个对历史数据进行收集和分类处理的集成化系统。数据仓库不是面向操作性数据的即时处理,而是面向特定的主题的数据处理。数据仓库中的数据来自操作性环境的输入,但是不进行任何编辑处理,仅作输入、删除和整理,并将当前详细数据最终浓缩成高度概括的数据,长期保存 (5~10年以上)以供决策支持使用。
所以数据仓库的定义是:数据仓库 (data warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持企业或组织的决策分析处理。数据仓库的特点如下。
(1)面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域 (比如客户、供应商、产品、价格、职能领域等)进行组织的,只包含对决策有帮助的信息。
(2)集成。数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
(3)相对稳定。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,某个数据一旦进入数据仓库,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
(4)反映历史变化。数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时间点 (如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
随着计算机技术特别是网络技术的发展和用户对数据库应用系统要求的变化,以网络为基础的计算机体系结构——Client/Server (客户/服务器)体系结构的使用已经越来越普遍。这是一种由网络联结的多台硬件组成的协同工作环境。该系统巧妙地将硬件做了分工,服务器专门用来存储共享数据及事务处理过程,客户机用来实现用户的应用程序。这种分工充分发挥了不同硬件的特点,有助于用户利用微机系统建立一个分布式的、既支持联机事务处理又具有友好用户图形界面和良好可扩充性的应用系统。数据仓库主要使用这种结构,通过因特网,用户就能够实现数据的整合和快捷访问。
思考题
1.计算机网络的硬件组成有哪些?
2.常用网络拓扑结构有哪些?各有什么特点?
3.数字信号与模拟信号有哪些区别?
4.试述调制解调的含义。
5.什么是频分多路复用?什么是时分多路复用?
6.网络交换方式有几种?各有什么特点?
7.常用的通信介质有哪些?各自有什么特点?
8.什么是局域网?它有哪些特点?
9.试述TCP/IP协议。
1 0.什么是IP地址?什么是网络域名?
11.解释下列名词:路由器、网关。
12.什么是因特网?它有哪些服务?
13.计算机系统是由哪些部分组成的?各部分的作用是什么?
14.多媒体计算机的组成有何特点?
15.什么是数据库?什么是数据库管理系统?
16.什么是数据库系统?什么是数据库应用系统?
17.构成物联网的“物”必须具备的条件有哪些?
1 8.物联网的感知层有哪些感知终端?RFID技术与物联网有什么关系?
19.简述云计算的意义。
20.为什么说云计算特别适合中小科技企业的发展?
21.简述数据处理技术发展的三个阶段。
22.简述数据库系统的三级模式结构及两种映射。
23.试述数据与程序的物理独立性和逻辑独立性。
24.为什么数据库系统具有数据与程序的独立性?
25.数据库管理系统与数据库系统有何区别?
26.简述数据库管理系统的组成与功能。
27.数据库新技术的发展主要表现在哪些方面?
28.试述面向对象模型与面向对象数据库。
29.简述分布数据库的含义与特点。
30.简述数据仓库的定义与特点。
31.简述多媒体数据库的特点。