假设银行需要保存所有客户及其账户的信息。一种方法是将它们存储在操作系统文件中,应用程序通过文件系统对它们进行存取,但这种方法随着数据管理规模的扩大,数据量的急剧增加,则显露出一些缺陷:
(1)数据的冗余和不一致
在传统的文件处理中,应用程序所需要的所有文件的定义是该应用编程的一部分,不同的应用会定义不同的文件,特别是如果这些应用是在很长的一段时间由不同的程序员创建的,这就造成相同的信息可能在不同的文件中重复存储。比如储蓄账户管理程序所定义的文件中包含客户地址和电话等信息,若银行又要开设支票账户,就要开发相应的程序,定义的文件中可能也包含客户地址和电话等信息,这就造成了数据的冗余存储。这种冗余除了导致存储和访问开销增大外,还可能导致数据的不一致。比如某个客户地址的变更可能在储蓄账户文件中得到反映,而在支票账户文件中却没有修改。
(2)数据间联系弱
数据文件之间相互独立,缺乏联系,并且可能具有不同的格式,无法支持以一种方便而有效的方式获取数据。比如要找出某一邮编地区各个客户的所有储蓄账户和支票账户的信息,此需求涉及储蓄账户文件和支票账户文件两个孤立的文件,并且它们也可能具有不同的客户地址格式,编写这样一个应用程序是比较困难的。
数据库系统克服了文件系统的上述缺陷,提供了对数据更有效的管理。数据库系统具有以下几个特征。
(1)数据库系统自描述特征
数据库系统不仅包含数据库本身,还通过系统目录(systemcatalog)定义了数据库的结构,每个数据项的类型以及加在数据上的各种约束条件。系统中的任何应用都可以通过数据库管理系统DBMS软件从系统目录中提取出数据库的定义,根据需求方便地获得对数据库全部或某些数据项的存取。比如,客户信息数据库中包括客户编号、姓名、住址、电话等信息,处理储蓄账户的应用、处理支票账户的应用以及打印客户列表的应用都可以使用该数据库获得所需要的某些客户信息。即数据是面向整个系统的,可以被多个应用、多个用户所共享。数据共享可以大大减少数据冗余,避免数据的不一致性。
在传统的文件处理中,数据文件的定义一般作为应用程序自身的一部分,数据是面向特定的某个或几个应用的,并且对数据的操作只能以记录为单位,不能以数据项为单位。
……
展开