5.1.6 数据库技术
本节主要介绍数据库的基本概念、数据模型概念、常用数据模型及数据库系统模式结构、数据库管理系统等内容。
1.数据库基本概念
数据库的基本概念主要包括数据库(Database)、数据库管理系统(DBMS)和数据库系统(DMS),三者之间既有联系又有区别。
(1)信息、数据与数据处理
信息是现实世界事物的存在方式或运动状态的反映。信息具有可感知、可存储、可加工、可传递和可再生等自然属性。信息又是社会各行各业不可缺少的资源,这也是信息的社会属性。
数据是描述现实世界事物的符号记录,是指用物理符号记录下来的可以鉴别的信息。数据的表现形式有文字、符号、图形、图像和声音等。数据是信息的符号表示,是载体;信息是数据的内涵,是数据的语义解释。信息与数据密切相关。
源数据是表示原始信息的数据。对源数据进行汇集、存储、综合和推导,从中抽取或推导出新的数据,表示新的信息,从而作为决策依据或新的推导的过程称为数据处理或信息处理。
(2)数据库、数据库管理系统
数据库(Database,DB)是在计算机存储设备上存放一定格式数据的仓库。数据库是长期存储在计算机内、有组织和可共享的数据集合。
数据库管理系统(Database Management System,DBMS)是数据库系统的核心组成部分,是介于用户与操作系统之间的一层数据管理软件,是用户和数据库的接口。其功能如下。
·数据库定义功能:用数据定义语言(DDL)定义数据库中的数据对象。
·数据操纵功能:用数据操纵语言(DML)实现数据库的基本操作,包括检索、插入、删除和修改。
·数据库的运行管理:数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制,以保证数据库的安全性、完整性、故障恢复和并发控制。
·数据的建立和维护功能:包括数据库初始数据的输入、转换功能、数据库的转储、记录日志文件、数据库的重组织、性能监视和分析功能等。
·数据库管理系统必须提供以下几个方面的数据控制和保护功能。
·数据的安全保护:数据的安全性是指保护数据,防止因不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行访问和处理。
·数据的完整性控制:数据的完整性指数据的正确性、有效性和相容性。
·数据库的恢复:计算机系统的硬件故障、软件故障、操作员的失误及故意的破坏会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。
·并发控制:当多个用户的并发进程同时存取、修改数据库时,可能会因为事务间相互干扰而出现错误结果,使得数据库遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(3)数据库系统
数据库系统(Database System,DBS)是带有数据库的计算机系统,一般由数据库、数据库管理系统(及其开发工具)、相关的硬件、软件和各类人员组成。数据库系统的软件包括:DBMS、支持DBMS的操作系统、与数据库接口的高级语言和编译系统和以DBMS为核心的应用开发工具。人员包括数据库管理员、系统分析员和数据库设计人员。其中数据库管理员(Database Administrator,DBA)是负责数据库的建立、使用和维护的专门人员。
·数据库管理员的主要职责包括设计与定义数据库系统;帮助最终用户使用数据库系统;监督与控制数据库系统的使用和运行;改进和重组数据库系统,调整数据库系统的性能;转储与恢复数据库;重构数据库。
·系统分析员的负责应用系统的需求分析和规范说明,确定系统的基本功能、数据库结构,设计应用程序和硬软件配置并组织整个系统的开发。
·数据库设计人员负责确定数据库中的数据,设计数据库各级模式。
·应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
·用户指最终用户,他们通过应用系统的用户接口使用数据库。
2.数据库管理技术的发展
数据库的发展大致经过三个阶段,分别为人工管理阶段、文件系统阶段和数据库系统阶段。
·人工管理阶段,数据作为程序的组成部分不能独立存在,数据由程序员在程序中进行管理,无专门的软件对数据进行管理。
·文件系统阶段,数据可以以操作系统文件的形式长期保存在计算机中,操作系统的文件管理系统提供了对数据的输入和输出操作接口,进而提供数据存取方法,也没有专门的软件对数据进行管理。
·数据库系统阶段,程序独立于数据,实现了数据的独立性,并且出现了专门管理数据的软件——数据库管理系统。数据管理中数据的定义、操作及控制统一由数据库管理系统来完成。
3.数据库技术的研究领域
数据库技术的研究领域包括数据库管理系统软件的研制、数据库的设计以及数据库理论。
(1)数据库管理系统软件的研制
DBMS的研制包括研制DBMS本身及以DBMS为核心的一组相互联系的软件系统。研制目标是扩大功能、提高性能和提高用户的生产率。
(2)数据库设计
数据库设计的主要任务是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便和效率较高的数据库及其应用系统。
(3)数据库理论
数据库理论的研究主要集中在关系的规范化理论、关系数据理论等。随着人工智能与数据库理论的结合、并行计算机的发展,数据库逻辑演绎和知识推理、并行算法等理论研究,以及演绎数据库系统。知识库系统的研制都已成为新的研究方向。
4.数据模型概念
数据模型是对现实世界数据特征的抽象,是数据库系统的核心和基础。数据模型由数据结构、数据操作和数据完整性约束条件3个要素组成。
(1)数据结构
数据结构描述系统的静态特性,是所研究对象类型的集合,研究与数据类型、内容和性质有关的对象。
(2)数据操作
数据操作是对系统动态特征的描述,是对各种对象的实例允许执行的操作的集合,主要有检索和修改(包括插入、删除和更新)两大类操作。
(3)数据完整性约束条件
数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确性、有效性和相容性。此外,数据模型还应该提供定义完整性约束条件的机制。
根据模型的应用目的,可以将数据模型分成概念模型、结构模型两个不同的层次。概念模型是对现实世界中客观对象的抽象,是一种不依赖于具体计算机系统,与具体的DBMS无关的信息结构,属于概念级的模型,最常用的表示方法是实体-联系模型(E-R)。数据结构模型由概念模型转换而来,由计算机中某一 DBMS所支持。常用的数据结构模型有层次模型、网状模型、关系模型和面向对象数据模型,每一种数据结构模型都有相应的DBMS支持。
5.数据结构模型
目前,最常用的数据结构模型有层次模型、网状模型、关系模型和面向对象的数据模型4种。
(1)层次模型
用树形结构表示实体类型及实体间联系的数据模型称为层次模型。
(2)网状模型
用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。
(3)关系模型
用二维表格结构表达实体集,用外键表示实体间联系的数据模型称为关系模型。关系数据模型是建立在严格的数学概念基础上的。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。记录是表中的行,属性是表中的列。关系同网状和层次模型的最大区别是:用表中的数据而不是通过指针链来表示和实现实体间的联系。
(4)面向对象模型
用类和继承来表示实体及实体间的联系的数据模型就是面向对象模型。面向对象模型中的基本概念有以下几个。
·对象和对象标识:对象是现实世界中实体的模型化。对象标识是每一个对象的唯一的内部标识。
·对象的属性和方法:对象的属性描述对象的状态、组成和特性;对象的方法描述对象的行为特征。
·封装:每个对象是状态和行为的封装。
·类:所有具有相同属性和方法集的对象构成一个类。
·类层次:一个类可以有子类,子类的父类称为超类,而子类还有子类,于是形成类层次。在类层次中,一个对象是类的一个实例。
·继承:子类可以继承超类中所有的属性和方法。
6.数据库系统模式结构
美国国家标准协会的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构分为面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级3级。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中”的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。
(1)外模式
外模式又称子模式或用户模式,是模式的子集,是数据的局部逻辑结构和特征的描述,是数据库用户看到的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,同一个外模式可以被某一个用户的多个应用程序使用,但一个应用程序只有一个外模式。外模式是模式的子集,外模式处理的数据并不实际存储在数据库中,而仅可以从模式中构造出来。因此,外模式比模式抽象级别更高。DBMS提供模式数据定义语言DDL来定义子模式。
(2)模式
模式又称逻辑模式或概念模式,是数据库中全体数据的全局逻辑结构和特性的描述,也是所有用户的公共数据视图。它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,也不涉及具体的应用程序及所使用的应用开发工具及高级程序设计语言。它实际上是数据库数据在逻辑层上的视图。一个数据库只有一个模式,数据库模式以某种数据模型作为基础。定义模式时不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。DBMS提供模式定义语言DDL来描述逻辑模式,即严格地定义数据的名称、特征、相互关系和约束等,逻辑模式的基础是数据模型。
(3)内模式
内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,它描述了数据在存储介质上的存储方式及物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。
在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。
(4)三级模式间的映射
为了实现数据库内部三级模式之间的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。
1)外模式/模式映像
对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义该外模式与模式之间的对应关系,这些映像定义通常都包含在各自外模式的描述中。当模式改变时,数据库管理员对各个外模式/模式的映像都做相应改变,可以使外模式保持不变,这样可以使根据外模式编写的应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2)模式/内模式映像
数据库中只有一个模式也只有一个内模式,相应地也只有一个模式/内模式映像,它定义数据库全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,数据库管理员对各个模式/内模式的映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与应用程序的物理独立性,简称数据的物理独立性。
在数据库的三级模式结构中,数据库的模式是全局逻辑结构,是数据库的中心和关键,它独立于其他层次。因此设计数据模式结构时,首先确定数据库的逻辑模式。数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的外模式,也独立于具体的存储设备。数据库的外模式依赖于具体应用,它定义在逻辑模式之上,但独立于存储模式和存储设备。应用程序是定义在外模式基础上,独立于数据库的模式和存储结构。
7.数据库系统的体系结构
从数据库管理角度看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构。从数据库最终用户角度看,数据库系统的结构可分为单用户结构、主从式结构、分布式结构、客户/服务器结构,这是数据库系统外部的结构。
(1)单用户数据库系统
单用户数据库系统的整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。早期的最简单的数据库系统采用的是单用户数据库系统。
(2)主从式结构的数据库系统
主从式结构的数据库系统的结构是一个主机带多个终端的多用户结构。数据库系统包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。优点是易于管理、控制与维护。缺点是当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降。系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。
(3)分布式结构的数据库系统
数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上。网络中的每个节点都可以独立处理本地数据库中的数据,执行局部应用,同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。
该结构优点是适应了地理上分散的公司、团体和组织对于数据库应用的需求。而缺点是数据的分布存放给数据的处理、管理与维护带来困难。当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。
(4)客户/服务器结构的数据库系统
把DBMS功能和应用分开,网络中某个(些)节点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器。其他节点上的计算机安装DBMS的外围应用开发工具,用户的应用系统,称为客户机。
客户/服务器数据库系统的种类有集中的服务器结构(一台数据库服务器,多台客户机)和分布的服务器结构(在网络中有多台数据库服务器,分布的服务器结构是客户/服务器与分布式数据库的结合)。
客户/服务器结构的优点在于客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户,从而显著减少了数据传输量。数据库更加开放,客户与服务器一般都能在多种不同的硬件和软件平台上运行,可以使用不同厂商的数据库应用开发工具。
客户/服务器结构的缺点是“胖客户”问题,系统安装复杂,工作量大。应用维护困难,难以保密,造成安全性差。相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。系统规模达到数百数千台客户机,它们的硬件配置、操作系统又常常不同,要为每一个客户机安装应用程序和相应的工具模块,其安装维护代价便不可接受了。
8.数据库管理系统的目标
数据库管理系统DBMS是操纵和管理数据库的软件系统,它由一组计算机程序构成,管理并控制数据资源的使用,是数据库系统的核心,它实现对共享数据的有效组织、管理和存取。DBMS的目标如下。
(1)用户界面友好
用户界面的质量直接影响DBMS的生命力。因为DBMS的用户界面直接面向用户的各种应用,用户是通过用户界面来了解DBMS的。一般来说,用户界面应具有可靠性、易用性、多样性和快速响应等特性。
·可靠性:指界面具有一定的容错能力,能及时正确地给出运行状态指示和出错信息,并引导用户改正错误。
·易用性:尽量减少用户负担,即操作方式简单,容易记忆,输入/输出容易理解。
·多样性:根据用户背景的不同,提供多级用户接口,以适应不同层次用户的需要。
·快速响应:对用户的应用请求都应在用户心理许可的时间范围内给出响应,即使不能得到结果,也应给出某种信息以缓和用户的等待心理。
(2)结构清晰
DBMS是一个复杂的系统软件,涉及面广,包括向上与用户接口,向下与操作系统及其他软、硬件资源接口。其实现技术复杂,需要编译原理、操作系统、程序设计和数据结构等许多软件知识和技术的支持。因此,应该使DBMS内部结构清晰、层次分明。这样既便于DBMS支持其外层开发环境的构造,也便于自身的设计、开发和维护。清晰的结构也是DBMS具有开放性的一个必要条件。
(3)开放性
所谓开放性,是指程序员能够根据自己的特殊需要遵循标准和规范以便往已有的DBMS中加入一些新的工具模块。它们能和DBMS紧密结合,一起运行。
9.数据库管理系统的功能
数据库管理系统(DBMS)是一组软件,主要是实现对共享数据有效的组织、管理和存取,因此DBMS应具有以下功能。
(1)数据库的定义功能
对数据库的结构进行描述,包括外模式、模式和内模式的定义,数据库完整性的定义,安全保密定义(如用户口令、级别和存取路径(如索引)的定义)。这些定义存储在数据字典(亦称为系统目录)中,是DBMS运行的基本依据。
(2)数据库的操纵功能
提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除。一个好的DBMS应该提供功能强、易学易用的数据操纵语言(DML)、方便的操作方式和较高的数据存取效率。DML有两类:一类是宿主型语言,另一类是自立(独立)型语言。前者的语句不能独立使用而必须嵌入某种宿主语言(如C语言、PASCAL语言和COBOL语言)中使用,而后者可以独立使用,通常供终端用户使用。
(3)数据库运行管理功能
这是DBMS运行时的核心部分,包括数据库完整性及其安全性控制,并发性控制,存取控制及数据库内部维护(如索引、数据字典的自动维护)等。这些功能保证了数据库系统的正常运行。
(4)数据库的建立和维护功能
包括数据库的初始数据的装入、更新和重构,数据库的结构维护,数据库数据的卸出和恢复,数据库性能的监测和分析等。
(5)数据组织、存储和管理
DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据和存取路径等。要确定以何种文件结构和存取方式在存储体上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间的利用率和便于存取,提供多种存取方法(如索引查找、Hash查找、顺序查找等),提高存取效率。
10.数据库管理系统的程序模块组成
数据库管理系统的程序模块组成主要包括数据库定义方面的程序模块,数据库存取方面的程序模块,数据库运行管理方面的程序模块,数据库组织、存储和管理方面的程序模块,数据库建立、维护和其他方面的程序模块等。
(1)数据库定义方面的程序模块
包括DDL翻译处理程序(包括外模式、模式和存储模式处理程序)、保密定义处理程序(如授权定义处理程序)、完整性约束定义处理程序等。这种程序接收相应的定义,进行语法、语义检查,把它们翻译为内部格式存储在数据字典中。DDL翻译程序还根据模式定义负责建立数据库的框架(即形成一个空库),等待装入数据。
(2)数据库存取方面的程序模块
数据存取的程序模块主要包括如下几种。
·查询处理程序模块。
·数据更新(增、删、改)程序模块。
·交互式查询程序模块。
·嵌入式查询程序模块。
这些程序模块对用户的数据操纵请求进行语法分析、语义检查,生成某种内部表示,通常是语法树。对于查询语句,要由查询优化器(模块)进行优化,如根据一定的等价变换规则把语法树转换成标准(优化)形式;对于语法树中的每一个操作根据存取路径、数据的存储分布和数据的聚簇等信息来选择具体的执行算法;最后生成查询计划(生成代码)交给查询执行模块执行,完成对数据库的存取操作。
(3)数据库运行管理方面的程序模块
数据库运行管理方面的程序模块主要包括系统初启程序,它负责初始化DBMS、建立DBMS的系统缓冲区、系统工作区和打开数据字典等操作,还包括安全性控制、完整性检查、并发控制、事务管理和运行日志管理等程序模块,在数据库运行过程中监视着对数据库的所有操作,控制和管理数据库资源,处理多用户的并发操作等。它们一方面保证用户事务的正常运行及其原子性,一方面保证数据库的安全性和完整性。
(4)数据库组织、存储和管理方面的程序模块
包括文件读写与维护程序、存取路径(如索引)管理程序、缓冲区管理程序(包括缓冲区读、写和淘汰模块),这些程序负责维护数据库的数据和存取路径,提供有效的存取方法。
(5)数据库建立、维护和其他方面的程序模块
包括数据库初始装入程序、转储程序、恢复程序、数据库重构造程序、数据转换程序和通信程序等。
DBMS的这些组成模块互相联系,互相依赖,共同完成DBMS复杂的功能。这些模块之间的联系也不是平面的和散乱无章的,它们具有一定的层次联系。
11.数据库管理系统的运行过程
DBMS是个复杂而有序的整体,应该用动态的观点看待DBMS的各个功能模块。为了加深对DBMS的了解,下面考察一个应用程序或用户通过DBMS读取数据库中数据的过程。
数据字典存储数据库定义,如子模式、模式和存储模式定义(关系数据库中相应于视图、基本表、索引和存储方式等的定义)。
(1)用户A通过应用程序向DBMS发出调用数据库数据的命令。如SELECT命令给出了一个关系名和查找条件。
(2)DBMS先对命令进行语法检查。语法检查通过后进行语义检查和用户存取权限检查。具体做法是:DBMS读取数据字典,检查是否存在该关系及相应的字段,该用户能否读取它们等。确认语义正确、存取权限合法后便决定执行该命令。否则拒绝执行,返回错误信息。
(3)DBMS执行查询优化。优化器要依据数据字典中的信息进行优化,并把该命令转换成一串单记录的存取操作序列。
(4)DBMS执行存取操作序列(反复执行以下各步,直到结束)。
(5)DBMS首先在缓冲区中查找记录,若找到满足条件的记录则转到(10),否则转到(6)。
(6)DBMS查看存储模式,决定从哪个文件,用什么方式读取哪个物理记录。
(7)DBMS根据(6)的结果,向操作系统发出读取记录的命令。
(8)操作系统执行读数据的有关操作。
(9)操作系统将数据从数据库的存储区送至系统缓冲区。
(10)DBMS根据查询命令和数据字典的内容导出用户所要读取的记录格式。
(11)DBMS将数据记录从系统缓冲区传送到应用程序A的用户工作区。
(12)DBMS将执行状态信息,如成功读取的指示或不成功的错误指示、异常状态信息等返回给应用程序A。
12.数据库系统
数据库系统是指在计算机系统中引入数据库后构成的系统,一般由数据库、软件支持系统、数据库管理员和用户构成。
(1)数据库
由于数据库系统数据量都很大,因此整个数据库系统对硬件资源提出了较高的要求,这些要求是如下。
·有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。
·有足够大的磁盘等直接存取设备存放数据库,另有足够的磁盘作数据备份。
·要求系统有较高的通道能力,以提高数据传送率。
(2)软件支持系统
数据库系统的软件支持主要包括如下几种。
·DBMS。DBMS是为数据库的建立、使用和维护配置的软件。
·支持DBMS运行的操作系统。
·具有与数据库接口的高级语言及其编译系统,便于开发应用程序。
·以DBMS为核心的应用开发工具。应用开发工具是系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代语言等各种软件工具。它们为数据库系统的开发和应用提供了良好的环境。
·为特定应用环境开发的数据库应用系统。
(3)数据库管理员
在数据库系统环境下,有两类共享资源。一类是数据库,另一类是数据库管理系统软件。因此需要有专门的管理机构来监督和管理数据库系统。DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统。具体职责如下。
1)决定数据库中的信息内容和结构
对于数据库中要存放哪些信息,DBA要参与决策。因此DBA必须参加数据库设计的全过程,并与用户、应用程序员、系统分析员密切合作共同协商,搞好数据库设计。
2)决定数据库的存储结构和存取策略
DBA要综合各用户的应用要求,和数据库设计人员共同决定数据的存储结构和存取策略以求获得较高的存取效率和存储空间利用率。
3)定义数据的安全性要求和完整性约束条件
DBA的重要职责是保证数据库的安全性和完整性。因此DBA负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。
4)监控数据库的使用和运行
DBA还有一个重要职责就是监视数据库系统的运行情况,及时处理运行过程中出现的问题。比如系统发生各种故障时,数据库会因此遭到不同程度的破坏,DBA必须在最短时间内将数据库恢复到正确状态,并尽可能不影响或少影响计算机系统其他部分的正常运行。为此,DBA要定义和实施适当的后备和恢复策略,如周期性的转储数据、维护日志文件等。
5)数据库的改进和重组重构
DBA还负责在系统运行期间监视系统的空间利用率、处理效率等性能指标,对运行情况进行记录、统计分析,依靠工作实践并根据实际应用环境,不断改进数据库设计。不少数据库产品都提供了对数据库运行状况进行监视和分析的实用程序,DBA可以使用这些实用程序完成这项工作。
另外,在数据运行过程中,大量数据不断插入、删除、修改,时间一长,就会影响系统的性能。因此,DBA要定期对数据库进行重组织,以提高系统的性能。
当用户的需求增加和改变时,DBA还要对数据库进行较大的改造,包括修改部分设计,即数据库的重新构造。
(4)系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。
数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。
(5)应用程序员
应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
(6)用户
这里用户是指最终用户。最终用户通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等,给用户提供简明直观的数据表示。
13.数据库新技术
随着计算机应用领域的不断拓展和多媒体技术的发展,数据库已是计算机科学技术中发展最快、应用最广泛的重要分支之一,数据库技术的研究也取得了重大突破,它已成为计算机信息系统和计算机应用系统的重要的技术基础和支柱。
(1)数据库技术与多种学科技术的有机结合
各种学科技术与数据库技术有机结合,从而使数据库领域中新内容、新应用、新技术层出不穷,形成了各种新型的数据库系统,包括面向对象数据库系统、分布式数据库系统、知识数据库系统、模糊数据库系统、并行数据库系统及多媒体数据库系统等;数据库技术被应用到特定的应用领域,又出现了工程数据库、演绎数据库、时态数据库、统计数据库、空间数据库、科学数据库及文献数据库等。它们都继承了传统数据库的理论和技术,但已经不是传统意义上的数据库了,立足于传统数据库已有的成果和技术,加以发展进化,从而形成的新的数据库系统。
(2)面向对象数据库系统
面向对象的方法和技术对数据库发展的影响最为深远,起源于程序设计语言,把面向对象的相关概念与程序设计技术相结合,是一种认识事物和世界的方法论,以客观世界中一种稳定的客观存在实体对象为基本元素,并以“类”和“继承”来表达事物间具有的共性和他们之间存在的内在关系。面向对象数据库系统将数据作为能自动重新得到和共享的对象存储,包含在对象中的是完成每一项数据库事务处理指令,这些对象可能包含不同类型的数据,包括传统的数据和处理过程,也包括声音、图形和视频信号,对象可以共享和重用。面向对象数据库系统的这些特性通过重用和建立新的多媒体应用能力使软件开发变得容易,这些应用可以将不同类型的数据结合起来。面向对象数据库系统的好处是它支持WWW应用能力。
(3)分布式数据库系统
分布式数据库系统是分布式技术与数据库技术的结合,从概念上讲,分布式数据库是物理上分散在计算机网络各结点上,而逻辑上属于同一个系统的数据集合。它具有数据的分布性和数据库间的协调性两大特点。系统强调结点的自治性而不强调系统的集中控制,且系统应保持数据的分布透明性,使应用程序编写时可完全不考虑数据的分布情况。无疑分布式是计算机应用的发展方向,也是数据库技术应用的实际需求,其技术基础除计算机硬、软件技术支持外,计算机通信与网络技术当然是其最重要的基础。
(4)多媒体数据库系统
多媒体数据库系统是多媒体技术与数据库技术的结合,其主要特征如下。
·多媒体数据库系统必须能表示和处理多种媒体数据。多媒体数据在计算机内的表示方法决定于各种媒体数据所固有的特性和关联。对常规的格式化数据使用常规的数据项表示。对非格式化数据,像图形、图像、声音等,就要根据该媒体的特点来决定其表示方法。可见在多媒体数据库中,数据在计算机内的表示方法比传统数据库的表示形式复杂,对非格式化的媒体数据往往要用不同的形式来表示。所以多媒体数据库系统要提供管理这些异构表示形式的技术和处理方法。
·多媒体数据库系统必须能反映和管理各种媒体数据的特性,或各种媒体数据之间的空间或时间的关联。在客观世界里,各种媒体信息有其本身的特性或各种媒体信息之间存在一定的自然关联,包括时序关系(如多媒体对象在表达时必须保证时间上的同步特性)和空间结构(如必须把相关媒体的信息集成在一个合理布局的表达空间内)。
·多媒体数据库系统应提供比传统数据库管理系统更强的适合非格式化数据查询的搜索功能,允许对图片等非格式化数据做整体和部分搜索,允许通过范围、知识和其他描述符的确定值和模糊值搜索各种媒体数据,允许同时搜索多个数据库中的数据,允许通过对非格式化数据的分析建立图示等索引来搜索数据,允许通过举例查询和通过主题描述查询使复杂查询简单化。
·多媒体数据库系统还应提供事务处理与版本管理功能。
(5)并行数据库系统
并行数据库系统是并行技术与数据库技术的结合,其发挥多处理机结构的优势,将数据库在多个磁盘上分布存储,利用多个处理机对磁盘数据进行并行处理,从而解决了磁盘“I/O”瓶颈问题,通过采用先进的并行查询技术,开发查询间并行、查询内并行以及操作内并行,大大提高查询效率。其目标是提供一个高性能、高可用性、高扩展性的数据库管理系统,而在性能价格比方面,较相应大型机上的DBMS高得多。并行数据库系统作为一个新兴的方向,需要深入研究的问题还很多,但可以预见,由于并行数据库系统可以充分地利用并行计算机强大的处理能力,必将成为并行计算机最重要的支撑软件之一。
(6)数据仓库
随着因特网的兴起与飞速发展,我们进入了一个新的时代,大量的信息和数据,迎面而来,用科学的方法去整理数据,从而从不同视角对企业经营各方面信息的精确分析、准确判断,比以往更为迫切,实施商业行为的有效性也比以往更受关注。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它绝不是所谓的“大型数据库”。数据库是面向事务的设计,数据仓库是面向主题设计的。数据仓库与传统数据库相比较,有如下不同之外。
1)面向主题
传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜则各自一块地方。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。
基于以上原因,数据仓库将这些数据集中于一个地方,在这种结构中,对应某个主题的全部数据被存放在同一数据表中,这样决策者可以非常方便地在数据仓库中的一个位置检索包含某个主题的所有数据。
2)稳定性
业务系统一般只需要当前数据,在数据库中一般也存储短期数据,因此在数据库系统中数据是不稳定的,它记录的是系统中每一个变化的瞬态。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有历史数据的详细分析是难以把握企业的发展趋势的,因此,数据仓库对数据在空间和时间的广度上都有了更高的要求。在数据仓库中,数据一旦被写入就不再变化了。数据仓库可以看成是一个虚拟的只读数据库系统。在数据集成性中已经说明了数据仓库在数据存储方面是分批进行的,定期执行提取过程为数据仓库增加记录,但是这些记录一旦加入,就不能从系统中删除。正是由于数据仓库的这个显著特点,使得数据仓库不需要在并发读写控制上投入过多的精力,因为所有的用户只是以只读的方式访问数据仓库。
3)集成性
全面而正确的数据是有效地进行分析和决策的首要前提。在某一个主题下,需要将数据进行提取、净化、转换和装载等集成操作。
4)随时间变化
由于在数据仓库中数据只增不减,这使得数据仓库中的数据总是拥有时间维度。数据仓库实际上就是记录系统的各个瞬态,并通过将各个瞬态连接起来形成动画,从而在数据分析的时候再现系统运动的全过程。
(7)数据仓库的特点
数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库和数据仓库相辅相成。此外数据仓库的方案建设的目的是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案。
1)效率足够高
客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1~3日才能给出数据显然是不行的。
2)数据质量
客户要看各种信息,肯定要准确的数据,但由于数据仓库流程数据提取、转换和加载,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
3)扩展性
之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3~5年的扩展性,这样,客户不用太快花钱去重建数据仓库系统,就能很稳定运行,主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,否则就运行不起来了。
(8)联机分析处理技术
联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。决策数据是多维数据,多维数据就是决策的主要内容。联机分析处理技术OLAP专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业的经营状况,了解对象的需求,制定正确的方案。
OLAP分析功能包括统计、分析、报表处理等。OLAP的基本操作如下。
①切片和切块(Sliceand Dice):从不同角度查看不同范围的数据。
②钻入(Drill-down):对结果数据的下一个层次或更下层次细节的数据进行剖析,即从概括汇总的数据沿层次向下查看更详细的数据。
③归并(Consolidation):是钻入的相反处理,是沿层次向上对数据的分析。
④旋转(Rotate):是从多个不同角度观测多维关系,改变一个报告或显示的维方向。例如将原来水平方向为时间、垂直方向为产品的图表,旋转为水平方向为产品、垂直方向为时间的图表。
(9)数据挖掘技术
数据挖掘(Data Mining,DM)又称数据库中的知识发现(Knowledge Discoverin Database,KDD),是目前人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,做出归纳性的推理,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,做出正确的决策。
总之,数据仓库、联机分析处理技术OLAP和数据挖掘是作为3种独立的信息处理技术出现的。用数据仓库存储和组织数据,数据的分析由OLAP集中完成,数据挖掘则致力于知识的自动发现。