《数据库原理及应用》第一章 数据系统概述

  |   0 评论   |   1,580 浏览

1.数据管理技术的发展

u=38311135,1501444238&fm=72.jpg

计算机处理的电子数据,来自于现实世界的信息。信息是现实世界在人脑中的抽象反映,是通过人的感官感知出来并经过人脑的加工而形成的反映现实世界中事物的概念。这里所说的“事物”不仅是那些看得见、摸得着的物体,而且也包括那些不可触及的抽象概念,如产量、质量、速度等。因此信息可以看作是现实世界的真实反映。信息不仅为人们所认识和理解,而且能够把它作为知识来进行推理、加工和传播,从而达到认识世界、改造世界的目的。

在用计算机处理信息的时候,要将信息转比为计算机可以识别的符号,也就是数据。数据是表示信息的一种手段。比如对一本书的认识――信息,可以在计算机中表示为标题、作者、开本、价格、出版社、提要和全文等等符号化的数据。

事物――信息――数据,实际上贯穿了三个世界,即现实世界――信息世界――计算机世界。

现实世界存在着各种物体的集合,如某个班集体、书、零件等,这些可以称为事物类,事物类也可以是某种抽象概念的集合,如成绩。这是现实世界中进行管理的基础。每一个事物类都有具体的事物组成,如某班集体的学生,可以是张三、李四等。每一个具体的事物又具有自己的内涵,如张三具有姓名、性别等内涵。事物类、事物、内涵构成三个层次,与事物、内涵相对应的是实体和属体。

在数据世界,即计算机世界中,与三个层次对应的概念分别是文件、记录和字段。认识到了现实世界中的事物可以表示成计算机世界的数据,计算机就有了进行数据处理的基础。数据处理正是对各种形式的数据进行收集、储存、加工和传播的一系列活动的总和。其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息,作为行动和决策的依据;是为了借助计算机科学地保存和管理复杂的大量的数据,以便人们能方便而充分地利用这些宝贵的信息资源。比如说,对天文观测的数据处理,可以预报天气的变化;对经济运行中产生的数据处理,可以帮助制定科学的经济政策;当计算机保存并处理了图书馆的书刊数据时,就可以迅速从浩瀚的书海中迅速找到所需的资料。借助于计算机网络,数据处理可以使人们在社会活动中如虎添翼。如在北京可以迅速得知上海的商业行情;从中国可以得到美国的某篇文献的原文。这一切均来自于计算机的对电子数据的处理功能。

现在让我们来思考一下,上文中所述及的计算机完成的种种功能如何才能实现呢?要想对数据进行处理,首先要作的是对数据的分类、组织、储存、索引和维护等。这些工作是数据处理的基本环节,这些工作统称为数据管理。

2.数据管理技术的发展


数据管理的水平是和计算机硬件、软件的发展相适应的,是随着计算机技术的发展而发展的。人们的数据管理技术经历了三个阶段的发展:

     人工管理阶段;

     文件系统阶段;

     据库系统阶段。

(1)人工管理阶段

这一阶段,大致是在50年代中期之前。此时计算机技术相对落后。这时的计算机主要用于科学计算。硬件方面,计算机的外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备,存储量非常小;软件方面,没有操作系统,没有高级语言,数据处理的方式是批处理,也即机器一次处理一批数据,直到运算完成为止,然后才能进行另外一批数据的处理,中间不能被打断,原因是此时的外存如磁带、卡片等只能顺序输入。

这一阶段数据管理的特点是:

① 数据不保存。在需要计算时,利用卡片、纸带等将数据输入,经过运算得到运算结果,数据处理的过程就结束了。

   数据不能独立。数据是作为输入程序的组成部分,即程序和数据是一个不可分隔的整体,数据和程序同时提供给计算机运算使用。对数据进行管理,就像现在的操作系统可以以目录、文件的形式管理数据。程序员不仅要知道数据的逻辑结构,也要规定数据的物理结构,程序员对存储结构,存取方法及输入输出的格式有绝对的控制权,要修改数据必须修改程序。要对100组数据进行同样的运算,就要给计算机输入100个独立的程序,因为数据无法独立存在。

③ 这一时期,尚没有文件的概念。数据的组织完全由程序员自行设计。即使人们发现了这样作的弊病,也无可奈何。因为此时计算机的外存能力是很弱的。

④ 数据是面向应用的。一组数据对应一个程序。不同应用的数据之间是相互独立、彼此无关的,即使两个不同应用涉及到相同的数据,也必须各自定义,无法相互利用,互相参照。数据不但高度冗余,而且不能共享。

 综上所说,所以有人也称这一数据管理阶段为无管理阶段。

(2)文件系统阶段

从50年代后期到60年代中期,数据管理发展到文件系统阶段。此时的计算机不仅用于科学计算,还大量用于管理。外存储器有了磁盘等直接存取的存储设备。在软件方面,操作系统中已有了专门的管理数据软件,称为文件系统。从处理方式上讲,不仅有了文件批处理,而且能够联机实时处理,联机实时处理是指在需要的时候随时从存储设备中查询、修改或更新,因为操作系统的文件管理功能提供了这种可能。这一时期的特点是:

① 数据长期保留。数据可以长期保留在外存上反复处理,即可以经常有查询、修改和删除等操作。所以计算机大量用于数据处理。

② 数据的独立性。由于有了操作系统,利用文件系统进行专门的数据管理,使得程序员可以集中精力在算法设计上,而不必过多地考虑细节。比如要保存数据时,只需给出保存指令,而不必所有的程序员都还要精心设计一套程序,控制计算机物理地实现保存数据。在读取数据时,只要给出文件名,而不必知道文件的具体的存放地址。文件的逻辑结构和物理存储结构由系统进行转换,程序与数据有了一定的独立性。数据的改变不一定要引起程序的改变。保存的文件中有100条记录,使用某一个查询程序。当文件中有1000条记录时,仍然使用保留的这一个查询程序。

③ 可以实时处理。由于有了直接存取设备,也有了索引文件、链接存取文件、直接存取文件等,所以既可以采用顺序批处理,也可以采用实时处理方式。数据的存取以记录为基本单位。

上述各点都比第一阶段有了很大的改进。但这种方法仍有很多缺点,主要是:

① 数据冗余大。当不同的应用程序所需的数据有部分相同时,仍需建立各自的独立数据文件,而不能共享相同的数据。因此,数据冗余大,空间浪费严重。并且相同的数据重复存放,各自管理,当相同部分的数据需要修改时比较麻烦,稍有不慎,就造成数据的不一致。比如,学籍管理需要建立包括学生的姓名、班级、学号等数据的文件。这种逻辑结构和学生成绩管理所需的数据结构是不同的。在学生成绩管理系统中,进行学生成绩排列和统计,程序需要建立自己的文件,除了特有的语文成绩、数学成绩、平均成绩等数据外,还要有姓名、班级等与学籍管理系统的数据文件相同的数据。数据冗余是显而易见的,此外当有学生转学走或转来时,两个文件都要修改。否则,就会出现有某个学生的成绩,却没有该学生的学籍的情况,反之亦然。如果系统庞大,则会牵一发而动全身,一个微小的变动引起一连串的变动,利用计算机管理的规模越大,问题就越多。常常发生实际情况是这样,而从计算机中得到的信息却是另一回事的事件。

② 数据和程序缺乏足够的独立性。文件中的数据是面向特定的应用的,文件之间是孤立的。不能反映现实世界事物之间的内在联系。在上面的学籍文件与成绩文件之间没有任何的联系,计算机无法知道两个文件中的哪两条记录是针对同一个人的。要对系统进行功能的改变是很困难的。如在上面的例于中,要将学籍管理和成绩管理从两个应用合并成一个应用中,则需要修改原来的某一个数据文件的结构,增加新的字段,还需要修改程序,后果就是浪费时间和重复工作。此外,应用程序所用的高级语言的改变,也将影响到文件的数据结构。比如BASIC语言生成的文件,COBOL语言就无法如同是自己的语言生成的文件一样顺利地使用。总之数据和程序之间缺乏足够的独立性是文件系统的一个大问题。

文件管理系统在数据量相当庞大的情况下,已经不能满足需要。美国在60年代进行阿波罗计划的研究。阿波罗飞船由约200万个零部件组成。分散在世界各地制造。为了掌握计划进度及协调工程进展,阿波罗计划的主要合约者罗克威尔(Rockwell)公司曾研制了一个计算机零件管理系统。系统共用了18盘磁带,虽然可以工作,但效率极低,维护困难。18盘磁带中60%是冗余数据。这个系统一度成为实现阿波罗计划的严重障碍。应用的需要推动了技术的发展。文件管理系统面对大量数据时的困境促使人们去研究新的数据管理技术,数据库技术应运而生了!例如,最早的数据库管理系统之一IMS就是上述的罗克威尔(rockwell)公司在实现阿波罗计划中与IBM公司合作开发的,从而保证了阿波罗飞船1969年顺利登月。

(3)数据库系统阶段

从60年代后期开始,数据管理进入数据库系统阶段。这一时期用计算机管理的规模日益庞大,应用越来越广泛,数据量急剧增长,数据要求共享的呼声越来越强。这种共享的含义是多种应用、多种语言互相覆盖地共享数据集合。此时的计算机有了大容量磁盘,计算能力也非常强。硬件价格下降,编制软件和维护软件的费用相对在增加。联机实时处理的要求更多,并开始提出和考虑并行处理。

在这样的背景下,数据管理技术进入数据库系统阶段。

现实世界是复杂的,反映现实世界的各类数据之间必然存在错综复杂的联系。为反映这种复杂的数据结构,让数据资源能为多种应用需要服务,并为多个用户所共享,同时为让用户能更方便地使用这些数据资源,在计算机科学中,逐渐形成了数据库技术这一独立分支。计算机中的数据及数据的管理统一由数据库系统来完成。

数据库系统的目标是解决数据冗余问题,实现数据独立性,实现数据共享并解决由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。为实现这一目标,数据库的运行必须有一个软件系统来控制,这个系统软件称为数据库管理系统(Database Management System,DBMS)。数据库管理系统将程序员进一步解脱出来,就像当初操作系统将程序员从直接控制物理读写中解脱出来一样。程序员此时不需要再考虑数据中的数据是不是因为改动而造成不一致,也不用担心由于应用功能的扩充,而导致程序重写,数据结构重新变动。在这一阶段,数据管理具有下面的特点,这些特点正是数据库的改进之处:

  ① 数据结构不是面向单一的应用,而是面向全组织。仍以学校管理为例,要想避免数据冗余和数据程序之间的依赖性,就要将学生学籍及成绩两类不同的数据之间彼此建立关系。

当需要增加新的应用,比如学生的体质状况管理,则只要再增加新的联系。

这种思想只是数据库方法的雏形,它从文件内部的记录的结构比,扩大到不同的文件记录之间建立一种联系。但是它还有局限性,因为它还是从应用的角度去看待数据,还应进一步从整个组织的数据结构考虑。假设所考虑的这个组织――学校,就还应该有教师人事信息、教务信息、教学关系等。不同应用考虑的是整个数据集合的某个有用的子集。整个组织的数据是结构比的。这样描述数据时不仅描述数据本身,还有描述数据之间的联系。

数据的结构化是数据库主要特征之一。这是数库与文件系统的根本区别。至于这种结构化是如何实现的,则与数据库系统采用的数据模型有关,后面会有较详细的描述。

② 数据冗余小,易扩充。数据库从整体的观点来看待和描述数据,数据不再是面向某一应用,而是面向整个系统。这样就减小了数据的冗余,节约存储空间,缩短存取时间,避免数据之间的不相容和不一致。对数据库的应用可以很灵活,面向不同的应用,存取相应的数据库的子集。当应用需求改变或增加时,只要重新选择数据子集或者加上一部分数据,便可以满足更多更新的要求,也就是保证了系统的易扩充性。

③ 数据独立于程序。数据库提供数据的存储结构与逻辑结构之间的映象或转换功能,使得当数据的物理存储结构改变时,数据的逻辑结构可以不变,从而程序也不用改变。这就是数据与程序的物理独立性。也就是说,程序面向逻辑数据结构,不去考虑物理的数据存放形式。数据库可以保证数据的物理改变不引起逻辑结构的改变。

数据库还提供了数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映象或转换功能。当总体的逻辑结构改变时,局部逻辑结构可以通过这种映象的转换保持不变,从而程序也不用改变。这就是数据与程序的逻辑独立性。举例来讲,在进行学生成绩管理时,姓名等数据来自于数据的学籍部分,成绩来自于数据的成绩部分,经过映象组成局部的学生成绩,由数据库维持这种映象。当总体的逻辑结构改变时,比如学籍和成绩数据的结构发生了变化,数据库为这种改变建立一种新的映象,就可以保证局部数据――学生数据的逻辑结构不变,程序是面向这个局部数据的,所以程序就无需改变。

④ 统一的数据管理功能,包括数据的安全性控制、数据的完整性控制及并发控制。

数据库是多用户共享的数据资源。对数据库的使用经常是并发的。为保证数据的安全可靠和正确有效,数据库管理系统必须提供一定的功能来保证。

数据库的安全性是指防治非法用户的非法使用数据库而提供的保护。比如,不是学校的成员不允许使用学生管理系统,学生允许读取成绩但不允许修改成绩等。

数据的完整性是指数据的正确性和兼容性。数据库管理系统必须保证数据库的数据满足规定的约束条件,常见的有对数据值的约束条件。比如在建立上面的例子中的数据库时,数据库管理系统必须保证输入的成绩值大于0,否则,系统发出警告。

数据的并发控制是多用户共享数据库必须解决的问题。要说明并发操作对数据的影响,必须首先明确,数据库是保存在外存中的数据资源,而用户对数据库的操作是先读入内存操作,修改数据时是在内存在修改读入的数据复本,然后再将这个复本写回到处存的数据库中,实现物理的改变。比如,某学生的语文和数学的成绩都有输入错误,语文老师和数学老师同时进行修改。

数据库管理系统对数据的并发控制要有一定的限制。数据库管理系统对上述各个方面均提供有效的管理,进一步解放了程序员。

由于数据库的这些特点,它的出现使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行。便于数据的集中管理,也提高了程序设计和维护的效率。提高了数据的利用率和可靠性。当今的大型信息管理系统均是以数据库为核心的。数据库系统是计算机应用中的一个重要阵地。

总之,数据库技术正是研究如何科学地组织和储存数据,如何高效地获取和处理数据。数据库技术是到目前为止发展成熟的数据管理的最新技术。

>