①关系数据库系统的优点

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. 关系型数据库与非关系数据库区别

    关系型数据库和非关系型数据的比较 一.关系型数据库 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 优点: 1.易于维护:都是使用表结构,格式一致: 2.使用方便:SQL ...

  2. 从属关系mysql_关系型数据库基础概念:MySQL系列之开篇

    一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...

  3. 关系型数据库尚能饭否?NoSQL、NewSQL谁能接棒?

    本文转自:DBAplus社群 作者介绍 张亮,京东数科数据研发负责人.热爱开源,目前主导两个开源项目Elastic-Job和Sharding-Sphere(Sharding-JDBC).擅长以Java ...

  4. 【MySQL-MongoDB】关系型数据库与非关系型数据库学习笔记

    目 录 一.关系型数据库与非关系型数据库 1.关系型数据库---RDBMS(relational database managment system) 1.1 主要关系型数据库: 1.2 SQL--- ...

  5. MySQL 01 什么是数据库(关系型数据库?)

    1.1 为什么要学数据库 JavaEE:企业级 Java 开发,主要做的是 Web 开发.(需要结合 前端 后台 数据库 三大必备技能.) 前端:页面,用来展示数据. 后台:作为一个连接点,中转站.与 ...

  6. 一、分布式关系型数据库 DRDS介绍

    一.DRDS 产品简介 DRDS 是一款基于 MySQL 存储.采用分库分表技术进行水平扩展的分布式 OLTP 数据库服务产品,支持 RDS for MySQL 以及 POLARDB for MySQ ...

  7. 关系型和非关系型数据库的区别

    区别一:存储方式 关系型数据库以数据库表形式存储数据  结构比较规整固定  非关系型以JSON文档.哈希表或者其他方式 结构更加灵活和可扩展 区别二:表和数据的关系 关系型数据库中,必须定义好表和字段 ...

  8. 关系型数据库 RDBMS 的旧与新 -- 谈谈 NewSQL

    作者简介 陈运海 DaoCloud 数据平台架构师,长期关注数据库系统.分布式系统.区块链等领域. 这是最好的时代,也是最坏的时代. 在这个时代我们有各种技术可以选择,在这个时代我们有各种技术要选择. ...

  9. mysql是关系型数据库吗_mysql属于关系型数据库吗

    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语言是用于访问数据库的最常用标准 ...

最新文章

  1. 拖放操作和文件复制小功能
  2. 第二部分:IDEA 常用设置
  3. java s0 s1_业余草告诉你Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT G
  4. 百兆以太网传输距离_新品推荐 16+2G口百兆/千兆监控接入型非标PoE交换机!
  5. Windows MSVC 符号表(.lib文件)(C++符号表解析)(符号表是如何产生的)(第四步:链接)
  6. 6.1的学习成果,主要是用到指向函数的指针
  7. 只有八维数字,才能还原宇宙的本质?
  8. 7-157 求一元二次方程的根 (20 分)
  9. GreyBox和ThickBox
  10. 网络打印机 RPC服务器不可用
  11. 语音排队叫号系统源码
  12. 统计学习基础(概念,基本思想,先验知识)
  13. OBJ格式建筑模型数据处理步骤
  14. Unexpected error while obtaining screenshot from device: EOF
  15. xml格式转换为txt格式
  16. 基于stm32的自定义HID设备开发与上位机通讯实现
  17. 用户画像 各维度表的结构图
  18. JAVA计算机毕业设计大学餐厅菜品推荐和点评系统Mybatis+系统+数据库+调试部署
  19. 网络编程基础 --> 网络通信机理、报文与协议、套接字通信预备
  20. 读后感----《我奋斗了18年才和你坐在一起喝咖啡》

热门文章

  1. tensorflow2.0 图像处理项目_航天泰坦丨国产自主遥感图像处理软件当自强
  2. 2017.10.26 四校联测D1
  3. [C++]variadic function template expansion 变元函数参数的展开规则
  4. 【英语学习】【Level 08】U01 Let's Read L3 The classics are always in
  5. 【英语学习】【Daily English】U05 Places L04 Can I have some painkillers?
  6. python初学小游戏_python学习(小游戏)
  7. 采用MATLAB的DSP调试方法
  8. mie散射理论方程_Mie氏散射理论的实验研究
  9. python 怎么调用 矩阵 第几行_python工厂第19层 多重列表1
  10. Karplus-Strong 算法简单介绍和实现