①关系数据库系统的优点

a.灵活性和建库的简单性:从软件开发的前景来看,用户与关系数据库编程之间的接口是灵活与友好的。目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准的数据存取方法。

b.结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元组),可为用户或程序提供多个复杂的视图。数据库设计和规范化过程也简单易行和易于理解。由于关系数据库的强有力的、多方面的功能,已经有效地支持许多数据库纳应用。
②关系数据库系统的缺点

a.数据类型表达能力差:从下一代应用软件的发展角度来看,关系数据库的根本缺陷在于缺乏直接构造与这些应用有关的信息的类型表达能力,缺乏这种能力将产生以下有害的影响,例如:大多数RDBMS产品所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面的不协调。

大多数现代的RDBMS产品已成熟地用于商务和财政方面,而这些领域不要求很高和很复杂的数据模型。虽然这些产品多多少少克服了一些以上所述的缺点,但从理论上看关系数据模型不直接支持复杂的数据类型,这是由于第一范式的要求,所有的数据必须转换为简单的类型,如整数、实数、双精度数和字符串。

对于工程应用来说,这种不能支持复杂数据类型的典型结果就是需要额外地分解数据结构工作,这些被分解的结构不能直接表示应用数据,且从基本成分重构时也非常繁琐和费时间。

b.复杂查询功能差:关系数据库系统的某些优点也同时是它的不足之处。虽然SQL语言为数据查询提供了很好的定义方法,但当用于复杂信息的查询时可能是非常繁琐的。此外,在工程应用时规范化的过程通常会产生大量的简单表。在这种环境下由存取信息产生的查询必须处理大量的表和复杂的码联系以及连接运算。

除非这些查询以固定的例行程序方式提供,否则用户就必须对SQL非常熟悉,以便适当地浏览数据库,查出所需的信息。然而,一旦查询方式按固定例行程序方式进行,用户最终就进行应用软件的常规维护。但应用或人机接口软件的变化又可能要求经常修改例行的查询,数据库结构的变化也可能导致例行查询程序以及应用或人机接口软件的失效。由于这些原因,关系数据库系统的维护开销可能是很大的。

由于关系数据库不能提供足够的构造能力及性能方面的原因,在进行较复杂的数据库设计过程中,不可能将许多工程问题直接分解成一些简单的部分。由于缺乏直接指针存取方法,所以查询有关的信息需要花费时间。

c.支持长事务能力差;由于RDBMS记录锁机制的颗粒度限制,对于支持多种记录类型的大段数据的登记和检查来说,简单的记录级的锁机制是不够的,但基于键值关系的较复杂的锁机制来说却很难推广也难以实现。

d.环境应变能力差:在要求系统频繁改变的环境下,关系系统的成本高且修改困难。在工程应用中支持"模式演变"(schema evolution)的功能是很重要的,而RDBMS不容易支持这种功能。另外,关系数据库和编程语言所提供的数据类型的不一致,使得从一个环境转换到另一个环境时需要多至30%的附加代码。
③面向对象数据库系统的优点

a.能有效地表达客观世界和有效地查询信息:面向对象方法综合了在关系数据库中发展的全部工程原理、系统分析、软件工程和专家系统领域的内容。面向对象的方法符合一般人的思维规律、即将现实世界分解成明确的对象,这些对象具有属性和行为。系统设计人员用ODBMS创建的计算机模型能更直接反映客观世界,最终用户不管是否是计算机专业人员,都可以通过这些模型理解和评述数据库系统。

工程中的一些问题对关系数据库来说显得太复杂,不采取面向对象的方法很难实现。从构造复杂数据的前景看,信息不再需要手工地分解为细小的单元。ODBMS扩展了面向对象的编程环境,该环境可以支持高度复杂数据结构的直接建模。

b.可维护性好:在耦合性和内聚性方面,面向对象数据库的性能尤为突出。这使得数据库设计者可在尽可能少影响现存代码和数据的条件下修改数据库结构,在发现有不能适合原始模型的特殊情况下,能增加一些特殊的类来处理这些情况而不影响现存的数据。如果数据库的基本模式或设计发生变化,为与模式变化保持一致,数据库可以建立原对象的修改版本。这种先进的耦合性和内聚性也简化了在异种硬件平台的网络上的分布式数据库的运行。

c.能很好地解决"阻抗不匹配"(impedance mismatch)问题。面向对象数据库还解决了一个关系数据库运行中的典型问题:应用程序语言与数据库管理系统对数据类型支持的不一致问题,这一问题通常称之为阻抗不匹配问题。
④面向对象数据库系统的缺点

a.技术还不成熟。面向对象数据库技术的根本缺点是这项技术还不成熟,还不广为人知。与许多新技术一样,风险就在于应用。从事面向对象数据库产品和编程环境的销售活动的公司还不令人信服,因为这些公司的历史还相当短暂,就该十几年前关系数据库的情况一样。ODBMS如今还存在着标准化问题,由于缺乏标准化,许多不同的ODBMS之间不能通用。此外,是否修改SQL以适应面向对象的程序,还是用新的对象查询语言来代替它,目前还没有解决,这些因素表明随着标准化的出现,ODBMS还会变化。

b.面向对象技术需要一定的训练时间:有面向对象系统开发经验的公司的专业人员认为,要成功地开发这种系统的关键是正规的训练,训练之所以重要是由于面向对象数据库的开发是从关系数据库和功能分解方法转化而来的,人们还需要学习一套新的开发方法使之与现有技术相结合。此外,面向对象系统开发的有关原理才刚开始具有雏形,还需一段时间在可靠性、成本等方面令人可接受。

c.理论还需完善:从正规的计算机科学方面看,还需要设计出坚实的演算或理论方法来支持ODBMS的产品。此外,既不存在一套数据库设计方法学,也没有关于面向对象分析的一套清晰的概念模型,怎样设计独立于物理存储的信息还不明确。

面向对象数据库和关系数据库系统之间的争论不同于70年代关系数据库和网状数据库的争论,那时的争论是在同一主要领域(即商业事务应用)中究竟是谁代替谁的问题。现在是肯定关系数据库系统基本适合商业事务处理的前提下,对非传统的应用,特别是工程中的应用用面向对象数据库来补充不足的问题。面向对象数据库系统将成为下一代数据库的典型代表,并和关系数据库系统并存(而不是替代)。它将在不同的应用领域支持不同的应用需求。

经过数年的开发和研究,面向对象数据库的当前状况是:对面向对象数据库的核心概念逐步取得了共同的认识,标准化的工作正在进行;随着核心技术逐步解决,外围工具正在开发,面向对象数据库系统正在走向实用阶段;对性能和形式化理论的担忧仍然存在。系统在实现中仍面临着新技术的挑战。

关系数据库系统与面向对象数据库系统各自的优缺点相关推荐

  1. 关系数据库系统RDBMS与面向对象数据库管理系统ODBMS优缺点比较

    关系数据库系统与面向对象数据库系统各自的优缺点 关系数据库系统的优点 a.灵活性和建库的简单性:目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息. ...

  2. 描述三者数据库系统(多数据库系统-MDBS、分布式数据库系统-DDBS、点对点数据库系统-P2PDBS)的区别。

    描述三者数据库系统(多数据库系统-MDBS.分布式数据库系统-DDBS.点对点数据库系统-P2PDBS)的区别. MDBS 支持基于全局请求的查询接口,将查询转换为成员数据库的查询,并将结果返回给用户 ...

  3. 面向过程和面向对象的区别及优缺点

    面向过程和面向对象的区别及优缺点 面向过程: 面向过程是一种自顶向下的编程. 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发. Linux/U ...

  4. 与计算机网络关系密切的课程,数据库系统原理2009年4月真题

    课程名称:离散数学 英文名称:Discrete Mathematics        一 .课程的性质 离散数学是现代数学的一个重要分支,是计算机科学的基础理论的核心课程.它研究世界事物间的结构和相互 ...

  5. mysql数据库系统原理_数据库系统原理及MySQL应用教程

    作 者:李辉 等 编著 著作 定 价:56 出 版 社:机械工业出版社 出版日期:2016年01月01日 页 数:374 装 帧:平装 ISBN:9787111525127 本书以MySQL为平台,全 ...

  6. oracle数据库系统电子版,Oracle数据库系统原理(第2版)

    Oracle数据库系统原理(第2版)是由作者李爱武所编著的一本书.通过本书,讲述了Oracle数据库的基本理论,以及系统知识,让你有更加深层次的理解. 简介: 本书包括数据库基本理论以及Oracle数 ...

  7. 计算机科学丛书数据库系统,计算机科学丛书:数据库系统概念 读书笔记(十四)--事务(示例代码)...

    构成单一逻辑工作单元的操作集合称作事务(transaction). 即使有故障,数据库系统也必须保证事务的正确执行--要么执行整个事务,要么属于该事务的操作一个也不执行. 1. 事务概念 事务通常由高 ...

  8. 数据库系统原理 - - (1)数据库系统概论

    感谢内容提供者:金牛区吴迪软件开发工作室 文章目录 一:数据库系统概论 1.数据库基本概念 a.什么是数据? b.什么是数据库? c.数据库中存储的数据的三个基本特点 d.数据库管理系统及其功能 e. ...

  9. 1.4 高级数据库系统

    高级数据库系统 常用的高级数据库系统主要有分布式数据库系统.面向对象数据库系统.并行数据库系统和多媒体数据库系统. 1.分布式数据库系统 1.1 分布式数据库系统的概念 分布式数据库由一组数据组成,这 ...

最新文章

  1. java数据类型相互转换工具类
  2. 第36章 网络管理
  3. RHCSA 系列(六): 使用 Parted 和 SSM 来配置和加密系统存储
  4. python调用sparksql,使用Python从MySQL数据库表读取SparkSQL
  5. bmf mysql_bmf 的动态 - SegmentFault 思否
  6. 数据结构学习笔记之一 链表
  7. flex布局怎么设置子元素大小_48张小图带你领略Flex 布局之美
  8. Android APK系列6-------APK反编译
  9. 阿里云基础产品技术月刊 2018年12月
  10. ecshop设置会员头像
  11. 磁盘管理查看内存软件——WizTree使用
  12. 日文輸入法学习和日文键盘图
  13. python中清除文件内容用什么函数_数据清洗的基本流程_怎样清除excel中的公式
  14. Web前端满屋花案例框架
  15. Linux界面美化---Zsh终端
  16. Excel如何给单元格加斜线
  17. 文献调研-存算一体的实现
  18. Web性能压力测试工具之WebBench详解
  19. 区分Vlookup、hlookup、lookup函数
  20. Dom——隔行变色、分时显示问候语

热门文章

  1. 星志远电商:拼多多精确匹配溢价多少合适?
  2. 从零单刷数据结构(Java描述)(一)——数据结构概论
  3. js split() 截取函数
  4. 盒子模型(CSS重点)-盒子边框(border)
  5. Apache 301重定向中RewriteCond规则参数介绍(转)
  6. 利用HTTP Referer字段防止盗链的原理
  7. 用友 U9 【料品表】全字段Sql输出
  8. 用Annovar注释非人类基因组,如小鼠mm9
  9. 使用window便签功能实现桌面窗口置顶
  10. activiti包容网关(Inclusive Gateway)