文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

关系型数据库尚能饭否?

2024-04-02 19:55

关注

一、关系型数据库尚能饭否?

关系型数据库出现至今的几十年时间里,一直是数据库领域的佼佼者。下图是全球较为权威的DB-Engines的统计排名, 排名主要依据Google以及Bing搜索引擎的关键字搜索数量、从业人数信息、职位搜索量、Stack Overflow上提问关注数量等 :


关系型数据库尚能饭否?

DB-Engines 2018年6月公布的数据库排名


截止至2018年6月,排名前6位的数据库,仅有排名第5的MongoDB是文档型数据库,其余全部是关系型数据库,且前3位所占有的比重远远领先于其后的其他数据库。


1、优势


关系型数据库在经过大数据、NoSQL以及NewSQL等技术革新的轮番轰炸之后依然坚挺,与其固有的优势密不可分。它的优势主要体现在对开发人员、运维人员以及系统本身这3个方面的影响。


开发优势


对于开发人员来说,关系型数据库的首要优势是面向SQL。


SQL是关系型数据库的结构化查询语言,虽然不同的关系型数据库有不同的SQL方言,但基于ANSI标准的SQL是大部分关系型数据库都支持的。且SQL是面向数据库的访问语言,可以非常方便的对数据库进行增、删、改、查以及授权和管理。SQL的查询灵活度非常高,可以十分便捷的在联机事务处理(OLTP(https://www.xihefangpei.com))与联机分析处理(OLAP)之间转换。


此外,SQL是应用开发工程师所必须掌握的一门编程语言,流行度非常广泛,招聘到一个完全不会写SQL的应用开发程序员的概率非常小。因此,SQL极大降低了开发人员招聘的成本。


除了SQL语言本身,各种开发语言对关系型数据库的支持也十分完善。以Java举例:JDBC是Java语言访问数据库的标准接口,各个关系型数据库厂商均提供了实现JDBC接口的驱动程序。使用Java语言开发的工程师无需感知不同关系型数据库间的差异,只要根据JDBC接口编程即可。


由于面向关系的数据库存储与面向对象的Java程序不易一一对应,产生了很多对象关系映射(ORM)框架用于简化关系对象模型的阻抗不匹配,如JPA及其官方实现Hibernate、MyBatis、Jooq等,进一步简化了应用工程师的日常开发工作。ORM框架大多是采用JDBC封装,对各个关系型数据库的兼容性非常高。


运维优势


关系型数据库由于存在时间长久,针对每一种常见的关系型数据库,都能较容易地招聘到相应的数据库管理员(DBA),以保证关系型数据库的稳定性、安全性、完整性以及性能,同时保证监控和分析关系型数据库的系统瓶颈以及设计的合理性。


成熟的关系型数据库都有自己完善的生态圈,用于保证高可用、数据备份、性能监测分析等成熟的配套工具。规模较大的企业及重要业务系统一般都需要专门的DBA进行运维工作。


系统优势


只有时间才是检验技术的成熟与稳定的标准。关系型数据库经历了几十年的考验,已经有超大规模的使用,其存储引擎已经十分成熟。基于MVCC的数据库引擎在性能和正确性上做到了很好的平衡,并且通过B+tree索引大幅提升了查询的效率。面对数据这样的关键节点,谨慎的选用关系型数据库是架构师们的首选方案。


基于ACID的事务是关系型数据库带给应用系统的又一强力保障。ACID指数据库事务能够正确执行的四个基本要素的首字母缩写。它包括原子性、一致性、隔离性和持久性。只有支持事务的数据库才能最大限度的保证数据的正确性和完整性:



在编程中使用事务也并非难事,各类如Spring之类的开发框架已经在面向切面(AOP)层面将其做的十分简单和优雅了。


2、不足


关系型数据库的性能和访问承载能力,在面向单一数据节点的企业级应用时代是无可挑剔的。但在访问量和数据量急剧膨胀的今天,关系型数据库已经很难再像以前那样成为如此巨大规模系统的底层支撑,甚至成为了应用系统的瓶颈所在。


关系型数据库主要有以下三处不足:



综上所述,关系型数据库的不足,归根结底是设计初衷导致的。它并非分布式的产物,对分布式系统的天生不友好,导致它很难适应互联网的架构模型。面对可以随时弹性扩容的无状态服务,关系型数据库已经略显笨重。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯