数据库与数据库管理系统

四、数据库与数据库管理系统

计算机问世初期,主要是用于解决科学研究和工程设计中的数值计算问题。随着计算机自身的不断发展,计算机的应用由科学研究部门扩展到各行各业。因此,在计算机的三大主要应用领域,即科学计算、数据处理和过程控制中,数据处理迅速上升为计算机应用的主要方面,数据库技术就是作为数据处理中的一门新技术而发展起来的。

数据处理是指对各种形式的数据进行收集、储存、加工和传播的一系列活动的总和。其目的之一是从大量原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;二是为了借助计算机科学地保存和管理大量复杂的数据,以便人们能方便而充分地利用这些宝贵的信息资源;三则是为了实现信息的共享,减少重复性劳动和信息资源的浪费。

数据库技术所研究的问题就是如何科学地组织和储存数据,如何高效地获取和处理数据。数据库技术作为数据管理的最新技术目前已广泛地应用于各个领域,数据库系统已成为当代计算机系统的重要组成部分。

1.数据库技术的形成与发展

数据处理的中心问题是数据管理,计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段。计算机数据管理经历了以下几个阶段:

(1)人工管理:在20世纪50年代中期前,硬件里外存储器没有磁盘这类可以随机访问、直接存取的设备,软件上没有专门的管理数据的软件,数据由计算或处理数据的程序自行携带,所以数据管理任务由人工完成。

这一时期的特点:数据与程序不具有独立性,一组数据对应一组程序。数据不长期保存,一个程序中的数据无法被其他程序利用,程序与程序间存在大量的重复数据,称为数据冗余。

(2)文件系统:在20世纪50年代后期至60年代中后期,大量的数据存储、检索和维护成为当时紧迫的需求,可直接存取的磁盘成为联机的主要外存,软件上出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存储器的数据管理软件。在文件系统阶段,程序与数据有了一定的独立性,程序和数据分开,有了程序文件和数据文件的区别。

但是这一时期的文件系统的数据文件主要是服务于某一特定的应用程序,数据和程序相互依赖,而且同一数据项可能重复出现在多个文件中,数据冗余量大,浪费空间,增加更新开销,由于冗余多,不能统一修改数据,造成数据的不一致性。

(3)数据库系统:在20世纪60年代后期,数据量急剧增长,而且数据共享的需求日益增强,因此开始发展数据库技术。

数据库技术的主要目的是有效地管理和存取大量数据资源。包括提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余度,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。为数据库的建立、使用和维护而配置的软件称为数据库管理系统DBMS (Data Base Management System)。数据库管理系统利用了操作系统提供的输入/输出控制和文件访问功能,因此它需要在操作系统的支持下运行。

图2-3 数据与程序的关系

数据与程序的关系如图2-3所示。

(4)分布式数据库系统:在20 世纪70年代后期之前,数据库系统多是集中式的。网络技术的进步为数据库提供了分布式的运行环境,从主机—终端体系结构发展到客户/服务器 (client/server)体系结构。分布式数据库系统是数据库系统和计算机网络技术紧密结合的产物。

数据库技术与网络技术的结合分为紧密结合与松散结合两大类,分布式DBMS分为物理上分布、逻辑上集中的分布式数据库系统和物理上分布、逻辑上分布的分布式数据库结构两种。

物理上分布、逻辑上集中的结构是一个逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个节点局部数据库的逻辑集合,同时受分布式数据库管理系统的统一控制和管理,即把全局数据模式按数据来源和用途合理分布在系统的多个节点上,使大部分数据可以就地就近存取,用户不会感到数据是分布的。

物理上分布、逻辑上分布的结构是把多个集中式数据库系统通过网络连接起来,各个节点上的计算机可以利用网络通信功能访问其他节点上的数据库资源。一般由两部分组成:一是本地节点数据;二是本地节点共享的其他节点的有关数据。这种运行环境中,各个数据库系统的数据库由各自独立的数据库管理系统集中管理,节点间的数据共享由双边协商确定。这种数据库结构有利于数据库的集成、扩展和重新配置。

2.数据库技术的特点

与文件系统相比,数据库技术提供了对数据更高级更有效的管理,它有如下主要特点。

(1)数据共享性。数据库技术的产生也是人们对数据处理认识提升的结果,数据共享的观念就是其中之一。数据共享的意义是多种应用、多种语言互相覆盖的共享数据集合。在多用户数据库管理系统中,共享性还可以理解为多个用户可以同时使用数据库中的数据,甚至是同一个数据。所以说,数据库是从整体观点来看待和描述数据的,数据不再是面向某一应用程序,而是面向整个系统,集中存储在一起。这可以大大减少数据冗余度,既节约存储空间,减少存取时间,又可避免数据之间的不相容性和不一致性。

对一个特定的组织而言,除了由于需要保密而强加的某些限制以外,这些数据是为该组织的各个下属部门和各个方面的应用所共享的,这样就大大提高了数据的使用价值。另外,除了共享的数据以外,各部门还可以有自己的私有数据,这些数据也放在数据库中,但为了防止其他部门对它进行访问,可加上各种保密限制,禁止非法获得这些数据。

(2)具有较高的数据和程序的独立性。数据的独立性是指数据库中的数据和数据管理软件之间的独立。在当前硬件迅猛发展的情况下:物理数据具有独立性,可以使数据库随技术的发展不断加以调整,而不必修改应用程序。

另一方面,一个数据库系统所拥有的数据比某个特定的应用所需要的数据要多得多。因此对每个应用还可提供局部的逻辑结构,当应用需求改变或增加时,只要重新选取不同子集或者加上一小部分数据,便可以有更多的用途,满足新的要求,使得系统很容易扩充,而文件系统则很难达到这一点。根据局部逻辑结构编写的程序在总体逻辑结构改变后也可以不变,这就是所谓的逻辑独立性。提高数据独立性是数据库所追求的一个主要目标。

(3)对数据实行集中统一的控制。由于数据库中的数据为各种用户所共享,而计算机的共享一般是并发的,即多个用户可以同时使用数据库。因此数据库系统除了提供统一的数据定义、检索及更新操作手段外,还需提供控制数据安全性和完整性的方法,并能保障系统在并发存取数据时的顺利正确执行。

一个较完善的数据库系统通常提供以下三个方面的数据控制功能:

1)数据的安全性控制。数据的安全性是指保护数据,以防止不合法的使用所造成的数据泄密和破坏。例如,系统用检查口令或其他手段来检查用户身份;提供用户保密级别和数据存取权限的定义机制。

2)数据的完整性控制。数据的完整性指数据的正确性、有效性与相容性。数据库中的数据是对客观世界中某些实体性质的反映,它有一定的语义含义。数据库系统可以提供必要的功能,保证数据库中的数据在输入、修改过程中始终符合原来的定义和规定。

3)并发控制。当多个用户的并发进程同时存取、修改数据库时,可能会发生互相干扰而得到错误的结果,并使数据库完整性遭到破坏,因此必须对多用户的并发存取动作加以控制和协调。

(4)灵活多样的数据管理功能。数据库管理系统不是把数据简单堆积,它应在记录数据信息的基础上具有很多的管理功能,如输入、输出、查询和编辑修改等。

鉴于数据库系统的上述特点,大型复杂的信息系统大多以数据库为核心,因而数据库系统在计算机应用中起着越来越重要的作用。

3.数据库与数据库管理系统

(1)数据库。数据库(DataBase)是指存储在辅助存储器中的一些有意义、有关系的数据组合。这些数据在特定的组织中能为多种应用服务。它们以数据模型所确定的数据结构方式存储,并能以有效的存取方法为操纵数据的语言提供快速响应。

(2)数据库管理系统。数据库管理系统 (DBMS),是专用于管理数据库的一个系统软件。它允许一个或多个使用者对数据库中的抽象数据提出请求 (包括询问和修改),并以合乎使用者要求的格式提供给使用者。一个数据库管理系统应具有许多功能,最基本的包括三个部分:数据定义、数据操作和数据控制。

数据定义功能:数据库管理系统提供了定义数据类型及数据存储形式的功能。每个记录的每个字段中的信息为一个数据。因记录的信息不同,数据类型也应不同。例如,学号的类型应为“数字”,姓名的类型应为“文本”,生日的类型应为“日期”等,通过定义数据类型,可以保证不能在定义为数字的字段中存放文本类型的数据,在一定程度上保证数据的完整性。

数据操作功能:数据库管理系统提供了多种处理数据的方式。例如,在一张表中查找信息或者在几个相关的表或文件中进行复杂的查询;使用相应的命令更新一个字段或多个记录的内容;用一个命令对数据进行统计,甚至可以使用数据库管理系统提供的编程工具进行代码编制,以实现更加复杂的功能。

数据控制功能:数据库管理系统对数据提供了一定的保护措施.从而保证了在多个用户共享数据时,只有被授权的用户才能查看或修改数据。允许数据共享的数据库管理系统还要确保不能使两个用户同时修改同一个数据。好的数据管理系统还应提供多组修改功能,以保证数据同时进行修改,防止数据遗漏,出现数据不一致的问题。

具有了以上这些基本的功能,才能算是一个比较完整的数据库管理系统。

(3)数据库系统。经过加工整理存储在数据库中的大量数据,由数据库管理系统管理,为多个不同的应用(或用户)共同使用的数据处理系统,可称为数据库系统。由此可见,数据库系统有两个主要组成部分:一是数据库,二是管理和应用数据库的软件。另外,还应包括存放数据的存储介质、设备,以及使用和维护数据库系统的人员。