数据库系统原理及应用教程(第4版)
上QQ阅读APP看书,第一时间看更新

1.3 数据库系统的结构

数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统。一个数据库系统应包括计算机硬件、数据库、数据库管理系统、应用程序系统及数据库管理员。本节介绍数据库系统的组成结构、数据库管理系统的功能及数据库的数据模型结构。

1.3.1 数据库系统的体系结构

数据库系统由支持系统的计算机硬件设备、数据库及相关的计算机软件系统、开发管理数据库系统的人员三部分组成。简单地说,数据库系统包括硬件、软件和人员。

1.数据库系统需要的硬件资源及对硬件的要求

由于数据库系统建立在计算机硬件基础之上,它在必需的硬件资源支持下才能工作。因而系统的计算机设备配制情况是影响数据库运行的重要因素。支持数据库系统的计算机硬件资源包括计算机(服务器及客户机)、数据通信设备(计算机网络和多用户数据传输设备)及其他外围设备(特殊的数据输入输出设备,比如图形扫描仪、大屏幕的显示器及激光打印机)。

数据库系统数据量大、数据结构复杂、软件内容多,因而要求其硬件设备能够快速处理它的数据。这就需要硬件的数据存储容量大、数据处理速度和数据输入输出速度快。在进行数据库系统的硬件配置时,应注意以下3方面的问题。

(1)计算机内存要尽量大

由于数据库系统的软件构成复杂,它包括操作系统、数据库管理系统、应用程序及数据库,工作时它们都需要一定的内存作为程序工作区或数据缓冲区。所以,数据库系统与其他计算机系统相比需要更多的内存支持。计算机内存的大小对数据库系统性能的影响是非常明显的,内存大就可以建立较多较大的程序工作区或数据缓冲区,以管理更多的数据文件和控制更多的程序过程,进行比较复杂的数据管理和更快地进行数据操作。每种数据库系统对计算机内存都有最低要求,如果计算机内存达不到其最低要求,系统将不能正常工作。

(2)计算机外存也要尽量大

由于数据库中的数据量大和软件种类多,它必然需要较大的外存空间来存储其数据文件和程序文件。计算机外存主要有软磁盘、磁带和硬盘,其中硬盘是最主要的外存设备。数据库系统要求硬盘的数据容量尽量大些。硬盘大有以下3个优点:①可以为数据文件和数据库软件提供足够的空间,满足数据和程序的存储需要。②可以为系统的临时文件提供存储空间,保证系统能正常运行。③数据搜索时间会缩短,从而加快数据存取速度。

(3)计算机的数据传输速度要快

由于数据库的数据量大而操作复杂度不大,数据库工作时需要经常进行内、外存的交换操作,这就要求计算机不仅有较强的通道能力,而且数据存取和数据交换的速度要快。虽然计算机的运行速度由CPU计算速度和数据I/O的传输速度两者决定,但是对于数据库系统来说,加快数据I/O的传输速度是提高运行速度的关键,数据传输速度是数据库系统效率的重要指标。

2.数据库系统的软件组成

数据库系统体系结构中的硬件及软件关系如图1-3所示。

图1-3 数据库系统的系统结构

数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言编译系统、数据库应用开发系统及工具、数据库应用系统和数据库,它们的作用如下所述。

(1)操作系统

操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。

(2)数据库管理系统和主语言系统

数据库管理系统(DBMS)是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言编译系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。由于数据库的应用很广泛,它涉及的领域很多,其功能DBMS不可能全部提供。因而,应用系统的设计与实现,需要DBMS和主语言编译系统配合才能完成。

这样做有3个好处:首先,它使得DBMS只需要考虑如何把有关数据管理和控制的功能做好而不需考虑其他功能,可使其操作便利、功能更好;其次,可使应用系统根据使用要求自由地选择主语言(常用的主语言有C、COBOL、PL/I、FORTRAN等),给用户带来了极大的灵活性;最后,由于DBMS可以与多种语言配合使用,等于使这些主语言都具有了数据库管理功能,或使DBMS具有其主语言的功能,这显然拓宽了数据库及主语言的应用领域,使它们能够发挥更大的作用。

(3)数据库应用开发工具软件

数据库应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第4代计算机语言等各种软件工具,如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。

(4)数据库应用系统及数据库

数据库应用系统包括为特定应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。数据库应用系统涉及各个方面,例如信息管理系统、人工智能、计算机控制和计算机图形处理等。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。

3.数据库系统的人员组成及数据库管理员的职责

数据库系统的人员由软件开发人员、软件使用人员及软件管理人员组成。软件开发人员包括系统分析员、系统设计员及程序设计员,他们主要负责数据库系统的开发设计工作;软件使用人员即数据库最终用户,他们利用功能选单、表格及图形用户界面等实现数据查询及数据管理工作;软件管理人员称为数据库管理员(Data Base Administrator,DBA),他们负责全面地管理和控制数据库系统。数据库管理员(DBA)的职责如下。

(1)数据库管理员应参与数据库和应用系统的设计

数据库管理员只有参与数据库及应用程序的设计,才能对数据库结构及程序设计方法了解得更清楚,为以后的管理工作打下基础。同时,由于数据库管理员是用户,他们对系统应用的现实世界非常了解,能够提出更合理的要求和建议,所以有数据库管理员参与系统及数据库的设计,可以使其设计更合理。

(2)数据库管理员应参与决定数据库的存储结构和存取策略的工作

数据库管理员要综合各用户的应用要求,和数据库设计员共同决定数据的存储结构和存取策略,使数据的存储空间利用得更合理,存取效率更高。

(3)数据库管理员要负责定义数据的安全性要求和完整性条件

数据库管理员的重要职责是保证数据库的安全性和数据完整性。数据库管理员要负责定义各用户的数据使用权限、数据保密级别和数据完整性的约束条件。

(4)数据库管理员负责监视和控制数据库系统的运行,负责系统的维护和数据恢复

数据库管理员要负责监视系统的运行,及时处理系统运行过程中出现的问题,排除系统故障,保证系统能够正常工作。在日常工作中,数据库管理员要负责记录数据库使用的“日志文件”,通过日志文件了解数据库的使用和更改情况。数据库管理员还要定期对数据作“备份”,为以后的数据使用(即处理历史数据)和数据恢复做准备。当系统由于故障而造成数据库破坏时,数据库管理员要根据日志文件和数据备份进行数据恢复工作,使数据库能在最短的时间恢复到正确状态。

(5)数据库管理员负责数据库的改进和重组

数据库管理员负责监视和分析系统的性能,使系统的空间利用率和处理效率总是处于较高的水平。当发现系统出现问题或由于长期的数据插入、删除操作造成系统性能降低时,数据库管理员要按一定策略对数据库进行改造或重组工作。当数据库的数据模型发生变化时,系统的改造工作也由数据库管理员负责进行。

1.3.2 数据库管理系统的功能结构

数据库管理系统是提供建立、管理、维护和控制数据库功能的一组计算机软件。数据库管理系统的目标是使用户能够科学地组织和存储数据,能够从数据库中高效地获得需要的数据,能够方便地处理数据。数据库管理系统能够提供以下4个方面的主要功能。

1.数据定义功能

数据库管理系统能够提供数据定义语言(Data Description Language,DDL),并提供相应的建库机制。用户利用DDL可以方便地建立数据库。当需要时,用户用DDL描述系统的数据及结构情况,数据库管理系统能够根据其描述执行建库操作。

2.数据操纵功能

实现数据的插入、修改、删除、查询、统计等数据存取操作的功能称为数据操纵功能。数据操纵功能是数据库的基本操作功能,数据库管理系统通过提供数据操纵语言(Data Manipulation Language,DML)实现数据操纵功能。DML有以下两种。

(1)宿主型DML

宿主型DML只能嵌入到其他高级语言中使用,不能单独使用。被DML嵌入的计算机语言称为主语言,常用的主语言有C、FORTRAN或COBOL。在由宿主型DML和主语言混合设计的程序中,DML语句只完成有关数据库的数据存取操作功能,而其他功能由主语言的语句完成。

(2)自主型DML

既可以嵌入到主语言中使用,也可以单独使用的DML称为自主型DML。自主型DML可以作为交互式命令与用户对话,执行其独立的单条语句功能。自主型DML还为语言的学习提供了方便,使读者能更了解语句的含义及正确的表达方法。

3.数据库的建立和维护功能

数据库的建立功能是指数据的载入、转储、重组织功能及数据库的恢复功能。数据库的维护功能指数据库结构的修改、变更及扩充功能。

4.数据库的运行管理功能

数据库的运行管理功能是数据库管理系统的核心功能,它包括并发控制、数据的存取控制、数据完整性条件的检查和执行、数据库内部的维护等。所有数据库的操作都要在这些控制程序的统一管理下进行,以保证计算机事务的正确运行,保证数据库的正确有效。

1.3.3 数据库系统的三级数据模式结构

数据模型用数据描述语言给出的精确描述称为数据模式。数据模式是数据库的框架。数据库的数据模式由外模式、模式和内模式三级模式构成,其结构如图1-4所示。

图1-4 数据库系统的三级模式结构

1.数据库的三级模式结构

数据库的三级模式是指逻辑模式、外模式、内模式。

(1)逻辑模式及概念数据库

逻辑模式(Logical Schema)也称模式(Schema),它是对数据库中数据的整体逻辑结构和特征的描述。逻辑模式使用模式DDL进行定义,其定义的内容不仅包括对数据库的记录型、数据项的型、记录间的联系等的描述,同时也包括对数据的安全性定义(保密方式、保密级别和数据使用权)、数据应满足的完整性条件和数据寻址方式的说明。

逻辑模式是系统为了减小数据冗余、实现数据共享的目标并对所有用户的数据进行综合抽象而得到的统一的全局数据视图。一个数据库系统只能有一个逻辑模式,以逻辑模式为框架的数据库为概念数据库。

(2)外模式及用户数据库

外模式(External Schema)也称子模式(Subschema),它是对各个用户或程序所涉及的数据的逻辑结构和数据特征的描述。外模式使用子模式DDL(Subschema DDL)进行定义,该定义主要涉及对子模式的数据结构、数据域、数据构造规则及数据的安全性和完整性等属性的描述。子模式可以在数据组成(数据项的个数及内容)、数据间的联系、数据项的型(数据类型和数据宽度)、数据名称上与逻辑模式不同,也可以在数据的安全性和完整性方面与逻辑模式不同。

子模式是完全按用户自己对数据的需要、站在局部的角度进行设计的。由于一个数据库系统有多个用户,所以就可能有多个数据子模式。由于子模式是面向用户或程序设计的,所以它被称为用户数据视图。从逻辑关系上看,子模式是模式的一个逻辑子集,从一个模式可以推导出多个不同的子模式。以子模式为框架的数据库为用户数据库。显然,某个用户数据库是概念数据库的部分抽取。

使用子模式有以下优点。

1)由于使用子模式,用户不必考虑那些与自己无关的数据,也无需了解数据的存储结构,使用户使用数据的工作和程序设计的工作都得到了简化。

2)由于用户使用的是子模式,使得用户只能对自己需要的数据进行操作,数据库的其他数据与用户是隔离的,这样有利于数据的安全和保密。

3)由于用户可以使用子模式,而同一模式又可派生出多个子模式,所以有利于数据的独立性和共享性。

(3)内模式及物理数据库

内模式(Internal Schema)也叫存储模式(Access Schema)或物理模式(Physical Schema)。内模式是对数据的内部表示或底层描述。内模式使用内模式DDL(Internal Schema DDL)定义。内模式DDL不仅能够定义数据的数据项、记录、数据集、索引和存取路径在内的一切物理组织方式等属性,同时还要规定数据的优化性能、响应时间和存储空间需求,共规定数据的记录位置、块的大小与数据溢出区等。

物理模式的设计目标是将系统的模式(全局逻辑模式)组织成最优的物理模式,以提高数据的存取效率,改善系统的性能指标。

以物理模式为框架的数据库称为物理数据库。在数据库系统中,只有物理数据库才是真正存在的,它是存放在外存的实际数据文件;而概念数据库和用户数据库在计算机外存上是不存在的。用户数据库、概念数据库和物理数据库三者的关系是:概念数据库是物理数据库的逻辑抽象形式;物理数据库是概念数据库的具体实现;用户数据库是概念数据库的子集,也是物理数据库子集的逻辑描述。

2.数据库系统的二级映像技术及作用

数据库系统的二级映像技术是指外模式与模式之间的映像、模式与内模式之间的映像技术,二级映像技术不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性。

(1)外模式/模式的映像及作用

外模式/模式之间的映像,定义并保证了外模式与数据模式之间的对应关系。外模式/模式的映像定义通常保存在外模式中。当模式变化时,DBA可以通过修改映像的方法使外模式不变;由于应用程序是根据外模式进行设计的,只要外模式不改变,应用程序就不需要修改。显然,数据库系统中的外模式与模式之间的映像技术不仅建立了用户数据库与逻辑数据库之间的对应关系,使得用户能够按子模式进行程序设计,同时也保证了数据的逻辑独立性。

(2)模式/内模式的映像及作用

模式/内模式之间的映像,定义并保证了数据的逻辑模式与内模式之间的对应关系。它说明数据的记录、数据项在计算机内部是如何组织和表示的。当数据库的存储结构改变时,DBA可以通过修改模式/内模式之间的映像使数据模式不变化。由于用户或程序是按数据的逻辑模式使用数据的,所以只要数据模式不变,用户仍可以按原来的方式使用数据,程序也不需要修改。模式/内模式的映像技术不仅使用户或程序能够按数据的逻辑结构使用数据,还提供了内模式变化而程序不变的方法,从而保证了数据的物理独立性。