1.2.3 数据库系统阶段
在前述校园信息管理系统的例子中,如果全校统筹考虑,各职能部门抽取共同的数据需求(例如学生的基本信息),共同存储一个数据备份并共享该备份,则可以降低数据冗余,避免数据不一致和数据异常的发生。到了20世纪60年代中后期,随着计算机在数据管理领域得到普遍应用,要处理的数据量急剧膨胀,要联机实时处理的业务不断增多,人们对数据共享提出了更迫切的要求。计算机硬件技术的飞速发展使得硬件价格大幅下降,软件研发及维护成本占系统开发成本的比重相对增加。要降低软件研发和维护的费用,在数据经常发生变化的情况下,必须减少修改程序代码的工作量。在此类需求推动下,以及随着大容量磁盘和网络技术的出现,数据库技术问世。
数据库是存储在计算机里的关联数据的集合。这些数据是结构化的,不存在有害的或不必要的冗余,并为多种应用服务。数据存储独立于使用它的程序。对数据库插入新数据,修改和检索原有数据,均能按一种公用的和可控制的方式进行。
数据库技术研究如何组织和存储数据,如何高效地获取数据并处理数据。数据库技术的根本目标是降低数据冗余,实现数据共享。在管理数据时,从整体关联用户出发而不再只针对某种特定的应用来考虑数据的组织和存储。以前述校园信息管理系统为例,可统一分析教务处、保卫处、校医院等部门的数据管理需求,从数据共享的角度出发,将各部门关心的学生基本信息抽取出来构建一个独立的数据表,各部门共享学生基本信息表里面的数据。此外,还可根据各个部门职能相关的业务单独构建数据表,而且这些职能相关的业务数据表只对相关的业务人员开放访问权限,如图1.12所示。例如,校医院的医生具有访问健康表的权限,而无权查看户籍表与教务表的数据;当校医院的医生需要联系某学生时,可以通过学号在学生基本信息表里找到该学生的电话号码。
事实上,图1.12中的学生基本信息表、户籍表、健康表与教务表的数据是相关联的。我们把这些相关联的数据集合称为数据库(Database,DB)。数据库是为了解决数据管理问题而构建的,存储了反映真实世界某些方面的数据,具有特定的用户群体。数据库系统(Database System,DBS)采用数据库技术有组织地、动态地存储大量关联数据,方便多用户(或应用程序)访问。如图1.13所示,数据库系统中有一个重要的组成部分——数据库管理系统(Database Management System,DBMS),它帮助用户创建和管理数据库。用户对数据库的一切操作,包括定义、构造、更新、查询等,都是通过DBMS进行的。此外,DBMS还能解决数据存储过程中的一系列问题,保证数据库正常运作。
图1.12 采用数据库系统进行校园信息管理
图1.13 数据库系统
思考:对比数据库系统阶段与文件系统阶段数据管理思路的根本区别。
早期的数据库系统是从文件系统发展而来的。这些数据库系统使用不同的数据模型来描述数据库中的信息结构,如1968年IBM公司研制的基于层次模型的数据库管理系统IMS(Information Management System)。20世纪60年代末70年代初美国数据库系统语言协会CODASYL(Conference on Data System Language)下属的数据库任务组DBTG(Database Task Group)提出了著名的DBTG报告,对网状数据模型和语言进行了定义。早期的模型和系统存在一个问题,即它们不支持高级查询语言。在使用这些系统时,即便只完成一个简单的查询,用户也得花费很大的力气去编写查询程序。
1970年,IBM公司的研究员E.F.Codd发表了一篇题为“A Relational Model of Data for Large Shared Data Banks”的论文。该论文提出了数据库系统应以表格的形式将数据组织给用户看,这种形式被称作关系。尽管在关系的背后可能隐藏着极其复杂的数据结构,但用户无须关心数据的存储结构就可以实现对数据的快速查询,从而大大提高了数据库程序员的工作效率。关系数据库模型和方法为关系数据库技术奠定了理论基础,并开创了数据库技术领域的新纪元。1981年美国计算机协会(Association for Computing Machinery,ACM)给E.F.Codd颁发了图灵奖以表彰他所做出的杰出贡献。
20世纪70年代后期,关系数据库从实验室走向了社会。之后几乎所有新研发的数据库系统都是关系型的,数据库技术得到了迅猛发展。许多数据库供应商开发了各种针对不同应用的数据库管理系统,使数据库技术日益渗透到企业管理、商业决策、情报检索等领域,微机的普及进一步推动了数据库技术走向更广大的用户群,使其成为实现和优化信息管理的有效工具。
进入21世纪,随着计算机网络技术的发展,人们对数据的联机处理提出了进一步的要求。互联网使数据库技术的重要性得到了充分的提升。一些新的领域如计算机集成制造、计算机辅助设计、地理信息系统等对数据库提出了新的需求,它们为数据库的应用开辟了新的天地,同时也直接推动了数据库技术的革新和发展。
如今,数据库技术的应用已经从最初某个特定领域的数据管理渗透到各行各业,无论是在超市购物,还是在图书馆检索馆藏书目,无论是在银行存取款,还是在网上预订火车票或飞机票,我们都或多或少会和数据库发生某些联系。这些应用都具有以下共同特点:①涉及的数据量大;②数据需要被长期保存;③数据需要被多个应用程序(或多用户)所共享。数据库技术已经成为信息系统的一个核心技术。没有数据库技术,人们在浩瀚的信息世界中将手足无措。
思考:你的日常生活中,有哪些场景会应用到数据库技术?