返回顶部
首页 > 资讯 > 数据库 >关系型数据库尚能饭否?
  • 369
分享到

关系型数据库尚能饭否?

2024-04-02 19:04:59 369人浏览 泡泡鱼
摘要

一、关系型数据库尚能饭否? 关系型数据库出现至今的几十年时间里,一直是数据库领域的佼佼者。下图是全球较为权威的DB-Engines的统计排名, 排名主要依据Google以

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

关系型数据库出现至今的几十年时间里,一直是数据库领域的佼佼者。下图是全球较为权威的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指数据库事务能够正确执行的四个基本要素的首字母缩写。它包括原子性、一致性、隔离性和持久性。只有支持事务的数据库才能最大限度的保证数据的正确性和完整性:


  • 原子性 (Atomicity) 。 位于同一事务中的所有操作,要么全部完成(提交),要么全部不完成(回滚),不能停滞在某个中间环节。如果事务在执行过程中发生错误,数据将会恢复到事务开始前的状态。

  • 一致性 (Consistency) 。 非只读的事务应封装数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据应满足完整性约束,并且事务的中间状态不应在事务之外被感知。

  • 隔离性 (Isolation) 。 多事务并发执行时,不应相互影响其他事务,就像只有这一个操作在并行的被数据库执行一样。

  • 持久性 (Durability) 。 事务完成后,该事务对数据库的所有更改将持久的保存在数据库中。


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


2、不足


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


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


  • 单节点并发访问量受限。 在服务任意扩容和拆分的同时,由于数据库中存储的数据是有状态的,因此很难像服务一样任意拆分和扩容。单一的数据库节点承载大量的服务节点的查询和更新请求,这并非一个对等的架构部署模式。

  • 单节点数据承载量受限。 单一数据库节点对数据的承载能力是有限的。数据量越大,用于查询数据所创建的索引的深度就越深。索引深度决定io访问的次数,索引深度越深,查找越慢。

  • 分布式事务性能衰退严重。 将数据库拆分之后,需要使用分布式事务代替本地事务。基于XA的分布式事务采用两阶段提交,在准备阶段即定资源,直至整个事务结束。在系统并发度增加时,性能会急剧衰退。


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


您可能感兴趣的文档:

--结束END--

本文标题: 关系型数据库尚能饭否?

本文链接: https://lsjlt.com/news/45160.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 关系型数据库尚能饭否?
    一、关系型数据库尚能饭否? 关系型数据库出现至今的几十年时间里,一直是数据库领域的佼佼者。下图是全球较为权威的DB-Engines的统计排名, 排名主要依据Google以...
    99+
    2024-04-02
  • 数据库:关系型数据库和非关系型数据库
    数据库是数据的结构化集合,可分为关系型数据库和非关系型数据库 关系型数据库更适合处理结构化数据;表与表之间有很复杂的关联关系。 大都遵循 SQL (结构化查询语言,Structured Query Language)标准。 常见的...
    99+
    2015-08-25
    数据库:关系型数据库和非关系型数据库
  • 关系型数据库与非关系型数据库
    关系型数据库:   1、定义:     创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据   2、关系模型常用概念:     (1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名   ...
    99+
    2019-09-16
    关系型数据库与非关系型数据库
  • 数据库 | 数据库概述、关系型数据库、非关系型数据库
    目录: 1.数据库:1.1 数据库的含义1.2 数据库的特点 2.数据表3.数据库管理系统4.数据库系统5.关系型数据库 和 非关系型数据库:5.1 关系型数据库5.2 关系型数据库“优...
    99+
    2023-09-05
    数据库 oracle mysql 关系型数据库 非关系型数据库
  • 关系型数据库和非关系型数据库简介
    关系型数据库是基于关系模型提出来的数据库.那么什么是关系模型呢以行和列的方式二维表的方式存储数据的模型就是关系型数据库.例如:mysql和oracle非关系型数据库(NoSQL即Not-Only SQL)可...
    99+
    2024-04-02
  • 关系型数据库与非关系型数据库简介
    目录关系型数据库:OracleSQLServerSybaseInformixAccessDB2mysqlvfpIngersFoxPro非关系型数据库:MongoDBCassandra...
    99+
    2024-04-02
  • 关系型数据库和非关系型数据库有什么区别
    关系型数据库和非关系型数据库有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。非关系型数据库(nosql)  非关系型数据库也称之为...
    99+
    2024-04-02
  • 关系型数据库和非关系型数据库有哪些区别
    关系型数据库和非关系型数据库有哪些区别,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关系型数据库通过外键关联来建立表与表之间的关系,2.非关系型数据库通常指数据以对象的形式存储...
    99+
    2023-06-04
  • 关系型数据库和非关系型数据库的区别是什么
    这篇文章主要介绍了关系型数据库和非关系型数据库的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。区别:关系型数据天然就是表格式的,因此存...
    99+
    2024-04-02
  • 关系型数据库与非关系型数据库的区别是什么
    今天就跟大家聊聊有关关系型数据库与非关系型数据库的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。关系模型指的就是二维表格模型,而一个关系型...
    99+
    2024-04-02
  • 关系型数据库和非关系型数据库有哪些优缺点
    这篇文章主要介绍“关系型数据库和非关系型数据库有哪些优缺点”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“关系型数据库和非关系型数据库有哪些优缺点”文章能帮助大家解决问题。一、关系型数据库1、概念关系...
    99+
    2023-06-29
  • 关系型数据库和非关系型数据库概述与优缺点对比
    目录一、关系型数据库1、概念2、关系型数据库的特点3、关系型数据库的瓶颈4、关系型数据遵循ACID原则1、A(Atomicity)原子性2、C(Consistency)一致性3、I(...
    99+
    2024-04-02
  • MySQL关系型数据库表格
    下面一起来了解下MySQL关系型数据库表格,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL关系型数据库表格这篇短内容是你想要的。CustomerIDNameAddressCity1张白路长沙2张...
    99+
    2024-04-02
  • 什么是关系型数据库
    关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。...
    99+
    2024-04-02
  • mysql是关系型数据库吗
    是的,MySQL 是一种关系型数据库管理系统(RDBMS)。关系型数据库是指采用了关系模型来组织数据的数据库系统。在一个关系型数据库...
    99+
    2024-04-09
    mysql
  • mysql是关系型数据库吗?
    是,mysql 是一种关系型数据库管理系统(rdbms),它使用关系模型来存储和管理数据,包括:表,其中行表示数据实体,列表示属性。主键,唯一标识每个行。外键,用于建立表之间的关系。数据...
    99+
    2024-08-02
    mysql
  • 数据库中非关系型数据库有哪些
    这篇文章给大家分享的是有关数据库中非关系型数据库有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。非关系型数据库有:1、MongoDB,是一个面向文档的开源NoSQL数据库;2...
    99+
    2024-04-02
  • 关系型和非关系型数据库有什么区别
    小编给大家分享一下关系型和非关系型数据库有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!关系型数据库:Oracle、DB...
    99+
    2024-04-02
  • mySQL (关系型数据库管理系统)
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL...
    99+
    2024-04-02
  • 详细解说关系型数据库
    目录 1、认识关系型数据库 1.1.1 什么是关系型数据库 1.1.2  实体关系模型 1.1.3  关系型数据库管理系统RDBMS 1.1.4  使用SQL语言管理数据库 1、认识关系型数据库 数据库简而言之就是数据的集合,它是由文件系...
    99+
    2016-07-24
    详细解说关系型数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作