数据库原理:数据库系统概述
本章介绍数据库基本概念;数据库技术的3个发展阶段及其特点;数据库系统的组成;数据库系统的体系结构;现实世界、信息世界、计算机世界及有关概念,以及数据库领域的新技术。
本章学习目标:理解数据和信息的概念;理解数据处理和数据管理的关系;掌握数据库技术的发展阶段及其优缺点;掌握数据库系统的组成, 重点掌握数据库管理系统的作用;掌握数据库系统的内部和外部体系结构;掌握现实世界、信息世界、计算机世界的概念;了解数据库领域的新技术。
一、数据库基本概念和数据库技术发展
1.1、信息、数据、数据处理和数据管理
1.1.1、信息
(1)信息的定义
信息(Information)是人脑对现实世界事物的存在方式、运动状态及事物之间联系的抽象反映。信息是客观存在的,人类有意识地对信息进行采集并加工、传递,从而形成了各种消息、情报、指令、数据及信号等。例如,对于课程情况,某课程的课程号是"c7",课程名是“高等数学”,课时是"60",这些都是关于该课程的具体信息,是该课程当前存在状态的反映。
(2)信息的特征
第一,信息源于物质和能量。信息的传递需要物质载体,信息的获取和传递需要消耗能量,如信息可以通过报纸、电台、电视和计算机网络进行传递。
第二,信息是可以感知的。人类对客观事物的感知,可以通过感觉器官,也可以通过各种仪器仪表和传感器,不同的信息源有不同的感知形式。如网络信息通过视觉器官感知,广播信息通过听觉器官感知。
第三,信息是可存储、加工、传递和再生的。人们用大脑存储信息,叫作记忆。计算机存储器、录音、录像等技术的发展,进一步扩大了信息存储的范围。借助计算机,人们还可对收集到的信息进行整理。
1.1.2、数据
数据(Data)是用来记录信息的可识别的符号组合,是信息的具体表现形式。例如,上面提到的课程信息,可以用一组符号"c7、高等数学、60"表示。给这些符号分别赋予“课程号”“课程名”和“课时”的语义后,它们就转换为课程信息。
数据和语义是不可分割的。如果不给定语义,一个数据可以有多种不同的解释,例如,上述数据"c7、高等数学、60"可以理解为“高等数学”这门课程的选课人数是60,或者“高等数学”的教材有60册等。
数据有不同的表现形式,包括数字,还包括文字、图形、图像、声音和视频等,它们都可以经过数字化后存储到计算机中。如“参加了该考试的人数是500,考试通过率是80%",其中的数据"500"和"80%"可改为汉字形式“五百”和“百分之八十”,表达的信息是一致的。
1.1.3、信息与数据的联系
数据是信息的符号表示,信息是对数据的语义解释。如上例中的数据"500"和"80%“被赋予了特定的语义,此处的"500"表示“考试人数为500”, 80%表示“考试通过率是80%"。我们可以用下面的式子简单地表示信息与数据的关系。
1.1.4、数据处理和数据管理
数据处理是将数据转换成信息的过程,包括对数据的收集、管理、加工利用乃至信息输出等一系列活动。其目的之一是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据;目的之二是借助计算机科学地保存和管理大量复杂的数据,以便人们能够方便地充分利用这些信息资源。在数据处理过程中,数据是原料,是输入;而信息是产出,是输出结果。“数据处理”的真正含义应该是为了产生信息而处理数据。
在数据处理中,数据管理过程比较复杂,主要包括数据的分类、组织、编码、存储、维护、检索等操作。对于这些数据管理的操作,人们应研制一个通用、高效而又使用方便的管理软件,把数据有效地管理起来,以便最大限度地减轻程序员管理数据的负担;至于处理业务中的加工计算,因为不同业务存在实现上的差异,所以要靠程序员根据实际业务情况编写相关应用程序加以解决。因此,数据管理是与数据处理相关的必不可少的环节,其技术的优劣将直接影响数据处理的效果。数据库技术正是瞄准这一目标而研究、发展并完善起来的。
1.2、数据库技术的发展
1.2.1、人工管理阶段
在20世纪50年代中期以前,计算机主要用于科学计算,在硬件方面只有卡片、纸带和磁带,没有磁盘等直接存取设备;在软件方面没有操作系统和管理数据的软件。
在人工管理阶段,应用程序与数据之间是一一对应的关系,其特点可用下图表示。
人工管理数据有以下几个特点。
(1)数据没有专门的存取设备。例如,使用计算机完成某一课题时,计算机将原始数据和应用程序一起输入内存,运算结束后将结果输出。任务完成时,数据和应用程序一起从内存中被释放;若再计算同一课题,则需要再次向内存输入原始数据和应用程序。由于没有专门的存取设备,原始数据和运算结果都无法在计算机中保存。
(2)数据没有专门的管理软件。数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。每个应用程序不仅要规定数据的逻辑结构,而且要设计数据的物理结构,包括输入数据的物理结构、对应物理结构的计算方法和输出数据的物理结构等。因此,程序员的负担很重。
(3)数据不共享。数据是面向应用程序的,一组数据只能对应一个应用程序。即使不同应用程序涉及某些相同的数据,也必须各自定义,无法互相利用、互相参照。因此,程序之间有大量的冗余数据。
(4) 数据不具有独立性。由于以上几个特点,以及没有专门对数据进行管理的软件系统,所以这个时期每个应用程序都要有数据存取方法、输入/输出方式和数据组织方法等。因为应用程序是直接面向存储结构的,所以当数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化时,人们必须对应用程序做出相应的修改,因而,数据与应用程序不具有独立性,这也进一步加重了程序员的负担。
1.2.2、文件系统阶段
在20世纪50年代后期至60年代中期,计算机应用范围逐步扩大,不仅用于科学计算,还大量用于信息管理。随着数据量的增加,数据的存储、检索和维护成为紧迫的需要。在硬件方面,有了磁盘、磁鼓等数据存取设备;在软件方面,出现了高级语言和操作系统,操作系统中有了专门管理数据的软件,即文件系统。
在文件系统阶段,应用程序与数据之间的对应关系如下图所示。
文件系统阶段数据管理有以下几个特点。
(1)数据以文件形式长期保存。数据以文件的组织方式,长期保存在计算机的磁盘上,可以被多次反复使用。
(2)由文件系统管理数据。文件系统提供了文件管理功能和文件的存取方法。文件系统把数据组织成具有一定结构的记录,并以文件的形式存储在存储设备上,这样,应用程序只与存储设备上的文件名打交道,不必关心数据的物理存储(存储位置、物理结构等),由文件系统提供的存取方法实现数据的存取。
(3)应用程序与数据之间有一定的独立性。文件系统在应用程序与数据文件之间的存取转换作用,使应用程序和数据之间具有“设备独立性”,即当改变存储设备时,不必改变应用程序,程序员也不必过多地考虑数据存储的物理细节,这大大减少了维护程序的工作量。
(4)文件的形式已经多样化。由于有了磁盘这样的数据存取设备,文件也就不再局限于顺序文件,有了索引文件、链表文件等。因此,对文件的访问方式既可以是顺序访问,也可以是直接访问。但文件之间是独立的,它们之间的联系需要通过应用程序去构造,文件的共享性也比较差。
(5)数据具有一定的共享性。有了文件以后,数据就不再仅仅属于某个特定的应用程序,而可以由多个应用程序反复使用。但文件结构仍然是基于特定用途的,应用程序仍然是基于特定的物理结构和存取方法编制的。因此,数据的存储结构和应用程序之间的依赖关系并未根本改变。
与人工管理阶段相比,文件系统阶段对数据的管理有了很大的进步,但一些根本性问题仍没有彻底解决,主要表现在以下几个方面。
(1)数据共享性差、冗余度大。一个文件基本上对应一个应用程序,即文件仍然是面向应用的。当不同的应用程序所使用的数据具有共同部分时,各应用程序也必须分别建立自己的数据文件,数据不能共享。
(2)数据不一致性。这通常是由数据冗余造成的。由于相同数据在不同文件中重复存储、各自管理,对数据进行更新操作时,不但浪费磁盘空间,同时也容易造成数据的不一致性。
(3)数据独立性差。在文件系统阶段,尽管应用程序与数据之间有一定的独立性,但是这种独立性主要是指设备独立性,还未能彻底实现用户观点下的数据逻辑结构独立于数据在外部存储器的物理结构要求。因此,在文件系统中,一旦改变数据的逻辑结构,必须修改相应的应用程序,修改文件结构的定义。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也将引起文件的数据结构的改变。
(4) 数据间的联系弱。文件与文件之间是独立的,文件间的联系必须通过应用程序来构造。因此,文件系统只是一个没有弹性的、无结构的数据集合,不能反映现实世界事物之间的内在联系。
1.2.3、数据库系统阶段
从20世纪60年代后期开始,计算机在硬件方面出现了大容量、存取快速的磁盘,使存取大量数据成为可能,同时,计算机的应用也越来越广泛,数据量急剧增加,多种应用、多种语言互相覆盖地共享数据集合的要求也越来越强烈,文件系统已经不能满足各种应用的需要。于是,数据库技术应运而生,出现了统一管理数据的专门软件系统,即数据库管理系统(DataBase Management System, DBMS)。
在数据库系统阶段,应用程序与数据之间的关系如下图所示。
数据库系统阶段数据管理的特点体现在以下几个方面。
(1)结构化的数据及其联系的集合
数据库系统(DataBase System, DBS)将数据按一定的结构形式(即数据模型)组织到数据库(DataBase, DB)中,不仅考虑某个应用的数据结构,而且考虑了整个组织(即多个应用)的数据结构,也就是说,数据库中的数据不再仅仅针对某个应用,而是面向全组织,不仅数据内部是结构化的,整体也是结构化的;不仅描述了数据本身,也描述了数据间的有机联系,从而较好地反映了现实世界事物间的自然联系。
例如:如果将教师(教师号,姓名,性别,年龄,职称,工资,专业,院系)和课程(课程号,课程名,课时)数据分别存储在两个文件中,由于文件的记录之间没有联系,要想查询某个教师的教师号、姓名、讲授课程的名称和课时,必须编写一段比较复杂的程序来实现这种联系。如果将这些数据存储在数据库中,由于数据库系统不仅描述数据本身,还描述数据之间的联系,上述查询需求可以非常容易地联机完成。
(2)数据共享性高、冗余度低
数据库系统全盘考虑所有用户的数据需求,面向整个应用系统,所有用户的数据都包含在数据库中。因此,不同用户、不同应用程序可同时存取数据库中的数据,每个用户或应用程序只使用数据库中的一部分数据,同一数据可供多个用户或应用程序共享,从而减少了不必要的数据冗余,节约了存储空间,同时也避免了数据之间的不相容性与不一致性,即避免了同一数据在数据库中重复出现且具有不同值的现象。
同时,在数据库系统中,用户和应用程序不像在文件系统中那样各自建立自己对应的数据文件,而是从数据库中存取其中的数据子集。数据子集是数据库管理系统从数据库中映射出来的逻辑文件。同一个数据可能在物理存储上只存一次,但数据库管理系统可以把它映射到不同的逻辑文件里,这就是数据库系统提高数据共享、减少数据冗余的根本所在,如下图所示。
(3)数据独立性高
在数据库系统中,整个数据库的结构可分成三级:用户逻辑结构、数据库逻辑结构和数据库物理结构。数据独立性分为两级:物理独立性和逻辑独立性,如下图所示。
数据的物理独立性是指当数据库物理结构(如存储结构、存取方式、外部存储设备等)改变时,通过修改映射,使数据库逻辑结构不受影响,进而用户逻辑结构及应用程序不用改变。例如,在更换程序运行的硬盘时,数据库管理系统会根据不同硬件,调整数据库逻辑结构到数据库物理结构的映射,保持数据库逻辑结构不发生改变,因此,用户逻辑结构无须改变。
数据的逻辑独立性是指当数据库逻辑结构(如修改数据定义、增加新的数据类型、改变数据间的关系等)发生改变时,通过修改映射,用户逻辑结构及应用程序不用改变。例如,在修改数据库中数据的内容时,数据库管理系统会根据调整后的数据库逻辑结构,调整用户逻辑结构到数据库逻辑结构的映射,保持用户逻辑结构访问的数据逻辑不改变,因此,用户逻辑结构无须改变。
(4)有统一的数据管理和控制功能
数据通过数据库管理进行管理控制,具体内容详见1.2节中对数据库管理系统的主要功能的介绍。
二、数据库系统的组成
数据库系统由数据库、数据库用户、软件系统和硬件系统组成。下图是数据库系统的部分组成示意图,图中省略了硬件系统。
2.1、数据库
数据库是存储在计算机内的、有组织的、可共享的数据和数据对象(如表、视图、存储过程和触发器等)的集合,这种集合按一定的数据模型(或结构)组织、描述并长期存储,同时能以安全和可靠的方法进行数据的检索和存储。
2.2、数据库用户
(1)最终用户
最终用户(End User)主要是使用数据库的各级管理人员、工程技术人员和科研人员,主要利用已编写好的应用程序接口使用数据库。
(2)应用程序员
应用程序员(pplication Programmer)负责为最终用户设计和编写应用程序,并进行调试和安装,以便终用户利用应程序对数据库进行存取操作。
(3)数据库管理员
数据库管理员(DataBase Administrator, DBA)是负责设计、建立、管理和维护数据库以及协调用户对数的个人或工作团队。DBA应熟悉计算机的软硬件系统,具有较全面的数据处理知识,熟悉最终用户的业务、数据及其流程。
DBA的主要职责:参与数据库设计的全过程,决定整个数据库的结构和信息内容;决定数据库的存储结构和存取策略,以获得较高的存取效率和存储空间利用率;帮助应用程序员使用数据库系统;定义数据的安全性和完整性约束条件,确保数据的安全性和完整性;监控数据库的使用和运行;利用数据库管理系统提供的监视和分析程序对数据库的运行情况进行记录、统计和分析,并根据实际情况不断改进数据库的设计,提高系统的性能;根据用户需求情况的变化,对数据库进行重新构造。
2.3、软件系统
软件(Software)系统主要包括操作系统(Operating System, OS)、DBMS、应用开发工具和应用系统等。DBMS可借助操作系统对数据库的数据进行存取、维护和管理。数据库系统的各类人员、应用程序等对数据库的各种操作请求,都必须通过DBMS完成。
DBMS是数据库系统的核心软件,下面介绍其主要功能、组成和数据存取过程。
(1)DBMS的主要功能
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库运行管理功能、数据库的建立和维护功能、数据通信接口及数据的组织、存储和管理功能,如下图所示。
①数据定义功能
DBMS提供数据定义语言(Data Definition Language, DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关的约束条件。例如,为保证数据库安全而定义用户口令和存取权限,为保证正确语义而定义完整性规则等。再如,DBMS提供的结构化查询语言(Structured Query Language, SQL)提供CREATE、DROP、ALTER等语句,可分别用来建立、删除和修改数据库。用DDL定义的各种模式需要通过相应的模式翻译程序转换为机器内部代码表示形式,保存在数据字典(Data Dictionary, DD) (或称为系统目录)中。数据字典是DBMS存取数据的基本依据。因此,DBMS中应包括DDL的编译程序。
②数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language, DML)实现对数据库的基本操作,包括检索、更新(包括插入、修改和删除)等。因此,DBMS也应包括DML的编译程序或解释程序。DML有两类:一类是自主型的或自含型的,这一类属于交互式命令语言,语法简单,可独立使用;另一类是宿主型的,它把对数据库的存取语句嵌入高级语言(如Fortran、Pascal、C等)中,不能单独使用。SQL就是DML的一种。例如,DBMS提供的结构化查询语言SQL提供查询语句(SELECT)、插入语句(INSERT)、修改语句(UPDATE)和删除语句(DELETE),可分别实现对数据库中数据的查询、插入、修改和删除操作。
③数据库运行管理功能
对数据库的运行进行管理是DBMS的核心功能。DBMS对数据库的控制主要通过以下4个方面实现。
第一,数据的安全性(Security)控制:防止不合法使用数据库造成数据的泄露和破坏,使每个用户只能按规定对某些数据进行某种或某些操作和处理,保证数据的安全。例如,DBMS提供口令检查用户身份或用其他手段来验证用户身份,以防止非法用户使用系统。DBMS也可以对数据的存取权限进行限制,用户只能按所具有的权限对指定的数据进行相应的操作。
第二,数据的完整性(Integrity)控制:DBMS通过设置一些完整性规则等约束条件,确保数据的正确性、有效性和相容性。正确性是指数据的合法性,如课程的课时属于数值型数据,不能含有字母或特殊符号。有效性是指数据是否在其定义的有效范围,如成绩不能是负数。相容性是指表示同一事实的两个数据应相同,否则就不相容,如一位教师不能属于两个院系。
第三,并发(Concurrency)控制:多个用户同时存取或修改数据库时,DBMS可防止由于相互干扰而提供给用户不正确的数据,并防止数据库受到破坏。
第四,数据恢复(Recovery) :由于计算机系统的硬件故障、软件故障,以及操作员的误操作等原因,造成数据库中的数据不正确或数据丢失时,DBMS有能力将数据库从错误状态恢复到最近某一时刻的正确状态。
④数据库的建立和维护功能
数据库的建立包括数据库的初始数据的装入与数据转换等,数据库的维护包括数据库的转储、恢复、重组织与重构造、系统性能监视与分析等。这些功能分别由DBMS的各个实用程序来完成。
⑤数据通信接口
DBMS提供与其他软件系统进行通信的功能。一般地,DBMS提供了与其他DBMS或文件系统的接口,从而使该DBMS能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者可接收其他DBMS或文件系统的数据,实现用户程序与DBMS、DBMS与DBMS、DBMS与文件系统之间的通信。通常这些功能需要操作系统协调完成。
⑥数据的组织、存储和管理功能
DBMS负责对数据库中需要存放的各种数据(如数据字典、用户数据、存取路径等)进行组织、存储和管理,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间利用率和对数据库中数据进行增加、删除、查询、修改等操作的效率。
(2)DBMS的组成
DBMS是由许多程序组成的一个大型软件系统,每个程序都有自己的功能,共同完成DBMS 的一个或几个功能。一个完整的DBMS通常应由语言编译处理程序、系统运行控制程序、系统t建立和维护程序、数据字典等部分组成。
语言编译处理程序包括数据定义语言DDL和数据操纵语言DML编译程序。用DDL编写的各级源模式被编译成各级目标模式,保存在数据字典中,供以后数据操纵或数据控制时使用。DML语句被转换成可执行程序,实现对数据库数据的检索、插入、删除和修改等基本操作。
系统运行控制程序负责数据库系统运行过程中的控制与管理,主要包括系统总控程序、安全性控制程序、完整性控制程序、并发控制程序、数据存取和更新程序、通信控制程序等。
系统建立和维护程序包括:装配程序,用来完成初始数据库的数据装入;重组程序,当数据库系统性能降低(如查询速度变慢)时,重新组织数据库,重新装入数据;系统恢复程序,当数据库系统受到破坏时,将数据库系统恢复到以前某个正确的状态。
DD用来描述数据库中有关信息的数据目录,包括数据库的三级模式、数据类型、用户名和用户权限等有关数据库系统的信息,起着系统状态的目录表的作用,帮助用户、DBA和DBMS 本身使用和管理数据库。
(3)DBMS的数据存取过程
在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键作用,对数据库的一切操作都要通过DBMS完成。DBMS对数据的存取通常包括以下步骤。
①用户使用某种特定的数据操作语言向DBMS发出存取请求。
②DBMS接受请求并将该请求解释转换成机器代码指令。
③ DBMS依次检查外模式、外模式/模式映像、模式、模式/内模式映像及存储结构定义。
④DBMS对数据库执行必要的存取操作。
⑤从对数据库的存取操作中接受结果。
⑥对得到的结果进行必要的处理,如格式转换等。
⑦将处理的结果返回给用户。
上述存取过程中还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。
2.4、硬件系统
硬件(Hardware)系统指存储和运行数据库系统的硬件设备,包括CPU、内存、大容量的存储设备、输入/输出设备和外部设备等。
三、数据库系统的体系结构
3.1、数据库系统的内部体系结构
美国国家标准学会(American National Standards Institute, ANSI)所属标准计划和要求委员会在1975年公布的研究报告中,把数据库系统内部的体系结构从逻辑上分为外模式、模式和内模式三级模式结构和二级映像功能,即ANSI/SPARC体系结构。三级模式结构和二级映像功能如下图所示。
3.1.1、三级模式结构
外模式、模式和内模式分别对应用户级、概念级和物理级,它们分别反映了看待数据库的3个角度。
(1)模式
模式(Schema)也称概念模式,是数据库中全体数据的逻辑结构和特征的描述,处于三级模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C、Fortran等)无关。一个数据库只有一个模式,它是整个数据库数据在逻辑上的视图,是数据库的整体逻辑。我们也可以认为,模式是对现实世界的一个抽象,是将现实世界某个应用环境(企业或单位)的所有信息按用户需求形成的一个逻辑整体。
模式是数据库中全体数据的逻辑结构的描述,不涉及具体的值。例如,对于学生信息,可以定义其模式为(学号,姓名,性别,年龄,专业,院系),而(s1,王彤,女,18,计算机,信息学院)是该模式的一个具体取值。
(2)外模式
外模式(External Schema)又称子模式(Subschema)或用户模式(User Schema),是三级模式结构的最外层,是与某一应用有关的数据的逻辑结构,即用户视图。外模式一般是模式的子集,一个数据库可以有多个外模式。由于不同用户的需求可能不同,因此不同用户对应的外模式的描述也可能不同。用户只能看到和访问与自己对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。所以,外模式是保证数据库安全的一个有力措施。
(3)内模式
内模式(Internal Schema)又称存储模式(Storage Schema)或物理模式(Physical Schema),是三级模式结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层。它是对数据库存储结构的描述,是数据在数据库内部的表示方式。例如,记录以什么存储方式存储(顺序存储、hash表、B+树存储等)、索引按照什么方式组织、数据是否压缩及是否加密等,它不涉及任何存储设备的特定约束,如磁盘磁道容量和物理块大小等。
综上所述,在数据库系统中,外模式可有多个,而模式、内模式只能各有一个。内模式是整个数据库实际存储的表示,而模式是整个数据库实际存储的抽象表示,外模式是逻辑模式的某一部分的抽象表示。
3.1.2、二级映像
DBMS在三级模式之间提供了二级映像功能,保证了数据库系统较高的数据独立性,即逻辑独立性与物理独立性。
(1)外模式/模式映像。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映像。它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。例如,在学生的逻辑结构(学号,姓名,性别)中添加新的属性“出生日期”时,学生的逻辑结构变为(学号,姓名,性别,出生日期),由数据库管理员对各个外模式/模式映像做相应改变,这一映像功能保证了数据的局部逻辑结构不变(即外模式保持不变)。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与应用程序间的逻辑独立性。
(2)模式/内模式映像。数据库中的模式和内模式都只有一个,所以模式/内模式映像是唯一的。它确定了数据的全局逻辑结构与存储结构之间的对应关系。存储结构变化时,如采用了更先进的存储结构,由数据库管理员对模式/内模式映像做相应变化,使其模式仍保持不变,即把存储结构的变化影响限制在模式之下,这使数据的存储结构和存储方法较高地独立于应用程序,通过映像功能保证数据存储结构的变化不影响数据的全局逻辑结构,从而不必修改应用程序,即确保了数据的物理独立性。
3.1.3、三级模式与二级映像的优点
(1)保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。
(2)简化了用户接口。按照外模式编写应用程序或输入命令,而不需要了解数据库内部的存储结构,方便用户使用系统。
(3)有利于数据共享。在不同的外模式下可由多个用户共享系统中的数据,减少了数据冗余。
(4)有利于数据的安全保密。在外模式下根据要求进行操作,只能对限定的数据操作,保证了其他数据的安全。
3.2、数据库系统的外部体系结构
从最终用户角度来看,数据库系统的外部体系结构分为单用户结构、主从式结构、分布式结构、客户机/服务器结构和浏览器/服务器结构。
3.2.1、单用户结构
单用户结构的数据库系统又称桌面型数据库系统,其主要特点是将应用程序、DBMS和数据库都装在一台计算机上,由一个用户独占使用,不同计算机间不能共享数据。
DBMS提供较弱的数据库管理工具及较强的应用程序和界面开发工具,开发工具与数据库集成为一体,既是数据库管理工具,同时又是数据库应用程序和界面的前端工具。
3.2.2、主从式结构
主从式结构的数据库系统是一个大型主机带多终端的多用户结构的系统。在这种结构中,应用程序、DBMS和数据库都集中存放在一个大型主机上,所有处理任务都由这个大型主机来完成,而连于主机上的终端,只是作为主机的输入/输出设备,各个用户通过主机的终端并发地存取和共享数据资源。而主机则通过分时的方式轮流为每个终端用户服务。在每个时刻,每个用户都感觉自己独占主机的全部资源。
主从式结构的主要优点是结构简单、易于管理与维护;缺点是所有处理任务由主机完成,对主机的性能要求较高。当终端数量太多时,主机的处理任务和数据吞吐任务过重,易形成瓶颈,使系统性能下降;另外,当主机遭受攻击而出现故障时,整个系统无法使用。因此,主从式结构对主机的可靠性要求较高。
3.2.3、分布式结构
分布式结构的数据库系统是分布式网络技术与数据库技术相结合的产物,数据在物理上是分布的,数据不集中存放在一台服务器上,而是分布在不同地域的服务器上;所有数据在逻辑上是一个整体:用户不关心数据的分片存储,也不关心物理数据的具体分布,这些完全由网络数据库在分布式文件系统的支持下完成。
这种数据库系统的优点是可以利用多台服务器并发地处理数据,从而提高计算型数据处理任务的效率;缺点是数据的分布式存储给数据处理任务的协调与维护带来困难,同时,当用户需要经常访问过程数据时,系统效率明显地受到网络流量的制约。
3.2.4、客户机 / 服务器结构
客户机/服务器结构(Client/Server, C/S) 的数据库系统示意图如下图所示。
在客户机/服务器结构中,DBMS和数据库存放于数据库服务器上,DBMS应用开发工具和应用程序存放于客户机上。客户机负责管理用户界面、接收用户数据、处理应用逻辑;负责生成数据库服务请求,并将该请求发送给服务器,数据库服务器进行处理后,将处理结果返回给客户机,客户机将结果按一定格式显示给用户。因此,这种客户机/服务器模式又称富客户机(Rich Client)模式,是一种两层结构。
客户机/服务器结构的数据库系统中,服务器只将处理的结果返回给客户机,大大降低了网络上的数据传输量;应程序的运行和计算处理工作由客户机完成,减少了与服务器不必要的通信开销,减轻服务器的负载。但是,这种结构维护升级很不方便,需要在每个客户机上安装客户机程序,而且当应用程序修改后,就必须在所有安装应用程序的客户机上升级此应用程序。
3.2.5、浏览器 / 服务器结构
浏览器/服务器结构(Browser/Server, B/S)的数据库系统示意图如下图所示。
客户机仅安装通用的浏览器软件,实现用户的输入/输出,应用程序不安装在客户机上,而是安装在介于客户机和数据库服务器之间的另外一个称为应用服务器的服务器上,即将客户机运行的应用程序转移到应用服务器上,这样,应用服务器充当了客户机和数据库服务器的中介,架起了用户界面与数据库之间的桥梁。因此,浏览器/服务器模式又称瘦客户机(Thin Client)模式,是一种三层结构。
四、现实世界、信息世界、计算机世界及有关概念
4.1、现实世界
现实世界,即客观存在的世界,其中存在各种事物及它们之间的联系,每个事物都有自己的特征或性质。人们总是选用感兴趣的最能表征一个事物的若干特征来描述该事物。例如,要描述一门课程,常选用课程号、课程名、课时等来描述,有了这些特征,就能区分不同的课程。
现实世界中,事物之间是相互联系的,而这种联系可能是多方面的,但人们只选择那些感兴趣的联系,无须选择所有的联系。例如,人们可以选择“教师讲授课程”这一联系来表示教师和课程之间的关系。
4.2、信息世界
4.2.1、信息世界及其有关概念
信息世界是现实世界在人们头脑中的反映,经过人脑的分析、归纳和抽象,形成信息,人们把这些信息进行记录、整理、归类和格式化后,就构成了信息世界。在信息世界中,常用的主要概念如下。
(1)实体(Entity)。客观存在并且可以相互区别的“事物”称为实体。实体可以是具体的人、事或者物,如一位教师、一门课程、一座建筑等;也可以是抽象的事件,如一堂课、一次比赛等。
(2)属性(Attribute)。实体所具有的某一特性称为属性。一个实体可以由若干个属性共同刻画。如课程实体由课程号、课程名、课时等属性组成。属性有“型”和“值”之分。“型”即属性名,如课程号、课程名、课时都是属性的型;“值”即属性的具体内容,如课程(c7,高等数学,60),这些属性值的集合表示了一个课程实体。
(3)实体型(Entity Type)。具有相同属性的实体必然具有共同的特征。所以,用实体名及其属性名集合来抽象和描述同类实体,称为实体型。如课程(课程号,课程名,课时)就是一个实体型,它描述的是课程这一类实体。
(4)实体集(Entity Set)。同型实体的集合称为实体集,如所有的学生、所有的课程等。
(5)码(Key)。在实体型中,能唯一标识一个实体的属性或属性集称为实体的码。如学生的学号就是学生实体的码,而学生实体的姓名属性可能有重名,不能作为学生实体的码。注意:在有些教材中该概念称为键,具体内容将在本书的第2章介绍。
(6)域(Domain)。某一属性的取值范围称为该属性的域。如姓名的域为字符串集合,年龄的域为小于40整数,性别的域为男或女等。
(7)联系(Relationship)。在现实世界中,事物内部及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为单个实体型内部的联系和实体型之间的联系。单个实体型内部的联系通常是指组成实体的各属性之间的联系;实体型之间的联系通常是指不同实体之间的联系,可分为两个实体型之间的联系及两个以上实体型之间的联系。
4.2.2、两个实体型之间的联系
两个实体型之间的联系是指两个不同的实体集间的联系,有如下3种类型。
(1)一对一联系(1:1)。实体集A中的一个实体至多与实体集B中的一个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应,此时称实体集A与实体集B为一对一的联系,记作1:1。例如,班级与班长、观众与座位、病人与床位之间的联系。
(2)一对多联系(1: n)。实体集A中的一个实体与实体集B中的n (n≥0)个实体相联系,反之,实体集B中的一个实体至多与实体集A中的一个实体相联系,记作1: n。例如,班级与学生、公司与职员、省与市之间的联系。
(3)多对多联系(m: n)。实体集A中的一个实体与实体集B中的n (n≥0)个实体相联系,反之,实体集B中的一个实体与实体集A中的m (m≥0)个实体相联系,记作m: n。例如,教师与学生、学生与课程、工厂与产品之间的联系。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。我们可以用图形来表示两个实体型之间的这3种联系,如下图所示。
4.2.3、两个以上实体型之间的联系
两个以上的实体型之间也存在一对一、一对多和多对多的联系。
例如,对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的联系。
4.2.4、单个实体型内部的联系
同一个实体型内部的各个实体之间存在的联系,也可以有一对一、一对多和多对多的联系。
例如,职工实体型内部具有领导与被领导的联系,即某一职工“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此,职工实体型内部的这种联系,就是一对多的联系。
4.3、计算机世界
4.3.1、计算机世界及其有关概念
计算机世界是信息世界中信息的数据化,就是将信息用字符和数值等数据表示,便于存储在计算机中并由计算机进行识别和处理。在计算机世界中,常用的主要概念有以下几个。
(1)字段(Field)。标记实体属性的命名单位称为字段,也称为数据项。字段的命名往往和属性名相同。例如,课程有课程号、课程名和课时等字段。
(2)记录(Record)。字段的有序集合称为记录。通常用一个记录描述一个实体,因此,记录也可以定义为能完整地描述一个实体的字段集。例如, (c7,高等数学,60)为一个课程记录。
(3)文件(File)。同一类记录的集合称为文件。文件是用来描述实体集的。例如,所有课程的记录组成了一个课程文件。
(4)关键字。能唯一标识文件中每个记录的字段或字段集,称为记录的关键字,或简称键(码)。例如,在课程文件中,课程号可以唯一标识每一个课程记录,因此,课程号可作为课程记录的关键字。
通过对现实世界、信息世界和计算机世界有关概念的介绍,我们可以总结出现实世界、信息世界和计算机世界中有关概念的对应关系,如下图所示。
4.3.2、计算机世界的数据模型
4.3.2.1、层次模型
层次模型(Hierarchical Model)是数据系统中最早出现的数据模型,采用层次模型的数据库的典型代表是IBM公司的IMS数据库。
现实世界中,许多实体之间的联系都表现出一种很自然的层次关系,如家族关系、行政机构等,因此,层次模型用树形数据结构(有根树)来表示各类实体及实体间的联系。在这种树形数据结构中,每个结点表示一个记录型,每个记录型可包含若干个字段,记录型描述的是实体,字段描述实体的属性,各个记录型及其字段都必须命名。结点间的带箭头的连线(或边)表示记录型间的联系,连线上端的结点是父结点或双亲结点,连线下端的结点是子结点或子女结点,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点,如下图所示。
层次模型中,每棵树有且仅有一个结点没有双亲,该结点就是根结点;根结点以外的其他结点有且仅有一个双亲结点;父子结点之间的联系是一对多(1: n)的联系。父结点中的一个记录值可能对应n个子结点中的记录值,而子结点中的一个记录值只能对应父结点中一个记录值。因此,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。
层次模型的数据操作主要有查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件。
层次模型的优点:结构比较简单,层次分明,便于在计算机内实现;结点间联系简单,从根结点到树中任一结点均存在一条唯一的层次路径,当要存取某个结点的记录值时,沿着这条路径很快就能找到该记录值,查询效率很高;提供了良好的数据完整性支持。
层次模型的缺点:不能直接表示两个以上的实体型间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性;对数据插入和册除的操作限制太多;查询子女结点必须通过双亲结点。
4.3.2.2、网状模型
网状模型(Network Model)采用有向图结构表示记录型与记录型之间的联系,可以更直接地描述现实世界,层次模型实际上是网状模型的一个特例。网状模型中有一个以上的结点没有双亲结点;允许结点有多个双亲结点;允许两个结点之间有多种联系(复合联系)。
网状模型的数据操作主要包括查询、插入、删除和修改数据。进行插入、删除和修改操作时要满足网状模型的完整性约束条件。插人数据时,允许插入尚未确定双亲结点值的子女结点值。例如,可增加一名尚未分配到某个教研室的新教师,也可增加一些刚来报到、还未分配宿舍的学生。删除数据时,允许只删除双亲结点值。例如,可删除一个教研室,而该教研室所有教师的信息仍保留在数据库中。修改数据时,可直接表示非树形结构,而无须像层次模型那样增加冗余结点。因此,进行修改操作时只需更新指定记录即可。网状模型不像层次模型那样有严格的完整性约東条件,它只提供一定的完整性约束。
网状模型的优点:能更为直接地描述客观世界,可表示实体间的多种复杂联系;具有良好的性能和存储效率。
网状模型的缺点:数据结构复杂,并且随着应用环境的扩大,数据库的结构变得越来越复杂,不便于终端用户掌握;其数据定义语言(DDL)和数据操纵语言(DML)极其复杂,不易于用户掌握;由于记录间的联系本质上是通过存取路径实现的,应用程序在访问数据库时要指定存取路径,即用户需要了解网状模型的实现细节,加重了编写应用程序的负担。
4.3.2.3、关系模型
关系模型(Relational Model)是发展较晚的一种模型。1970年,IBM公司的研究员埃德加·考特(E.F. Codd)首次提出了数据库系统的关系模型。他发表了题为《大型共享数据银行数据的关系模型》 (A Relation Model of Data for Large Shared Data Banks)的论文,在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究。为此他获得了1981年的图灵奖。此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。1977年,IBM公司研制的关系数据库System R开始运行,后来IBM公司又进行了不断改进和扩充,开发了基于System R的数据库系统SQL/DB。
20世纪80年代以后,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系数据库管理系统的产品也都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础的。关系数据库管理系统已成为目前应用最广泛的数据库管理系统,如现在广泛使用的小型数据库管理系统Foxpro、Access,开源数据库管理系统MySQL、MongoDB,商业数据库管理系统Oracle、SQL Server、Informix和Sybase等,都是关系数据库管理系统。
关系模型的数据结构是规范化的二维表,由表名、表头和表体3部分构成。表名即二维表的名称,表头决定了二维表的结构(即表中列数及每列的列名、类型等),表体即二维表中的数据。每个二维表又可称为关系。关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的,严格的定义将在第2章给出。表1-1~表1-5所示为教学数据库teaching的关系模型及其实例,分别为教师关系t、学生关系s、课程关系c、选课关系sc和授课关系tc。
关系模型的数据操作主要包括查询、插入、删除和修改数据。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
关系模型的优点:有严格的数学理论根据;数据结构简单、清晰,用户易懂、易用,不仅用关系描述实体,而且用关系描述实体间的联系,对数据的操作结果也是关系;存取路径对用户透明,用户只需要指出“干什么”,而不必详细说明“怎么干”,从而大大加强了数据的独立性,提高了用户操作效率。关系模型的缺点是查询效率不如非关系模型。
本书将重点介绍关系模型及关系数据库。
4.3.2.4、面向对象模型
面向对象模型(Object-oriented Model)中最基本的概念是对象和类。
对象是现实世界中实体的模型化,如一个学生、一门课程等都可以看作对象。每个对象都包含属性和方法。属性用来描述对象的静态特征。方法用来描述对象的行为特性。如一辆机动车,它不仅具有描述其静态特征的属性—高度、质量等,还具有加速、减速等动态特征。与关系模型相比,面向对象模型中的对象概念更为全面,因为关系模型主要描述对象的属性,而忽视了对象的方法,所以会产生“结构与行为相分离”的缺陷。
类是由具有同样属性和方法集的所有对象构成的。在面向对象模型中,可以继承操作形成新的类,新的类是对已有的类定义的扩充和细化,从而形成了一种类间的层次结构,有了超类和子类的概念。超类是子类的父类,规定了子类可以实现或扩展的方法和行为,子类继承了父类的方法和属性,可于扩展并形成功能更加具体的对象。
面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对比较复杂,涉及的知识比较多,因此,面向对象数据库尚未达到关系数据库的普及程度。
五、数据库领域新技术
5.1、分布式数据库
5.1.1、分布式数据库的定义
分布式数据库是一组结构化的数据集合,数据在逻辑上属于同一系统,在物理上分布在计算机网络的不同节点上。分布式数据库中有全局数据库和局部数据库两个概念。全局数据库就是从系统的角度出发,逻辑上的—组结构化的数据集合或逻辑项集;局部数据库是指不同物理节点上的各个数据库子集。
5.1.2、分布式数据库的特点
分布式数据库可以建立在以局域网连接的一组工作站上,也可以建立在广域网(或称远程网)的环境中。分布式数据库系统并不是简单地把集中式数据库安装在不同的场地,而是具有自己的性质和特点。
(1)自治与共享
自治是指局部数据库可以是专用资源,也可以是共享资源。共享资源体现了物理上的分散性,是按一定的约束条件划分形成的,需要由一定的协调机制来控制以实现共享。
(2)冗余的控制
分布式数据库允许冗余,即物理上的重复。冗余增加了自治性,即数据可以重复地驻留在常用的节点上以减少通信代价,提供自治基础上的共享。冗余不仅改善系统性能,同时也增加了系统的可用性,即不会由于某个节点的故障而引起全系统的瘫痪。但这无疑增加了存储代价,也增加了副本更新时的一致性代价,特别是当有故障时,节点重新恢复后保持多个副本一致性的代价。
(3)分布事务执行的复杂性
逻辑数据项集实际클由分在各个结点上的多个关系片段(子集)组成的。一个项可以在物理上被划分为不相交(或相交)的片段,也可以有多个相同的副本且存储在不同的节点上。所以,分布式数据库存取的事务是一种全局性事务,它是由许多在不同结点上执行对各局数据库存取的局部子事物组成的。如果仍保持事务执行的原子性,则必须保证全局事务的原子性。
(4)数据的独立性
使用分布式数据库时,系统要提供一种完全透明的性能,具体包括以下内容。
①逻辑数据适明性。某些用户的逻辑据文件改变时,或者增加新的应用使全局逻辑结构改变时,对其他用户的应用程序没有或有尽量少的影响。
②物理数据透明性。数据在节上的存储格式或组织方式改变时,数据的全局结构与应用程序无须改变。
③数据分布透明性。用户不必知道全局数据如何划分。
④数据冗余的透明性。用户无须知道数据重复,即数据子集在不同节点上冗余存储的情况。
5.1.3、分布式数据库的应用及展望
分布式数据库系统在实现共享时,其利用率高、有站点自治性、能随意扩充、可靠性和可用性好,有效且灵活,就像使用本地的集中式数据库一样。分布式数据库已广泛应用于企业人事、财务和库存等管理系统,百货公司、零售店的经营信息系统,电子银行、民航订票、铁路订票等在线处理系统,国家政府部门的经济信息系统,大规模数据资源等信息系统。
此外,随着数据库技术深入各应用领域,除了商业性、事务性应用以外,在以计算机作为辅助工具的各个信息领域,如计算机辅助设计(Computer Aided Design, CAD)、计算机辅助制造(Computer Aided Manufacturing, CAM)、计算机辅助软件工程(Computer Aided Software Engineering, CASE)、办公自动化(Office Automation, OA)、人工智能(Artificial Intelligence, AI)及军事科学等,同样适用分布式数据库技术,而且对数据库的集成共享、安全可靠等特性有更多的要求。为了适应新的应用,人们一方面要研究如何克服关系数据模型的局限性,增加更多面向对象的语义模型,研究基于分布式数据库的知识处理技术;另一方面要研究如何弱化完全分布、完全透明的概念,组成松散的联邦型分布式数据库系统。这种系统不一定保寺全局逻辑一致而仅提供一种协商谈判机制,使各个数据库维持其独立性,但能支持部分有控制的数据共享,这对OA等信息处理领域很有吸引力。
总之,分布式数据库技术有广阔的应用前景。随着计算机软、硬件技术的不断发展和计算机网络技术的发展,分布式数据库技术也将不断地向前发展。
5.2、数据仓库与数据挖掘
从20世纪80年代初起直到90年代初,联机事务处理(On line Transaction Processing,OLTP)一直是关系数据库应用的主流。然而,应用需求在不断地变化,当联机事务处理系统应用到一定阶段时,企业家们便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,进而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到。这种基于业务数据的决策分析,我们把它称为联机分析处理(Online Analytical Processing, OLAP)。如果说传统联机事务处理强调的是更新数据库(向数据库中添加信息),那么联机分析处理就是从数据库中获取信息、利用信息。因此,数据仓库专家拉尔夫·金博尔(Ralph Kimball)写道:“我们花了20多年的时间数据放入数据库,如今是该将它们拿出来的时候了。”
数据仓库(Data Wardouse, DW)是近年来信息领域发展起来的数据库新技术,随着企事还业单位信息化建设的逐步完善,各单位信息系统将产生越来越多的历史信息数据,如何将各业务系统及其他档案数据中有分析价值的海量数据集中管理起来,在此基础上,建立分析模型,从中挖掘出符合规律的识并用于未来的预测与决策中,是非常有意义的,这也是数据仓库产生的背景和原因。
5.2.1、数据仓库的定义
数据仓库的定义大多依照数据仓库专家荫蒙(W.H. Inmon)在其著作《建立数据仓库》(Building the Data Warehouse)中给出的描述:数据仓库就是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant) 数据集合,通常用于辅助决策支持。
从其定义的描述中可以看出,数据仓库有以下几个特点。
(1)面向主题。操作型数据库(如银行柜台存取款、股票交易、商场POS等系统的数据库)的数据组织是面向事务处理任务,各个业务系统之间各自分离:而数据仓库中的数据是按照一定的主题域进行组织的。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点领域,一个主题通常与多个操作型业务系统或外部档案数据相关。例如,一个超市的数据仓库组织数据的主题可能为供应商、顾客、商品等,而按应用来组织,则可能是销售子系统、供应子系统和财务子系统等。可见,基于主题组织的数据被划分为各自独立的领域,每个领域都有自己的逻辑内涵而互不交叉。而基于应用的数据组织则完全不同,它的数据只是为处理具体应用而组织在一起的。
(2)集成。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据做抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企事业单位一致的全局信息。也就是说,存放在数据仓库中的数据应使用一致的命名规则、格式、编码结构和相关特性来定义。
(3)相对稳定。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供单位决策分析之用,所涉及的数据操作主要是数据查询和加载,一旦某个数据被加载到数据仓库中,一般情况下将作为数据档案长期保存,几乎不再做修改和删除操作。也就是说,针对数据仓库,通常有大量的查询操作及少量定期的加载(或刷新)操作。
(4)反映历史变化。操作型数据库主要关心当前某个时间段内的数据,而数据仓库中的数据通常包含较久远的历史数据,因此数据仓库总是包含一个时间维度,以便可以研究趋势和变化。数据仓库系统通常记录了一个单位从过去某一时点(如开始启用数据仓库系统的时点)到前的所有时期的信息,通过这些信息,人们可以对单位的发展历程和未来趋势做出定量分析和预测。
5.2.2、数据仓库系统的体系结构
仓库系统通常是对多个异构数据源的有效集成,集成后按照主题进行重组,包含历史数据。存放在数据仓库中的数据通常不再修改,用于做进一步的分析。
数据仓库系统的建立和开发,是以企事业单位的现有业务系统和大量业务数据的积累为基的,数据合库不是一个静态的概念,只有把信息适时地交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才是有意义的。因此,把信息加以整理归纳和重组并及时提供给相应的管理决策人员,是数据仓库的根本任务。数据仓库的开发是06全生命周期的,通常是一个循环迭代开发过程。
数据仓库系统的体系结构如图1-14所示。一个典型的数据仓库系统通常包含数据源、数据存储与管理、OLAP服务器及前端工具与应用4个部分。
(1)数据源。数据源是数据仓库系统的基础,即系统的数据来源,通常包括企业(或事业单位)的各种内部信息和外部信息。内部信息,如存于操作型数据库中的各种业务数据和办公自动化系统中包含的各类文档数据;外部信息,如各类法律法规、市场信息、竞争对手的信息,以各类外部统计数据及其他有关文档等。
(2)数据的存储与管理。该部分是整个数据仓库系统的核心,其在现有各业务系统的基础上,对数据进行抽取、清理,并有效集成,按照主题进行重新组织,最终确定数据仓库的物理存储结构。按照数据的覆盖范围和存储规模,数据仓库可以分为企业级数据仓库和部门级数据仓库(也叫“数据集市”,Data Marts)。
(3) OLAP服务器。OLAP服务器对需要分析的数据按照多维数据模型进行重组,以支持用户随时从多角度、多层次来分析据,发现数据规律与趋势。
(4)前端工具与应用。前端工具与应用主要包括各种数据分析工具、报表工具、查询工具、数据挖掘工具以及各种基于数据仓库或数据集市开发的应用。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具既可针对数据仓库,也可针对OLAP服务器。
5.2.3、数据挖掘的定义
数据挖掘(Data Mining)就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。简单地说,数据挖掘就是从大量数据中提取或“挖掘”知识,因此,其又被称为数据库中的知识发现(Knowledge Discovery in Database, KDD)。
若将数据仓库比作矿井,那么数据挖掘就是深人矿井采矿的工作。数据挖掘不是一种无中生有的魔术,也不是点石成金的炼金术,若没有足够丰富完整的数据,则很难期待数据挖掘能挖掘出有意义的信息。
5.2.4、数据挖掘的方法
数据掘的方法可以分为两类:直接数据挖掘与间接数据挖掘。
直接数据挖掘的目标是利用可用的数据建立一个模型,这个模型对剩余的数据,比如对一个特定的变量进行描述。直接数据挖掘包括分类(Classification)、估值(Estimation)和预言(Prediction)等分析方法。
而在间接数据挖掘的目标中并没有选出某一具体的变量并用模型进行描述,而是在所有的交量中建立起某种关系,如相关性分组或关联规则(Affinity Grouping or Association Rules)、聚集(Clustering)、描述和可视化(Description and Visualization)及复杂数据类型挖掘(文本、网、图形图像、音视频和空间数据等)。
5.3、大数据技术
5.3.1、大数据技术的产生背景
IBM前首席执行官郭士纳指出,每隔15年IT领域会迎来一次重大变革。截至目前,共发生了3次信息化浪潮。第一次信息化浪潮发生在1980年前后,其标志是个人计算机的产生,当时信息技术所面对的主要问题是实现各类数据的处理。第二次信息化浪潮发生在1995年前后,其标志是互联网的普及,当时信息技术所面对的主要问题是实现数据的互联互通。第三次信息化浪潮发生在2010年前后,随着硬件存储成本的持续下降、互联网技术和物联网技术的高速发展,现代社会每天正以不可想象的速度产生各类数据,如电子商务网站的用户访问日志、微博中的评论信息、各类短视频和微电影、各类商品的物流配送信息、手机通话记录等。这些数据或流入已经运行的数据库系统,或形成具有结构化的各类文件,或形成具有非结构化特征的视频和图像文件。据统计,Google每分钟进行200万次搜索,全球每分钟发送2亿封电子邮件,12306网站春节期间一天的访问量为84亿次。总之,人们已经步入一个以各类数据为中心的全新时代一大数据时代。
从数据库的研究历程看,大数据并非一个全新的概念,它与数据库技术的研究和发展密切相关。20世纪70时代至80年代,数据库的研究人员就开始着手超大规模数据库(Very Large Database, VLDB)的探索工作,并于1975年举行了第一届VLDB学术会议,至今该会议仍然是数据库管理领域的顶级学术会议之一。20世纪90年代后期,随着互联网技术的发展、行业信息化建设和水平不断提高,产生了海量数据(Massive Data),于是数据库的研究人员开始从数据管理转向数据挖掘技术,尝试在海量数据上进行有价值数据的提取和预测工作。20年后,数据库的研究人员发现他们所处理的数据不仅在数量上呈现爆炸式增长,种类繁多的数据类型也不断挑战原有数据模型的计算能力和存储能力,因此,学者纷纷使用“大数据”来表达现阶段的数据科研工作,随之产生了一个新兴领域和职业—数据科学和数据科学家。
5.3.2、大数据的概念
对于大数据的概念,尚无明确的定义,但人们普遍采用大数据的4V特性来描述大数据,即“数据量大(Volume) ““数据类型繁多(Variety)”“数据处理速度快(Velocity) "和“数据价值密度低(Value) "。
(1)“数据量大”是从数据规模的角度来描述大数据的。大数据的数据量可以从数百TB 到数百PB,甚至到EB的规模。
(2)“数据类型繁多”是从数据来源和数据种类的角度来描述大数据的。大数据的数据类型从宏观上可以分构化数据和非结构化数据,其中结构化数据以关系型数据库为主,占大数据的10%左右,非结构化的数据主要包括邮件、音频、视频、位置信息、网络日志等,占大数据的90%左右。
(3)“数据处理度快”是从数据的产生和处理的角度来描述大数据的。一方面,现阶段每分钟产生大量的社会、经济、政治和人文等领域的相关数据。另一方面,大数据时代的很多应用,效率是核心,需要对数据具有“秒级”响应,从而进行有效的商业指导和生产实践。
(4)“数据价值密度低”是从大数据潜藏的价值分布情况来描述大数据的。虽然大数据中具有很多有价值的潜在信息,但其价值的密度远远低于传统关系型数据库中的数据价值。对于价密度低,很多署认为这也体现了解决大数据各类问题的必要性,即通过技术的革新,实现大数据淘金。
5.3.3、大数据的关键技术
目前大数据所涉及的关键技术主要包括数据的采集和迁移、数据的处理和分析、数据安全和隐私保护等。
数据采集技术将分布在异构数据源或异构采集设备上的数据通过清洗、转换和集成技术,存储到分布式文件系统中,成为数据分析、挖掘和应用的基础。数据迁移技术将数据从关系型数据库迁移到分布式文件系统或NoSOL数据库中。NoSQL数据库是一种非结构化的新型分布式数据库,它采用键对的方数据,支持超大规模数据存储,可灵活地定义不同类型的数据库模式。
数据处理和分析技术利用分布式并行编程模型和计算框架,如Hadoop的Map-Reduce计算框架和Spark的混计算框架等,结合模式识别、人工智能、机器学习、数据挖掘等算法,实现对大数据的离线分析和大数据流的在线分析。
数据安全和隐私保护是指在确保大数据被良性利用的同时,通过隐私保护策略和数据安全等手段,构建大数据环境下的数据隐私和安全保护。
需要指出的是,上述各类大数据技术多传承自现阶段的关系型数据库,如关系型数据库上的异构数据集成技术、结构化查询技术、数据半结构化组织技术、数据联机分析技术、数据挖掘技术、数据隐私保护技术等。同时,大数据中的NoSQL数据库本身含义是Not Only sQL,而g 非Not SQL。它表明大数据的非结构化数据库和关系型数据库在解决问题上各具优势,大数据存诸中的数据一致性、数据完整性和复杂查询的效率等方面还需借鉴关系型数据库的一些成熟解决方案。因止,望理关数据库对于日后开展大数据相关技术的学习、实践、创新具有重要的借鉴意义。
5.3.4、大数据技术的应用场景
目前,大数据技术的应用已经非常普遍,涉及的领域包括传统零售业、金融业、医疗业和政府机构等。
在传统零售行业中,用户购物的大数据可用于分析具有潜在购买关系的商品,经销商将分析得到的关联商品以搭配的形式进行销售,从而提高相关商品的销售量。
在金融业中,每日股票交易的数据量具有大数据的特点,很多金融公司纷纷成立金融大数据研发机构,通过大数据技术分析市场的宏观动向并预测某些公司的运行情况。同时,银行可以根据区域用户日常交易情况,将常用的业务放置在区域内ATM机器上,方便用户更快捷地使9市勿馆况,将常用的业务放置在区域内
在医疗行业中,各类患者的诊断信息、检查信息和处方信息可用于预测、辨别和辅助各种医疗活动。代表性的案例如“癌症的预测”,研究发现,很多症状能够用于早期的癌症预测,但由于传统医疗数据量较小,导致预测结果精度不高。随着大数据技术与医疗大数据的深度结合,越来越多有意义的癌症指征被发现并用于早期的癌症预测中。
在政府机构中,其掌握的类大数拊的决策具有重要的辅助作用。例如,传统的出租车GPS信息只用于掌屋出租车的运行情况,目前这一数据可用于预测各主要街道的拥堵情况,从而对未来的市政建设提供决策依据。再如,药店销售的感冒药数量不仅可用于行业的基本监督,还可用于预测当前区域的流感发病情况等。
以上各行业的大数据应表明,大数据技术已经融人人们日常生活的方方面面,并正在改统变人们的生活方式。未来,大数据技术将会与领域结合得更加紧密,任何决策和研究的成果必须通过数据进行表达,城为动行业健康、有序发展的重要动力。
除上述数据库新技术外,数据库技术的研究领域还可分为数掘库管理系统软件的研制、数据库设计和数据库理论的研究。本书所介绍的数据库系统的基本概念、基本技术和基本知识都是进行上述3个领域研究和开发的基础。
通过上述对数据库系统的介绍 我们可以得出这样的结论:传统的数据库技术和其他计算机技术相合、相互参透,使数据库中新的技术内容层出不穷;数据库的许多概念、技术内容、应月领域甚至某些原理都有了重大的发展和变化。新的数据库技术不断涌现,它们提高了数据库的功能性能,数据库的应域得到了极大的发展。各种各样的数据库系统共同构成了数据库系统的大家族。
六、小结
本章讲述了信息、数据、数据处理与数据管理的基本概念,介绍了数据管理技术发展的3个阶段及各自的优缺点,说明了数据库系统的特点;讲述了数据库系统的组成,并且重点讲述了DBMS的主要功能、组成和数据存取过程;讲解了数据库系统的内部体系结构(三级模式结构和二级映像功能)和外部体系结构;介绍了现实世界、信息世界和计算机世界及其有关概念,并且重点介绍了计算机世界中的数据模型;讲解了数据库领域的新技术。