关系数据库系统的优点:
1.灵活性和建库的简单性
从软件开发的角度来看,用户与关系数据库编程之间的接口是灵活而友好的。当前,大多数RDDMS产品中都使用标准查询语言SQL,这使用户几乎可以毫无区别地从一种产品访问另一种产品的信息。与关系数据库接口的应用程序软件具有类似的程序访问机制,并提供了大量的标准数据访问方法。
2.结构简单
从数据建模的角度来看,关系数据库具有相当简单的结构(元组),可以为用户或程序提供多个复杂的视图。数据库设计和标准化过程也非常简单,易于实现和易于理解。由于关系数据库的强大功能和多方面的功能,它有效地支持了许多数据库应用程序。
关系数据库系统的缺点:
1.数据类型表达能力差
从下一代应用程序软件的开发角度来看,关系数据库的根本缺陷在于缺乏直接构造与这些应用程序相关的信息类型的能力。缺少此功能将产生以下有害影响,例如:大多数RDBMS产品使用在为简单类型的复杂数据重建过程中会出现性能问题。数据库设计过程中的额外复杂性;RDBMS产品和编程语言之间数据类型的不协调。
大多数现代RDBMS产品已经在商业和金融领域成熟使用,并且这些领域不需要非常高和复杂的数据模型。尽管这些产品或多或少地克服了上述一些缺点,但是从理论上讲,关系数据模型并不直接支持复杂的数据类型。这是由于第一个范式的要求,所有数据都必须转换为简单类型。例如整数,实数,双精度数和字符串。
对于工程应用,这种无法支持复杂数据类型的典型结果是需要分解数据结构。这些分解的结构不能直接表示应用程序数据,并且从基本组件进行重建也非常繁琐且耗时。
2.复杂的查询功能差
关系数据库系统的一些优点也是它的缺点。尽管SQL语言为数据查询提供了一种很好的定义方法,但是当用于查询复杂信息时,它可能会非常麻烦。另外,工程应用中的标准化过程通常会产生大量简单表。在这种环境中,通过访问信息生成的查询必须处理大量的表以及复杂的代码连接和联接操作。
除非在固定的例程中提供这些查询,否则用户必须非常熟悉SQL,才能正确浏览数据库以查找所需的信息。但是,一旦以固定的常规模式执行查询模式,用户最终将对应用程序软件进行常规维护。但是,应用程序或人机界面软件的更改可能需要经常修改例行查询,并且数据库结构的更改也可能导致例行查询程序和应用程序或人机界面软件失败。由于这些原因,关系数据库系统的维护开销可能非常大。
由于关系数据库无法提供足够的构造功能和性能,因此在更复杂的数据库设计过程中无法将许多工程问题直接分解为简单的部分。由于缺少直接的指针访问方法,因此需要花费一些时间来查询相关信息。
3.长期支持能力差
由于RDBMS记录锁定机制的粒度限制,简单的记录级锁定机制不足以注册和检查支持多种记录类型的大型数据,但基于键-值关系的更复杂的锁定机制这是很难促进和实现的。
4.环境弹性差
在需要频繁更改系统的环境中,关系系统的成本很高,并且很难进行修改。在工程应用中支持“模式演变”功能非常重要,RDBMS无法轻松支持此功能。另外,关系数据库和编程语言提供的数据类型不一致,使得从一种环境到另一种环境的转换最多需要30%的附加代码。