数据库技术及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 数据库系统概述

自从第一台计算机面世以来,计算机在生产、生活中的应用发生了很大变化。从20世纪50年代开始,计算机的应用领域由科学计算逐渐扩展到广义的数据处理的各个领域。到20世纪60年代末,数据库技术作为数据处理的一种新手段迅速发展起来,成为应用最广泛的计算机应用的技术之一,也是计算机信息系统和应用系统的核心技术和重要基础。

数据库的概念最初产生于20世纪50年代,当时美国为了战争的需要,把各种情报集中起来存储在计算机中,被称为Information Base或Database。在20世纪60年代的软件危机中,数据库技术作为软件技术的分支得到了进一步的发展。

1968年IBM公司推出了层次模型的IMS(Information Management System)数据库系统,1969年美国数据系统语言协会的数据库任务小组(DBTG)发表的系列报告提出了网状模型,1970年IBM研究中心的研究人员发表了关于关系模型的著名论文。这些事件奠定了现代数据库技术的基础。

20世纪70年代和80年代是数据库蓬勃发展的时期,不仅推出了一些网状模型数据库系统和层次模型数据库系统,还围绕关系数据模型进行了大量的研究和开发工作,关系数据库理论和关系模型数据库系统日趋完善。因为关系模型数据库本身具有的优点,它逐渐取代了网状模型数据库和层次模型数据库。到目前为止,关系模型数据库系统仍然是最重要的数据库系统。

20世纪90年代,关系模型数据库技术又有了进一步的改进。由于受到计算机应用领域及其他分支学科的影响,数据库技术与面向对象技术、网络技术等相互渗透,产生了面向对象数据库和网络数据库。进入21世纪后,面向对象数据库和网络数据库技术逐渐成熟并得到了广泛的应用。

近40年来,数据库技术已经经历了3次演变,形成了以数据建模和数据库管理系统为核心,具有较完备的理论基础和广泛的应用领域的成熟技术体系,已成为计算机软件领域的一个重要分支。通常,人们把早期的层次模型数据库和网状模型数据库系统称为第一代数据库系统,把当前流行的关系模型数据库称为第二代数据库系统,当前正在发展的数据库系统称为第三代数据库系统。

我国有关部委、国防、气象和石油等行业开始使用数据库始于20世纪70年代。而数据库技术得到真正的广泛应用是从20世纪80年代初的DBaseII开始的。尽管DBase系列和XBase系列都不能称为一个完备的关系数据库管理系统,但是它们都支持关系数据模型,使用起来也非常方便,加上该系统是在微型计算机上实现的,一般也能满足中、小规模的管理信息系统的需要,所以得到了较广泛的应用,为数据库技术的普及奠定了基础。

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性。20世纪80年代后不仅在大型机上,而且在大多数微型机上也配置了数据库管理系统,使数据库技术得到了更加广泛的应用与普及。无论是小型事务处理、信息处理系统、联机事务处理和联机分析处理,还是一般企业管理和计算机辅助设计和制造(CAD/CAM)及管理信息系统,都应用了数据库技术。数据库技术的应用程度已经成为衡量企业信息化程度的重要标志之一。

1.1.1 信息与社会

计算机所处理的数据在计算机中的存储方式与在现实生活中人们所面对的事物是有区别的。人们在现实生活中所面对的所有事物都是能够看得见真实存在的,如何把现实中能够“看得见”、“摸得着”的事物变成计算机能够处理的数据,这中间需要一个复杂的转换过程。比如,如何认识、理解、整理、描述和加工现实生活中的这些事物。从数据转化的顺序来说,数据从现实世界进入到数据库需要经历3个阶段,即现实世界阶段、信息世界阶段和机器世界阶段。

现实世界就是人们所生活的客观世界,客观世界存在着的形形色色的事物。

虽然现实世界的事物不能被改变,但仍然可以利用这些事物为人类的生活或生产服务,也就是说,可以在掌握和理解这些事物的基础上抽象出一些特殊的、有意义的信息。这些信息与现实世界的客观事物的根本区别就在于它们是经人类抽象和概念化了的、反映在人们心目中的信息,其中只包含着人们关心的那部分信息。这些信息就构成了信息世界。

尽管信息世界的信息是经过抽象和概念化了的,但它们仍然是计算机无法识别的,所以要对这些信息重新进行加工和转换,使它们能够被计算机所识别,使它们成为计算机能够处理和操作的符号。这些符号,又叫作数据。这些数据构成了机器世界或称为数据世界。

对信息社会而言,事物、信息、数据分别对应着现实世界、信息世界和机器世界,它们之间的对应关系如图1-1所示。

图1-1 3个世界之间的对应关系

1.现实世界

在现实世界中客观存在着各种运动着的事物,各种事物及事物之间也存在着复杂的联系。不同事物之间,存在着不同的特征,这些特征包括静态的和动态的特征。所有的这些特征就是区别于不同事物的标志。在这些特征中,可以抽取出一些有意义的特征来描述不同的事物个体。比如,常选择姓名、学号、班级、籍贯等特征来描述一个学生,而描述一名教师的信息则常选择姓名、年龄、性别、籍贯、所属院系等特征。利用这些特征,就可以在表征各类不同事物的同时,将不同的事物区别开。

世界上的各种事物虽然千差万别,看起来相互独立,但实际上它们之间是互相联系的。因为事物的多样性,事物之间的联系也是多方面的。在应用中,人们只选择那些有意义或感兴趣的联系,而没有必要选择所有的联系。例如,在教学管理系统中,教师和学生之间可以仅选择了“教学”这种有意义的联系。有时又称这种联系为关联。

2.信息世界

现实世界中的事物及其联系由人们的感观所感知,经过大脑的分析、归纳、抽象形成信息。对这些信息进行记录、整理、归纳和格式化后就构成了信息世界。为了正确直观地反映客观事物及其联系,有必要对所研究的信息世界建立一个抽象的模型,称为信息模型(概念模型)。

在信息世界中,数据库技术涉及以下概念。

(1)实体(Entity)

在现实世界客观存在并可以相互区别的事物被抽象为实体。一个实体对应了现实世界中的一个事物。实体可以是具体的人、事、物,如一本书、一件衣服、一次借书、一次服装展示等,可包含很多我们感兴趣的信息,也可以是抽象的概念或联系,如教师与学院的工作关系(即某位教师在某学院工作)也可以被抽象为一个实体。

(2)实体集(Entity Set)

性质相同的同类实体组成的集合,称为实体集。在现实世界中的事物有很多,有一些事物具有被关注的一些共同的特征和性质,它们可以有类似的描述,可以被放在一起进行研究和处理。例如,一个学校的所有学生,当利用学籍管理系统进行管理时,这些学生的姓名、学号、班级和成绩等就是要关注的特征或性质,把这些学生的上述性质一起研究和处理,则这些学生就构成一个实体集。

(3)属性(Attribute)

客观存在的不同的事物,具有不同的特性。从客观世界抽象出来的不同实体,也具有其各自不同的特性。

实体所具有的某些特性称为属性。

可以用若干个属性来刻画一个实体。例如,对于大学生,有很多特性,如学校、学院、专业、班级、学号、姓名、身高、年龄、籍贯、成绩、入学时间等,这些属性组合起来共同表征了一个具体的学生。

也就是说,在信息世界里,人们对某个实体的认识和理解是通过属性来实现的。所以,要正确、全面地描述或者刻画某一个实体,就必须根据不同事物的特征,合理、全面地抽象出不同事物的属性,使人们通过这些属性,就能够对某个事物有一个全面的理解和把握。而且最重要的是,能够通过其中某一个或一些属性把握不同个体之间的本质的区别。

3.机器世界

用计算机管理信息,必须对信息进行数字化,即将信息用字符和数字来表示。数字化后的信息称为数据,数据是能够被计算机识别并处理的。

当前多媒体技术的发展使计算机能够识别和处理图形、图像、声音等数据。数字化是信息世界到机器世界转换的关键,为数据管理打下了基础。信息世界的信息在机器世界中以数据形式存储。

机器世界对数据的描述常用到如下4个概念。

① 字段(Field):又叫数据项,它是可以命名的最小信息单位。字段的定义包括字段名(字段的名称)、字段类型(描述该字段的数据类型)、字段长度(限定该字段值的长度)等。

② 记录(Record):字段的有序集合称为记录,一般对应信息世界中的一个具体的实体。它是对一个具体对象的描述,如(2002178002,男,178),描述了一个学号为2002178002,性别为男,身高为178cm的学生。

③ 文件(File):同类的记录汇集成文件。文件是描述实体集的。例如,所有图书记录组成了一个图书文件。

④ 关键字(Key):能唯一标识文件中每个记录的字段或字段集。例如,学生的学号可以作为学生记录的关键字,如果一个字段不能唯一确定一条记录,则可以用多个字段作为关键字来唯一标识一条记录。例如,学号与课程号可以作为学生选课记录的关键字。

机器世界和信息世界术语是相互对应的,它们的对应关系见表1-1。

表1-1 信息世界和机器世界的概念的对应关系

在数据库中,每个概念都有类型(Type,简称型)和值(Value)的区别。例如,“学生”是一个实体的型,而具体的(张三,男,信息学院,28)是实体的值。又如,“姓名”是属性的型,而“张三”是属性的值。记录也有记录的型和值。有时在不引起误解的情况下,可以不去仔细区别型和值。

为了理解上的方便,图1-2以学生为例表示了信息在3个世界中的有关概念及其联系。需要特别注意的是,实体与属性、型和值的区别,以及3个世界中各概念的相应关系。

图1-2 信息3个世界的术语联系

1.1.2 数据库的基本概念

1.数据(Data)

数据是在数据库中存储的基本对象,是用来记录现实世界的信息,并可以被机器识别的符号。

在计算机领域里,数据这个概念已经不局限于普通意义上的数字了,凡是在计算机中用于描述事物特征的记录都可以称为数据,如文字、图形、图像、声音等。例如,当用书号、书名、单价、作者、出版社这几个特征来描述某本书时,(000913,数据库,47.00,张三,电子)就是一本书的数据。于是,就可以从这一数据的含义中得到数据库这本书的有关信息。

数据有一定的格式,如书号一般为长度不超过13 位的数字字符,单价为小数位数为2位的实数。这些格式的规定就是数据的语法,而数据的含义就是数据的语义。通过解释、推理、归纳、分析和综合等,从数据所获得的有意义的内容称为信息。因此,数据是信息存在的一种形式。只有通过解释或处理的数据才能成为有用的信息。

2.数据库(DB,DataBase)

数据库是以一定的组织形式存储在一起的,能为多个用户所共享,相互关联的数据集合。数据库是存储数据的“仓库”,只不过这个仓库存在于计算机的存储设备上。

数据库中的数据是按一定的数据模型来描述、组织和储存的,具有最小冗余度、较高的数据独立性和易扩展性,并可为用户所共享。例如,图书馆可能同时有描述图书的数据(图书编号,书名,单价,作者,出版社)和图书借阅数据(图书编号,书名,单价,借阅者,借阅时间)。在这两个数据中,图书编号、书名、单价是重复的,称为冗余数据。在构造数据库时,由于数据可以共享,因此,可以消除数据的冗余,只存储一套数据即可。

3.数据库管理系统(DBMS,Database Management System)

数据库管理系统是以统一的方式管理和维护数据库中的数据的一系列软件的集合。

存储在数据库中的数据,必须在一定的管理机制下才可以被方便地访问,并能够保证它的完整性、安全性和共享性。这种管理机制的描述加上数据库本身,构成数据库管理系统。数据库管理系统为用户提供了更正式的数据库共享和更高的数据独立性,进一步减少了数据的冗余度,并为用户提供了方便的操作接口。

4.数据库系统(DBS,DataBase System)

数据库系统包括与数据库有关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库的软硬件支撑环境、数据库管理员和用户等构成。数据库系统可以用图1-3表示。

图1-3 数据库系统

DBS是为用户服务的。通常,一个数据库系统有两类用户:程序员和终端用户。程序员用高级语言和数据库语言编写数据库应用程序,应用程序根据需要向DBMS发出数据请求,由DBMS对数据库执行相应的操作。终端用户从终端或客户机上,以交互的方式向系统提出各种操作请求,由DBMS相应执行,访问数据库中的数据。在不引起混淆的情况下,常把数据库系统称为数据库。

1.1.3 数据库系统的特点

自20世纪60年代以来,计算机的应用更加广泛。用于数据管理的规模更为庞大,数据量也急剧膨胀,计算机磁盘技术有了很大的发展,出现了大容量磁盘,在处理方式上,联机实时处理的要求更多。这些变化都促进了数据管理手段的进步,于是,数据库技术应运而生。所以说,数据库技术既以计算机技术的发展为依托,又以数据管理的需求为动力。

数据库系统的一个重要的贡献就是应用系统中的所有数据通过将一系列的应用需求综合起来,构成一个统一的数据集,独立于应用程序并由DBMS统一管理,实现数据共享。也就是说,数据库的数据不再面向某个应用或某个程序来实现存储与管理,而是面向整个企业或整个应用。这种特点可用图1-4表示。

图1-4 数据库系统面向整个应用提供数据服务

数据库技术发展到今天,数据库的技术水平和数据库的应用水平,都与过去不可同日而语。但数据库的最基本的特征并未改变。概括起来,数据库系统具有如下特点。

1.数据结构化

数据结构化是数据库系统和文件系统的根本区别。

在传统的文件系统中,文件的记录内部是有结构的,但这个结构不为系统所管理。传统文件最简单的形式是等长且同格式的记录集合。例如一个学生人事记录文件,每个记录的格式如图1-5所示。

图1-5 学生记录格式实例

其中,前8项是每个学生所共有的,基本上是等长的,而后2项则是不定长的,信息量大小变化较大。如果采用等长的记录进行数据的存储,为了建立完整的学生档案文件,每个学生记录的长度必须等于信息量最大的记录的长度,因而会浪费大量的存储空间。所以最好是采用变长记录或主记录与详细记录相结合的形式建立文件。也就是将学生人事记录的前8项作为主记录,后2项作为详细记录,则每个记录的记录格式如图1-6所示,学生张三的记录如图1-7所示。

图1-6 主记录-详细记录格式示例

图1-7 学生张三的记录

这种数据组织形式为各部分的管理提供了必要的记录,使数据结构化了。这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。

在文件系统中,尽管其记录内部已经有了某些结构,但记录之间没有联系。

实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

如前所述,不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录。

2.数据的共享性高,冗余度低,容易扩充

数据可以被多个用户、多个应用同时使用。虽然文件系统中的数据也可能被共享,但不能同时使用。

冗余度是指同一数据被重复存储的程度。在数据库系统中由于数据的结构化,使冗余度尽可能降到最低程度。

由于设计时主要考虑数据结构化,即面向系统,而不是面向某个应用,所以容易扩充。数据库系统可能因为某个应用而产生,但设计时不能只考虑被某个应用所专用。

数据共享和减少冗余还能避免数据之间的不相容性和不一致性。

例如,某人先后在两个部门工作,1986—1990年在甲部门,1990—1996年在乙部门,在写档案材料时,甲部门记录为1986—1990年,由于信息不共享,加之工作疏忽,乙部门写成了1989—1996年,即造成了不相容,两部门之间重复了1年。

例如,某学生名为李萍,由于信息不共享,该生所在的学院输入的姓名为“李萍”,但宿舍管理科输入的姓名为“李平”,即造成了数据的不一致。

由于数据面向整个系统,是带结构的数据,不仅可以被多个应用共享,而且容易增加新的应用,这就使得数据库系统易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当需求改变或增加时,只要重新选取不同的子集或添加一部分数据便可以满足新的需求。

3.数据独立性高

数据独立性是数据库领域中的一个常用概念,包括数据的物理独立性和逻辑独立性。

物理独立性是指当数据的存储结构(或物理结构)改变时,通过DBMS的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。也就是说,数据在磁盘等存储介质上怎样存储由DMBS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构。这样当数据的物理存储改变时,应用程序也不用改变。

逻辑独立性是指用户的应用程序和数据库的逻辑结构是相互独立的,在数据库的逻辑结构发生改变时,用户的程序不需要改变。比如,在学生数据库中,原来存储的字段有(学号,姓名,班级,籍贯)信息,在学生考试后,需要增加成绩1、成绩2、成绩3等字段,虽然数据库的逻辑结构由(学号,姓名,班级,籍贯)改变为(学号,姓名,班级,籍贯,成绩1,成绩2,成绩3),但在学生基本情况的查询中,不需要改变应用程序,整个系统仍然正常运行。

数据独立性是由DBMS的二级映像功能来保证的(将在1.2节进行介绍)。数据库与应用程序是相互独立的,把数据的定义从程序中分离出来,数据的存取由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改量。

4.数据由DBMS统一管理和控制

数据库的数据共享是并发的(Concurrency),也就是多个用户可以同时存取数据库中的数据,甚至可以同时读取数据库中的同一个数据。

为此,DBMS提供以下几个方面的数据控制功能。

(1)数据的安全性(Security)保护

数据的安全性是指保护数据,防止不合法的使用对数据造成泄漏或破坏。每个用户只能按事先约定,对某些数据以某些方式进行使用和处理。

(2)数据的完整性检查

数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或要求数据之间满足一定的关系。

● 正确性:如输入成绩时,应该输入数值,而实际输入了字符,即不正确。

● 有效性:如输入年龄时,应该输入0~150之间的数据,而实际输入了-5,即无效。

● 相容性:如统计成绩时,优、良、中、及格、不及格的百分比之和应为100%,而实际输入数据加起来大于100%,即不相容。

(3)并发控制

当多个用户读取和修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作进行控制和协调。

(4)数据库恢复

计算机系统的硬件故障、软件故障、操作员的失误及故意的破坏也会影响数据库中的数据的正确性,甚至造成数据库中部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的功能,这就是数据库的恢复功能。

综上所述,数据库是长期存储在计算机内的有组织的大量的共享数据的集合。它可以供多个用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运行和维护时对数据库进行统一的控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

数据库系统的出现,使信息系统从以简单的数据加工为中心,转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。

目前,数据库已经成为现代信息系统中不可分离的重要组成部分。具有数百万甚至数十亿字节的信息的数据库已经普遍存在于科学技术、工业、农业、商业、服务业和政府部门的信息系统中。

1.1.4 数据库管理系统的功能

一般来说,数据库管理系统的功能,主要包括以下6个方面。

1.数据定义

数据定义包括定义构成数据库的模式、存储模式和外模式,各个外模式与模式之间的映射,模式与存储模式之间的映射,有关的约束条件等。例如,为保证数据库中数据具有正确性而定义的完整性规则,以及为保证数据库安全而定义的用户口令和存取权限等。

2.数据操纵

数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。

3.数据库运行管理

对数据库的运行管理是DBMS的核心功能,包括对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护(如索引、数据字典的自动维护)等。所有访问数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性、一致性,以及多用户对数据库的并发使用。

4.数据组织、存储和管理

数据库中需要存放多种数据,如数据字典、用户数据、存取路径等,DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间的利用率,提高随机查找、顺序查找、增、删、改等操作的时间效率。

5.数据库的建立和维护

建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。

6.数据通信接口

DBMS需要提供与其他软件系统进行通信定义的功能。例如,提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS文件系统所能够接受的格式,或者接收其他DBMS或文件系统的数据。