您的位置: 网站首页 > 公共课 > 新编计算机文化基础 > 第6章 数据库 > 【6.1 数据库系统的基础知识】

6.1 数据库系统的基础知识

 

数据库技术产生于20世纪60年代中期,经过几十年的发展,从最初简单的数据管理方式发展到现在各种先进的数据库系统。它与多媒体技术、网络技术、面向对象技术、人工智能技术等相互结合、相互渗透,几乎各种应用领域都采用它来存储和处理信息资源,一个典型的数据库应用例子就是大家很熟悉的互联网中的WWW服务。

本章将介绍数据库系统的基本概念、建立数据库所依赖的数据模型、关系型数据库及其设计理论,并讨论数据库的设计过程。

6.1  数据库系统的基础知识

本节主要介绍数据库系统的基础知识,使读者对数据库系统先有一个宏观的了解,为后面的学习打下基础。

6.1.1  数据库的基本术语

1.数据与数据处理

提到数据,可能大部分人会想到123这些可以进行各种数学运算的数值。其实,数值只是一种最简单的数据。我们平时使用的各种字符、图表、甚至声音、语言等都属于数据的概念范畴。

数据(Data)就是描述事物的符号记录,从计算机的角度看,数据泛指那些可以被计算机接受并能够被计算机处理的符号。例如表示学生的数据:(06063109,“穆木”,“男”,1989-10-28,计算机软件,2006-09-02,江苏省),这些符号被赋予了特定的语义,具有传递信息的功能。

数据在计算机内部以文件的形式进行保存,数据库系统中处理的就是存放在存储介质(如硬盘、软盘或光盘)中的数据或程序指令的集合。

数据处理指的是利用计算机对各种数据进行处理,包括对数据的收集、整理、存储、检索、分类、排序、维护、加工、计算、统计和传输等一系列活动过程的总和。数据处理的目的是从大量的、原始的数据中获得人们所需要的资料并提取有用的成分,作为行为和决策的依据。

2.数据独立性

数据独立性(Data Independency)指数据与用户的应用程序之间的互不依赖性,包括数据的物理独立性和数据的逻辑独立性。

数据的物理独立性指用户的应用程序与存储在数据库中的数据是相互独立的。简单地说,就是数据以什么样的结构方式存储在磁盘上,应用程序不需要了解,应用程序处理的是数据的逻辑结构,当数据的物理结构发生变化,应用程序也不用改变。

数据的逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化,应用程序也不用改变。

3.数据库

数据库(DatabaseDB)是统一管理的相关数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可被各个应用程序所共享,具有最小的冗余度,数据间联系密切,又有较高的数据独立性。

4.数据库管理系统

数据库管理系统(Database Management SystemDBMS)是位于用户与操作系统之间的,使人们能对数据库中的数据进行科学的组织、高效地存取和维护管理的一种数据管理软件。

所有对数据的操作都通过它来进行,这些操作包括提供对数据库数据的定义、维护、查询、统计、管理和控制等。DBMS是数据库系统的核心,在6.1.4节再对其详细介绍。

数据库的设计、使用和维护仅仅依靠DBMS是不够的,还需要有专人管理,这些人员被称为数据库管理员(Database AdministratorDBA)。

5.数据库系统

6-1  数据库系统的层次结构

 

数据库系统(Database SystemDBS)是指在计算机系统中引入数据库后的系统构成,一般由如下5个部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台和软件平台,如图6-1所示。其中,数据库是数据库系统的管理对象。

数据库系统中的硬件平台由CPU、内存、大容量的存储设备和外部输入、输出设备等组成,不仅能提供足够大的存储空间,还具有较高的通信能力,能支持联网,实现数据共享。

数据库系统中的软件平台由操作系统、数据库系统开发工具和接口软件等组成。

在不引起混淆的情况下通常把数据库系统简称为数据库。数据库系统在整个计算机系统中占有重要地位。

6.数据库应用系统

数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成。应用软件是在DBMS的基础上由用户根据实际需要自行开发的应用程序,应用界面由相关的可视化工具开发而成。

6.1.2  数据管理技术的发展概况

计算机数据管理技术的主要发展阶段可分为人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段

人工管理阶段是在20世纪50年代中期以前,这一阶段的计算机主要用于科学计算。当时的计算机内存存储空间小,计算速度低;外存只有纸带、卡片和磁带,而没有磁盘等直接存取的存储设备;软件没有操作系统,只有汇编语言,基本上以批处理方式进行数据处理。

数据处理的过程是:将程序和数据输入计算机,计算机运行结束后,再将结果输出,由人工保存,计算机并不存储数据。只有当程序运行时才输入数据,计算完成后就从内存中撤走数据,这些数据不能保存;因为没有专门对数据进行管理的软件,就由程序员负责管理数据,编写存储、存取数据的代码;由于数据是在程序中定义的,一组数据只能对应一个程序,即使两个程序用同一组数据,也只能各自定义,使得相同数据无法共享;而数据的逻辑结构和物理结构均在程序中定义,使得数据与程序之间不具有独立性。

2.文件系统阶段

文件系统阶段是在20世纪50年代后期到20世纪60年代中期,这一阶段计算机开始大量用于数据管理。这一阶段的计算机内存空间增大,计算速度得到很大提高;外存有了磁盘、磁鼓等直接存取的存储设备;软件有了操作系统和高级语言,并且操作系统中有了专门的数据管理软件——文件系统,对数据的处理方式除了有批处理,而且能够联机实时处理。

在这个阶段,数据与程序分开存储,数据能够以文件的组织方式,长期保存在外存上多次存取,而且其他程序只要知道数据的组织方式都可以通过对文件的访问实现对数据的存取、查询和修改等操作,起到一定的数据共享的作用。但是,一个文件对应一个程序,数据的独立性差,当数据改变时,必须修改相应的应用程序,而且同一个数据在多个文件中出现,造成数据的冗余度大,并且难以保证数据的一致性。另外,在实际应用中用户需要的结果可能是根据几个文件中的部分信息进行组合所得,而文件之间相互独立、缺乏联系,造成数据联系弱,不能反映现实世界中客观事物之间的内在联系。

3.数据库系统阶段

数据库系统阶段是从20世纪60年代后期至今。随着大规模集成电路的发展,出现了内存大、运行速度快的主机和大容量的可直接存取的硬盘,计算机进行数据管理的规模也越来越大,需要处理的数据量急剧增长,对数据的共享要求和安全要求也日益强烈,同时随着硬件成本下降,软件成本却不断上升。在这种情况下人们对文件系统进行扩充,研制了一种结构化的数据组织和处理方式,即数据库系统。

在数据库系统中,所有数据按数据本身的内在联系由数据库统一组织、存放、集中管理。数据不再面向某些特定的应用程序,而是面向整个应用系统,程序不能直接使用数据库文件,只能提出数据要求,由DBMS负责数据库中数据的各种操作,并维护数据的一致性、完整性,因此大大提高了数据的利用率,降低了数据冗余度,实现了数据共享。

与文件系统相比,数据库系统具有如下特点。

1)数据的集成性。

数据库系统中采用统一的数据结构方式,数据结构不仅描述数据本身的特征,还要描述数据之间的内在联系。而文件系统在整体上是没有数据结构的,它仅记录了内部数据项之间的联系,在不同文件中的记录相互并没有联系。数据的整体结构化是数据库系统与文件系统的根本区别。

在文件系统中,数据的最小存取单位是记录。而数据库系统中可以存取数据库中的一个记录、一组记录或若干个数据项。

2)数据的高共享性和低冗余性。

数据库中的数据不再面向某些特定的应用程序,而是面向整个应用系统,因此可以多个用户同时存取数据。而数据共享又可极大地减少数据冗余性,减少不必要的存储空间,同时还能够避免数据之间的不一致性。

数据的一致性指同一数据出现在系统的不同文件中应保持相同的值,而不一致性指同一数据在系统的不同文件中值不相同。在数据库中,数据共享可以减少由于数据冗余造成的不一致现象。

3)数据独立性高。

数据库中数据的定义、存取由DBMS负责,大多数情况下,应用程序只要不使用新修改的数据,它并不知道记录的格式已经发生变化。数据独立性由DBMS的二级映像功能来保证,这在后面的6.1.3节再进行讨论。

4)数据的统一管理与控制。

数据库中由DBMS提供统一的管理与控制,从而能够实现统一的安全控制服务,判断用户的合法性以及维护用户的权限;能够保证数据的完整性,检查数据库中数据的正确性、有效性;能够提供并发控制,当多个用户同时访问数据库时,协调并发访问可能产生的相互干扰以保证数据的正确性。

数据库技术发展至今,从20世纪60年代末的第一代数据库——网状数据库、层次数据库,70年代末的第二代数据库——关系数据库(目前的主流),至80年代的第三代数据库——面向对象数据库,发展迅速,应用广泛,是计算机领域的一个重要分支。

6.1.3  数据库系统的模式结构

什么是模式呢?模式(Schema)是对现实世界的抽象,是数据库中全体数据的特征及其联系的结构化描述。模式的具体值称为模式的实例。例如我们将学生数据用(学号,姓名,性别,出生年月,专业名称,入学时间,籍贯)来表示,那么(06063109,“穆木”,“男”,1989-10-28,计算机软件,2006-09-02,江苏省)则是一个实例。模式是相对稳定的结构框架,反映的是数据的结构及联系,而实例则可以不断更新,反映的是数据库某一时刻的状态。

数据库系统的模式结构通常指数据库系统具有的三级模式和二级映射。三级模式分别是外部级模式、概念级模式与内部级模式,二级映射则分别是外部级到概念级的映射以及概念级到内部级的映射,如图6-2所示。

6-2  三级模式、两级映射关系图

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

三级模式指DBMS将数据库中的数据抽象成外模式、概念模式和内模式三个级别来进行组织和管理。

概念模式也称逻辑模式,简称模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。DBMS提供模式定义语言(模式DDL)来定义概念模式。

外模式又称子模式或用户模式,是用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。外模式一般是概念模式的子集。由于保密级别等因素的限制,每个用户只能访问与之有关的数据,数据库中其余的数据则不可见;由于用户的需求不同,一个概念模式可以产生若干个外模式以满足不同的用户需要。DBMS提供外模式定义语言(外模式DDL)来描述外模式。

内模式也称物理模式、存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式,是系统程序员视图。只有内模式才真正存储数据,由DBMS和操作系统直接管理,用户不必了解。DBMS提供内模式定义语言(内模式DDL)来定义内模式。

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

DBMS的三级模式是对数据库中数据的三个抽象级别,它把数据的具体组织留给了DBMS去管理,使用户能逻辑地处理数据,而不必关心数据在计算机中具体地表示方式和存储方式。为了实现这三个抽象层次的联系和转换,DBMS在三级模式中提供两种映射:外模式/概念模式之间的映射以及概念模式/内模式间的映射。

外模式/概念模式映射用于定义外模式与概念模式之间的对应关系。当概念模式发生改变时,经DBA对外模式/概念模式映射作相应改变,就可以使得外模式保持不变。而应用程序是依据外模式编写的,则应用程序也不必修改,就保证了数据与程序之间的逻辑独立性。

概念模式/内模式映射用于定义概念模式与内模式之间的对应关系。数据库中只有一个概念模式,一个内模式,所以概念模式/内模式映射是唯一的。当数据库的存储结构发生变化时,经DBA对概念模式/内模式映射作相应改变,就可以使得概念模式保持不变,从而应用程序也不必修改,就保证了数据与程序之间的物理独立性。

模式的三个级别中内模式处于最底层,反映了数据在计算机中的实际存储形式,概念模式处于中层,反映了数据的全局逻辑要求,外模式处于最外层,反映了用户对数据的要求。两级映射则实现了三个抽象层次之间的联系与转换,并且保证了数据的独立性。二级映射一般由DBMS实现。

6.1.4  DBMS的功能

数据库管理系统是对数据库进行管理和对数据进行操作的大型系统软件,是数据库系统的核心。它的主要功能体现在以下几个方面。

1.数据定义

DBMS提供数据定义语言(Data Definition LanguageDDL)来描述数据库结构的外模式、概念模式、内模式,并定义模式之间的映射以及有关的约束条件。

2.数据操纵

DBMS提供数据操纵语言(Data Manipulation LanguageDML),对数据库数据执行一些基本操作,如存取、检索、插入、修改和删除等。数据操纵语言一般有两种类型:一类是嵌入到C++PowerBuilder等高级语言中的宿主型语言,不能独立使用;一类是可以独立使用,语法较为简单的自主型语言。

3.数据库控制

DBMS提供数据控制语言(Data Control LanguageDCL)来保证数据的完整性、安全性,以及对数据库进行并发控制、故障恢复,以确保数据库的正常运行。

4.数据库建立和维护

数据库的建立和维护包括数据库初始数据的装入、数据的存储、恢复、重组以及性能分析等功能。这些功能一般由DBMS提供的服务性(Utility)程序来完成。

目前流行的DBMS有很多种,如OracleSybasePowerBuilderIBMDB2MicrosoftSQL ServerVisual FoxProAccess等。