Access 2010数据库应用技术教程(第二版)
上QQ阅读APP看书,第一时间看更新

1.1 数据库系统的基本概念

数据库技术是数据管理技术,是计算机科学的一个重要分支。在计算机应用的三大领域(科学计算、数据处理和过程控制)中,数据处理约占其中的70%,而数据库技术就是作为一门数据处理技术发展起来的,且是目前应用最广的技术之一,已成为计算机信息系统的核心技术和重要基础。

学习数据库系统相关的理论术语是学习和掌握数据库具体应用的基础和前提,掌握好这些基本概念对学习和使用数据库管理系统有十分重要的意义。数据、数据库、数据库管理系统、数据库管理员、数据库系统、数据库应用系统是与数据库技术密切相关的6个基本概念。

1.1.1 数据、数据库、数据库管理系统

1.数据

数据(Data)是描述事物的符号记录,是数据库中存储的基本对象。

提到数据,人们首先想到的是数字,其实数字只是数据的一种。数据的类型很多,在日常生活中数据无处不在:文字、声音、图形、图像、档案记录、仓储情况……这些都是数据。

为了认识世界、交流信息,人们需要描述事物,而数据是描述事物的符号记录。在日常生活中,人们直接用自然语言描述事物。在计算机中,为了存储和处理这些事物,就要抽出这些事物的某些特征组成一个记录来描述。例如,在学生档案中,如果对学生的学号、姓名、性别、出生日期、所在院系等感兴趣,就可以这样描述:

(201301001,李文建,男,1996-11-23,计算机科学与技术学院)

对于上面这条由数据构成的信息记录,了解其语义的人会得到如下信息:李文建是个大学生,1996年11月23日出生,在计算机科学与技术学院读书;而不了解其语义的人则无法理解其含义。可见,数据的形式本身并不能全面表达其内容,还需要经过语义解释,数据与其语义是不可分的。

软件中的数据是有一定结构的。首先,数据有型(Type)与值(Value)之分,数据的型给出了数据表示的类型,如整型、实型、字符型等,而数据的值给出了符合给定型的具体值。如数字30,按类型讲它是整型,按数值讲,具体就是30。

计算机中的数据一般分两部分:其中一部分与程序仅有短时间的交互关系,随着程序的结束而消亡,称为临时性数据,这类数据一般存放于计算机内存中;而另一部分数据则对系统起着长期持久的作用,称为持久性数据。数据库系统中处理的就是这种持久性数据。

2.数据库

数据库(DataBase,DB),顾名思义,就是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。也就是说,数据库是具有统一的结构形式并存放于统一的存储介质内的多种应用数据的集成,并可被各个应用程序所共享。

数据库是按数据所提供的数据模式存放数据的,它能构造复杂的数据结构以建立数据间的内在联系与复杂的关系,从而构成数据的全局结构模式。

3.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统之间的一层数据管理软件。

数据库管理系统使用户能方便地定义和操纵数据,并能保证数据的安全性、完整性,具有多用户对数据的并发使用及发生故障后的系统恢复功能。

数据库管理系统是数据库系统的核心,它的主要功能包括以下几个方面:

(1)数据模式定义。数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。

(2)数据存取的物理构建。数据库管理系统负责为数据模式的物理存取及构建提供有效的存取方法与手段。

(3)数据操纵。数据库管理系统为用户使用数据库中的数据提供方便,一般提供查询、插入、修改以及删除数据的功能。此外,它自身还具有做简单算术运算及统计的能力,而且可以与某些过程性语言结合,使其具有强大的过程性操作能力。

(4)数据的完整性、安全性定义与检查。数据库中的数据具有内在语义上的关联性与一致性,它们构成了数据的完整性。数据的完整性是保证数据库中数据正确的必要条件,因此必须经常检查以维护数据。数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对正确使用数据做出必要的规定,并在使用时做检查,这就是数据的安全性。

(5)数据库的并发控制与故障恢复。数据库是一个集成、共享的数据集合体,它能为多个应用程序服务,所以就存在着多个应用程序对数据库的并发操作。在并发操作中,如果不加入控制和管理,多个应用程序间就会相互干扰,从而对数据库中的数据造成破坏。因此,数据库管理系统必须对多个应用程序的并发操作做必要的控制以保证数据不受破坏,这就是数据库的并发控制。数据库中的数据一旦遭受破坏,数据库管理系统必须有能力及时进行恢复,这就是数据库的故障恢复。

(6)数据的服务。数据库管理系统提供对数据库中数据的多种服务功能,如数据复制、转存、重组、性能检测、分析等。

为完成以上6个功能,数据库管理系统提供了相应的数据语言,分别如下:

(1)数据定义语言(Data Definition Language,DDL):该语言负责数据的模式定义与数据的物理存取构建。

(2)数据操纵语言(Data Manipulation Language,DML):该语言负责数据的操纵,包括查询及增、删、改等操作。

(3)数据控制语言(Data Control Language,DCL):该语言负责数据完整性、安全性的定义与检查,以及并发控制、故障恢复等功能,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检测程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。

目前流行的DBMS均为关系数据库系统,如Oracle、Sybase的PowerBuilder、IBM的DB2、微软公司的SQL Server等,均为严格意义上的DBMS系统。另外一些小型的数据库,如微软的Visual FoxPro和Access等,只具备数据库管理系统的一些简单功能。

4.数据库管理员

由于数据库的共享性,对数据库的规划、设计、维护、监视等需要有专人管理,称他们为数据库管理员(DataBase Administrator,DBA)。其主要工作如下:

(1)数据库设计(DataBase Design)。DBA的主要任务之一是做数据库设计,具体地说是进行数据模式的设计。由于数据库的集成与共享性,因此需要有专门人员对多个应用的数据需求作全面的规划、设计与集成。

(2)数据库维护。DBA必须对数据库中的数据安全、完整性、并发控制及系统恢复、数据定期转存等进行实施与维护。

(3)改善系统性能,提高系统效率。DBA必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。当效率下降时,DBA需要采取适当的措施,如进行数据的重组、重构等。

5.数据库系统

数据库系统(DataBase System,DBS)由如下几部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。这5个部分构成了一个完整的运行实体,称为数据库系统。

6.数据库应用系统

数据库应用系统(DataBase Application System,DBAS)是由数据库系统、应用软件及应用界面组成。其中应用软件是由数据库系统所提供的数据库管理系统(软件)及数据库系统开发工具书写而成的,而应用界面大多由相关的可视化工具开发而成。

数据库应用系统中各部分以一定的逻辑层次结构方式组成一个有机的整体。如果不计数据库管理员(人员),并将应用软件与应用界面作为应用系统,则数据库应用系统的软硬件层次结构如图1-1所示。

图1-1 数据库系统的软硬件层次结构

1.1.2 数据库系统的发展

数据管理发展至今经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段

20世纪50年代中期之前,计算机的软硬件均不完善。硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统,当时的计算机主要用于科学计算。这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入/输出方式等。当数据的物理组织或存储设备改变时,用户程序就必须重新编制。由于数据的组织面向应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,很难维护应用程序之间数据的一致性。

在人工管理阶段应用程序与数据之间的关系如图1-2所示。

图1-2 人工管理阶段应用程序与数据之间的关系

2.文件系统阶段

这一阶段的主要标志是计算机中有了专门管理数据的软件——操作系统(文件管理)。

20世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的发展,而操作系统的出现标志着数据管理步入一个新的阶段。在文件系统阶段,数据以文件为单位存储在外存储器上,并且由操作系统统一管理。操作系统为用户使用文件提供了友好界面。文件的逻辑结构与物理结构脱钩,程序和数据分离,使数据与程序有了一定的独立性。用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的数据共享。

但由于数据的组织仍然是面向程序,所以存在大量的数据冗余。而且数据的逻辑结构不能方便地修改和扩充,数据逻辑结构的每一点微小改变都会影响到应用程序。由于文件之间互相独立,因而它们不能反映现实世界中事物之间的联系,操作系统不负责维护文件之间的联系信息。如果文件之间有内容上的联系,则只能由应用程序去处理。

在文件系统阶段应用程序与数据之间的关系如图1-3所示。

图1-3 文件系统阶段应用程序与数据之间的关系

3.数据库系统阶段

20世纪60年代以后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望面向企业或部门,以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力。同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,从而降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。

数据库系统阶段的应用程序与数据的关系通过数据库管理系统(DBMS)来实现,如图1-4所示。

图1-4 数据库系统阶段应用程序和数据的关系

随着软件环境和硬件环境的不断改善,数据处理应用领域需求的持续扩大,数据库技术与其他软件技术的加速融合,到20世纪80年代,新的、更高一级的数据库技术相继出现并得到长足的发展,分布式数据库系统、面向对象数据库系统、并行数据库系统等新型数据库系统应运而生,使数据处理有了进一步的发展。

1.1.3 数据库系统的基本特点

数据库技术是在文件系统基础上发展产生的,两者都以数据文件的形式组织数据,但由于数据库系统在文件系统之上加入了DBMS对数据进行管理,从而使得数据库系统具有以下特点:

1.数据的集成性

数据库系统的数据集成主要表现在以下几个方面:

(1)在数据库系统中采用统一的数据结构方式,如在关系数据库中采用二维表作为统一结构方式。

(2)在数据库系统中按照多个应用的需要组织全局的统一的数据结构(即数据模式),数据模式不仅可以建立全局的数据结构,还可以建立数据间的语义联系,从而构成一个内在紧密联系的数据整体。

(3)数据库系统中的数据模式是多个应用共同的、全局的数据结构,而每个应用的数据则是全局结构中的一部分,称为局部结构(即视图),这种全局与局部的结构模式构成了数据库系统数据集成性的主要特征。

2.数据的高共享性与低冗余性

由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。

3.数据独立性

数据的独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。

数据独立性包括物理独立性和逻辑独立性两级。

(1)物理独立性:是指数据的存储结构或存取方法的修改不会引起应用程序的修改。

(2)逻辑独立性:数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改应用程序,这就是数据的逻辑独立性。

4.数据统一管理与控制

数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含以下3个方面:

(1)数据的完整性检查:检查数据库中数据的正确性以保证数据的正确。

(2)数据的安全性保护:检查数据库访问者以防止非法访问。

(3)并发控制:控制多个应用的并发访问所产生的相互干扰以保证其正确性。

1.1.4 数据库系统的内部体系结构

数据库系统在其内部具有三级模式及二级映射:三级模式分别是概念级模式、内部级模式与外部级模式;二级映射则分别是概念级到内部级的映射以及外部级到概念级的映射。这种三级模式与二级映射构成了数据库系统内部的抽象结构体系,如图1-5所示。

图1-5 数据库系统的三级模式、二级映射

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

数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。

(1)概念模式(Conceptual Schema),是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。

实际上,模式是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。

(2)外模式(External Schema),又称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式通常是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则他们的外模式描述就是不同的。即使是对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另外,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。

(3)内模式(Internal Schema),又称物理模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。

数据模式给出了数据库的数据框架结构,数据是数据库中的真正的实体,但这些数据必须按框架所描述的结构组织。以概念模式为框架所组成的数据库称为概念数据库(Conceptual DataBase),以外模式为框架所组成的数据库称为用户数据库(User’s Database),以内模式为框架所组成的数据库称为物理数据库(Physical Database)。这三种数据库中只有物理数据库是真实存在于计算机外存中,其他两种数据库并不真正存在于计算机中,而是通过两种映射由物理数据库映射而成。

模式的3个级别层次反映了模式的3个不同环境以及它们的不同要求。内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式;概念模型处于中层,它反映了设计者的数据全局逻辑要求;而外模式处于最外层,它反映了用户对数据的要求。

2.数据库系统的二级映射

数据库系统的三级模式是对数据的3个抽象级别。它把数据的具体组织留给数据库管理系统(DBMS)管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。而为了能够在内部实现这3个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映射:外模式/概念模式映射和概念模式/内模式映射。正是这两级映射保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

(1)外模式—概念模式映射。对于每一个外模式,数据库系统都有一个外模式—概念模式映射,它定义了该外模式与概念模式之间的对应关系。当概念模式改变时,由数据库管理员对各个外模式—概念模式映像作相应改变,也可以使外模式保持不变,因为应用程序是依据数据的外模式编写的,从而应用程序也不必修改,保证了数据与程序的逻辑独立性。

(2)概念模式—内模式映射。概念模式—内模式映射定义了数据全局逻辑结构与物理存储结构之间的对应关系。当数据库的存储结构改变时,由数据库管理员对概念模式—内模式映射作相应改变,可以使概念模式保持不变,从而保证了数据的物理独立性。