SQL从入门到放弃系列——关于DBMS[二]

2019年6月15日15:55:36 发表评论 285
摘要

DBMS(DataBase Management System)数据库管理系统,它可以对多个数据库进行管理, 可以理解为:DBMS=多个数据库(DB)+管理程序。
虽然我们有时候把Oracle、MySQL等称之为数据库,但确切地讲,它们应该是数据库管理系统,即DBMS。

主流的DBMS

下图是2019年5月DB-Engines公布的DBMS排名:

SQL从入门到放弃系列——关于DBMS[二]

可以看出关系型数据库是DBMS的主流,使用最多的是Oracle、MySQL和SQL Server。

数据库模式对比

关系型数据库(RDBMS)

就是建立在关系模型基础上的数据库,SQL就是关系型数据库的查询语言。

NoSQL泛指非关系型数据库

包括键值型数据库、文档型数据库、搜索引擎和列存储等,此外还包括图形数据库。

键值型数据库(Key-Value)

通过Key-Value键值对的方式存储数据,其中Key和Value可以是简单对象,也可以是复杂的对象。Key作为唯一的标识符,优点是查找速度快,明显优于关系型数据库,但他无法使用条件过滤,如果不知道去哪里找数据,就要遍历所有的键,这样会消耗大量的计算。使用场景是作为内容缓存。Redis是最流行的键值型数据库。

文档型数据库(Document)

用来管理文档,在数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录,MongoDB是最流行的文档型数据库。

搜索引擎(Search Engine)

搜索引擎也是数据库检索中的重要应用,常见的全文搜索引擎有Elasticsearch、Splunk和Solr。虽然关系型数据库使用了索引提升检索效率,但是针对全文索引效率较低。搜索引擎的优势在于采用了全文搜索的技术,核心原理是“倒排索引”。

列式数据库(Wide Column)

列式数据库是相对于行式存储的数据库,Oracle、MySQL、SQL Server等数据库都是采用的行式存储(Row-Based),而列式数据库是将数据按照存储到数据库中,这样做的好处是可以大量降低系统的I/O,适合于分布式文件系统,不足之处在于功能相对有限。

为什么列式存储会大量降低系统的I/O呢?

行式储存是把一行的数据都串起来进行存储,然后存储下一行。

列式存储是把一列的数据都串起来进行存储,然后存储下一列。这样相邻数据的数据类型是一样的,因此也更容易压缩。压缩之后自然降低了I/O。

为什么都遵循SQL标准,SQL又是通用的标准语言,会存在这么多DBMS呢?

简单一句话:市场大,场景丰富。

补充

  1. Oracle收购MySQL后,MySQL的创造者担心MySQL有闭源的风险,因此创建了MySQL的分支项目MariaDB。MariaDB在绝大部分都与MySQL兼容,并增加了许多新特性,比如支持更多的存储引擎类型。
  2. 微软除了推出SQL Server,还推出了Access数据库,它是一种桌面数据库,同时具备后台存储和前台开发的功能,更轻量级,适合小型应用场景。但是后台存储空间有限,只有2G,其优势在于可以便捷地在前台界面开发。

(本文完)

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
  • A+
所属分类:SQL

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: