|
|
|
|
移动端

1.6 DBMS的优点和缺点

《数据库系统:设计、实现与原理(基础篇)(原书第6版)》第1章数据库简介,本章将首先介绍数据库系统。本节为大家介绍DBMS的优点和缺点。

作者:宁洪/贾丽丽/张元昭 译来源:机械工业出版社|2017-09-27 15:18

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


1.6 DBMS的优点和缺点

数据库管理系统具有许多显著的优点。然而事物都是一分为二的,它也有缺点。本节将研究这些优缺点。

优点

数据库管理系统的优点在表1-2中列出。

表1-2 DBMS的优点

受控的数据冗余。在1.2节中曾经讨论过,传统的基于文件的系统由于在几个文件中同时存储相同的信息而浪费空间。例如,在图1-5中,在销售部门和合同部门同时存储了用于出租房产和客户的相同数据信息。而数据库方法则通过将文件集成来避免存储多个数据备份,从而消除冗余。然而,数据库方法并不是消除所有冗余,而是控制数据库内的冗余。有时为了表示实体之间的联系,重复存储某些关键数据项是必要的。在另一些情形下,为了提高性能也将重复存储一些数据项。在阅读了后面几章后,我们将对受控冗余有更清楚的认识。

数据一致性。消除和控制冗余同时也降低了发生不一致性的可能性。很显然,如果一个数据项在数据库中仅存储一次,则对它的更新也只需要进行一次,新的值马上就能被所有的用户看到。如果一个数据在数据库中不只存储一次,但系统掌握情况,则系统能够保证这个数据项的所有备份一致。令人遗憾的是,当代的许多DBMS尚不能自动保证这类一致性。

相同数据量表示更多信息。通过对集成数据的操作,组织机构能从相同数量的数据中导出额外的信息。例如,在图1-5所示的基于文件的系统中,合同部门不可能知道已经出租的房产归谁拥有。同样,销售部门也不可能知道租赁合同的详细信息。但当把这些数据集成在一起时,合同部门就可以访问业主的详细信息,销售部门也可以访问租赁合同的详细信息。这就是从同样数量的数据中得到更多的信息。

数据共享。通常文件是由使用它的人或者部门拥有。但数据库属于整个组织机构,可以被所有授权的用户共享。这样一来,用户越多,共享的数据越多。并且,新的应用可以在数据库中原有数据的基础上增加新数据,而不需从头定义所有数据。新应用自然也能利用DBMS提供的功能,例如数据定义和操作、同步和恢复控制等,而不需要自己再实现这些功能。

增强的数据完整性。数据库的完整性指的是存储的数据的有效性和一致性。完整性通常用完整约束表达,约束指的是数据库不能违反的一致性规则。约束可以应用于单条记录中的数据项,也可以应用于记录之间的联系。例如,一条完整性约束可能规定一个员工的工资不能超过40 000英镑;或者规定在一个员工的记录中,代表该员工所工作部门的部门编号必须对应于一个具体存在的部门。此外,数据库的集成性使得完整性约束可以由DBA确定,而由DBMS执行检查。

增强的安全性。数据库的安全性是指保护数据库不被未经授权者访问。如果没有适当的安全性检查,数据库的集成性使得数据相比在基于文件的系统中更易受到攻击。然而,其集成性也使得数据库安全性能由DBA确定,而由DBMS执行检查。这里可能会采取用户名和密码的方式来识别授权使用数据库的用户。授权用户对数据库的访问也可以采用限制操作类型(检索、插入、更新、删除)的方法。例如,DBA可以访问数据库中所有的数据;部门经理只可以访问所有与他部门相关的数据;而销售人员可以访问所有与房产有关的数据,但不能访问其他敏感数据,如员工工资的详细信息等。

强制执行标准。集成性使得DBA能定义和强制执行一些必要的标准。这些标准可能包括部门的、组织的、国家的甚至国际的。例如,为了便于在系统之间交换数据而采用标准的数据格式、命名法、文档规范、更新规程和访问规则等。

经济合算的规模。将组织机构内的所有运行数据组合到一个数据库中,针对这同一个数据源来创建各种应用,当然可以节省费用。与采用基于文件的系统不同,原本分给每个部门的开发和维护费用此时可以统一管理,结果必将降低整体费用,达到更经济合算的规模。归总后的预算也可用来购置更加适宜整个组织机构应用的系统配置。这样的系统有可能是一个大型的、功能强大的计算机,或者是由许多小型计算机组成的网络。

平衡各种需求冲突。每一个用户或者部门的需求都有可能与其他用户的需求产生冲突。由于数据库是在DBA的控制下,所以DBA可以对数据库的设计和操作性使用做若干决策,使得组织机构作为一个整体实现最佳的资源使用。决策时可能会以牺牲不重要的应用作为代价,从而为重要的应用提供优良的性能。

增强的数据可访问性和响应性。同样是数据集成的结果,原来由各部门条块分割的数据现在都可以由终端用户直接访问了。这样无疑能提供功能更加强大的系统,为终端用户或者是组织机构的客户提供更优质的服务。目前许多DBMS提供查询语言和报表生成等功能,允许用户在自己的终端即席提问,直接得到查询结果,而不需要再有程序员帮助编写程序并从数据库中提取这些信息。例如,一个部门经理可以通过在终端输入下列SQL语句,列出所有月租金高于400英镑的公寓房:

提高的生产率。如前所述,DBMS提供许多标准的功能,这些功能在基于文件的应用系统中通常需要程序员自己编写。在基础层上,DBMS提供所有应用程序中典型的低层文件处理例程。这样一来,程序员能够集中精力满足用户提出的特殊功能要求,而不必分心低层的实现细节。许多DBMS还提供第四代环境,它由许多能简化数据库应用开发的工具组成。这使得程序员能提高生产率,缩短开发时间(相应地减少费用)。

通过数据独立性增强可维护性。在基于文件的系统中,数据的描述和数据访问逻辑都建立在应用程序中,使得程序依赖于数据。任何对于数据结构的修改,比如将40个字符长的地址改成41个字符,或者改变数据在磁盘中的存储方式,都要求对相关的应用程序进行实际的修改。相反,DBMS将数据描述从应用程序中分离出来,从而使应用程序不再受数据描述改变的影响。这就是众所周知的数据独立性,2.1.5节将进一步讨论它。数据独立性简化了数据库应用程序的维护。

提高的并发性。在某些基于文件的系统中,如果允许两个或多个用户同时访问文件,那么这些访问可能会互相影响,导致信息的丢失,甚至破坏完整性。但许多DBMS能管理并发的数据库访问,确保这样的问题不会发生。我们将在第22章讨论并发控制。

增强的备份和恢复服务。在许多基于文件的系统中,将保护计算机系统或应用程序不受故障影响的任务推给用户。这可能需要时常对数据进行备份。如果发生了数据故障,前一天备份的数据将被恢复,当然备份之后所进行的所有工作将全部丢失,不得不重新再来一遍。相反,现代的DBMS提供了便利的方法,将发生故障后的数据丢失率降低到最低限度。22.3节将讨论数据库恢复问题。

缺点

数据库方法的缺点在表1-3中列出。

复杂性高。人们期望DBMS提供各种各样的功能,这使得DBMS变为一个相当复杂的软件。数据库设计人员、应用开发者、数据和数据库管理员以及终端用户必须对这些功能了解透彻才能很好地利用它。反之,将会导致错误的设计决策,对组织机构产生很严重的后果。

规模大。复杂性和功能的多样性使得DBMS体积很大,占用大量的磁盘存储空间,并且需要大量的内存空间才能高效运行。

DBMS的费用高。DBMS的费用依所提供的环境和功能的不同而有很大的差异。例如,一台个人计算机上的单用户DBMS可能只需花费100美元。然而,为上百位用户提供服务的大型多用户DBMS就会十分昂贵,可能需要10万美元,甚至100万美元。每年还需要周期性的维护费用,通常为售价的一定比例。

需要附加的硬件费用。为存储DBMS和数据库通常需要购买额外的存储空间。进而,为了达到预期的性能要求,必要时还需要购买一台大型机,甚至是一台专门用于运行DBMS的机器。购置附加硬件导致了系统费用的进一步增加。

转化费用大。在某些情况下,比起将已存在的应用转换为可在新的DBMS和硬件上运行的应用,购买新的DBMS及附加硬件的费用要小得多。这类费用也包括培训员工使用新系统的费用,可能还包括聘请专业人员帮助完成系统转换和运行的费用。正是因为这笔费用巨大,一些组织虽然对他们在用的系统不满意,也不转而使用更加现代化的数据库技术。术语遗留系统有时候用来指旧的、通常较劣等的系统。

性能相对较低。基于文件的系统通常是专为一个特定的应用开发的,例如发货业务,性能一般较好。然而,DBMS更加通用,需满足许多应用而不是仅仅一个应用的需求。结果导致某些应用不能像从前那样快速运行。

故障带来的影响较大。资源集中管理增加了系统的脆弱性。由于所有的用户和应用都依赖于DBMS的可用性,因此任何一个组成部分的故障都可能导致运行停止。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

游戏关卡设计

《半条命》作者倾心写就 暴雪总裁等业内专家强力推荐 盛大公司专业团队翻译 一起来创造引人入胜的游戏体验吧! 任何精彩游戏的核心部分...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊