NoSQL与关系数据库的比较

表中给出了NoSQL和关系数据库( Relational DataBase Management System, RDBMS )的简单比较,对比指标包括数据库原理、数据规模、数据库模式、查询效率、一致性、数据完整性、扩展性、可用性、标准化、技术支持和可维护性等方面。从表中可以看出,关系数据库的突出优势在于,以完善的关系代数理论作为基础,有严格的标准,支持事务 ACID 四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持;其劣势在于,可扩展性较差,无法较好地支持海量数据存储,数据模型过于死板,无法较好地支持Web 2.0应用,事务机制影响了系统的整体性能等。NoSQL数据库的明显优势在于,可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web 2.0应用,具有强大的横向扩展能力等;其劣势在于,缺乏数学理论基础,复杂查询性能不高,一般都不能实现事务强致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等。

NoSQL和关系数据库的简单比较

比较标准关系数据库NoSQL备注
技术支持关系数据库经过几十年的发展,已经非常成熟,Oracle等大型厂商都可以提供很好的技术支持 NoSQL在技术支持方面仍然处于起步阶段,还不成熟,缺乏有力的技术支持
数据库原理完全支持部分支持关系数据库有关系代数理论作为基础 NoSQL没有统一的理论基础
数据规模超大关系数据库很难实现横向扩展,纵向扩展的空间也比较有限,性能会随着数据规模的增大而降低 NoSQL 可以很容易通过添加更多设备来支持更大规模的数据
查询效率可以实现高效的简单查询,但是不具备高度结构化查询等特性,复杂查询的性能不尽人意关系数据库借助于索引机制可以实现快速查询(包括记录查询和范围查询) 很多 NoSQL 数据库没有面向复杂查询的索引,虽然 NoSQL 可以使用 MapReduce 来加速查询,但是在复杂查询方面的性能仍然不如关系数据库
一致性强一致性弱一致性关系数据库严格遵守事务ACID模型,可以保证事务强一致性 很多 NoSQL 数据库放松了对事务ACID四性的要求,而是遵守 BASE 模型,只能保证最终一致性
可维护性复杂复杂关系数据库需要专门的数据库管理员(DBA)维护 NoSQL 数据库虽然没有关系数据库复杂,但也难以维护
标准化关系数据库已经标准化( SQL ) NoSQL 还没有行业标准,不同的 NoSQL 数据库都有自己的查询语言,很难规范应用程序接口
可用性很好关系数据库在任何时候都以保证数据一致性为优先目标,其次才是优化系统性能,随着数据规模的增大,关系数据库为了保证严格的一致性,只能提供相对较弱的可用性 大多数 NoSQL 都能提供较高的可用性
数据完整性容易实现很难实现任何一个关系数据库都可以很容易实现数据完整性,如通过主键或者非空约束来实现实体完整性,通过主键、外键来实现参照完整性,通过约束或者触发器来实现用户自定义完整性,但是在 NoSQL 数据库却无法实现
扩展性一般关系数据库很难实现横向扩展,纵向扩展的空间也比 NoSQL 在设计之初就充分考虑了横向扩展的需求,可以很容易通过添加廉价设备实现扩展
数据库模式固定灵活关系数据库需要定义数据库模式,严格遵守数据定义和相关约束条件 NoSQL 不存在数据库模式,可以自由、灵活地定义并存储各种不同类型的数据
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值