带你了解DBMS的前世今生?

带你了解DBMS的前世今生?
最新回答
拿着试卷唱忐忑

2022-11-09 19:49:11

DBMS的前世今生

一、DB、DBS和DBMS的区别

  • DB(数据库):英文全称是DataBase,是存储数据的集合,可理解为多个数据表。
  • DBMS(数据库管理系统):英文全称是DataBase Management System,可对多个数据库进行管理,即DBMS = 多个数据库(DB) + 管理程序。我们常说的Oracle、MySQL等确切讲是DBMS。
  • DBS(数据库系统):英文全称是DataBase System,是更大的概念,包括数据库、数据库管理系统以及数据库管理人员DBA。

二、主流DBMS及特点

(一)排名情况

根据2019年5月DB - Engines公布的DBMS排名(每年排名有更新,主要依据在搜索引擎上的热度),关系型数据库是主流,使用最多的DBMS分别是Oracle、MySQL和SQL Server。

(二)不同类型DBMS特点
  • 关系型数据库(RDBMS):建立在关系模型基础上,SQL是其查询语言。
  • NoSQL:泛指非关系型数据库,包括键值型、文档型、搜索引擎、列存储和图形数据库等。

    键值型数据库:通过Key - Value键值方式存储数据,Key作为唯一标识符。优点是查找速度快,缺点是无法像关系型数据库一样自由使用条件过滤,典型使用场景是内容缓存,Redis是最流行的键值型数据库。

    文档型数据库:管理文档,数据库中文档是处理信息的基本单位,一个文档相当于一条记录,卖拍MongoDB是最流行的文档型数据库。

    搜索引擎:数据库检索中的重要应用,常见全文搜索引擎有Elasticsearch、Splunk和Solr。采用全文搜索技术,核心原理是“倒排索引”,针对全文索引效率比关系型数据库高。

    列式数据库:与行式存储数据库相对,将数据按列存储到数据库中,可大量降低系统I/O,适合分布式文件系统,但功能相对有限。

    图形数据库:利用图这种数据结构存储实体(对象)之间的关系,数据模型以节点和边(关系)实现,能高效解决复杂关系问题,如社交网络中人与人的关系。

三、存在众多DBMS的原因

虽然SQL是通用标准语言,但存在众多DBMS,原因如下:

  • 应用场景不同:不同用户对数据库的使用场景有差异。例如Oracle更适合大型跨国企业,他们对费用不敏感,但对性能和安全性要求高;MySQL更受许多互联网公司尤其是早期创业公司青睐;对于轻量级桌面数据库,采用Access即可。
  • 功能补充:NoSQL对SQL做出了很好补充,在云计算时代能让我们更好地使用数据库技术,如快速腊宴读写,以低廉成本更方便进行扩展。NoSQL阵营中的DBMS也都有实现类似SQL的功能,从“NoSQL”名词不同时期的诠释变化(1970:NoSQL = We have no SQL;1980:NoSQL = Know SQL;2000:NoSQL = No SQL!;2005:NoSQL = Not only SQL;2013:NoSQL = No, SQL!)可以看出其功能演变。
  • 满足不同需求:即使SQL语言通用,为满足不同用户需求,也会存在多个DBMS。如SQL Server是大型数据库,用于后台存储和查询,不具备界面开发功能;而Access是桌面数据库,具备后台存储和前台界面开发功能,适合小型应用场景。

四、主流DBMS发展史及感悟

(一)发展史
  • Oracle:1979年,Oracle 2诞生,是第一个商用的RDBMS,随后卖给军方客户。随着软件名气增大,公司改叫Oracle公司。20世纪90年代,创始人埃里森成为继比尔·盖茨之后第二富有的人。如今Oracle年收入达400亿美金,证明商用数据库软件的价值。
  • MySQL:1995年诞生,是开源数据库管理系统,因免费开源受开发者喜爱,用户量迅速增长。2008年被SUN收购,2010年SUN被Oracle收购,轮配银Oracle同时拥有MySQL管理权。MySQL创造者担心闭源风险,创建了分支项目MariaDB,许多企业从MySQL转向MariaDB。
  • SQL Server:微软开发的商业数据库,诞生于1989年。微软还推出Access数据库,是桌面数据库,适合小型应用场景;SQL Server是大型数据库,用于后台存储和查询。
(二)感悟
  • 赛道选择与商业化:选择大的赛道并尽早商业化,占据大型企业客户可创建巨大商业价值,如Oracle在数据库领域成为霸主,证明软件企业不靠卖硬件也能挣很多钱。
  • 用户价值的重要性:有巨大用户价值的产品,即使没有直接商业价值,作为基础设施也会被商业巨头看上,如MySQL虽免费但用户量多。
  • 适应不同场景:不同DBMS适应不同应用场景,作为使用者应注重其使用场景,根据需求选择合适的DBMS,如同一家公司在不同场景下也会有不同DBMS布局。